Обработка учетных данных в контейнере куба потока - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь запустить установку конвейера kubeflow, и у меня есть несколько окружений (dev, staging, prod).

В моем конвейере я использую kfp.components.func_to_container_op для получения экземпляра задачи конвейера (ContainerOp) ), а затем выполните его с соответствующими аргументами, позволяющими интегрировать его с моим сегментом s3:

from utils.test import test

test_op = comp.func_to_container_op(test, base_image='my_image')

read_data_task = read_data_op(
    bucket,
    aws_key,
    aws_pass,
)

arguments = {
    'bucket': 's3',
    'aws_key': 'key',
    'aws_pass': 'pass',
}
kfp.Client().create_run_from_pipeline_func(pipeline, arguments=arguments)

Каждая из сред использует различные учетные данные для подключения к нему, и эти учетные данные передаются в функция:

def test(s3_bucket: str, aws_key: str, aws_pass: str):
....
s3_client = boto3.client('s3', aws_access_key_id=aws_key, aws_secret_access_key=aws_pass)
s3_client.upload_file(from_filename, bucket_name, to_filename)

, поэтому для каждой среды мне нужно обновить аргументы, чтобы они содержали правильные учетные данные, и это усложняет поддержку, поскольку каждый раз, когда я хочу обновиться с dev на stg на prod, могу просто скопируйте код.

Мой вопрос: как лучше всего передать эти полномочия?

...