Skip to content

Commit 385098b

Browse files
fix
1 parent d500f48 commit 385098b

File tree

1 file changed

+40
-8
lines changed

1 file changed

+40
-8
lines changed

test/testdata/generate.sh

Lines changed: 40 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,17 @@ function scaffold_test_project {
3131
rm -rf $testdata_dir/$project/*
3232
pushd $testdata_dir/$project
3333

34+
# TODO: Remove it when we have the hub and spoke scaffolded by Kubebuilder
35+
# Define the sed command based on the OS
36+
if [[ "$OSTYPE" == "darwin"* ]]; then
37+
# macOS sed syntax
38+
sed_storage_version="sed -i '' '43i \
39+
// +kubebuilder:storageversion\'$'\n''// +kubebuilder:conversion:hub'"
40+
else
41+
# Linux sed syntax
42+
sed_storage_version="sed -i '43i // +kubebuilder:storageversion\n// +kubebuilder:conversion:hub'"
43+
fi
44+
3445
header_text "Generating project ${project} with flags: ${init_flags}"
3546
go mod init sigs.k8s.io/kubebuilder/testdata/$project # our repo autodetection will traverse up to the kb module if we don't do this
3647
header_text "Initializing project ..."
@@ -40,9 +51,16 @@ function scaffold_test_project {
4051
header_text 'Creating APIs ...'
4152
$kb create api --group crew --version v1 --kind Captain --controller=true --resource=true --make=false
4253
$kb create api --group crew --version v1 --kind Captain --controller=true --resource=true --make=false --force
43-
$kb create webhook --group crew --version v1 --kind Captain --defaulting --programmatic-validation
54+
$kb create webhook --group crew --version v1 --kind Captain --defaulting --programmatic-validation --make=false
55+
56+
# Create API to test conversion from v1 to v2
4457
$kb create api --group crew --version v1 --kind FirstMate --controller=true --resource=true --make=false
45-
$kb create webhook --group crew --version v1 --kind FirstMate --conversion
58+
$kb create api --group crew --version v2 --kind FirstMate --controller=false --resource=true --make=false
59+
$kb create webhook --group crew --version v1 --kind FirstMate --conversion --make=false
60+
# TODO: Remove it when we have the hub and spoke scaffolded by Kubebuilder
61+
# Apply the sed command based on project type
62+
eval "$sed_storage_version api/v1/firstMate_types.go"
63+
4664
$kb create api --group crew --version v1 --kind Admiral --plural=admirales --controller=true --resource=true --namespaced=false --make=false
4765
$kb create webhook --group crew --version v1 --kind Admiral --plural=admirales --defaulting
4866
# Controller for External types
@@ -59,14 +77,13 @@ function scaffold_test_project {
5977

6078
header_text 'Creating APIs ...'
6179
$kb create api --group crew --version v1 --kind Captain --controller=true --resource=true --make=false
62-
$kb create webhook --group crew --version v1 --kind Captain --defaulting --programmatic-validation
80+
$kb create webhook --group crew --version v1 --kind Captain --defaulting --programmatic-validation --make=false
6381

6482
$kb create api --group ship --version v1beta1 --kind Frigate --controller=true --resource=true --make=false
65-
$kb create webhook --group ship --version v1beta1 --kind Frigate --conversion
6683
$kb create api --group ship --version v1 --kind Destroyer --controller=true --resource=true --namespaced=false --make=false
67-
$kb create webhook --group ship --version v1 --kind Destroyer --defaulting
84+
$kb create webhook --group ship --version v1 --kind Destroyer --defaulting --make=false
6885
$kb create api --group ship --version v2alpha1 --kind Cruiser --controller=true --resource=true --namespaced=false --make=false
69-
$kb create webhook --group ship --version v2alpha1 --kind Cruiser --programmatic-validation
86+
$kb create webhook --group ship --version v2alpha1 --kind Cruiser --programmatic-validation --make=false
7087

7188
$kb create api --group sea-creatures --version v1beta1 --kind Kraken --controller=true --resource=true --make=false
7289
$kb create api --group sea-creatures --version v1beta2 --kind Leviathan --controller=true --resource=true --make=false
@@ -80,15 +97,30 @@ function scaffold_test_project {
8097
# Webhook for External types
8198
$kb create webhook --group "cert-manager" --version v1 --kind Issuer --defaulting --external-api-path=github.com/cert-manager/cert-manager/pkg/apis/certmanager/v1 --external-api-domain=io
8299
# Webhook for Core type
83-
$kb create webhook --group core --version v1 --kind Pod --programmatic-validation
100+
$kb create webhook --group core --version v1 --kind Pod --programmatic-validation --make=false
84101
fi
85102

86103
if [[ $project =~ multigroup ]] || [[ $project =~ with-plugins ]] ; then
87104
header_text 'With Optional Plugins ...'
88105
header_text 'Creating APIs with deploy-image plugin ...'
89106
$kb create api --group example.com --version v1alpha1 --kind Memcached --image=memcached:1.6.26-alpine3.19 --image-container-command="memcached,--memory-limit=64,-o,modern,-v" --image-container-port="11211" --run-as-user="1001" --plugins="deploy-image/v1-alpha" --make=false
90107
$kb create api --group example.com --version v1alpha1 --kind Busybox --image=busybox:1.36.1 --plugins="deploy-image/v1-alpha" --make=false
91-
$kb create webhook --group example.com --version v1alpha1 --kind Memcached --programmatic-validation
108+
# Create only validation webhook for Memcached
109+
$kb create webhook --group example.com --version v1alpha1 --kind Memcached --programmatic-validation --make=false
110+
# Create API to check webhook --conversion from v1 to v2
111+
$kb create api --group example.com --version v1 --kind Wordpress --controller=true --resource=true --make=false
112+
$kb create api --group example.com --version v2 --kind Wordpress --controller=false --resource=true --make=false
113+
$kb create webhook --group example.com --version v1 --kind Wordpress --conversion --make=false
114+
115+
# TODO: Remove it when we have the hub and spoke scaffolded by Kubebuilder
116+
# Apply the sed command based on project type
117+
if [[ $project =~ multigroup ]]; then
118+
eval "$sed_storage_version api/example.com/v1/wordpress_types.go"
119+
fi
120+
if [[ $project =~ with-plugins ]]; then
121+
eval "$sed_storage_version api/v1/wordpress_types.go"
122+
fi
123+
92124
header_text 'Editing project with Grafana plugin ...'
93125
$kb edit --plugins=grafana.kubebuilder.io/v1-alpha
94126
fi

0 commit comments

Comments
 (0)