@@ -2,9 +2,8 @@ name: Deploy template-operator With ModuleReleaseMeta
22description : Deploys a test-specific template-operator and corresponding ModuleReleaseMeta.
33inputs :
44 module_version :
5- description : " Version of the template operator to be deployed, should be aligned with the latest version released in github. "
5+ description : " Version of the template operator to be deployed, should be aligned with the version in versions.yaml "
66 required : true
7- default : " 1.0.4"
87runs :
98 using : composite
109 steps :
2221 cp ../lifecycle-manager/scripts/tests/deploy_moduletemplate.sh .
2322 cp ../lifecycle-manager/scripts/tests/deploy_modulereleasemeta.sh .
2423 cp ../lifecycle-manager/scripts/tests/deploy_mandatory_modulereleasemeta.sh .
24+ cp ../lifecycle-manager/scripts/tests/ocm-config-local-registry.yaml .
25+ cp ../lifecycle-manager/scripts/tests/ocm-config-private-registry.yaml .
2526 - name : Create and apply Template Operator ModuleTemplate from the latest release
2627 working-directory : template-operator
2728 if : ${{ matrix.e2e-test != 'mandatory-module' &&
3132 }}
3233 shell : bash
3334 run : |
34- modulectl create --config-file ./module-config.yaml --registry http://localhost:5111 --insecure
35- sed -i 's/localhost:5111/k3d-kcp-registry.localhost:5000/g' ./template.yaml
36- kubectl get crds
37- kubectl apply -f template.yaml
35+ yq eval '.images[0].newTag = "${{ inputs.module_version }}"' -i config/manager/deployment/kustomization.yaml
36+ make build-manifests
37+ ./deploy_moduletemplate.sh ${{ env.ModuleName }} ${{ inputs.module_version }} ${{ inputs.module_version }} true false true false
3838 - name : Create and apply Template Operator ModuleTemplate with ModuleDeploymentNameInOlderVersion
3939 working-directory : template-operator
4040 if : ${{ matrix.e2e-test != 'mandatory-module' &&
4444 }}
4545 shell : bash
4646 run : |
47+ yq eval '.images[0].newTag = "${{ env.OlderVersion }}"' -i config/manager/deployment/kustomization.yaml
4748 make build-manifests
4849 yq eval '(. | select(.kind == "Deployment") | .metadata.name) = "${{ env.ModuleDeploymentNameInOlderVersion }}"' -i template-operator.yaml
49- ./deploy_moduletemplate.sh ${{ env.ModuleName }} ${{ env.OlderVersion }}
50+ ./deploy_moduletemplate.sh ${{ env.ModuleName }} ${{ env.OlderVersion }} ${{ inputs.module_version }} true false true false
5051 - name : Create and apply Template Operator ModuleTemplate with ModuleDeploymentNameInNewerVersion
5152 working-directory : template-operator
5253 if : ${{ matrix.e2e-test != 'mandatory-module' &&
@@ -67,18 +68,44 @@ runs:
6768 REQUIRE_DOWNTIME=false
6869 fi
6970
71+ yq eval '.images[0].newTag = "${{ env.NewerVersion }}"' -i config/manager/deployment/kustomization.yaml
7072 make build-manifests
7173 yq eval '(. | select(.kind == "Deployment") | .metadata.name) = "${{ env.ModuleDeploymentNameInNewerVersion }}"' -i template-operator.yaml
72- ./deploy_moduletemplate.sh ${{ env.ModuleName }} ${{ env.NewerVersion }} $INCLUDE_DEFAULT_CR $MANDATORY $DEPLOY_MODULETEMPLATE $REQUIRE_DOWNTIME
74+ ./deploy_moduletemplate.sh ${{ env.ModuleName }} ${{ env.NewerVersion }} ${{ inputs.module_version }} $ INCLUDE_DEFAULT_CR $MANDATORY $DEPLOY_MODULETEMPLATE $REQUIRE_DOWNTIME
7375 - name : Create and apply Template Operator ModuleTemplate in private registry
7476 working-directory : template-operator
7577 if : ${{ matrix.e2e-test == 'oci-reg-cred-secret' }}
7678 shell : bash
7779 run : |
78- modulectl create --config-file ./module-config.yaml --registry http://k3d-private-oci-reg.localhost:5001 --registry-credentials myuser:mypass --insecure
79- sed -i 's/k3d-private-oci-reg.localhost:5001/private-oci-reg.localhost:5000/g' ./template.yaml
80+ MODULE_CONFIG="./module-config.yaml"
81+ REGISTRY_URL="k3d-private-oci-reg.localhost:5001"
82+ REGISTRY_CREDS="myuser:mypass"
83+ COMPONENT_CONSTRUCTOR_FILE="./component-constructor.yaml"
84+ CTF_DIR="./component-ctf"
85+ TEMPLATE_FILE="./template.yaml"
86+ TARGET_REGISTRY="private-oci-reg.localhost:5000"
87+ OCM_CONFIG="./ocm-config-private-registry.yaml"
88+
89+ echo "creating ModuleTemplate"
90+ modulectl create \
91+ --config-file "${MODULE_CONFIG}" \
92+ --disable-ocm-registry-push \
93+ --output-constructor-file "${COMPONENT_CONSTRUCTOR_FILE}"
94+
95+ echo "pushing OCM components..."
96+ ocm --config "${OCM_CONFIG}" add componentversions --create --file "${CTF_DIR}" --skip-digest-generation "${COMPONENT_CONSTRUCTOR_FILE}"
97+ ocm --config "${OCM_CONFIG}" transfer ctf \
98+ --overwrite \
99+ --no-update \
100+ "${CTF_DIR}" \
101+ "http://${REGISTRY_URL}"
102+
103+ echo "Verifying component in private registry..."
104+ curl -s -u myuser:mypass "http://${REGISTRY_URL}/v2/_catalog" || echo "Warning: Could not verify registry catalog"
105+
106+ echo "No baseUrl patching needed for private registry..."
80107 kubectl get crds
81- kubectl apply -f template.yaml
108+ kubectl apply -f <(yq eval '.metadata.namespace = "kcp-system"' "${TEMPLATE_FILE}")
82109 - name : Create and apply ModuleReleaseMeta from the template-operator repo
83110 working-directory : template-operator
84111 if : ${{ matrix.e2e-test == 'kyma-metrics' ||
@@ -126,9 +153,10 @@ runs:
126153 }}
127154 shell : bash
128155 run : |
156+ yq eval '.images[0].newTag = "${{ env.OlderVersionForMandatoryModule }}"' -i config/manager/deployment/kustomization.yaml
129157 make build-manifests
130158 yq eval '(. | select(.kind == "Deployment") | .metadata.name) = "${{ env.ModuleDeploymentNameInOlderVersion }}"' -i template-operator.yaml
131- ./deploy_moduletemplate.sh ${{ env.ModuleName }} ${{ env.OlderVersionForMandatoryModule }} true true false
159+ ./deploy_moduletemplate.sh ${{ env.ModuleName }} ${{ env.OlderVersionForMandatoryModule }} ${{ inputs.module_version }} true true false false
132160 yq eval 'del(.spec.mandatory)' -i template.yaml
133161 kubectl apply -f template.yaml
134162 rm -f template.yaml
@@ -140,9 +168,10 @@ runs:
140168 working-directory : template-operator
141169 shell : bash
142170 run : |
171+ yq eval '.images[0].newTag = "${{ env.NewerVersionForMandatoryModule }}"' -i config/manager/deployment/kustomization.yaml
143172 make build-manifests
144173 yq eval '(. | select(.kind == "Deployment") | .metadata.name) = "${{ env.ModuleDeploymentNameInNewerVersion }}"' -i template-operator.yaml
145- ./deploy_moduletemplate.sh ${{ env.ModuleName }} ${{ env.NewerVersionForMandatoryModule }} true true false
174+ ./deploy_moduletemplate.sh ${{ env.ModuleName }} ${{ env.NewerVersionForMandatoryModule }} ${{ inputs.module_version }} true true false false
146175 yq eval 'del(.spec.mandatory)' -i template.yaml
147176 cp template.yaml ../lifecycle-manager/tests/e2e/mandatory_template_v2.yaml
148177 - name : Create and apply ModuleReleaseMeta Template Operator with newer version in fast channel and older version in regular channel
@@ -157,14 +186,16 @@ runs:
157186 shell : bash
158187 run : |
159188 # Create and apply ModuleReleaseMeta with version when deployment is in warning state
189+ yq eval '.images[0].newTag = "${{ env.VersionForDeploymentInWarning }}"' -i config/manager/deployment/kustomization.yaml
160190 make build-manifests
161191 yq eval '(. | select(.kind == "Deployment") | .spec.template.spec.containers[0].args) = ["--leader-elect", "--final-state=Warning", "--final-deletion-state=Warning"]' -i template-operator.yaml
162- ./deploy_moduletemplate.sh ${{ env.ModuleName }} ${{ env.VersionForDeploymentInWarning }}
192+ ./deploy_moduletemplate.sh ${{ env.ModuleName }} ${{ env.VersionForDeploymentInWarning }} ${{ inputs.module_version }} true false true false
163193 ./deploy_modulereleasemeta.sh ${{ env.ModuleName }} regular:${{ env.VersionForDeploymentInWarning }}
164194
165195 # Create and apply ModuleReleaseMeta with version when deployment is misconfigured
196+ yq eval '.images[0].newTag = "${{ env.VersionForMisconfiguredDeploymentImage }}"' -i config/manager/deployment/kustomization.yaml
166197 make build-manifests
167- yq eval '(. | select(.kind == "Deployment") | .spec.template.spec.containers[0].image) = "non-working/path:001 "' -i template-operator.yaml
198+ yq eval '(. | select(.kind == "Deployment") | .spec.template.spec.containers[0].image) = "non-working/path:0.0.1 "' -i template-operator.yaml
168199 yq eval '(. | select(.kind == "Deployment") | .spec.progressDeadlineSeconds) = 60' -i template-operator.yaml
169200 yq eval '(. | select(.kind == "Deployment") | .spec.template.spec.containers[0].livenessProbe) = {
170201 "httpGet": {"path": "/healthz", "port": 8081},
@@ -174,31 +205,34 @@ runs:
174205 "httpGet": {"path": "/readyz", "port": 8081},
175206 "initialDelaySeconds": 5, "periodSeconds": 5, "failureThreshold": 1
176207 }' -i template-operator.yaml
177- ./deploy_moduletemplate.sh ${{ env.MisconfiguredModuleName }} ${{ env.VersionForMisconfiguredDeploymentImage }}
208+ ./deploy_moduletemplate.sh ${{ env.MisconfiguredModuleName }} ${{ env.VersionForMisconfiguredDeploymentImage }} ${{ inputs.module_version }} true false true false
178209 ./deploy_modulereleasemeta.sh ${{ env.MisconfiguredModuleName }} regular:${{ env.VersionForMisconfiguredDeploymentImage }}
179210 - name : Create ModuleTemplate and ModuleReleaseMeta for Module Status test with StatefulSet
180211 working-directory : template-operator
181212 if : ${{ matrix.e2e-test == 'module-status-decoupling-with-statefulset'}}
182213 shell : bash
183214 run : |
184215 # Create and apply ModuleReleaseMeta with version when statefulset is in warning state
216+ yq eval '.images[0].newTag = "${{ env.VersionForStatefulSetInWarning }}"' -i config/manager/statefulset/kustomization.yaml
185217 make build-statefulset-manifests
186218 yq eval '(. | select(.kind == "StatefulSet") | .spec.template.spec.containers[0].args) = ["--leader-elect", "--final-state=Warning", "--final-deletion-state=Warning"]' -i template-operator.yaml
187- ./deploy_moduletemplate.sh ${{ env.ModuleName }} ${{ env.VersionForStatefulSetInWarning }}
219+ ./deploy_moduletemplate.sh ${{ env.ModuleName }} ${{ env.VersionForStatefulSetInWarning }} ${{ inputs.module_version }} true false true false
188220 ./deploy_modulereleasemeta.sh ${{ env.ModuleName }} regular:${{ env.VersionForStatefulSetInWarning }}
189221
190222 # Create and apply ModuleReleaseMeta with version when statefulset is misconfigured
223+ yq eval '.images[0].newTag = "${{ env.VersionForMisconfiguredStatefulSetImage }}"' -i config/manager/statefulset/kustomization.yaml
191224 make build-statefulset-manifests
192- yq eval '(. | select(.kind == "StatefulSet") | .spec.template.spec.containers[0].image) = "non-working/path:002 "' -i template-operator.yaml
193- ./deploy_moduletemplate.sh ${{ env.MisconfiguredModuleName }} ${{ env.VersionForMisconfiguredStatefulSetImage }}
225+ yq eval '(. | select(.kind == "StatefulSet") | .spec.template.spec.containers[0].image) = "non-working/path:0.0.2 "' -i template-operator.yaml
226+ ./deploy_moduletemplate.sh ${{ env.MisconfiguredModuleName }} ${{ env.VersionForMisconfiguredStatefulSetImage }} ${{ inputs.module_version }} true false true false
194227 ./deploy_modulereleasemeta.sh ${{ env.MisconfiguredModuleName }} regular:${{ env.VersionForMisconfiguredStatefulSetImage }}
195228 - name : Create Template Operator Module without default CR and apply ModuleReleaseMeta
196229 working-directory : template-operator
197230 if : ${{ matrix.e2e-test == 'module-without-default-cr' }}
198231 shell : bash
199232 run : |
233+ yq eval '.images[0].newTag = "${{ env.VersionForNoDefaultCR }}"' -i config/manager/deployment/kustomization.yaml
200234 make build-manifests
201- ./deploy_moduletemplate.sh ${{ env.ModuleName }} ${{ env.VersionForNoDefaultCR }} false
235+ ./deploy_moduletemplate.sh ${{ env.ModuleName }} ${{ env.VersionForNoDefaultCR }} ${{ inputs.module_version }} false false true false
202236 ./deploy_modulereleasemeta.sh ${{ env.ModuleName }} regular:${{ env.VersionForNoDefaultCR }}
203237 - name : Apply ModuleReleaseMeta with ModuleTemplate with name <modulename>-<channel>
204238 working-directory : template-operator
@@ -220,3 +254,21 @@ runs:
220254 shell : bash
221255 run : |
222256 kubectl apply -f tests/e2e/moduletemplate/moduletemplate_template_operator_transferred.yaml
257+ - name : Debug - Check ModuleTemplate and Component Status
258+ working-directory : lifecycle-manager
259+ shell : bash
260+ run : |
261+ echo "=== Checking ModuleTemplates in kcp-system ==="
262+ kubectl get moduletemplates -n kcp-system -o wide || echo "Failed to get ModuleTemplates"
263+
264+ echo ""
265+ echo "=== Checking ModuleReleaseMeta ==="
266+ kubectl get modulereleasemeta -n kcp-system -o wide || echo "Failed to get ModuleReleaseMeta"
267+
268+ echo ""
269+ echo "=== Checking if components are in registry ==="
270+ curl -s "http://localhost:5111/v2/_catalog" || echo "Warning: Could not query registry catalog"
271+
272+ echo ""
273+ echo "=== Checking if component version exists ==="
274+ curl -s "http://localhost:5111/v2/component-descriptors/kyma-project.io/module/template-operator/tags/list" || echo "Warning: Could not list component tags"
0 commit comments