#!/bin/bash # create-image-pull-secret.sh - ACR Image Pull Secret 생성 스크립트 set -e # 변수 설정 ACR_NAME="${1:-acrdigitalgarage03}" RESOURCE_GROUP="${2:-rg-digitalgarage-03}" SECRET_NAME="${3:-acr-secret}" echo "=====================================================" echo " ACR Image Pull Secret 생성" echo "=====================================================" # 사용법 표시 함수 show_usage() { echo "사용법:" echo " $0 [ACR_NAME] [RESOURCE_GROUP] [SECRET_NAME]" echo "" echo "파라미터:" echo " ACR_NAME : Azure Container Registry 이름 (필수)" echo " RESOURCE_GROUP: Azure 리소스 그룹 (필수)" echo " SECRET_NAME : Secret 이름 (기본값: acr-secret)" echo "" echo "예시:" echo " $0 acrdigitalgarage01 rg-digitalgarage-03" echo " $0 acrdigitalgarage01 rg-digitalgarage-03 acr-prod-secret" echo "" } # 파라미터 검증 if [ "$1" == "--help" ] || [ "$1" == "-h" ]; then show_usage exit 0 fi if [ -z "${ACR_NAME}" ] || [ -z "${RESOURCE_GROUP}" ]; then echo "❌ ACR_NAME과 RESOURCE_GROUP는 필수 파라미터입니다." echo "" show_usage exit 1 fi # ACR 정보 설정 REGISTRY_URL="${ACR_NAME}.azurecr.io" echo "" echo "📋 ACR 정보:" echo " ACR 이름: ${ACR_NAME}" echo " 레지스트리 URL: ${REGISTRY_URL}" echo " 리소스 그룹: ${RESOURCE_GROUP}" echo " Secret 이름: ${SECRET_NAME}" # ACR credential 조회 echo "" echo "🔑 ACR credential 조회 중..." credential_json=$(az acr credential show --name "${ACR_NAME}" --resource-group "${RESOURCE_GROUP}" 2>/dev/null) if [ $? -ne 0 ]; then echo "❌ ACR credential 조회 실패" echo "확인 사항:" echo " - ACR 이름: ${ACR_NAME}" echo " - 리소스 그룹: ${RESOURCE_GROUP}" echo " - Azure 권한" exit 1 fi # JSON에서 username과 password 추출 username=$(echo "${credential_json}" | jq -r '.username') password=$(echo "${credential_json}" | jq -r '.passwords[0].value') if [ -z "${username}" ] || [ -z "${password}" ] || [ "${username}" == "null" ] || [ "${password}" == "null" ]; then echo "❌ ACR credential 파싱 실패" exit 1 fi echo "✅ ACR credential 조회 성공" echo " 사용자명: ${username}" echo " 비밀번호: ${password:0:10}..." # 기존 Secret 삭제 (있는 경우) if kubectl get secret "${SECRET_NAME}" &> /dev/null; then echo "" echo "🗑️ 기존 Secret 삭제 중..." kubectl delete secret "${SECRET_NAME}" fi # Image Pull Secret 생성 echo "" echo "🔐 Image Pull Secret 생성 중..." kubectl create secret docker-registry "${SECRET_NAME}" \ --docker-server="${REGISTRY_URL}" \ --docker-username="${username}" \ --docker-password="${password}" if [ $? -eq 0 ]; then echo "✅ Image Pull Secret 생성 성공!" else echo "❌ Image Pull Secret 생성 실패" exit 1 fi