Snyk Broker Helm 차트 버전 2.8.0부터 외부 시크릿(External secrets)이 지원됩니다.
이 기능을 활성화하려면 values.yaml에서 useExternalSecrets를 true로 설정하거나 --set externalSecrets=true를 사용하십시오.
필요한 시크릿 목록을 얻으려면 Helm 설치의 드라이 런(Dry run)을 수행하십시오. 이는 Kubernetes 환경에 어떠한 변경도 주지 않지만, 다음 사항이 필요합니다.
Copy helm install snyk-broker-chart \
snyk-broker/snyk-broker \
--set externalSecrets=true \
--set scmType=<your-scm-type> \
--dry-run=client 예상되는 이름과 값이 포함된 시크릿 목록이 생성됩니다. 다음 예시는 scmType=nexus를 사용합니다.
Copy ### Secret Creation Disabled ###
Ensure secrets are present on your cluster in the default namespace:
-> NAME:KEY <VALUE>
-> nexus-broker-token-snyk-broker-chart:nexus-broker-token-key <your-broker-token>
-> nexus-base-nexus-url-snyk-broker-chart:nexus-base-nexus-url <BASE_NEXUS_URL>
-> nexus-nexus-url-snyk-broker-chart:nexus-nexus-url <NEXUS_URL>
-> nexus-broker-client-validation-url-snyk-broker-chart:nexus-broker-client-validation-url <BROKER_CLIENT_VALIDATION_URL> 이 예시에서는 Broker가 설치될 동일한 네임스페이스 내에 4개의 시크릿이 존재해야 하며, 각 시크릿은 하나의 키-값 쌍을 포함해야 합니다. <> 문자로 표시된 모든 값은 자체 시크릿 데이터를 추가해야 함을 나타냅니다.
다음 각 Helm 값은 name 및 key를 지원하므로, Snyk Broker Helm 차트가 해당 시크릿 내의 특정 시크릿 이름과 키를 참조할 수 있도록 합니다.
externalCredentialSecret (artifactory, nexus, nexus2가 아닌 다른 모든 Broker 유형에 사용되며, 해당 유형과 관련된 필수 비밀번호 또는 PAT에 사용됨)
brokerTokenSecret (Broker 토큰에 사용됨)
scmTokenPoolSecret (자격 증명 풀링 이 활성화된 경우 사용됨)
artifactoryUrlSecret (artifactory 유형에만 필요)
baseNexusUrlSecret (nexus 및 nexus2 유형에만 필요)
nexusUrlSecret (nexus 및 nexus2 유형에만 필요)
brokerClientValidationUrlSecret (nexus 및 nexus2 유형에만 필요하며, artifactory에서 선택적으로 설정 가능)
예를 들어, Kubernetes 클러스터에 다음과 같은 형식의 Broker 토큰이 포함된 시크릿이 있는 경우:
다음과 같이 설정하십시오.
Helm 차트는 Broker 토큰을 위해 snyk-broker-secrets 시크릿의 org-x-broker-token 키 아래에 있는 내용을 참조하게 됩니다.
useExternalSecrets가 true인 경우, Broker Helm 차트는 시크릿에 대해 값이 제공되었는지 확인합니다(예: brokerToken=<your-broker-token>).
값이 존재하면 평소와 같이 시크릿을 생성합니다.
값이 존재하지 않으면 외부 시크릿을 찾습니다.
이 방법을 통해 일부 시크릿은 Broker Helm 차트에서 제어하고 다른 시크릿은 외부에서 제어할 수 있습니다.
이 설정은 다음과 같이 작동합니다.
제공된 Broker 토큰에 대해 시크릿을 생성합니다.
필수 GitHub 토큰에 대해 외부 시크릿을 참조합니다.
Helm 설치 드라이 런을 수행하면 필요한 시크릿 이름과 키가 제공됩니다.
Broker 토큰 시크릿은 Broker Helm 차트에 직접 값이 제공되었으므로 이 목록에서 제외됩니다.
여러 키가 포함된 단일 외부 시크릿 사용
단일 Kubernetes 시크릿에 Snyk Broker 작동에 필요한 모든 자격 증명이 포함될 수 있습니다. nexus 유형의 Broker를 예로 들면, Kubernetes에 다음과 같은 시크릿이 있다고 가정합니다.
scmType=nexus에 필요한 모든 값에 대해 이 시크릿을 지정하려면 다음과 같이 설정하십시오.