- 수동 비밀 생성 (선택 사항)
- 외부 서비스
- 다음 단계
- 시크릿 회전
GitLab 차트를 위한 비밀 설정
GitLab 운영을 위해 다양한 비밀이 필요합니다:
GitLab 구성 요소:
- 레지스트리 인증 인증서
- GitLab Shell용 SSH 호스트 키 및 인증서
- 개별 GitLab 서비스 비밀번호
- GitLab Pages용 TLS 인증서
선택적 외부 서비스:
- SMTP 서버
- LDAP
- OmniAuth
- 수신 이메일용 IMAP (mail_room 서비스 통해)
- 서비스 데스크 이메일용 IMAP (mail_room 서비스 통해)
- 수신 이메일용 Microsoft Graph 및 OAuth2 (mail_room 서비스 통해)
- 서비스 데스크 이메일용 Microsoft Graph 및 OAuth2 (mail_room 서비스 통해)
- 발신 이메일용 Microsoft Graph 및 OAuth2
- S/MIME 인증서
- 스마트카드 인증
- OAuth 통합
수동으로 제공되지 않은 비밀은 자동으로 무작위 값으로 생성됩니다. HTTPS 인증서의 자동 생성은 Let’s Encrypt에서 제공됩니다.
자동으로 생성된 비밀을 활용하려면 다음 단계로 진행하세요.
자체 비밀을 지정하려면 수동 비밀 생성으로 계속 진행하세요.
수동 비밀 생성 (선택 사항)
이 문서의 이전 단계를 따르면 gitlab
을 릴리스 이름으로 사용하세요.
레지스트리 인증 인증서
GitLab과 레지스트리 간의 통신은 Ingress 뒤에서 발생하므로 대부분의 경우 이 통신에 대해 자체 서명된 인증서를 사용하는 것이 충분합니다. 이 트래픽을 네트워크 상에 노출하는 경우 공개적으로 유효한 인증서를 생성해야 합니다.
아래 예제에서는 자체 서명된 인증서가 필요하다고 가정합니다.
인증서-키 쌍을 생성합니다:
mkdir -p certs
openssl req -new -newkey rsa:4096 -subj "/CN=gitlab-issuer" -nodes -x509 -keyout certs/registry-example-com.key -out certs/registry-example-com.crt
이러한 인증서를 포함하는 비밀을 생성합니다.
<name>
을 릴리스의 이름으로 바꿔 <name>-registry-secret
시크릿 내부에 registry-auth.key
와 registry-auth.crt
키를 생성합니다.
kubectl create secret generic <name>-registry-secret --from-file=registry-auth.key=certs/registry-example-com.key --from-file=registry-auth.crt=certs/registry-example-com.crt
이 비밀은 global.registry.certificate.secret
설정에서 참조됩니다.
레지스트리 민감 알림 헤더
레지스트리 알림 구성에 관한 문서를 확인하세요.
비밀 내용은 단일 항목이라도 항상 항목의 목록이어야 합니다. 콘텐츠가 문자열만 포함되어 있으면 차트는 필요한대로 그것을 목록으로 변환하지 않습니다.
registry-authorization-header
비밀에 RandomFooBar
값을 가진 예를 들어 보겠습니다.
kubectl create secret generic registry-authorization-header --from-literal=value="[RandomFooBar]"
기본적으로 시크릿 내에서 사용된 키는 “value”입니다. 그러나 사용자들은 다른 키를 사용할 수 있지만 해당 키가 헤더 맵 항목 아래 key
로 지정되도록 해야 합니다.
SSH 호스트 키
OpenSSH 인증서-키 쌍을 생성합니다:
mkdir -p hostKeys
ssh-keygen -t rsa -f hostKeys/ssh_host_rsa_key -N ""
ssh-keygen -t dsa -f hostKeys/ssh_host_dsa_key -N ""
ssh-keygen -t ecdsa -f hostKeys/ssh_host_ecdsa_key -N ""
ssh-keygen -t ed25519 -f hostKeys/ssh_host_ed25519_key -N ""
이러한 인증서를 포함하는 비밀을 생성합니다. <name>
을 릴리스의 이름으로 바꿔줍니다.
kubectl create secret generic <name>-gitlab-shell-host-keys --from-file hostKeys
이 비밀은 global.shell.hostKeys.secret
설정에서 참조됩니다.
만약 이 비밀이 회전되면 모든 SSH 클라이언트가 호스트 이름 불일치
오류를 볼 수 있습니다.
초기 기업 라이선스
경고: 이 방법은 설치 시점에만 라이선스를 추가합니다. 라이선스를 갱신하거나 업그레이드하려면 웹 사용자 인터페이스의 관리 영역을 사용하세요.
GitLab 인스턴스에 대한 기업 라이선스를 저장하기 위한 Kubernetes 시크릿을 생성하세요.
<name>
을 릴리스의 이름으로 바꿔줍니다.
kubectl create secret generic <name>-gitlab-license --from-file=license=/tmp/license.gitlab
그런 다음 --set global.gitlab.license.secret=<name>-gitlab-license
를 사용하여
구성에 라이선스를 주입하세요.
또한 기본 license
키를 라이선스 시크릿의 라이선스를 가리키도록 변경하기 위해 global.gitlab.license.key
옵션을 사용할 수 있습니다.
초기 루트 암호
초기 루트 암호를 저장하기 위한 Kubernetes 시크릿을 생성합니다. 비밀번호는 적어도 6자 이상이어야 합니다. <name>
을 릴리스의 이름으로 대체하십시오.
kubectl create secret generic <name>-gitlab-initial-root-password --from-literal=password=$(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 32)
Redis 암호
Redis를 위해 무작위로 생성된 64자의 알파벳-숫자 조합 비밀번호를 생성합니다. <name>
을 릴리스의 이름으로 대체하십시오.
kubectl create secret generic <name>-redis-secret --from-literal=secret=$(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 64)
이미 존재하는 Redis 클러스터로 배포하는 경우, 무작위로 생성된 비밀번호 대신 base64로 인코딩된 Redis 클러스터 액세스용 비밀번호를 사용하십시오.
이 시크릿은 global.redis.auth.secret
설정에서 참조됩니다.
GitLab Shell 시크릿
GitLab Shell을 위해 무작위로 생성된 64자의 알파벳-숫자 조합 시크릿을 생성합니다. <name>
을 릴리스의 이름으로 대체하십시오.
kubectl create secret generic <name>-gitlab-shell-secret --from-literal=secret=$(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 64)
이 시크릿은 global.shell.authToken.secret
설정에서 참조됩니다.
Gitaly 시크릿
무작위로 생성된 64자의 알파벳-숫자 조합 토큰을 Gitaly를 위해 생성합니다. <name>
을 릴리스의 이름으로 대체하십시오.
kubectl create secret generic <name>-gitaly-secret --from-literal=token=$(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 64)
이 시크릿은 global.gitaly.authToken.secret
설정에서 참조됩니다.
Praefect 시크릿
무작위로 생성된 64자의 알파벳-숫자 조합 토큰을 Praefect를 위해 생성합니다. <name>
을 릴리스의 이름으로 대체하십시오:
kubectl create secret generic <name>-praefect-secret --from-literal=token=$(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 64)
이 시크릿은 global.praefect.authToken.secret
설정에서 참조됩니다.
GitLab Rails 시크릿
<name>
을 릴리스의 이름으로 대체하십시오.
cat << EOF > secrets.yml
production:
secret_key_base: $(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 128)
otp_key_base: $(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 128)
db_key_base: $(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 128)
encrypted_settings_key_base: $(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 128)
openid_connect_signing_key: |
$(openssl genrsa 2048 | awk '{print " " $0}')
EOF
kubectl create secret generic <name>-rails-secret --from-file=secrets.yml
이 시크릿은 global.railsSecrets.secret
설정에서 참조됩니다.
이 시크릿은 데이터베이스 암호화 키를 포함하고 있기 때문에 회전하는 것이 권장되지 않습니다. 시크릿이 회전되면 결과는 시크릿 파일이 손실된 경우과 동일한 동작이 될 것입니다.
참고:
encrypted_settings_key_base
는 GitLab 13.7
에 추가되었으며, GitLab 14.0
에서 필요할 것입니다.
GitLab Workhorse 시크릿
Workhorse 시크릿을 생성합니다. 이는 32자의 길이가 되어야 하며 base64로 인코딩되어야 합니다. <name>
을 릴리스의 이름으로 대체하십시오.
kubectl create secret generic <name>-gitlab-workhorse-secret --from-literal=shared_secret=$(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 32 | base64)
이 시크릿은 global.workhorse.secret
설정에서 참조됩니다.
GitLab Runner 시크릿
<name>
을 릴리스의 이름으로 대체하십시오.
kubectl create secret generic <name>-gitlab-runner-secret --from-literal=runner-registration-token=$(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 64)
이 시크릿은 gitlab-runner.runners.secret
설정에서 참조됩니다.
GitLab KAS 시크릿
GitLab Rails는 KAS를 설치하지 않고도 이 차트를 배포하는 경우에도 KAS에 대한 시크릿이 존재해야 한다고 요구합니다. 그래도, 아래 절차를 따라 수동으로 이 시크릿을 생성하거나 차트가 자동으로 시크릿을 생성하도록 남길 수 있습니다. <name>
을 릴리스의 이름으로 대체하십시오.
kubectl create secret generic <name>-gitlab-kas-secret --from-literal=kas_shared_secret=$(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 32 | base64)
이 시크릿은 global.appConfig.gitlab_kas.key
설정에서 참조됩니다.
GitLab KAS API 시크릿
차트가 자동으로 시크릿을 생성하도록 남길 수 있거나 이 시크릿을 수동으로 생성할 수 있습니다 ( <name>
을 릴리스의 이름으로 대체하십시오):
kubectl create secret generic <name>-kas-private-api --from-literal=kas_private_api_secret=$(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 32 | base64)
이 시크릿은 gitlab.kas.privateApi.secret
설정에서 참조됩니다.
GitLab 제안하는 리뷰어 비밀
참고: 제안하는 리뷰어 비밀은 자동으로 생성되며 GitLab SaaS에서만 사용됩니다. 이 비밀은 올인원으로 구성된 자체 관리형 GitLab 인스턴스에서는 필요하지 않습니다.
GitLab Rails에서는 제안하는 리뷰어를 위한 비밀이 있어야 합니다. 차트에게 비밀 생성을 자동으로 맡기거나 다음과 같이 수동으로 비밀을 생성할 수 있습니다(릴리스의 이름으로 <name>
을 바꿉니다):
kubectl create secret generic <name>-gitlab-suggested-reviewers --from-literal=suggested_reviewers_secret=$(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 32 | base64)
이 비밀은 global.appConfig.suggested_reviewers.secret
설정에서 참조됩니다.
MinIO 비밀
MinIO를 위해 무작위 20자 및 64자 길이의 알파벳-숫자 키를 생성합니다.
릴리스의 이름으로 <name>
을 바꿉니다.
kubectl create secret generic <name>-minio-secret --from-literal=accesskey=$(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 20) --from-literal=secretkey=$(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 64)
이 비밀은 global.minio.credentials.secret
설정에서 참조됩니다.
PostgreSQL 비밀
무작위 64자 길이의 알파벳-숫자 비밀을 생성합니다. 릴리스의 이름으로 <name>
을 바꿉니다.
kubectl create secret generic <name>-postgresql-password \
--from-literal=postgresql-password=$(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 64) \
--from-literal=postgresql-postgres-password=$(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 64)
이 비밀은 global.psql.password.secret
설정에서 참조됩니다.
번들 PostgreSQL 하위 차트의 PostgreSQL 비밀 변경
경고: 기본 Helm 차트 구성은 운영에 적합하지 않습니다. 이는 번들 PostgreSQL 하위 차트를 포함하는데, 여기에는 빌드된 PostgreSQL 하위 차트가 포함됩니다.
번들 PostgreSQL 하위 차트는 데이터베이스를 초기 생성할 때 비밀에서 설정된 비밀로만 데이터베이스를 구성합니다. 기존 데이터베이스에서 비밀을 변경하려면 추가 단계가 필요합니다.
변경된 PostgreSQL 비밀을 위해 다음을 수행합니다:
- PostgreSQL 비밀에 대한 일반적인 비밀번호 변경 지침을 완료합니다.
-
PostgreSQL 팟으로 들어가서 데이터베이스에서 비밀을 업데이트합니다:
# PostgreSQL 팟으로 들어가기 kubectl exec -it <name>-postgresql-0 -- sh # 팟 내부에서 데이터베이스에서 비밀을 업데이트합니다. sed -i 's/^\(local .*\)md5$/\1trust/' /opt/bitnami/postgresql/conf/pg_hba.conf pg_ctl reload ; sleep 1 echo "ALTER USER postgres WITH PASSWORD '$(echo $POSTGRES_POSTGRES_PASSWORD)' ; ALTER USER gitlab WITH PASSWORD '$(echo POSTGRES_PASSWORD)'" | psql -U postgres -d gitlabhq_production -f - sed -i 's/^\(local .*\)trust$/\1md5/' /opt/bitnami/postgresql/conf/pg_hba.conf pg_ctl reload
-
gitlab-exporter
,postgresql
,toolbox
,sidekiq
및webservice
팟을 새 비밀로 로드되도록kubectl delete pod
명령을 사용하여 삭제하여 새로운 팟이 데이터베이스에 연결할 수 있게 해야 합니다.
GitLab Pages 비밀
GitLab Pages 비밀을 생성합니다. 이는 32자로 구성되어 있어야 하며
base64로 인코딩되어 있어야 합니다. 릴리스의 이름으로 <name>
을 바꿉니다.
kubectl create secret generic <name>-gitlab-pages-secret --from-literal=shared_secret=$(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 32 | base64)
이 비밀은 global.pages.apiSecret.secret
설정에서 참조됩니다.
레지스트리 HTTP 비밀
모든 레지스트리 팟에 의해 공유되는 무작위 64자 길이의 알파벳-숫자 키를 생성합니다.
릴리스의 이름으로 <name>
을 바꿉니다.
kubectl create secret generic <name>-registry-httpsecret --from-literal=secret=$(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 64 | base64)
이 비밀은 global.registry.httpSecret.secret
설정에서 참조됩니다.
레지스트리 알림 비밀
모든 레지스트리 팟 및 GitLab 웹 서비스 팟에서 공유되는 무작위 32자 길이의 알파벳-숫자 키를 생성합니다.
릴리스의 이름으로 <name>
을 바꿉니다.
kubectl create secret generic <name>-registry-notification --from-literal=secret=[\"$(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 32)\"]
이 비밀은 global.registry.notificationSecret.secret
설정에서 참조됩니다.
Praefect DB 비밀
무작위 64자 길이의 알파벳-숫자 비밀을 생성합니다. 릴리스의 이름으로 <name>
을 바꿉니다:
kubectl create secret generic <name>-praefect-dbsecret \
--from-literal=secret=$(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 64) \
이 비밀은 global.praefect.dbSecret
설정에서 참조됩니다.
외부 서비스
일부 차트는 자동으로 생성할 수 없는 기능을 활성화하기 위한 비밀이 추가로 필요합니다.
OmniAuth
배포된 GitLab에서 OmniAuth Providers 사용을 활성화하려면 Globals 차트의 지침을 따르세요.
LDAP 비밀번호
LDAP 서버에 연결하려면 암호 인증이 필요한 경우, Kubernetes 시크릿에 암호를 저장해야 합니다.
kubectl create secret generic ldap-main-password --from-literal=password=yourpasswordhere
그런 다음 --set global.appConfig.ldap.servers.main.password.secret=ldap-main-password
를
사용하여 구성에 암호를 삽입하세요.
참고:
Helm 프로퍼티를 구성할 때 _실제 암호_가 아닌 Secret
이름을 사용하세요.
SMTP 암호
인증이 필요한 SMTP 서버를 사용하는 경우, 암호를 Kubernetes 시크릿에 저장하세요.
kubectl create secret generic smtp-password --from-literal=password=yourpasswordhere
그런 다음 Helm 명령어에서 --set global.smtp.password.secret=smtp-password
를 사용하세요.
참고:
Helm 속성을 구성할 때 실제 암호가 아닌 시크릿
이름을 사용하세요.
수신 이메일용 IMAP 암호
GitLab은 수신 이메일에 액세스하기 위해 앱 암호, 토큰 또는 IMAP 암호와 같은 인증 문자열을 사용합니다.
GitLab 수신 이메일 문서에서 이메일 제공업체를 찾고 필요한 인증 문자열을 Kubernetes 시크릿으로 설정하세요.
kubectl create secret generic incoming-email-password --from-literal="password=auth_string_for_your_provider_here"
그런 다음 Helm 명령어에서 --set global.appConfig.incomingEmail.password.secret=incoming-email-password
를 다른 필수 설정과 함께 사용하세요. 문서에 명시된 대로.
참고:
Helm 속성을 구성할 때 실제 암호가 아닌 시크릿
이름을 사용하세요.
서비스 데스크 이메일용 IMAP 암호
GitLab은 서비스 데스크 이메일에 액세스하기 위해 앱 암호, 토큰 또는 IMAP 암호와 같은 인증 문자열을 사용합니다.
GitLab 수신 이메일 문서에서 이메일 제공업체를 찾고 필요한 인증 문자열을 Kubernetes 시크릿으로 설정하세요.
kubectl create secret generic service-desk-email-password --from-literal="password=auth_string_for_your_provider_here"
그런 다음 Helm 명령어에서 --set global.appConfig.serviceDeskEmail.password.secret=service-desk-email-password
를 다른 필수 설정과 함께 사용하세요. 문서에 명시된 대로.
참고:
Helm 속성을 구성할 때 실제 암호가 아닌 시크릿
이름을 사용하세요.
GitLab 수신 이메일 인증 토큰
수신 이메일이 웹훅 전달 방법을 사용하도록 구성된 경우, mail_room 서비스와 웹서비스 간에 공유된 비밀이 있어야 합니다. 이것은 반드시 32자이어야 하며 base64로 인코딩되어야 합니다. <name>
을 릴리스의 이름으로 대체하세요.
kubectl create secret generic <name>-incoming-email-auth-token --from-literal=authToken=$(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 32 | base64)
이 시크릿은 global.incomingEmail.authToken
설정에서 참조됩니다.
GitLab 서비스 데스크 이메일 인증 토큰
서비스 데스크 이메일이 웹훅 전달 방법을 사용하도록 구성된 경우, mail_room 서비스와 웹서비스 간에 공유된 비밀이 있어야 합니다. 이것은 반드시 32자이어야 하며 base64로 인코딩되어야 합니다. <name>
을 릴리스의 이름으로 대체하세요.
kubectl create secret generic <name>-service-desk-email-auth-token --from-literal=authToken=$(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 32 | base64)
이 시크릿은 global.serviceDeskEmail.authToken
설정에서 참조됩니다.
Zoekt 기본 인증 암호
차트가 시크릿을 자동으로 생성하도록 남겨둘 수도 있고, 시크릿을 수동으로 생성할 수도 있습니다 (<name>
을 릴리스의 이름으로 대체하세요):
password=$(head -c 512 /dev/urandom | LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 32 | base64)
kubectl create secret generic <name>-zoekt-basicauth --from-literal=gitlab_username=gitlab --from-literal=gitlab_password="$password"
이 시크릿은 gitlab.zoekt.gateway.basicAuth.secretName
설정에서 참조됩니다.
수신 이메일을 위한 Microsoft Graph 클라이언트 비밀
GitLab이 수신 이메일에 액세스하도록 허용하려면 IMAP 계정의 비밀을 Kubernetes 시크릿에 저장하세요:
kubectl create secret generic incoming-email-client-secret --from-literal=secret=your-secret-here
그런 다음 Helm 명령어에서 --set global.appConfig.incomingEmail.clientSecret.secret=incoming-email-client-secret
를 다른 필수 설정과 함께 사용하세요. 문서에 명시된 대로.
참고:
Helm 속성을 구성할 때 실제 암호가 아닌 시크릿
이름을 사용하세요.
서비스 데스크 이메일을 위한 Microsoft Graph 클라이언트 비밀
GitLab이 서비스 데스크 이메일에 액세스하도록 허용하려면 IMAP 계정의 비밀을 Kubernetes 시크릿에 저장하세요:
kubectl create secret generic service-desk-email-client-secret --from-literal=secret=your-secret-here
그런 다음 Helm 명령어에서 --set global.appConfig.serviceDeskEmail.clientSecret.secret=service-desk-email-client-secret
를 다른 필수 설정과 함께 사용하세요. 문서에 명시된 대로.
참고:
Helm 속성을 구성할 때 실제 암호가 아닌 시크릿
이름을 사용하세요.
Microsoft Graph 클라이언트 비밀을 위한 발신 이메일
암호를 Kubernetes 시크릿에 저장하세요:
kubectl create secret generic microsoft-graph-mailer-client-secret --from-literal=secret=your-secret-here
그런 다음 Helm 명령어에서 --set global.appConfig.microsoft_graph_mailer.client_secret.secret=microsoft-graph-mailer-client-secret
를 사용하세요.
참고:
Helm 속성을 구성할 때 실제 암호가 아닌 시크릿
이름을 사용하세요.
S/MIME 인증서
S/MIME 표준을 사용하여 발신 이메일 메시지에 디지털 서명을 할 수 있습니다. S/MIME 인증서는 TLS 유형의 시크릿으로 Kubernetes 시크릿에 저장해야 합니다.
kubectl create secret tls smime-certificate --key=file.key --cert file.crt
기존의 시크릿이 불투명 타입인 경우, global.email.smime.keyName
및 global.email.smime.certName
값을 조정해야 합니다.
S/MIME 설정은 values.yaml
파일이나 명령줄에서 설정할 수 있습니다. S/MIME를 활성화하려면 --set global.email.smime.enabled=true
를 사용하고, S/MIME 인증서를 포함하는 시크릿을 지정하려면 --set global.email.smime.secretName=smime-certificate
을 사용하세요.
스마트카드 인증
스마트카드 인증은 사용자 인증서에 서명하기 위해 사용자 정의 인증 기관 (CA)를 사용합니다. 이 사용자 정의 CA의 인증서는 Webservice 팟에 주입되어 클라이언트 인증서가 유효한지 여부를 확인합니다. 이는 k8s 시크릿으로 제공됩니다.
kubectl create secret generic <secret name> --from-file=ca.crt=<path to CA certificate>
인증서가 저장된 시크릿 내의 키 이름은 ca.crt
여야만 합니다.
OAuth 통합
GitLab Pages와 같은 다양한 서비스의 OAuth 통합을 구성하기 위해 OAuth 자격 증명을 포함하는 시크릿이 필요합니다. 시크릿은 기본적으로 앱 ID(기본적으로 appid
키 하에 저장)와 앱 비밀 (기본적으로 appsecret
키 하에 저장)을 포함해야 하며, 이 둘은 각각 알파벳과 숫자로 이루어진 문자열이어야 하며, 적어도 64자 이상이어야 합니다.
kubectl create secret generic oauth-gitlab-pages-secret --from-literal=appid=<app id> --from-literal=appsecret=<app secret>
이 시크릿은 global.oauth.<service name>.secret
설정을 사용하여 지정할 수 있습니다. appid
및 appsecret
이외의 키를 사용하는 경우, global.oauth.<service name>.appIdKey
및 global.oauth.<service name>.appSecretKey
설정을 사용하여 지정할 수 있습니다.
다음 단계
모든 시크릿이 생성되고 저장된 후에는 GitLab을 배포하실 수 있습니다.
시크릿 회전
시클릿은 보안 목적으로 필요한 경우 회전시킬 수 있습니다.
- 현재 시크릿을 백업합니다.
- 편리를 위해 원하는 시크릿마다 수동 시크릿 생성 단계를 따라
-v2
로 접미어 붙인 새로운 시크릿을 생성합니다 (예:gitlab-shell-host-keys-v2
). -
values.yaml
파일에서 새로운 시크릿 이름을 가리키도록 시크릿 키를 업데이트합니다. 대부분의 시크릿 이름은 수동 시크릿 생성 섹션의 각 해당 시크릿에 문서화되어 있습니다. - 업데이트된
values.yaml
파일로 GitLab 차트 릴리스를 업그레이드합니다. - PostgreSQL 시크릿을 회전하는 경우, 회전을 완료하는 추가 단계가 있습니다.
- GitLab이 예상대로 작동하는지 확인합니다. 이상이 없다면, 이전 시크릿을 삭제해도 무방합니다.