Skip to content

Upgrade AKS to Kubernetes 1.36.3 and azurerm to 5.4.0 - #57

Merged
3uzbcqje merged 1 commit into
mainfrom
upgrade-kubernetes-1.36
Sep 5, 2026
Merged

3uzbcqje merged 1 commit into
mainfrom
upgrade-kubernetes-1.36

Conversation

@3uzbcqje

@3uzbcqje 3uzbcqje commented Sep 5, 2026

Copy link
Copy Markdown
Collaborator

Version audit of everything pinned in the repo. Two things were behind; the rest were already current.

Thing Pinned Latest Action
OpenTofu (.opentofu-version) 1.12.6 1.12.6 current
hashicorp/azuread 3.9.0 3.9.0 current
hashicorp/azurerm 5.3.0 5.4.0 bumped
hashicorp/kubernetes 3.2.1 3.2.1 current
AKS Kubernetes 1.35.7 1.36.3 bumped
actions/checkout v7.0.1 v7.0.1 current
opentofu/setup-opentofu v2.0.2 v2.0.2 current
actions/cache v6.1.0 v6.1.0 current
azure/login v3.0.2 v3.0.2 current
actions/github-script v9.0.0 v9.0.0 SHA normalized

Kubernetes 1.35.7 → 1.36.3

1.36 is on KubernetesOfficial + AKSLongTermSupport in westus2, isn't preview, and az aks get-upgrades offers it directly — a single-hop upgrade with no skipped minor.

The node OS is unaffected. The default Ubuntu os_sku maps to Ubuntu 24.04 on 1.35+, and the pool is already on it (AKSUbuntu-2404gen2arm64containerd-202608.14.0), so 1.36 reimages the nodes without changing the Ubuntu version. The os_sku comment still described the 22.04 → 24.04 migration as something this upgrade would do, so it's been rewritten.

One workload-level note that's outside this repo: 1.36 makes faster SELinux volume labeling the default for all volumes. Sharing a volume between privileged and unprivileged pods on the same node can misbehave under that change.

azurerm 5.3.0 → 5.4.0

New list resources, API version bumps for mongo/netapp, and one azurerm_synapse_spark_pool bug fix — nothing touching the resources here, and tofu plan confirms no drift from the bump. max_unavailable is still absent from the upgrade_settings schema in 5.4.0, so the reasoning in that comment holds; only its version number changed.

actions/github-script pin

The pinned d746ffe… isn't a commit — it's the annotated tag object for v9.0.0, which dereferences to commit 3a2844b…. Actions resolves it fine and a tag object is just as immutable, so this was never broken. But the REST commits API 404s on it and pinning tooling (dependabot, zizmor, ratchet) expects a commit SHA, which makes it look like a bogus pin under audit. Now points at the commit. Same code.

Verification

tofu fmt -check, tofu validate, and tflint pass; all pre-commit hooks including zizmor and actionlint pass.

Plan: 0 to add, 1 to change, 0 to destroy.
  ~ kubernetes_version   = "1.35.7" -> "1.36.3"
  ~ orchestrator_version = "1.35"   -> "1.36"

.terraform.lock.hcl is regenerated from tofu init -upgrade; it also picks up constraints = … lines for all three providers that the previous lock was missing.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Aw2e3hf3pyTXnfL7j4EVaN

1.36 is on KubernetesOfficial + AKSLongTermSupport in westus2 and is offered
directly by `az aks get-upgrades`, so it's a single-hop upgrade from 1.35.7.

The node OS is unaffected. The default `Ubuntu` os_sku maps to Ubuntu 24.04 on
1.35+, and the pool is already there (AKSUbuntu-2404gen2arm64containerd), so
1.36 reimages the nodes without changing the Ubuntu version. Updated the os_sku
comment, which still described the 22.04 -> 24.04 migration as pending.

azurerm 5.4.0 adds list resources and API version bumps that don't touch
anything here; `tofu plan` shows no drift from the bump. `max_unavailable` is
still absent from the upgrade_settings schema, so that comment's reasoning
holds -- only its version number changed.

Also normalized the actions/github-script pin. It was `d746ffe...`, which is
the annotated *tag object* for v9.0.0 rather than a commit. Actions resolves it
and it's equally immutable, but the REST commits API 404s on it and pinning
tooling expects a commit SHA, so it now points at `3a2844b...` -- the commit
that tag dereferences to. Same code.

Plan: 0 to add, 1 to change, 0 to destroy.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Aw2e3hf3pyTXnfL7j4EVaN
@3uzbcqje
3uzbcqje requested a review from ArendPeter as a code owner September 5, 2026 04:03
@coderabbitai

coderabbitai Bot commented Sep 5, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Team

Run ID: d662fbc7-d905-4ab5-ad18-50e51214355e


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

OpenTofu Format and Style success

OpenTofu Initialization ⚙️success

OpenTofu Validation success

Validation Output

Success! The configuration is valid.

OpenTofu Plan success

Show Plan

azuread_group.devops: Refreshing state... [id=/groups/00ffff57-3e97-42ef-a1d3-fe710103ffa3]
azuread_group.developers: Refreshing state... [id=/groups/5db7f75d-884a-44ea-b8ef-f53f3e38fcb8]
data.azuread_user.jackson_loper: Reading...
data.azurerm_client_config.current: Reading...
azurerm_resource_group.equalvote: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote]
data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD0xMDZmYTU2Ny1lZjBmLTQxNzYtYWY4MS0zZjJhZjcwNmZhMjA7b2JqZWN0SWQ9ZTQ1MzZmMDctOGY1YS00NTAxLWJlOTAtNmEzZDJhMDliMGYzO3N1YnNjcmlwdGlvbklkPTg2ZjMxNDVhLTQ4Y2MtNDI1NS04NzU3LWRkMzEwNGQxNWU1Nzt0ZW5hbnRJZD1mYjViMDlkMC02YzdjLTRiZjItYWRmNy02ZmI2MWY5MDJkZTk=]
data.azuread_user.jackson_loper: Read complete after 0s [id=/users/9baecad8-ff13-415e-a46e-eb4dc19cfbb5]
azuread_group_member.jackson_loper_devops: Refreshing state... [id=00ffff57-3e97-42ef-a1d3-fe710103ffa3/member/9baecad8-ff13-415e-a46e-eb4dc19cfbb5]
azurerm_user_assigned_identity.loki-identity: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.ManagedIdentity/userAssignedIdentities/loki]
azurerm_dns_zone.sandbox: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.Network/dnsZones/sandbox.star.vote]
azurerm_key_vault.equalvote: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.KeyVault/vaults/equalvote]
azurerm_virtual_network.equalvote: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.Network/virtualNetworks/equalvote]
azurerm_dns_zone.dev: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.Network/dnsZones/dev.equal.vote]
azurerm_storage_account.storage: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.Storage/storageAccounts/bettervoting]
azurerm_dns_zone.prod: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.Network/dnsZones/prod.equal.vote]
azurerm_kubernetes_cluster.equalvote: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.ContainerService/managedClusters/equalvote]
azurerm_key_vault.equalvote-argocd: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.KeyVault/vaults/equalvote-argocd]
azurerm_data_protection_backup_vault.equalvote: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.DataProtection/backupVaults/equalvote-backup-vault]
azurerm_user_assigned_identity.argocd-identity: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.ManagedIdentity/userAssignedIdentities/argocd]
azurerm_subnet.equalvote: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.Network/virtualNetworks/equalvote/subnets/equalvote]
azurerm_role_assignment.backup_vault_disk_reader["/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/MC_equalvote_equalvote_westus2/providers/Microsoft.Compute/disks/pvc-b3bbf7bd-fd95-4947-80aa-5ee343009001"]: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/MC_equalvote_equalvote_westus2/providers/Microsoft.Compute/disks/pvc-b3bbf7bd-fd95-4947-80aa-5ee343009001/providers/Microsoft.Authorization/roleAssignments/0f05a116-cad3-1cae-3e8a-8626ade7535d]
azurerm_data_protection_backup_policy_disk.equalvote: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.DataProtection/backupVaults/equalvote-backup-vault/backupPolicies/equalvote-backup-policy]
azurerm_role_assignment.backup_vault_disk_reader["/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/MC_equalvote_equalvote_westus2/providers/Microsoft.Compute/disks/pvc-eed94c08-a919-4ddf-8463-c7d5a49cdc45"]: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/MC_equalvote_equalvote_westus2/providers/Microsoft.Compute/disks/pvc-eed94c08-a919-4ddf-8463-c7d5a49cdc45/providers/Microsoft.Authorization/roleAssignments/1d893dfa-ad19-aec0-98c6-2072ed17795a]
azurerm_role_assignment.backup_vault_disk_reader["/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/MC_equalvote_equalvote_westus2/providers/Microsoft.Compute/disks/pvc-3cd6e8ba-fb7f-4031-a69d-e5cd96e8efba"]: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/MC_equalvote_equalvote_westus2/providers/Microsoft.Compute/disks/pvc-3cd6e8ba-fb7f-4031-a69d-e5cd96e8efba/providers/Microsoft.Authorization/roleAssignments/45a1f70a-ffc8-d5e9-87af-4eaec4ac1b23]
azurerm_role_assignment.backup_vault_disk_reader["/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/MC_equalvote_equalvote_westus2/providers/Microsoft.Compute/disks/pvc-56229c63-fd75-49d0-8f6b-7ce7d107bc68"]: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/MC_equalvote_equalvote_westus2/providers/Microsoft.Compute/disks/pvc-56229c63-fd75-49d0-8f6b-7ce7d107bc68/providers/Microsoft.Authorization/roleAssignments/de40d41a-ba36-0812-ce94-fb204d6012d6]
azurerm_key_vault_key.sops: Refreshing state... [id=https://equalvote.vault.azure.net/keys/sops/92a0fe05a77b4a3787d10bbd444f19c6]
azurerm_storage_container.candidate-photos: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.Storage/storageAccounts/bettervoting/blobServices/default/containers/candidate-photos]
azurerm_storage_container.loki-admin: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.Storage/storageAccounts/bettervoting/blobServices/default/containers/loki-admin]
azurerm_storage_container.loki-chunks: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.Storage/storageAccounts/bettervoting/blobServices/default/containers/loki-chunks]
azurerm_storage_container.loki-ruler: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.Storage/storageAccounts/bettervoting/blobServices/default/containers/loki-ruler]
azurerm_role_assignment.loki-storage-contributor: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.Storage/storageAccounts/bettervoting/providers/Microsoft.Authorization/roleAssignments/65011de2-1beb-bd42-562a-ac06f41a3c91]
azurerm_key_vault_access_policy.argocd-policy: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.KeyVault/vaults/equalvote-argocd/objectId/2c7d3739-7134-4112-ae3d-8e3fd181032d]
azurerm_key_vault_key.sops-key: Refreshing state... [id=https://equalvote-argocd.vault.azure.net/keys/sops-key/9d7a971e677f4d8a9f2f7adaf349f7ff]
azurerm_federated_identity_credential.kubernetes-federated-credential: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.ManagedIdentity/userAssignedIdentities/argocd/federatedIdentityCredentials/kubernetes-federated-credential]
azurerm_role_assignment.backup_vault_snapshot_contributor: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/MC_equalvote_equalvote_westus2/providers/Microsoft.Authorization/roleAssignments/b3a3d56a-2bdf-a8c4-8be9-91df16e2149d]
azurerm_role_assignment.devops_aks_cluster_admin: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.ContainerService/managedClusters/equalvote/providers/Microsoft.Authorization/roleAssignments/d96ed6c7-83ad-e2bb-ffae-9c1227876459]
azurerm_role_assignment.developers_aks_cluster_user: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.ContainerService/managedClusters/equalvote/providers/Microsoft.Authorization/roleAssignments/6b99e5d0-fd01-35dc-b46c-6bcd3919c758]
azurerm_federated_identity_credential.loki-federated-credential: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.ManagedIdentity/userAssignedIdentities/loki/federatedIdentityCredentials/loki-federated-credential]
azurerm_data_protection_backup_instance_disk.pvc["/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/MC_equalvote_equalvote_westus2/providers/Microsoft.Compute/disks/pvc-eed94c08-a919-4ddf-8463-c7d5a49cdc45"]: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.DataProtection/backupVaults/equalvote-backup-vault/backupInstances/pvc-eed94c08-a919-4ddf-8463-c7d5a49cdc45]
azurerm_data_protection_backup_instance_disk.pvc["/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/MC_equalvote_equalvote_westus2/providers/Microsoft.Compute/disks/pvc-56229c63-fd75-49d0-8f6b-7ce7d107bc68"]: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.DataProtection/backupVaults/equalvote-backup-vault/backupInstances/pvc-56229c63-fd75-49d0-8f6b-7ce7d107bc68]
azurerm_data_protection_backup_instance_disk.pvc["/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/MC_equalvote_equalvote_westus2/providers/Microsoft.Compute/disks/pvc-3cd6e8ba-fb7f-4031-a69d-e5cd96e8efba"]: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.DataProtection/backupVaults/equalvote-backup-vault/backupInstances/pvc-3cd6e8ba-fb7f-4031-a69d-e5cd96e8efba]
azurerm_data_protection_backup_instance_disk.pvc["/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/MC_equalvote_equalvote_westus2/providers/Microsoft.Compute/disks/pvc-b3bbf7bd-fd95-4947-80aa-5ee343009001"]: Refreshing state... [id=/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.DataProtection/backupVaults/equalvote-backup-vault/backupInstances/pvc-b3bbf7bd-fd95-4947-80aa-5ee343009001]

OpenTofu used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  ~ update in-place (current -> planned)

OpenTofu will perform the following actions:

  # azurerm_kubernetes_cluster.equalvote will be updated in-place
  ~ resource "azurerm_kubernetes_cluster" "equalvote" {
        id                                  = "/subscriptions/86f3145a-48cc-4255-8757-dd3104d15e57/resourceGroups/equalvote/providers/Microsoft.ContainerService/managedClusters/equalvote"
      ~ kubernetes_version                  = "1.35.7" -> "1.36.3"
        name                                = "equalvote"
        tags                                = {}
        # (27 unchanged attributes hidden)

      ~ default_node_pool {
            name                         = "agentpool"
          ~ orchestrator_version         = "1.35" -> "1.36"
            tags                         = {}
            # (20 unchanged attributes hidden)

            # (1 unchanged block hidden)
        }

        # (6 unchanged blocks hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

─────────────────────────────────────────────────────────────────────────────

Saved the plan to: plan.file

To perform exactly these actions, run the following command to apply:
    tofu apply "plan.file"



Pusher: @3uzbcqje, Action: pull_request, Working Directory: ``, Workflow: .github/workflows/opentofu.yml

@3uzbcqje
3uzbcqje merged commit c258776 into main Sep 5, 2026
2 checks passed
@3uzbcqje
3uzbcqje deleted the upgrade-kubernetes-1.36 branch September 5, 2026 04:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant