From 1fa2fd3d955abca17bd5e0233d9bfbc4142213b0 Mon Sep 17 00:00:00 2001 From: garrettmills Date: Tue, 22 Apr 2025 09:21:17 -0400 Subject: [PATCH] Better support for overriding docker reg + tag (for local testing); init container for ensure-system-disk --- deploy/40-statefulset.yaml | 16 ++++++++++++++++ scripts/build.sh | 2 +- scripts/push.sh | 2 +- src/api/cluster/system.rs | 1 + 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/deploy/40-statefulset.yaml b/deploy/40-statefulset.yaml index 2ca9d05..b7512b1 100644 --- a/deploy/40-statefulset.yaml +++ b/deploy/40-statefulset.yaml @@ -23,6 +23,20 @@ spec: - name: p5x-system-data persistentVolumeClaim: claimName: system-data + initContainers: + - name: ensure-system-disk + image: docker.io/glmdev/p5x-api:latest + envFrom: + - secretRef: + name: api-env + env: + - name: P5X_NODE_HOSTNAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: RUST_LOG + value: 'p5x=debug,sqlx=warn,info' + command: ['/p5x/p5x', 'ensure-system-disk'] containers: - name: api-server image: docker.io/glmdev/p5x-api:latest @@ -43,6 +57,8 @@ spec: valueFrom: fieldRef: fieldPath: spec.nodeName + - name: RUST_LOG + value: 'p5x=debug,sqlx=warn,info' ports: - containerPort: 3450 name: p5x diff --git a/scripts/build.sh b/scripts/build.sh index ae6b63e..f858eaf 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -6,4 +6,4 @@ if ! [ -f Cargo.toml ]; then fi cargo build --release --target x86_64-unknown-linux-gnu -docker build -t "${DOCKER_REGISTRY:-docker.io}/glmdev/p5x-api:latest" . +docker build -t "${DOCKER_REGISTRY:-docker.io}/glmdev/p5x-api:${DOCKER_TAG:-latest}" . diff --git a/scripts/push.sh b/scripts/push.sh index 478b479..672d500 100755 --- a/scripts/push.sh +++ b/scripts/push.sh @@ -1,3 +1,3 @@ #!/bin/sh -e -docker push "${DOCKER_REGISTRY:-docker.io}/glmdev/p5x-api:latest" +docker push "${DOCKER_REGISTRY:-docker.io}/glmdev/p5x-api:${DOCKER_TAG:-latest}" diff --git a/src/api/cluster/system.rs b/src/api/cluster/system.rs index c84911b..97cfe2c 100644 --- a/src/api/cluster/system.rs +++ b/src/api/cluster/system.rs @@ -27,6 +27,7 @@ pub async fn ensure_system_disk(svc: &Services<'_>) -> Result<(), P5xError> { // Load the dynamic-kv let client = Client::try_default().await.map_err(P5xError::KubeError)?; let namespace = fs::read_to_string("/var/run/secrets/kubernetes.io/serviceaccount/namespace") + .or_else(|_| env::var("P5X_OVERRIDE_NS")) .unwrap_or_else(|_| "p5x-system".to_string()); let maps: Api = Api::namespaced(client.clone(), &namespace);