ai-review/review/create-imagepullsecret.sh
2025-06-15 13:52:26 +00:00

104 lines
2.8 KiB
Bash
Executable File

#!/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