Add oidc to harbor
This commit is contained in:
parent
fdeebee9f4
commit
66f77d3fb6
@ -1,21 +0,0 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
|
||||||
kind: Application
|
|
||||||
metadata:
|
|
||||||
name: application-template
|
|
||||||
namespace: argocd
|
|
||||||
spec:
|
|
||||||
project: dev-tools
|
|
||||||
source:
|
|
||||||
repoURL: 'ssh://git@gitea-ssh.dev-tools.svc.cluster.local:2222/dvirlabs/dev-tools.git'
|
|
||||||
targetRevision: HEAD
|
|
||||||
path: charts/application-template
|
|
||||||
helm:
|
|
||||||
valueFiles:
|
|
||||||
- ../../manifests/application-template/values.yaml
|
|
||||||
destination:
|
|
||||||
server: https://kubernetes.default.svc
|
|
||||||
namespace: dev-tools
|
|
||||||
syncPolicy:
|
|
||||||
automated:
|
|
||||||
prune: true
|
|
||||||
selfHeal: true
|
|
||||||
@ -1,17 +0,0 @@
|
|||||||
# apiVersion: argoproj.io/v1alpha1
|
|
||||||
# kind: Application
|
|
||||||
# metadata:
|
|
||||||
# name: oidc-bootstrap-dev-tools
|
|
||||||
# namespace: argocd
|
|
||||||
# spec:
|
|
||||||
# project: dev-tools
|
|
||||||
# source:
|
|
||||||
# repoURL: ssh://git@gitea-ssh.dev-tools.svc.cluster.local:2222/dvirlabs/dev-tools.git
|
|
||||||
# targetRevision: HEAD
|
|
||||||
# path: manifests/oidc-bootstrap
|
|
||||||
# directory:
|
|
||||||
# recurse: true
|
|
||||||
# destination:
|
|
||||||
# server: https://kubernetes.default.svc
|
|
||||||
# namespace: dev-tools
|
|
||||||
# syncPolicy: {}
|
|
||||||
@ -1,17 +0,0 @@
|
|||||||
apiVersion: cert-manager.io/v1
|
|
||||||
kind: ClusterIssuer
|
|
||||||
metadata:
|
|
||||||
name: letsencrypt-staging
|
|
||||||
spec:
|
|
||||||
acme:
|
|
||||||
# Let's Encrypt Staging server - no rate limits for testing
|
|
||||||
server: https://acme-staging-v02.api.letsencrypt.org/directory
|
|
||||||
email: dvirlabs@gmail.com
|
|
||||||
privateKeySecretRef:
|
|
||||||
name: letsencrypt-staging-account-key
|
|
||||||
solvers:
|
|
||||||
- dns01:
|
|
||||||
cloudflare:
|
|
||||||
apiTokenSecretRef:
|
|
||||||
key: api-token
|
|
||||||
name: cloudflare-api-token
|
|
||||||
@ -17,6 +17,21 @@ externalURL: https://harbor.dvirlabs.com
|
|||||||
|
|
||||||
harborAdminPassword: "Harbor12345"
|
harborAdminPassword: "Harbor12345"
|
||||||
|
|
||||||
|
core:
|
||||||
|
configureUserSettings: |
|
||||||
|
{
|
||||||
|
"auth_mode": "oidc_auth",
|
||||||
|
"oidc_name": "keycloak",
|
||||||
|
"oidc_endpoint": "https://keycloak.dvirlabs.com/realms/lab",
|
||||||
|
"oidc_client_id": "harbor",
|
||||||
|
"oidc_client_secret": "XWYmXRJufVHEXncdrVLPIeQWgyBnuq4v",
|
||||||
|
"oidc_scope": "openid,profile,email",
|
||||||
|
"oidc_verify_cert": true,
|
||||||
|
"oidc_auto_onboard": true,
|
||||||
|
"oidc_user_claim": "preferred_username",
|
||||||
|
"oidc_groups_claim": "groups"
|
||||||
|
}
|
||||||
|
|
||||||
notary:
|
notary:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
|
|||||||
@ -1,41 +0,0 @@
|
|||||||
apiVersion: batch/v1
|
|
||||||
kind: Job
|
|
||||||
metadata:
|
|
||||||
name: harbor-add-project-admins
|
|
||||||
namespace: dev-tools
|
|
||||||
spec:
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
restartPolicy: OnFailure
|
|
||||||
containers:
|
|
||||||
- name: apply-group
|
|
||||||
image: curlimages/curl
|
|
||||||
command:
|
|
||||||
- /bin/sh
|
|
||||||
- -c
|
|
||||||
- |
|
|
||||||
apk add --no-cache jq
|
|
||||||
|
|
||||||
echo "📡 Fetching Harbor projects..."
|
|
||||||
projects=$(curl -sk -u admin:SuperSecurePassword123 https://harbor.dvirlabs.com/api/v2.0/projects | jq -r '.[].name')
|
|
||||||
|
|
||||||
for project in $projects; do
|
|
||||||
echo "🔍 Checking if 'project-admins' group is already in project: $project"
|
|
||||||
existing=$(curl -sk -u admin:SuperSecurePassword123 https://harbor.dvirlabs.com/api/v2.0/projects/$project/members | jq -r '.[] | select(.member_group.group_name=="project-admins") | .id')
|
|
||||||
|
|
||||||
if [ -z "$existing" ]; then
|
|
||||||
echo "➕ Adding group 'project-admins' to project $project as Project Admin..."
|
|
||||||
curl -sk -u admin:SuperSecurePassword123 \
|
|
||||||
-X POST https://harbor.dvirlabs.com/api/v2.0/projects/$project/members \
|
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-d '{
|
|
||||||
"role_id": 1,
|
|
||||||
"member_group": {
|
|
||||||
"group_name": "project-admins",
|
|
||||||
"group_type": 1
|
|
||||||
}
|
|
||||||
}'
|
|
||||||
else
|
|
||||||
echo "✅ Group already exists in project $project, skipping."
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
@ -1,35 +0,0 @@
|
|||||||
apiVersion: batch/v1
|
|
||||||
kind: Job
|
|
||||||
metadata:
|
|
||||||
name: harbor-oidc-setup
|
|
||||||
namespace: dev-tools
|
|
||||||
spec:
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
restartPolicy: OnFailure
|
|
||||||
containers:
|
|
||||||
- name: setup
|
|
||||||
image: curlimages/curl:latest
|
|
||||||
command:
|
|
||||||
- /bin/sh
|
|
||||||
- -c
|
|
||||||
- |
|
|
||||||
echo "Waiting for Harbor..."
|
|
||||||
until curl -k -s https://harbor.dvirlabs.com/api/v2.0/ping; do sleep 5; done
|
|
||||||
|
|
||||||
echo "Applying OIDC settings..."
|
|
||||||
curl -k -u admin:SuperSecurePassword123 \
|
|
||||||
-X PUT https://harbor.dvirlabs.com/api/v2.0/configurations \
|
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-d '{
|
|
||||||
"auth_mode": "oidc_auth",
|
|
||||||
"oidc_name": "keycloak",
|
|
||||||
"oidc_endpoint": "https://keycloak.dvirlabs.com/realms/lab",
|
|
||||||
"oidc_client_id": "harbor",
|
|
||||||
"oidc_client_secret": "XWYmXRJufVHEXncdrVLPIeQWgyBnuq4v",
|
|
||||||
"oidc_scope": "openid,profile,email",
|
|
||||||
"oidc_verify_cert": false,
|
|
||||||
"oidc_auto_onboard": true,
|
|
||||||
"oidc_user_claim": "preferred_username",
|
|
||||||
"oidc_groups_claim": "groups"
|
|
||||||
}'
|
|
||||||
Loading…
x
Reference in New Issue
Block a user