REGION_CORD="us-east-1"
CLUSTER_NAME="hrdkorea-cluster"
POLICY_ARN=$(aws iam list-policies --query "Policies[?PolicyName=='secretsmanager-policy'].Arn" --output text)
eksctl create iamserviceaccount \\
--name external-secrets-cert-controller \\
--region="$REGION_CORD" \\
--cluster "$CLUSTER_NAME" \\
--namespace=hrdkorea \\
--attach-policy-arn "$POLICY_ARN" \\
--override-existing-serviceaccounts \\
--approve
helm repo add external-secrets <https://charts.external-secrets.io>
kubectl annotate serviceaccount external-secrets-cert-controller \\
meta.helm.sh/release-name=external-secrets \\
meta.helm.sh/release-namespace=hrdkorea \\
-n hrdkorea \\
--overwrite
kubectl label serviceaccount external-secrets-cert-controller \\
app.kubernetes.io/managed-by=Helm \\
-n hrdkorea \\
--overwrite
cat > values.yaml <<EOF
{
"installCRDs": true,
"podLabels": {
"skills/dedicated": "addon"
},
"webhook": {
"podLabels": {
"skills/dedicated": "addon"
}
},
"certController": {
"podLabels": {
"skills/dedicated": "addon"
}
}
}
EOF
helm install external-secrets \\
external-secrets/external-secrets \\
-n hrdkorea \\
-f values.yaml \\
--set serviceAccount.create=false
apiVersion: external-secrets.io/v1beta1
kind: SecretStore
metadata:
name: aws-secrets
namespace: hrdkorea
spec:
provider:
aws:
service: SecretsManager
region: us-east-1
auth:
jwt:
serviceAccountRef:
name: external-secrets-cert-controller
kubectl apply -f secretstore.yaml
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: rds-secaret
namespace: hrdkorea
spec:
refreshInterval: 24m
secretStoreRef:
name: aws-secrets
kind: SecretStore
target:
name: db-credentials
creationPolicy: Owner
data:
- secretKey: MYSQL_USER
remoteRef:
key: mysql/secret
property: username
- secretKey: MYSQL_PASSWORD
remoteRef:
key: mysql/secret
property: password
- secretKey: MYSQL_HOST
remoteRef:
key: mysql/secret
property: host
- secretKey: MYSQL_PORT
remoteRef:
key: mysql/secret
property: port
- secretKey: MYSQL_DBNAME
remoteRef:
key: mysql/secret
property: dbname
- secretKey: REGION
remoteRef:
key: mysql/secret
property: aws_region