Prerequisites
Assumptions
- You maintain your Kubernetes object configurations in a Kustomization directory
- Your configurations are under version control (recommended)
- You have
kubectlconfigured to point to your cluster - You have appropriate access permissions to update the cluster
Update Process
Read the release notes
Release notes are available on the GitHub Releases page.Important sections to review:
- Potentially Requiring Action - Critical changes that need manual intervention
- New Features - Configuration options for new functionality
- Bug Fixes - Issues resolved in this release
- Breaking Changes - API or configuration changes that may affect your deployment
Update Kubernetes configuration files
Make the following changes to your Kustomization directory:Example updates:
Update Container Images
Update theimage field for each Container in your PodSpecs.Pre-built images are published on GitHub Packages. Use the release version as the image tag.Image naming pattern:Apply Release-Specific Changes
Make any configuration changes indicated in the release notes, such as:- New environment variables
- Updated command-line flags
- Modified ConfigMap or Secret structures
- New RBAC permissions
- Database schema migrations
Preview changes with diff (recommended)
Before applying changes, preview what will be modified:Verify the diff includes:
- ✅ Expected image tag updates
- ✅ Configuration changes from release notes
- ✅ No unexpected modifications
- ✅ No deletions unless intentional
If you see unexpected changes, review your Kustomization files before proceeding.
Apply the new configuration
Apply the updated configuration to your cluster:
Using ApplySet for Safe Pruning
To ensure object deletions and renames are handled properly, use ApplySet:Rollback Procedure
If issues occur during or after the update:Best Practices
Version Control
- Commit all configuration changes before applying
- Use meaningful commit messages referencing the release version
- Tag commits with release versions (e.g.,
deployed-v0.5.7) - Keep a changelog of your deployment configuration changes
Multi-Component Updates
When updating a multi-component deployment (Kingdom, Duchies, Reporting):Update in order
Typical update order:
- Kingdom (central coordinator)
- Duchies (computation participants)
- Reporting (reporting services)
- Data Providers (data sources)
- Measurement Consumers (clients)
Troubleshooting
Pods in CrashLoopBackOff
Pods in CrashLoopBackOff
Check pod logs for errors:Common causes:
- Configuration errors from release-specific changes
- Missing required environment variables
- Database migration issues
- Certificate/secret mount problems
Image pull errors
Image pull errors
Verify image name and tag:Check:
- Image tag matches the release version
- You have access to GitHub Packages
- Image pull secrets are configured correctly
Database migration failures
Database migration failures
Some releases require database schema updates:Refer to release notes for specific migration procedures.
Configuration validation errors
Configuration validation errors
If configuration is rejected:Review release notes for configuration schema changes.
Additional Resources
- Building from Source - Build custom images
- Kingdom Deployment Guide - Initial setup
- Certificate Rotation - Certificate management
- GitHub Releases - Release notes and changelogs