Make the registry hostname configurable and drop the CA mount

buildDocker.groovy hardcoded harbor.35.238.248.203.nip.io as the push
target, so the registry could not move without editing this shared library
and every consumer moving in the same commit. It now reads
config.harbor_registry, whose default lives in homelabPipeline.groovy
beside harbor_project and every other key.

The stage errors rather than defaulting when the value is missing. Carrying
a second copy of the literal would leave two defaults free to disagree, and
an unset value would otherwise build an image named "null/<project>/<repo>"
— which docker accepts as a hostname and then fails to resolve, pointing
nowhere near the cause.

The dind pod no longer mounts the registry CA. That mount existed because
the registry was a nip.io name, which no public CA will issue for, so
cert-manager signed Harbor from a private CA; the node pool was told to
trust it for pulls, but a push comes from dockerd inside the build pod,
which has its own trust store. harbor.infra.deployshed.com carries a Let's
Encrypt certificate that both already trust, so the mount, its volume and
the whole arrangement go away rather than being repointed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LEsTefWWifp4ikvhHF5s6N
This commit is contained in:
Mukul Sharma
2026-09-17 09:31:32 +05:30
co-authored by Claude Opus 5
parent a9119d7b8e
commit 6d743cbe48
9 changed files with 81 additions and 55 deletions
+2 -2
View File
@@ -13,14 +13,14 @@
# a dockerBuildVersion whose tag isn't in devops-base-images/images.txt
# yet needs that added and re-mirrored first, unlike pulling straight
# from Docker Hub where any tag "just worked".
FROM harbor.35.238.248.203.nip.io/base-images/golang:${version}-alpine AS build
FROM harbor.infra.deployshed.com/base-images/golang:${version}-alpine AS build
WORKDIR /src
COPY go.mod go.sum* ./
RUN go mod download 2>/dev/null || true
COPY . .
RUN CGO_ENABLED=0 go build -o /app .
FROM harbor.35.238.248.203.nip.io/base-images/alpine:3.20
FROM harbor.infra.deployshed.com/base-images/alpine:3.20
COPY --from=build /app /app
EXPOSE 8080
ENTRYPOINT ["/app"]
+2 -2
View File
@@ -8,14 +8,14 @@
# to Maven Central for plugins/dependencies during the build regardless
# of base image — this only removes the Docker Hub dependency for the
# base image layer, not package-registry traffic during the build.
FROM harbor.35.238.248.203.nip.io/base-images/maven:3-eclipse-temurin-${version}-alpine AS build
FROM harbor.infra.deployshed.com/base-images/maven:3-eclipse-temurin-${version}-alpine AS build
WORKDIR /src
COPY pom.xml .
RUN mvn -B dependency:go-offline
COPY . .
RUN mvn -B package -DskipTests
FROM harbor.35.238.248.203.nip.io/base-images/eclipse-temurin:${version}-jre-alpine
FROM harbor.infra.deployshed.com/base-images/eclipse-temurin:${version}-jre-alpine
WORKDIR /app
COPY --from=build /src/target/*.jar app.jar
EXPOSE 8080
+2 -2
View File
@@ -5,14 +5,14 @@
# Assumes a standard `npm run build` + `npm start` repo. Switched from
# node:*-slim (Debian) to node:*-alpine for both stages — smaller, still
# keeps a shell for kubectl exec debugging (not distroless).
FROM harbor.35.238.248.203.nip.io/base-images/node:${version}-alpine AS build
FROM harbor.infra.deployshed.com/base-images/node:${version}-alpine AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build --if-present
FROM harbor.35.238.248.203.nip.io/base-images/node:${version}-alpine
FROM harbor.infra.deployshed.com/base-images/node:${version}-alpine
WORKDIR /app
COPY --from=build /app .
ENV NODE_ENV=production
+1 -1
View File
@@ -36,7 +36,7 @@
# very comment did so), new edits to this header should avoid typing
# the character at all — write "dollar sign" in words instead of using
# the glyph.
FROM harbor.35.238.248.203.nip.io/base-images/php:${version}-cli-alpine
FROM harbor.infra.deployshed.com/base-images/php:${version}-cli-alpine
WORKDIR /var/www/html
RUN apk add --no-cache --virtual .build-deps \$PHPIZE_DEPS \
&& docker-php-ext-install pdo pdo_mysql \
+1 -1
View File
@@ -9,7 +9,7 @@
# extensions that only ship glibc wheels may need musl-dev/gcc added
# here to build from source on Alpine — fine for this repo's pure-Python
# deps, worth knowing if a future repo's requirements.txt needs more.
FROM harbor.35.238.248.203.nip.io/base-images/python:${version}-alpine
FROM harbor.infra.deployshed.com/base-images/python:${version}-alpine
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt