From 83f31f2d13e6ed3d3bacbb9f759c9fb37ab3d958 Mon Sep 17 00:00:00 2001 From: paoloredis Date: Tue, 5 Aug 2025 11:07:02 +0200 Subject: [PATCH] Remove empty fields from k8s api spec --- .github/workflows/k8s_apis_sync.yaml | 77 +++++++++++++++++-- .../api/redis_enterprise_cluster_empty_fields | 8 ++ 2 files changed, 78 insertions(+), 7 deletions(-) create mode 100644 content/operate/kubernetes/reference/api/redis_enterprise_cluster_empty_fields diff --git a/.github/workflows/k8s_apis_sync.yaml b/.github/workflows/k8s_apis_sync.yaml index a4bb561fa5..2a9a963571 100644 --- a/.github/workflows/k8s_apis_sync.yaml +++ b/.github/workflows/k8s_apis_sync.yaml @@ -50,7 +50,7 @@ jobs: run: |- mkdir artifacts mkdir templates - cp content/operate/kubernetes/reference/kubernetes-api-reference-template.tmpl templates/template.tmpl + cp content/operate/kubernetes/reference/api/kubernetes-api-reference-template.tmpl templates/template.tmpl crdoc --resources crds/reaadb_crd.yaml --output artifacts/redis_enterprise_active_active_database_api.md --template templates/template.tmpl sed -E -i 's/^### RedisEnterpriseActiveActiveDatabase\./### /g' artifacts/redis_enterprise_active_active_database_api.md @@ -80,6 +80,69 @@ jobs: sed -E -i 's/\[index\]/\[\]/g' artifacts/redis_enterprise_remote_cluster_api.md awk '/(#[^")]+)index/ {gsub(/index/,"")}; {print}' artifacts/redis_enterprise_remote_cluster_api.md > _tmp.md && mv _tmp.md artifacts/redis_enterprise_remote_cluster_api.md + - name: 'Remove fields without description' + run: |- + file="artifacts/redis_enterprise_cluster_api.md" + empty_fields_file="content/operate/kubernetes/reference/api/redis_enterprise_cluster_empty_fields" + + # Read empty fields and process them + while IFS= read -r field; do + # Skip empty lines and comments + [[ -z "$field" || "$field" =~ ^# ]] && continue + + # Convert field path to section header pattern + section_pattern="RedisEnterpriseCluster.${field}" + + # Remove subsections that go deeper than [index] level + # Keep: RedisEnterpriseCluster.spec.extraEnvVars + # Keep: RedisEnterpriseCluster.spec.extraEnvVars[index] + # Remove: RedisEnterpriseCluster.spec.extraEnvVars[index].valueFrom + # Remove: RedisEnterpriseCluster.spec.extraEnvVars[index].valueFrom.fieldRef + awk -v base_pattern="${section_pattern}" ' + BEGIN { skip = 0 } + /^### / { + # Check if this line matches a pattern we want to remove + section = $0 + gsub(/^### /, "", section) + + # If it starts with our base pattern + if (index(section, base_pattern) == 1) { + remainder = substr(section, length(base_pattern) + 1) + + # If remainder is empty, keep it (main section) + if (remainder == "") { + skip = 0 + } + # If remainder is just [index], keep it + else if (remainder == "[index]") { + skip = 0 + } + # If remainder starts with [index]. (has more after [index]), remove it + else if (index(remainder, "[index].") == 1) { + skip = 1 + next + } + # If remainder starts with . (direct subsection), remove it + else if (index(remainder, ".") == 1) { + skip = 1 + next + } + # Otherwise keep it + else { + skip = 0 + } + } else { + # Different section, stop skipping + skip = 0 + } + } + + skip == 0 { print } + ' "$file" > "${file}.tmp" && mv "${file}.tmp" "$file" + + done < "$empty_fields_file" + + - name: 'Generate YAML snippets' run: |- function formatYamlSnippet() { @@ -128,14 +191,14 @@ jobs: git checkout -b "${BRANCH}" - cp artifacts/redis_enterprise_active_active_database_api.md content/operate/kubernetes/reference/ - cp artifacts/redis_enterprise_cluster_api.md content/operate/kubernetes/reference/ - cp artifacts/redis_enterprise_database_api.md content/operate/kubernetes/reference/ - cp artifacts/redis_enterprise_remote_cluster_api.md content/operate/kubernetes/reference/ + cp artifacts/redis_enterprise_active_active_database_api.md content/operate/kubernetes/reference/api/ + cp artifacts/redis_enterprise_cluster_api.md content/operate/kubernetes/reference/api/ + cp artifacts/redis_enterprise_database_api.md content/operate/kubernetes/reference/api/ + cp artifacts/redis_enterprise_remote_cluster_api.md content/operate/kubernetes/reference/api/ - git apply content/operate/kubernetes/reference/kubernetes-api-reference-frontmatter.patch + git apply content/operate/kubernetes/reference/api/kubernetes-api-reference-frontmatter.patch - git add content/operate/kubernetes/reference/ + git add content/operate/kubernetes/reference/api/ git add content/embeds/k8s/ git commit -m "k8s api docs ${RELEASE}" diff --git a/content/operate/kubernetes/reference/api/redis_enterprise_cluster_empty_fields b/content/operate/kubernetes/reference/api/redis_enterprise_cluster_empty_fields new file mode 100644 index 0000000000..bb7f604a61 --- /dev/null +++ b/content/operate/kubernetes/reference/api/redis_enterprise_cluster_empty_fields @@ -0,0 +1,8 @@ +spec.extraEnvVars +spec.podAntiAffinity +spec.redisEnterpriseAdditionalPodSpecAttributes +spec.redisEnterpriseServicesRiggerResources +spec.redisEnterpriseVolumeMounts +spec.servicesRiggerSpec.servicesRiggerAdditionalPodSpecAttributes +spec.sideContainersSpec +spec.volumes