Hello <@ULVA73B9P>, I'm trying to create a deploym...
# ask-marvin
j
Hello @Marvin, I'm trying to create a deployment on a Minio S3 storage. However, when I enter 'prefect deploy', the wizard only gives me the option of an AWS S3 storage as remote storage location. Is it possible to use the wizard to create deployments on a Minio S3 storage, too? Thanks in advance!
m
It seems that there is an issue already open on the Prefect GitHub repository that is related to your question: Support to pass boto3 extra client parameters. This issue describes the need for
prefect.blocks.storage.S3StorageBlock
to support extra parameters for use cases like custom CA certificates or S3 clones like Minio. The conversation there might illuminate a workaround or inform you about the progress on this capability. It seems that Prefect currently does not directly support Minio via the deployment wizard, but you might be able to manually configure the parameters after setting up the deployment to allow for Minio S3 storage. Keep an eye on GitHub issues and Prefect changelogs for updates on this feature.
k
If you make an S3 bucket block in the UI and supply it with a MinIO Credentials block in the credentials field before deploying, you should be able to select that S3 bucket with existing Minio credentials from the deployment wizard. let me double check this though
j
Thank you very much @Kevin Grismore for your quick support! I will try this out immediately!
k
if the wizard doesn't offer that, you can at least replace the values later in the created
prefect.yaml
file
j
I'm very sorry, but I think I would need your help once again, if possible, @Kevin Grismore. I created the S3 bucket block as well as the MinIO credentials block. Unfortunately, they do not seem to appear in the wizard. The problem is, that I'm not able to create a
prefect.yaml
file with the correct configuration. When I select S3 in the wizard I'm prompted to give some AWS S3 credentials. The deployment process then stops with the error message
An error occurred (InvalidAccessKeyId) when calling the PutObject operation: The AWS Access Key Id you provided does not exist in our records.
and apparently, no
prefect.yaml
file is created. Do you know if there is perhaps somewhere a template
prefect.yaml
file that contains push and pull actions for a MinIO storage that I could re-use? Thank you again very much for your support!
k
your
push
step should look like this:
Copy code
push:
- prefect_aws.deployments.steps.push_to_s3:
    requires: prefect-aws>=0.3.0
    bucket: my-bucket
    folder: project-name
    credentials: "{{ prefect.blocks.minio-credentials.my-credentials-block-name }}"
and
pull
Copy code
pull:
- prefect_aws.deployments.steps.pull_from_s3:
    requires: prefect-aws>=0.3.0
    bucket: my-bucket
    folder: project-name
    credentials: "{{ prefect.blocks.minio-credentials.my-credentials-block-name }}"
after some testing it seems like there's an issue here. I'm going to open a couple of PRs: 1. support minio credentials for
push_to_s3
and
pull_from_s3
2. add Minio to the selectable storage types in the deploy wizard
j
Thank you very, very much for all of your support! Indeed, I faced an error
botocore.exceptions.NoCredentialsError: Unable to locate credentials
and was just about to ask you, if you had an idea what I could have made wrong. So thanks again that you even made additional tests!
k
yep, I have it working on a few local branches but I'll have to make some additional tests before they go up. it'll require updates to both prefect and prefect-aws
🙏 1
j
This is really a great support, that you solved the problem so fast! Thank you again and have a nice evening!