Implement app deployment improvements
This commit is contained in:
38
tools/k8s-server-dry-run.sh
Executable file
38
tools/k8s-server-dry-run.sh
Executable file
@@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
cd "$ROOT_DIR"
|
||||
|
||||
VERGABE_RELEASE="${VERGABE_RELEASE:-vergabe-teilnahme}"
|
||||
VERGABE_NAMESPACE="${VERGABE_NAMESPACE:-vergabe-teilnahme}"
|
||||
VERGABE_CHART="${VERGABE_CHART:-charts/vergabe-teilnahme}"
|
||||
VERGABE_VALUES="${VERGABE_VALUES:-helm/vergabe-teilnahme-values.yaml}"
|
||||
DRY_RUN_CREATE_NAMESPACES="${DRY_RUN_CREATE_NAMESPACES:-false}"
|
||||
|
||||
for cmd in kubectl helm; do
|
||||
if ! command -v "$cmd" >/dev/null 2>&1; then
|
||||
echo "ERROR: missing required command: $cmd" >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
kubectl api-resources >/dev/null
|
||||
|
||||
if [[ "$DRY_RUN_CREATE_NAMESPACES" == "true" ]]; then
|
||||
kubectl create namespace "$VERGABE_NAMESPACE" --dry-run=client -o yaml | kubectl apply -f -
|
||||
fi
|
||||
|
||||
tmpdir="$(mktemp -d)"
|
||||
trap 'rm -rf "$tmpdir"' EXIT
|
||||
|
||||
helm template "$VERGABE_RELEASE" "$VERGABE_CHART" \
|
||||
--namespace "$VERGABE_NAMESPACE" \
|
||||
-f "$VERGABE_VALUES" \
|
||||
> "$tmpdir/vergabe-teilnahme.yaml"
|
||||
|
||||
echo "server dry-run: committed manifests"
|
||||
kubectl apply --dry-run=server -f manifests
|
||||
|
||||
echo "server dry-run: rendered $VERGABE_RELEASE chart"
|
||||
kubectl apply --dry-run=server -n "$VERGABE_NAMESPACE" -f "$tmpdir/vergabe-teilnahme.yaml"
|
||||
Reference in New Issue
Block a user