@@ -81,41 +81,24 @@ jobs:
8181 helm chart remove ghcr.io/${{ github.repository_owner }}/betterstack-operator/helm/betterstack-operator:latest
8282 rm -rf "$TMP_DIR"
8383
84- - name : Install publish dependencies
85- run : python3 -m pip install --user pyyaml
84+ - name : Set up kustomize
85+ uses : imranismail/setup-kustomize@v1
86+ with :
87+ kustomize-version : ' 5.1.0'
8688
8789 - name : Publish manifests
8890 env :
8991 VERSION : ${{ steps.meta.outputs.version }}
9092 IMAGE : ${{ steps.meta.outputs.image }}
9193 run : |
9294 set -euo pipefail
93- python3 - <<'PY'
94- import os
95- from pathlib import Path
96- import yaml
97-
98- image = f"{os.environ['IMAGE']}:{os.environ['VERSION']}"
99- src = Path("config/manager/manager.yaml")
100- docs = list(yaml.safe_load_all(src.read_text()))
101-
102- for doc in docs :
103- if not isinstance(doc, dict) :
104- continue
105- if doc.get("kind") != "Deployment" :
106- continue
107- spec = doc.get("spec", {})
108- template = spec.get("template", {})
109- pod_spec = template.get("spec", {})
110- for container in pod_spec.get("containers", []) :
111- if container.get("name") == "manager" :
112- container["image"] = image
113-
114- dist = Path("dist")
115- dist.mkdir(parents=True, exist_ok=True)
116- with (dist / "manager.yaml").open("w") as fh :
117- yaml.safe_dump_all(docs, fh, sort_keys=False)
118- PY
95+ TMP_DIR=$(mktemp -d)
96+ cp -r config/manager "$TMP_DIR/manager"
97+ pushd "$TMP_DIR/manager" >/dev/null
98+ kustomize edit set image ghcr.io/loks0n/betterstack-operator=$IMAGE:$VERSION
99+ kustomize build . > "$GITHUB_WORKSPACE/dist/manager.yaml"
100+ popd >/dev/null
101+ rm -rf "$TMP_DIR"
119102 cp config/crd/bases/monitoring.betterstack.io_betterstackmonitors.yaml dist/
120103 tar czf dist/betterstack-operator-${VERSION}.tar.gz -C dist manager.yaml monitoring.betterstack.io_betterstackmonitors.yaml
121104
0 commit comments