Add Harbor/Ceph runbooks and align single-node Ceph docs with abr deployment.
Document registry ingress split, image mirroring, loop OSD setup, and platform integration paths.
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Replaces registry.abrban.com docker distribution with Harbor.
|
||||
# WARNING: This will delete the existing `Ingress/registry` routing. The old
|
||||
# `Deployment/registry` and its PVC are left in place for rollback.
|
||||
|
||||
VALUES_FILE="${1:-/Users/keyhan/Documents/keyhan-project/cloud-host/backend/helm/cloudhost-harbor/values-registry.abrban.com.yaml}"
|
||||
|
||||
echo "==> Ensuring harbor repo"
|
||||
helm repo add harbor https://helm.goharbor.io 2>/dev/null || true
|
||||
helm repo update harbor
|
||||
|
||||
echo "==> [0/4] Preflight"
|
||||
kubectl -n cloudhost get secret abrban-wildcard-tls >/dev/null
|
||||
kubectl -n cloudhost get secret registry-egress-proxy >/dev/null
|
||||
|
||||
echo "==> [1/4] Disabling old registry ingress (host registry.abrban.com)"
|
||||
kubectl -n cloudhost delete ingress registry --ignore-not-found
|
||||
|
||||
echo "==> [2/4] Scaling old registry deployment down (rollback-friendly)"
|
||||
kubectl -n cloudhost scale deploy/registry --replicas=0 || true
|
||||
|
||||
echo "==> [3/4] Installing Harbor"
|
||||
HTTP_PROXY="$(kubectl -n cloudhost get secret registry-egress-proxy -o jsonpath='{.data.HTTP_PROXY}' | base64 -d)"
|
||||
HTTPS_PROXY="$(kubectl -n cloudhost get secret registry-egress-proxy -o jsonpath='{.data.HTTPS_PROXY}' | base64 -d)"
|
||||
NO_PROXY="$(kubectl -n cloudhost get secret registry-egress-proxy -o jsonpath='{.data.NO_PROXY}' | base64 -d)"
|
||||
|
||||
TMP_PROXY_VALUES="$(mktemp)"
|
||||
cat > "${TMP_PROXY_VALUES}" <<EOF
|
||||
proxy:
|
||||
httpProxy: "${HTTP_PROXY}"
|
||||
httpsProxy: "${HTTPS_PROXY}"
|
||||
noProxy: "${NO_PROXY}"
|
||||
EOF
|
||||
|
||||
helm upgrade --install harbor harbor/harbor \
|
||||
-n cloudhost \
|
||||
-f "$VALUES_FILE" \
|
||||
-f "${TMP_PROXY_VALUES}" \
|
||||
--wait \
|
||||
--timeout 20m
|
||||
|
||||
rm -f "${TMP_PROXY_VALUES}" || true
|
||||
|
||||
echo "==> [4/4] Done"
|
||||
kubectl -n cloudhost get ingress | grep -n registry || true
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
## Harbor values to REPLACE registry.abrban.com
|
||||
## Ingress controller on this cluster is Traefik (k3s).
|
||||
##
|
||||
## Install:
|
||||
## helm upgrade --install harbor harbor/harbor -n cloudhost -f backend/helm/cloudhost-harbor/values-registry.abrban.com.yaml
|
||||
##
|
||||
externalURL: https://registry.abrban.com
|
||||
|
||||
proxy:
|
||||
# Values are injected by install script from `cloudhost/registry-egress-proxy`.
|
||||
httpProxy: ""
|
||||
httpsProxy: ""
|
||||
noProxy: ""
|
||||
|
||||
expose:
|
||||
type: ingress
|
||||
tls:
|
||||
enabled: true
|
||||
certSource: secret
|
||||
secret:
|
||||
secretName: abrban-wildcard-tls
|
||||
ingress:
|
||||
className: traefik
|
||||
hosts:
|
||||
core: registry.abrban.com
|
||||
annotations:
|
||||
traefik.ingress.kubernetes.io/router.entrypoints: websecure
|
||||
# Increase timeouts for large pushes (skopeo/registry blobs)
|
||||
traefik.ingress.kubernetes.io/router.tls: "true"
|
||||
|
||||
# Disable components we don't need for now to reduce resources
|
||||
trivy:
|
||||
enabled: false
|
||||
notary:
|
||||
enabled: false
|
||||
chartmuseum:
|
||||
enabled: false
|
||||
|
||||
# Single-node staging: keep resource usage modest
|
||||
core:
|
||||
replicas: 1
|
||||
jobservice:
|
||||
replicas: 1
|
||||
registry:
|
||||
replicas: 1
|
||||
|
||||
persistence:
|
||||
enabled: true
|
||||
persistentVolumeClaim:
|
||||
# Use existing default storage (local-path) until Ceph is ready.
|
||||
# After Ceph, switch to rook-ceph-block for Harbor's PVCs.
|
||||
registry:
|
||||
storageClass: local-path
|
||||
size: 50Gi
|
||||
jobservice:
|
||||
storageClass: local-path
|
||||
size: 5Gi
|
||||
database:
|
||||
storageClass: local-path
|
||||
size: 10Gi
|
||||
redis:
|
||||
storageClass: local-path
|
||||
size: 5Gi
|
||||
|
||||
database:
|
||||
type: internal
|
||||
|
||||
redis:
|
||||
type: internal
|
||||
|
||||
portal:
|
||||
replicas: 1
|
||||
|
||||
# We will create proxy-cache projects after install (todo: configure-proxy-cache)
|
||||
|
||||
Reference in New Issue
Block a user