Installation Migration
krateoctl provides two commands for moving a legacy Krateo installation to the new krateo.yaml workflow:
krateoctl install migratefor a manual migrationkrateoctl install migrate-fullfor an automated cutover
Both commands are designed for Krateo 2.7.0 installations managed by the installer controller.
If you are looking for the regular install or upgrade workflow, see Install and Upgrade.
Secrets are managed separately from the migration workflow. Use Vault or create the required Kubernetes Secrets manually, then follow the Secrets Spec.
Table Of Contents
Which Command Should I Use?
Use migrate when you want to:
- generate
krateo.yaml - review the converted configuration before applying it
- run
install planandinstall applyyourself
Use migrate-full when you want krateoctl to:
- generate
krateo.yaml - apply the new configuration
- remove the legacy
KrateoPlatformOpsresource - uninstall the old installer Helm releases
Automated Migration
krateoctl install migrate-full performs the same conversion, then carries out the migration steps automatically.
Usage
krateoctl install migrate-full [FLAGS]
Flags
--typeinstallation type to use for the generated defaults:nodeport,loadbalancer, oringress--namespacenamespace containing the legacyKrateoPlatformOpsresource, defaultkrateo-system--namelegacy resource name, defaultkrateo--outputoptional path to save the generatedkrateo.yaml--installer-namespacenamespace where the old installer is deployed, default the same as--namespace--installer-releaseHelm release name for the installer chart, defaultinstaller--installer-crd-releaseHelm release name for the installer CRD chart, defaultinstaller-crd--forceoverwrite the output file if it already exists--debugenable debug logging, or setKRATEOCTL_DEBUG
What It Does
- Reads the legacy
KrateoPlatformOpsresource from the cluster. - Converts it into a new
krateo.yamldocument. - Optionally writes the generated file to disk when
--outputis provided. - Scales the old installer down.
- Applies the new configuration automatically.
- Deletes the legacy
KrateoPlatformOpsresource. - Uninstalls the old installer Helm releases.
Examples
# Run the full automatic migration
krateoctl install migrate-full --type nodeport
# Run the full migration and also save the generated file
krateoctl install migrate-full --type nodeport --output ./krateo.yaml
# Run the migration with custom Helm release names
krateoctl install migrate-full \
--type ingress \
--installer-release my-installer \
--installer-crd-release my-installer-crd
Manual Migration
krateoctl install migrate reads a legacy KrateoPlatformOps resource from the cluster, converts it into the new configuration format, and writes the result to disk.
Usage
krateoctl install migrate [FLAGS]
Flags
--typeinstallation type to use for the generated defaults:nodeport,loadbalancer, oringress--namespacenamespace containing the legacyKrateoPlatformOpsresource, defaultkrateo-system--namelegacy resource name, defaultkrateo--outputpath for the generated file, defaultkrateo.yaml--forceoverwrite the output file if it already exists--debugenable debug logging, or setKRATEOCTL_DEBUG
What It Does
- Connects to the cluster using the current kubeconfig.
- Reads the legacy
KrateoPlatformOpscustom resource. - Converts its spec into a new
krateo.yamldocument. - Adds the default components definition for the selected installation type.
- Writes the generated file to disk and stops.
Typical Workflow
- Run
krateoctl install migrate. - Review the generated
krateo.yaml. - Run
krateoctl install planto preview the new installation. - Run
krateoctl install applywhen you are ready to switch over. - Remove the old controller and legacy
KrateoPlatformOpsresource manually when the migration is complete.
Inspect the Snapshot
After install apply or migrate-full, krateoctl stores the resolved installation snapshot as an Installation resource named krateoctl in the install namespace.
You can inspect it with:
kubectl get installation krateoctl -n krateo-system -o yaml
This is the easiest way to review what was actually persisted after the installation or migration finished.
Examples
# Generate krateo.yaml from the default legacy resource
krateoctl install migrate
# Generate a file for a specific installation type
krateoctl install migrate --type ingress --output ./krateo.yaml
# Generate the file, then review and apply it manually
krateoctl install migrate --type nodeport
krateoctl install plan --config ./krateo.yaml --type nodeport
krateoctl install apply --config ./krateo.yaml --type nodeport
Notes
migrateis the safer choice when you want to review the generated configuration first.migrate-fullis the faster choice when you wantkrateoctlto handle the cutover end-to-end.- If you are unsure which installation type to use, start with the one that matches your current environment:
nodeport,loadbalancer, oringress.