Helm Chart - secrets-operator 설치

secrets-operator 0.3.3 · voriol/infisical

구성

Untitled

Service Token 시크릿 배포

infisical cli를 사용했을 때와 마찬가지로 k8s에서 시크릿을 가져오기 위해서는 반드시 service token이 필요하다. k8s에서는 service token을 시크릿으로 만들어서 InfisicalSecret이라는 CR에 주입한다.

apiVersion: v1
kind: Secret
metadata:
  name: infisical-ailab-models-token
  namespace: <namespace>
type: Opaque
data:
  infisicalToken: <Service Token>

InfisicalSecret 배포

apiVersion: secrets.infisical.com/v1alpha1
kind: InfisicalSecret
metadata:
  # Name of of this InfisicalSecret resource
  name: <name>
  namespace: <namespace>
spec:
  # The host that should be used to pull secrets from. The default value is <https://app.infisical.com/api>.
  **hostAPI: <Infisical Host API url>**
  resyncInterval: 60
  # The Kubernetes secret the stores the Infisical token
  authentication:
    serviceToken:
      serviceTokenSecretReference:
        **secretName: <Infisical 서비스 토큰 이름>
        secretNamespace: <Infisical 서비스 토큰이 위치한 Namespace>**
      secretsScope:
        **envSlug: <Infisical 시크릿을 가져올 환경(dev/staging/prod 와 같은)>
        secretsPath: <Infisical 시크릿을 가져올 경로(딱히 지정되어있지 않으면 "/">**
  # The Kubernetes secret that Infisical Operator will create and populate with secrets from the above project
  managedSecretReference:
    **# The name of managed Kubernetes secret that should be created
    secretName: <Infisical 시크릿 이름>
    # The namespace the managed secret should be installed in
    secretNamespace: <Infisical 시크릿을 사용할 리소스와 같은 Namespace>**

사용

apiVersion: apps/v1
kind: Deployment
metadata:
	name: nginx-deployment
	namespace: <위에서 배포한 InfisicalSecret의 managed secret와 같은 namespace>
labels:
  app: nginx
spec:
replicas: 1
selector:
  matchLabels:
    app: nginx
template:
  metadata:
    labels:
      app: nginx
  spec:
    containers:
    - name: nginx
      image: nginx:1.14.2
      envFrom:
      - secretRef:
          name: <위에서 배포한 InfisicalSecret의 managed secret>
      ports:
      - containerPort: 80

참고

Kubernetes - Infisical