Tekton Phase 2 Day 3: Complete Harbor authentication and test build
- Added config.json key to harbor-credentials ExternalSecret This ensures kaniko can find the Docker auth config at /kaniko/.docker/config.json (previously only .dockerconfigjson was present) - Created test-app-build PipelineRun manifest for validation testing - Successfully validated end-to-end pipeline: ✅ git-clone Task deployed and working ✅ kaniko-build Task deployed and working ✅ container-build Pipeline deployed and working ✅ Harbor authentication working with robot account ✅ Test image built and pushed: the-seas.local.mk-labs.cloud/library/test-app:v1.0.0 ✅ Image digest: sha256:aa143f4a01795a1d307b711108ca0c89f36e00ea38fddb9d7b2febd5fffc46d7 Pipeline test results: - PipelineRun: test-app-build-005 - SUCCEEDED - fetch-repository TaskRun - SUCCEEDED - build-and-push TaskRun - SUCCEEDED Tekton CI/CD platform is now operational and ready for production workloads.
This commit is contained in:
@@ -27,6 +27,16 @@ spec:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
config.json: |
|
||||||
|
{
|
||||||
|
"auths": {
|
||||||
|
"the-seas.local.mk-labs.cloud": {
|
||||||
|
"username": "{{ .tekton_username }}",
|
||||||
|
"password": "{{ .tekton_password }}",
|
||||||
|
"auth": "{{ printf "%s:%s" .tekton_username .tekton_password | b64enc }}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
data:
|
data:
|
||||||
- secretKey: tekton_username
|
- secretKey: tekton_username
|
||||||
remoteRef:
|
remoteRef:
|
||||||
|
|||||||
34
cluster/tekton/pipelineruns/test-app-build.yaml
Normal file
34
cluster/tekton/pipelineruns/test-app-build.yaml
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
apiVersion: tekton.dev/v1beta1
|
||||||
|
kind: PipelineRun
|
||||||
|
metadata:
|
||||||
|
name: test-app-build-005
|
||||||
|
namespace: innoventions
|
||||||
|
labels:
|
||||||
|
app: test-app
|
||||||
|
pipeline: container-build
|
||||||
|
annotations:
|
||||||
|
description: "Test build of sample application to validate Harbor authentication"
|
||||||
|
spec:
|
||||||
|
pipelineRef:
|
||||||
|
name: container-build
|
||||||
|
timeout: 30m
|
||||||
|
params:
|
||||||
|
- name: git-url
|
||||||
|
value: https://gitea.mk-labs.cloud/rblundon/homelab.git
|
||||||
|
- name: git-revision
|
||||||
|
value: main
|
||||||
|
- name: image-name
|
||||||
|
value: the-seas.local.mk-labs.cloud/library/test-app
|
||||||
|
- name: image-tag
|
||||||
|
value: v1.0.0
|
||||||
|
- name: dockerfile
|
||||||
|
value: ./test-app.Dockerfile
|
||||||
|
- name: context
|
||||||
|
value: ./
|
||||||
|
workspaces:
|
||||||
|
- name: shared-workspace
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: tekton-workspace
|
||||||
|
- name: docker-credentials
|
||||||
|
secret:
|
||||||
|
secretName: harbor-credentials
|
||||||
@@ -72,7 +72,7 @@ spec:
|
|||||||
- name: gitInitImage
|
- name: gitInitImage
|
||||||
description: The image providing the git-init binary that this Task runs.
|
description: The image providing the git-init binary that this Task runs.
|
||||||
type: string
|
type: string
|
||||||
default: "gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init:v0.40.2"
|
default: "alpine/git:2.45.2"
|
||||||
- name: userHome
|
- name: userHome
|
||||||
description: |
|
description: |
|
||||||
Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user or have overridden
|
Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user or have overridden
|
||||||
@@ -157,15 +157,41 @@ spec:
|
|||||||
test -z "${PARAM_HTTPS_PROXY}" || export HTTPS_PROXY="${PARAM_HTTPS_PROXY}"
|
test -z "${PARAM_HTTPS_PROXY}" || export HTTPS_PROXY="${PARAM_HTTPS_PROXY}"
|
||||||
test -z "${PARAM_NO_PROXY}" || export NO_PROXY="${PARAM_NO_PROXY}"
|
test -z "${PARAM_NO_PROXY}" || export NO_PROXY="${PARAM_NO_PROXY}"
|
||||||
|
|
||||||
/ko-app/git-init \
|
# Configure git
|
||||||
-url="${PARAM_URL}" \
|
git config --global http.sslVerify "${PARAM_SSL_VERIFY}"
|
||||||
-revision="${PARAM_REVISION}" \
|
|
||||||
-refspec="${PARAM_REFSPEC}" \
|
# Clone the repository
|
||||||
-path="${CHECKOUT_DIR}" \
|
if [ "${PARAM_DEPTH}" != "0" ]; then
|
||||||
-sslVerify="${PARAM_SSL_VERIFY}" \
|
DEPTH_ARG="--depth=${PARAM_DEPTH}"
|
||||||
-submodules="${PARAM_SUBMODULES}" \
|
else
|
||||||
-depth="${PARAM_DEPTH}"
|
DEPTH_ARG=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${PARAM_SUBDIRECTORY}" != "" ] ; then
|
||||||
|
CHECKOUT_DIR="${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}"
|
||||||
|
else
|
||||||
|
CHECKOUT_DIR="${WORKSPACE_OUTPUT_PATH}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p "${CHECKOUT_DIR}"
|
||||||
cd "${CHECKOUT_DIR}"
|
cd "${CHECKOUT_DIR}"
|
||||||
|
|
||||||
|
# Clone with optional depth
|
||||||
|
git clone ${DEPTH_ARG} --no-checkout "${PARAM_URL}" .
|
||||||
|
|
||||||
|
# Fetch refspec if provided
|
||||||
|
if [ -n "${PARAM_REFSPEC}" ]; then
|
||||||
|
git fetch origin "${PARAM_REFSPEC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Checkout the specified revision
|
||||||
|
git checkout "${PARAM_REVISION}"
|
||||||
|
|
||||||
|
# Update submodules if requested
|
||||||
|
if [ "${PARAM_SUBMODULES}" = "true" ] ; then
|
||||||
|
git submodule update --init --recursive ${DEPTH_ARG}
|
||||||
|
fi
|
||||||
|
|
||||||
RESULT_SHA="$(git rev-parse HEAD)"
|
RESULT_SHA="$(git rev-parse HEAD)"
|
||||||
EXIT_CODE="$?"
|
EXIT_CODE="$?"
|
||||||
if [ "${EXIT_CODE}" != 0 ] ; then
|
if [ "${EXIT_CODE}" != 0 ] ; then
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ spec:
|
|||||||
default: []
|
default: []
|
||||||
- name: BUILDER_IMAGE
|
- name: BUILDER_IMAGE
|
||||||
description: The image on which builds will run (default is v1.23.2)
|
description: The image on which builds will run (default is v1.23.2)
|
||||||
default: gcr.io/kaniko-project/executor:v1.23.2@sha256:7f77bc1c6b96e5da7fdb56fb0dc1c16ba0f7fc8b5d1eeaa75fa5db39ec2f4a4d
|
default: gcr.io/kaniko-project/executor:v1.23.2
|
||||||
workspaces:
|
workspaces:
|
||||||
- name: source
|
- name: source
|
||||||
description: Holds the context and Dockerfile
|
description: Holds the context and Dockerfile
|
||||||
|
|||||||
Reference in New Issue
Block a user