From 47ca323b3c7b30ec5ea20fac82340e44452d410c Mon Sep 17 00:00:00 2001 From: aggarwalakshun Date: Fri, 12 Dec 2025 22:47:40 +0530 Subject: [PATCH 1/5] kubeconform workflow will handle multiple manifests in a single file --- .gitea/workflows/kubeconform.yml | 44 +++++++++++++++++--------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/.gitea/workflows/kubeconform.yml b/.gitea/workflows/kubeconform.yml index 7a421db..379512a 100644 --- a/.gitea/workflows/kubeconform.yml +++ b/.gitea/workflows/kubeconform.yml @@ -62,29 +62,33 @@ jobs: while IFS= read -r file; do [ -z "$file" ] && continue echo "=== Validating: $file ===" - KIND=$(yq -r '.kind // ""' "$file" 2>/dev/null || echo "") + MANIFESTS=$(yq r $file --tojson | jq '.[]' | jq -c 'select(.kind != null)') - if [[ -n "$KIND" && -n "${SCHEMA_MAP[$KIND]}" ]]; then - echo "Found $KIND - using custom schema" - SCHEMA_URL="https://raw.githubusercontent.com/datreeio/CRDs-catalog/refs/heads/main/${SCHEMA_MAP[$KIND]}" + for manifest in ${MANIFESTS}; do + KIND=$(echo $manifest | yq -r '.kind // ""') - if ! /kubeconform \ - -schema-location "$SCHEMA_URL" \ - -cache "$KUBECONFORM_CACHE_DIR" \ - -output json \ - "$file"; then - EXIT_CODE=1 + if [[ -n "$KIND" && -n "${SCHEMA_MAP[$KIND]}" ]]; then + echo "Found $KIND - using custom schema" + SCHEMA_URL="https://raw.githubusercontent.com/datreeio/CRDs-catalog/refs/heads/main/${SCHEMA_MAP[$KIND]}" + + if ! /kubeconform \ + -schema-location "$SCHEMA_URL" \ + -cache "$KUBECONFORM_CACHE_DIR" \ + -output json \ + "<(echo '$manifest')"; then + EXIT_CODE=1 + fi + else + echo "Validating with default schemas" + if ! /kubeconform \ + -schema-location default \ + -cache "$KUBECONFORM_CACHE_DIR" \ + -output json \ + "<(echo '$manifest')"; then + EXIT_CODE=1 + fi fi - else - echo "Validating with default schemas" - if ! /kubeconform \ - -schema-location default \ - -cache "$KUBECONFORM_CACHE_DIR" \ - -output json \ - "$file"; then - EXIT_CODE=1 - fi - fi + done echo "" done <<< "${ALL_CHANGED_FILES}" -- 2.49.1 From 91d8d20306305518a053a49aecac823ed445633f Mon Sep 17 00:00:00 2001 From: aggarwalakshun Date: Fri, 12 Dec 2025 22:50:10 +0530 Subject: [PATCH 2/5] use yml instead of yaml --- ...stem-upgrade-controller.yaml => system-upgrade-controller.yml} | 0 .../{system-upgrade-plan.yaml => system-upgrade-plan.yml} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename clusters/default/system-upgrade/{system-upgrade-controller.yaml => system-upgrade-controller.yml} (100%) rename clusters/default/system-upgrade/{system-upgrade-plan.yaml => system-upgrade-plan.yml} (100%) diff --git a/clusters/default/system-upgrade/system-upgrade-controller.yaml b/clusters/default/system-upgrade/system-upgrade-controller.yml similarity index 100% rename from clusters/default/system-upgrade/system-upgrade-controller.yaml rename to clusters/default/system-upgrade/system-upgrade-controller.yml diff --git a/clusters/default/system-upgrade/system-upgrade-plan.yaml b/clusters/default/system-upgrade/system-upgrade-plan.yml similarity index 100% rename from clusters/default/system-upgrade/system-upgrade-plan.yaml rename to clusters/default/system-upgrade/system-upgrade-plan.yml -- 2.49.1 From 1160d3069af75904e37ddf2929292e82d53b60a3 Mon Sep 17 00:00:00 2001 From: aggarwalakshun Date: Fri, 12 Dec 2025 22:51:53 +0530 Subject: [PATCH 3/5] add plan schema to kubeconform workflow --- .gitea/workflows/kubeconform.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/kubeconform.yml b/.gitea/workflows/kubeconform.yml index 379512a..6b5db00 100644 --- a/.gitea/workflows/kubeconform.yml +++ b/.gitea/workflows/kubeconform.yml @@ -53,6 +53,7 @@ jobs: ["IPAddressPool"]="metallb.io/ipaddresspool_v1beta1.json" ["SealedSecret"]="bitnami.com/sealedsecret_v1alpha1.json" ["ClusterPolicy"]="nvidia.com/clusterpolicy_v1.json" + ["Plan"]="upgrade.cattle.io/plan_v1.json" ) EXIT_CODE=0 -- 2.49.1 From d0966b8d97c2cb0d396e845356f35e2e3e9c3503 Mon Sep 17 00:00:00 2001 From: aggarwalakshun Date: Fri, 12 Dec 2025 22:55:56 +0530 Subject: [PATCH 4/5] fix multiple errors --- .gitea/workflows/kubeconform.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/kubeconform.yml b/.gitea/workflows/kubeconform.yml index 6b5db00..5fb1334 100644 --- a/.gitea/workflows/kubeconform.yml +++ b/.gitea/workflows/kubeconform.yml @@ -63,7 +63,7 @@ jobs: while IFS= read -r file; do [ -z "$file" ] && continue echo "=== Validating: $file ===" - MANIFESTS=$(yq r $file --tojson | jq '.[]' | jq -c 'select(.kind != null)') + MANIFESTS=$(yq e '.[]' "$file" | jq -c 'select(.kind != null)') for manifest in ${MANIFESTS}; do KIND=$(echo $manifest | yq -r '.kind // ""') @@ -76,7 +76,7 @@ jobs: -schema-location "$SCHEMA_URL" \ -cache "$KUBECONFORM_CACHE_DIR" \ -output json \ - "<(echo '$manifest')"; then + "$manifest"; then EXIT_CODE=1 fi else @@ -85,7 +85,7 @@ jobs: -schema-location default \ -cache "$KUBECONFORM_CACHE_DIR" \ -output json \ - "<(echo '$manifest')"; then + "$manifest"; then EXIT_CODE=1 fi fi -- 2.49.1 From eee698532e05c7ce58a3f1899c96282e5884ec4c Mon Sep 17 00:00:00 2001 From: aggarwalakshun Date: Fri, 12 Dec 2025 22:56:53 +0530 Subject: [PATCH 5/5] fix: correctly iterate over manifests in kubeconform workflow --- .gitea/workflows/kubeconform.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/kubeconform.yml b/.gitea/workflows/kubeconform.yml index 5fb1334..1382ca7 100644 --- a/.gitea/workflows/kubeconform.yml +++ b/.gitea/workflows/kubeconform.yml @@ -65,7 +65,7 @@ jobs: echo "=== Validating: $file ===" MANIFESTS=$(yq e '.[]' "$file" | jq -c 'select(.kind != null)') - for manifest in ${MANIFESTS}; do + for manifest in "${MANIFESTS[@]}"; do KIND=$(echo $manifest | yq -r '.kind // ""') if [[ -n "$KIND" && -n "${SCHEMA_MAP[$KIND]}" ]]; then -- 2.49.1