Bài này chúng ta tìm hiểu các để bạn lưu sensitive value và đưa nó vào workflow
Mình thực hiện lưu value trong secret của k8s.
echo 'Password123' > test_password_file.txt kubectl -n default create secret generic test-secret --from-file=test-password=test_password_file.txt >>>>secret/test-secret created kubectl get secret NAME TYPE DATA AGE argo-artifacts Opaque 2 24h test-secret Opaque 1 105m tls-oauth2-proxy-ingress kubernetes.io/tls 3 32d
Và đây là file workflow.
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
name: wf-secret-env
spec:
entrypoint: dag-template
arguments:
parameters:
- name: message1
value: Task 1 is executed
- name: message2
value: Task 2 is executed
templates:
- name: dag-template
inputs:
parameters:
- name: message1
- name: message2
dag:
tasks:
- name: Task1
arguments:
parameters: [{name: text, value: "{{inputs.parameters.message1}}"}]
template: task-template
- name: Task2
arguments:
parameters: [{name: text, value: "{{inputs.parameters.message2}}"}]
template: task-template
- name: Task3
template: task-secret-env
dependencies: [Task1]
- name: task-template
inputs:
parameters:
- name: text
script:
image: python:3.8-slim
command:
source: |
p = "{{inputs.parameters.text}}"
print(p)
- name: task-secret-env
script:
image: python:3.8-slim
command:
source: |
import os
print(os.environ['TEST_PASSWORD'])
env:
- name: TEST_PASSWORD
valueFrom:
secretKeyRef:
name: test-secret
key: test-password

