- internal/harbor/client.go: новый пакет, EnsureProject (GET+POST idempotent)
- config.go: добавлены HarborUser/HarborPass (из HARBOR_USER/HARBOR_PASS env)
- builder.go: Projecter интерфейс, harborClient поле, ImageRef: {host}/{ns}/{func}:{tag}
EnsureProject вызывается перед каждым Build()
- function_controller.go: HarborClient поле, EnsureProject при создании k8s NS
- main.go: создание harbor.Client если HARBOR_USER+HARBOR_PASS заданы
- operator.yaml: REGISTRY_HOST=pearlharbor..., HARBOR_USER=admin, v0.1.24
- hack/create-registry-secret.sh: переписан для Harbor (HARBOR_USER/HARBOR_PASS)
Смена registry — только через REGISTRY_HOST в ConfigMap, больше нигде.
37 lines
1.4 KiB
Bash
Executable File
37 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
# Изменено: 2026-03-11
|
||
# Создаёт k8s Secret sless-registry-auth с кредами Harbor для kaniko.
|
||
# Kaniko монтирует этот secret как /kaniko/.docker/config.json для push образов.
|
||
# Отдельно от HARBOR_PASS в operator-secret: этот secret — для kaniko (push),
|
||
# HARBOR_PASS — для Harbor API (создание проектов через EnsureProject).
|
||
#
|
||
# Использование:
|
||
# HARBOR_USER=admin HARBOR_PASS=<password> REGISTRY=pearlharbor.registryk8s.services.ngcloud.ru \
|
||
# ./hack/create-registry-secret.sh
|
||
#
|
||
# Требуется: kubectl, авторизованный context с доступом к namespace sless.
|
||
|
||
set -euo pipefail
|
||
|
||
NAMESPACE="sless"
|
||
SECRET_NAME="sless-registry-auth"
|
||
REGISTRY="${REGISTRY:-pearlharbor.registryk8s.services.ngcloud.ru}"
|
||
|
||
if [[ -z "${HARBOR_USER:-}" ]]; then
|
||
echo "ERROR: HARBOR_USER env var is required"
|
||
exit 1
|
||
fi
|
||
if [[ -z "${HARBOR_PASS:-}" ]]; then
|
||
echo "ERROR: HARBOR_PASS env var is required"
|
||
exit 1
|
||
fi
|
||
|
||
kubectl create secret docker-registry "${SECRET_NAME}" \
|
||
--docker-username="${HARBOR_USER}" \
|
||
--docker-password="${HARBOR_PASS}" \
|
||
--docker-server="${REGISTRY}" \
|
||
--namespace="${NAMESPACE}" \
|
||
--dry-run=client -o yaml | kubectl apply -f -
|
||
|
||
echo "OK: secret '${SECRET_NAME}' applied in namespace '${NAMESPACE}' (server: ${REGISTRY})"
|