Migrate Cluster API resources to v1beta2
org.openrewrite.kubernetes.clusterapi.MigrateToClusterApiV1beta2Artifactorg.openrewrite.recipe:rewrite-kubernetesMigrate every custom resource Cluster API owns to v1beta2. v1beta1 has been deprecated since v1.11 and stops being served in v1.16. The cluster.x-k8s.io kinds move fields and apiVersion together; addons and ipam change apiVersion only, because those kinds are the same shape under a new name.
Two things are deliberately left behind. The four Kubeadm* kinds are not migrated at all: extraArgs changes from a map to a list throughout the embedded kubeadm configuration and the control plane regroups half its spec, so a bare swap is either rejected outright or accepted while the apiserver prunes what moved. And infrastructure.cluster.x-k8s.io is out of scope, because that group belongs to the providers, each of which decides for itself what v1beta2 means. Both have to be migrated by hand.
Usage
This recipe has no required configuration options. You’ll need the Moderne CLI configured before running the command below.
mod run . --recipe org.openrewrite.kubernetes.clusterapi.MigrateToClusterApiV1beta2If the recipe isn’t available locally, install it with:
mod config recipes jar install org.openrewrite.recipe:rewrite-kubernetes:RELEASEDefinition
This recipe runs the following recipes in order.
- Migrate the Cluster API core group to
v1beta2org.openrewrite.kubernetes.clusterapi.MigrateClusterApiCoreToV1beta2 - Change Kubernetes API version
org.openrewrite.kubernetes.ChangeApiVersion - Change Kubernetes API version
org.openrewrite.kubernetes.ChangeApiVersion - Change Kubernetes API version
org.openrewrite.kubernetes.ChangeApiVersion
Data tables
Structured output this recipe can produce.
- Cluster API v1beta2 migrationsEvery `cluster.x-k8s.io/v1beta1` resource considered, what moving it to `v1beta2` rewrote, and why the ones left behind could not move.
org.openrewrite.kubernetes.clusterapi.table.ClusterApiV1beta2Migrations - Source files that had resultsSource files that were modified by the recipe run.
org.openrewrite.table.SourcesFileResults - Source files that had search resultsSearch results that were found during the recipe run.
org.openrewrite.table.SearchResults - Source files that errored on a recipeThe details of all errors produced by a recipe run.
org.openrewrite.table.SourcesFileErrors - Recipe performanceStatistics used in analyzing the performance of recipes.
org.openrewrite.table.RecipeRunStats