#!/bin/bash # Setup Gitea Admin Secret # # This script creates TWO Kubernetes secrets: # 1. gitea-admin-secret (gitea namespace) - Used by Gitea Helm chart for admin credentials # 2. gitea-registry-secret (bakery-ia namespace) - Used by pods for imagePullSecrets # # Both secrets use the SAME credentials, ensuring consistency. # # Usage: # ./setup-admin-secret.sh [password] # # If password is not provided, a random one will be generated. set -e KUBECTL="kubectl" GITEA_NAMESPACE="gitea" BAKERY_NAMESPACE="bakery-ia" REGISTRY_HOST="registry.bakery-ia.local" ADMIN_USERNAME="bakery-admin" # Check if running in microk8s if command -v microk8s &> /dev/null; then KUBECTL="microk8s kubectl" fi # Get or generate password if [ -n "$1" ]; then ADMIN_PASSWORD="$1" else ADMIN_PASSWORD=$(openssl rand -base64 24 | tr -d '/+=' | head -c 20) echo "Generated admin password: $ADMIN_PASSWORD" fi # Create namespaces if they don't exist $KUBECTL create namespace "$GITEA_NAMESPACE" --dry-run=client -o yaml | $KUBECTL apply -f - $KUBECTL create namespace "$BAKERY_NAMESPACE" --dry-run=client -o yaml | $KUBECTL apply -f - # 1. Create gitea-admin-secret for Gitea Helm chart echo "Creating gitea-admin-secret in $GITEA_NAMESPACE namespace..." $KUBECTL create secret generic gitea-admin-secret \ --namespace "$GITEA_NAMESPACE" \ --from-literal=username="$ADMIN_USERNAME" \ --from-literal=password="$ADMIN_PASSWORD" \ --dry-run=client -o yaml | $KUBECTL apply -f - # 2. Create gitea-registry-secret for imagePullSecrets echo "Creating gitea-registry-secret in $BAKERY_NAMESPACE namespace..." # Create Docker config JSON for registry authentication AUTH_BASE64=$(echo -n "${ADMIN_USERNAME}:${ADMIN_PASSWORD}" | base64) DOCKER_CONFIG_JSON=$(cat <