From c97c3bd2ca0b7e4eccc947d53c2f7ff3eeb03f74 Mon Sep 17 00:00:00 2001 From: Staffan Olsson Date: Tue, 11 May 2021 12:45:06 +0200 Subject: [PATCH 1/5] We currently have no use for specs images outside skaffold runs --- hooks/build | 1 - 1 file changed, 1 deletion(-) diff --git a/hooks/build b/hooks/build index 0a7d85b..7d8025c 100755 --- a/hooks/build +++ b/hooks/build @@ -26,7 +26,6 @@ docker build -t $IMAGE_NAME . CONTEXTS=" runtime-nodejs runtime-typescript -specs " PUSH="" From 136c2bf65c6ddfba00361794a78031c58c0ea214 Mon Sep 17 00:00:00 2001 From: Staffan Olsson Date: Tue, 11 May 2021 12:52:42 +0200 Subject: [PATCH 2/5] For dev loops involving a runtime we need [git rev][-dirty?] tags with builds-registry URLs --- README.md | 3 ++- hooks/build | 15 +++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d02e59a..44f2358 100644 --- a/README.md +++ b/README.md @@ -106,12 +106,13 @@ docker-compose -f docker-compose.test.yml up --no-build kubernetes-mixin Build only: ``` -NOPUSH=true IMAGE_NAME=solsson/kubernetes-assert:latest ./hooks/build +NOPUSH=true IMAGE_NAME=builds-registry.ystack.svc.cluster.local/yolean/assert ./hooks/build ``` Integration test: ``` +NOPUSH=true IMAGE_NAME=solsson/kubernetes-assert:latest ./hooks/build docker volume rm kubernetes-monitoring_admin 2> /dev/null || true ./test.sh ``` diff --git a/hooks/build b/hooks/build index 7d8025c..980ada2 100755 --- a/hooks/build +++ b/hooks/build @@ -2,6 +2,10 @@ [ -z "$DEBUG" ] || set -x set -eo pipefail +# Settings +DEFAULT_REGISTRY=builds-registry.ystack.svc.cluster.local +[ -z "$BUILDS_REGISTRY" ] && BUILDS_REGISTRY=$DEFAULT_REGISTRY + [ -z "$IMAGE_NAME" ] && echo "IMAGE_NAME is required" && exit 1; GIT_STATUS=$(git status --untracked-files=no --porcelain=v2) @@ -12,6 +16,13 @@ GIT_STATUS=$(git status --untracked-files=no --porcelain=v2) echo "------ HOOK START - BUILD -------" printenv +PREPEND_REGISTRY="" +case $IMAGE_NAME in + solsson/* ) ;; + $BUILDS_REGISTRY* ) PREPEND_REGISTRY="${BUILDS_REGISTRY}/" ;; + *) ;; +esac + function imagename { buildname=$1 case $IMAGE_NAME in @@ -34,8 +45,8 @@ for CONTEXT in $CONTEXTS; do CONTEXT_IMAGE_NAME=$(imagename $CONTEXT) - docker build -t $CONTEXT_IMAGE_NAME -t yolean/assert-$CONTEXT -t yolean/assert-$CONTEXT:$SOURCE_COMMIT ./$CONTEXT - PUSH="$PUSH $CONTEXT_IMAGE_NAME yolean/assert-$CONTEXT:$SOURCE_COMMIT" + docker build -t $CONTEXT_IMAGE_NAME -t yolean/assert-$CONTEXT -t ${PREPEND_REGISTRY}yolean/assert-$CONTEXT:$SOURCE_COMMIT ./$CONTEXT + PUSH="$PUSH $CONTEXT_IMAGE_NAME ${PREPEND_REGISTRY}yolean/assert-$CONTEXT:$SOURCE_COMMIT" done From 6586929ced36504648b88244b7f085f238ff23e2 Mon Sep 17 00:00:00 2001 From: Staffan Olsson Date: Tue, 11 May 2021 13:11:49 +0200 Subject: [PATCH 3/5] Was misleading to have a dockerfile while relying on y-build-like-sync --- specs/Dockerfile | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 specs/Dockerfile diff --git a/specs/Dockerfile b/specs/Dockerfile deleted file mode 100644 index c9140c3..0000000 --- a/specs/Dockerfile +++ /dev/null @@ -1,9 +0,0 @@ -FROM yolean/assert-runtime-nodejs - -WORKDIR /usr/src/specs - -# When we add dependencies -#COPY --chown=nonroot:nogroup package*.json ./ -#RUN npm ci --ignore-scripts - -COPY --chown=nonroot:nogroup . . From b50c145814485c31d7639851a2a3734f7f25cc7b Mon Sep 17 00:00:00 2001 From: Staffan Olsson Date: Tue, 11 May 2021 14:17:45 +0200 Subject: [PATCH 4/5] As #19 documents this env no longer works so let's look for alternative appoaches, starting with #26 --- runtime-nodejs/kustomize/scrapeable-deployment.yaml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/runtime-nodejs/kustomize/scrapeable-deployment.yaml b/runtime-nodejs/kustomize/scrapeable-deployment.yaml index 496a334..f01139e 100644 --- a/runtime-nodejs/kustomize/scrapeable-deployment.yaml +++ b/runtime-nodejs/kustomize/scrapeable-deployment.yaml @@ -38,11 +38,6 @@ spec: valueFrom: fieldRef: fieldPath: spec.serviceAccountName - - name: ASSERT_IS_DEV - valueFrom: - fieldRef: - # This will be true for run --tail as well but that's also a dev-loop use case - fieldPath: metadata.labels['skaffold.dev/tail'] ports: - containerPort: 9091 name: assert From abc1f6390b96a5eda53bbcbee6037f5a98ecc25a Mon Sep 17 00:00:00 2001 From: Staffan Olsson Date: Tue, 11 May 2021 14:20:33 +0200 Subject: [PATCH 5/5] Makes use of Yolean/ystack#39 so we can iterate on runtime+specs --- specs/skaffold.yaml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/specs/skaffold.yaml b/specs/skaffold.yaml index 8372f5c..2681b25 100644 --- a/specs/skaffold.yaml +++ b/specs/skaffold.yaml @@ -1,4 +1,4 @@ -apiVersion: skaffold/v2beta4 +apiVersion: skaffold/v2beta15 kind: Config metadata: name: assert-specs @@ -7,13 +7,16 @@ build: gitCommit: variant: CommitSha artifacts: - - image: builds-registry.ystack.svc.cluster.local:80/yolean/assert-specs + - image: builds-registry.ystack.svc.cluster.local/yolean/assert-specs + context: ./ + custom: + buildCommand: >- + y-build-like-sync + builds-registry.ystack.svc.cluster.local/yolean/assert-runtime-nodejs:../../kubernetes-assert/runtime-nodejs sync: manual: - src: '**' dest: /usr/src/specs - kaniko: - reproducible: true cluster: {} deploy: kustomize: {}