I want to share some secrets with my Kubeflow pipeline so I can use them as environment variables in my containers. I ve written a pipeline-secrets.yaml that looks like this:
apiVersion: v1
kind: Secret
metadata:
name: pipeline-secrets
namespace: kubeflow
type: Opaque
data:
mysql_db_name: <SECRET>
mysql_username: <SECRET>
mysql_password: <SECRET>
mysql_endpoint: <SECRET>
和输油管系统。 looks:
apiVersion: kubeflow.org/v1alpha1
kind: PodDefault
metadata:
name: pipeline-pod-defaults
namespace: kubeflow
specs:
desc: Configure pipeline secrets as environment variables
env:
- name: MYSQL_DB_NAME
valueFrom:
secretKeyRef:
name: pepeline-secrets
key: mysql_db_name
- name: MYSQL_USER_NAME
valueFrom:
secretKeyRef:
name: pepeline-secrets
key: mysql_username
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: pepeline-secrets
key: mysql_password
- name: MYSQL_ENDPOINT
valueFrom:
secretKeyRef:
name: pepeline-secrets
key: mysql_endpoint
这正是我的管线如何看待:
import kfp
from kfp.dsl import ContainerOp
from kubernetes import client as k8s_client
@kfp.dsl.pipeline(
name="Training pipeline",
description=""
)
def train_pipeline():
get_data = ContainerOp(
name="Get data",
image=BASE_IMAGE,
file_outputs={
data : data.csv
}
)
kfp.dsl.get_pipeline_conf().set_image_pull_secrets([
k8s_client.V1ObjectReference(name="regcred"),
k8s_client.V1ObjectReference(name="pipeline-secrets"),
])
kfp.dsl.ResourceOp(
name="pipeline-pod-defaults",
k8s_resource=k8s_client.V1ObjectReference(name="pipeline-pod-defaults"),
action="apply"
)
但最后,我发现这一错误:
This step is in Failed state with this message: error: error validating "/tmp/manifest.yaml": error validating data: [apiVersion not set, kind not set]; if you choose to ignore these errors, turn validation off with --validate=false
这种做法是否正确? 我怎么能够把我的秘密与其余管道分享? 如果出现新的比耶问题,Kubernetes和Kubeflow的Im