--- # yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/upgrade.cattle.io/plan_v1.json apiVersion: upgrade.cattle.io/v1 kind: Plan metadata: name: talos spec: version: ${TALOS_VERSION} serviceAccountName: system-upgrade secrets: - name: talos path: /var/run/secrets/talos.dev ignoreUpdates: true concurrency: 1 exclusive: true nodeSelector: matchExpressions: - key: feature.node.kubernetes.io/system-os_release.ID operator: In values: ["talos"] - key: feature.node.kubernetes.io/system-os_release.VERSION_ID operator: NotIn values: ["${TALOS_VERSION}"] - key: kubernetes.io/hostname operator: NotIn values: ["gandalf-01", "shadowfax-01"] # - key: factory.talos.dev/schematic-id.part-0 # operator: In # values: ["${TALOS_SCHEMATIC_ID:0:32}"] # - key: factory.talos.dev/schematic-id.part-1 # operator: In # values: ["${TALOS_SCHEMATIC_ID:32}"] tolerations: - key: CriticalAddonsOnly operator: Exists - key: node-role.kubernetes.io/control-plane operator: Exists effect: NoSchedule prepare: &prepare image: ghcr.io/siderolabs/talosctl:${TALOS_VERSION} envs: - name: NODE_IP valueFrom: fieldRef: fieldPath: status.hostIP - name: TALOS_SCHEMATIC_ID valueFrom: fieldRef: fieldPath: metadata.annotations['extensions.talos.dev/schematic'] args: - --nodes=$(NODE_IP) - health - --server=false upgrade: <<: *prepare args: - --nodes=$(NODE_IP) - upgrade - --image=factory.talos.dev/installer/$(TALOS_SCHEMATIC_ID):$(SYSTEM_UPGRADE_PLAN_LATEST_VERSION) - --wait=false