Skip to content

Commit e3d8684

Browse files
committed
fix(environmentConfigs): revert to v1alpha1 as storageversion to fix rollback issues
Signed-off-by: Philippe Scorsolini <[email protected]>
1 parent 4b3dd0d commit e3d8684

File tree

6 files changed

+30
-8
lines changed

6 files changed

+30
-8
lines changed

apis/apiextensions/v1alpha1/zz_generated.environment_config_types.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ import (
2424
)
2525

2626
// +kubebuilder:object:root=true
27+
// +kubebuilder:storageversion
2728
// +genclient
29+
// +kubebuilder:storageversion
2830
// +genclient:nonNamespaced
2931

3032
// An EnvironmentConfig contains user-defined unstructured values for

apis/apiextensions/v1beta1/environment_config_types.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import (
2222
)
2323

2424
// +kubebuilder:object:root=true
25-
// +kubebuilder:storageversion
2625
// +genclient
2726
// +genclient:nonNamespaced
2827

apis/generate.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ limitations under the License.
3131
//go:generate ../hack/duplicate_api_type.sh apiextensions/v1/composition_patches.go apiextensions/v1beta1
3232
//go:generate ../hack/duplicate_api_type.sh apiextensions/v1/composition_transforms.go apiextensions/v1beta1
3333

34-
//go:generate ../hack/duplicate_api_type.sh apiextensions/v1beta1/environment_config_types.go apiextensions/v1alpha1
34+
//go:generate ../hack/duplicate_api_type.sh apiextensions/v1beta1/environment_config_types.go apiextensions/v1alpha1 true
3535

3636
//go:generate ../hack/duplicate_api_type.sh pkg/v1/package_types.go pkg/v1beta1
3737
//go:generate ../hack/duplicate_api_type.sh pkg/v1/package_runtime_types.go pkg/v1beta1

cluster/crds/apiextensions.crossplane.io_environmentconfigs.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ spec:
5858
type: object
5959
type: object
6060
served: true
61-
storage: false
61+
storage: true
6262
subresources: {}
6363
- additionalPrinterColumns:
6464
- jsonPath: .metadata.creationTimestamp
@@ -100,5 +100,5 @@ spec:
100100
type: object
101101
type: object
102102
served: true
103-
storage: true
103+
storage: false
104104
subresources: {}

cmd/crossplane/core/init.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ func (c *initCommand) Run(s *runtime.Scheme, log logging.Logger) error {
7373
steps = append(steps,
7474
initializer.NewTLSCertificateGenerator(c.Namespace, c.TLSCASecretName, tlsGeneratorOpts...),
7575
initializer.NewCoreCRDsMigrator("compositionrevisions.apiextensions.crossplane.io", "v1alpha1"),
76-
initializer.NewCoreCRDsMigrator("environmentconfigs.apiextensions.crossplane.io", "v1alpha1"),
76+
initializer.NewCoreCRDsMigrator("environmentconfigs.apiextensions.crossplane.io", "v1beta1"),
7777
initializer.NewCoreCRDsMigrator("functions.pkg.crossplane.io", "v1beta1"),
7878
initializer.NewCoreCRDsMigrator("functionrevisions.pkg.crossplane.io", "v1beta1"),
7979
initializer.NewCoreCRDsMigrator("locks.pkg.crossplane.io", "v1alpha1"),

hack/duplicate_api_type.sh

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ set -e
1313

1414
FROM_PATH=${1}
1515
TO_DIR=${2}
16+
STORAGE_VERSION=${3:-false}
1617

1718
DO_NOT_EDIT="// Generated from ${FROM_PATH} by ${0}. DO NOT EDIT."
1819

@@ -23,6 +24,26 @@ FROM_PACKAGE=$(basename ${FROM_DIR})
2324
TO_PACKAGE=$(basename ${TO_DIR})
2425
TO_PATH="${TO_DIR}/zz_generated.${FROM_FILE}"
2526

26-
sed "s#^package ${FROM_PACKAGE}\$#${DO_NOT_EDIT}\n\npackage ${TO_PACKAGE}#" ${FROM_PATH} | grep -v '// +kubebuilder:storageversion' > ${TO_PATH}
27-
28-
echo "Duplicated ${FROM_PATH} (package ${FROM_PACKAGE}) to ${TO_PATH} (package ${TO_PACKAGE})."
27+
if [ "${STORAGE_VERSION}" = "true" ] && grep -q "+kubebuilder:storageversion" ${FROM_PATH}; then
28+
echo "Error: ${FROM_PATH} is a storage version and cannot be duplicated without dropping the storage version marker."
29+
exit 1
30+
fi
31+
32+
sed "s#^package ${FROM_PACKAGE}\$#${DO_NOT_EDIT}\n\npackage ${TO_PACKAGE}#" ${FROM_PATH} > ${TO_PATH}
33+
34+
case $STORAGE_VERSION in
35+
true)
36+
# Add the storageVersion marker before // +genclient
37+
sed -i '\/\/ +genclient/i\/\/ +kubebuilder:storageversion' ${TO_PATH}
38+
echo "Duplicated ${FROM_PATH} (package ${FROM_PACKAGE}) to ${TO_PATH} (package ${TO_PACKAGE})."
39+
;;
40+
false)
41+
# Remove the +kubebuilder:storageversion comment marker
42+
sed -i '/+kubebuilder:storageversion/d' ${TO_PATH}
43+
echo "Duplicated ${FROM_PATH} (package ${FROM_PACKAGE}) to ${TO_PATH} (package ${TO_PACKAGE}), removed storage version marker."
44+
;;
45+
*)
46+
echo "Error: Invalid STORAGE_VERSION value: ${STORAGE_VERSION}"
47+
exit 1
48+
;;
49+
esac

0 commit comments

Comments
 (0)