secrets-operator 0.3.3 · voriol/infisical

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>
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