Audiences: adopter (deploy)
This guide covers how to upgrade an existing ML Deployment Toolkit deployment. For architecture context on how OCI artifacts and Flux reconciliation work, see GitOps structure.
The upgrade path depends on whether your environment pins a specific OCI artifact version or follows the latest tag.
No action needed. Flux polls the OCI source every 10 minutes. When the platform team publishes a new artifact, Flux detects the updated latest tag and applies changes automatically.
Monitor reconciliation after a known publish:
kubectl get kustomizations -n flux-systemAll kustomizations should show Ready: True within a few minutes of the new artifact being available.
When oci.repo.version is set to a specific tag in your environment config:
- Update
oci.repo.versioninconfig/environments/<env>/config.yamlto the new version - Apply the change:
make plan-apply ENV=<env>
- Verify Flux reconciliation:
kubectl get kustomizations -n flux-system
Pinning is recommended for production environments where you want explicit control over when changes roll out.
To change cluster topology, provider settings, or Flux version:
- Edit
config/environments/<env>/config.yamlwith the desired changes - Review the execution plan:
make plan ENV=<env>
- Inspect the plan output carefully -- infrastructure changes can be disruptive (node replacements, VIP changes, etc.)
- Apply:
make apply ENV=<env>
Kubernetes and Talos versions are managed centrally in config/definitions/workload-classes.yaml. This is a platform-team change, not an adopter change.
After the platform team updates the workload classes and publishes a new IaC bundle:
- Pull the updated bundle
- Apply the change:
Terraform detects the version change and updates nodes accordingly.
make plan-apply ENV=<env>
On managed Kubernetes providers (AWS EKS, DigitalOcean DOKS), the Kubernetes version is specified in the provider configuration and follows the same make plan-apply workflow.
If an upgrade causes issues:
- Platform services: Revert
oci.repo.versionto the previous tag inconfig/environments/<env>/config.yamland runmake plan-apply ENV=<env>. Alternatively, the platform team can publish a fixed artifact. - Infrastructure: Revert config changes in
config/environments/<env>/config.yamland runmake plan-apply ENV=<env>. - Data layer: See backup and restore for data recovery procedures.