Joshua Caskie
07/16/2024, 3:18 PMMarvin
07/16/2024, 3:18 PMdeployment-manifest.yaml file:
yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: prefect-docker-guide
spec:
replicas: 1
selector:
matchLabels:
flow: get-repo-info
template:
metadata:
labels:
flow: get-repo-info
spec:
containers:
- name: flow-container
image: prefect-docker-guide-image:latest
envFrom:
- secretRef:
name: docker-registry-credentials
You should create a Kubernetes secret that holds your Docker registry credentials:
sh
kubectl create secret docker-registry docker-registry-credentials \
--docker-username=my_username \
--docker-password=my_password \
--docker-email=my_email@example.com \
--docker-server=<http://registry.hub.docker.com|registry.hub.docker.com>
Then refer to this secret in the deployment YAML.
For more details, you can refer to the following links:
- Prefect Docker Integration
- Docker credentials in Kubernetes
Make sure to replace the placeholders with your actual registry and credentials information.
If you have further specific needs or issues, feel free to ask!Joshua Caskie
07/16/2024, 3:19 PMprefect.yaml deployment configuration file. Is there a way to pass 'image' credentials for configured deployments?Marvin
07/16/2024, 3:20 PMprefect.yaml deployment configuration file that includes passing Docker image credentials, you can follow these steps. Here's an example of a well-rounded prefect.yaml file with Docker image settings:
yaml
name: my-flow
prefect-version: 2.0
description: A sample Prefect deployment with Docker configuration
tags:
- example
- tutorial
build:
- prefect.deployments.steps.run_shell_script:
id: get-commit-hash
script: git rev-parse --short HEAD
stream_output: false
- prefect.deployments.steps.set_working_directory:
path: /my-app
- prefect_docker.deployments.build_steps.push_to_registry:
image: my-docker-image:latest
dockerfile: Dockerfile
registry: my-registry
credentials:
username: $DOCKER_USERNAME
password: $DOCKER_PASSWORD
deployments:
- name: my-deployment
version: "{{ get-commit-hash.stdout }}"
tags: [production]
schedule:
cron: "0 0 * * *"
parameters: {}
entrypoint: my_flow.py:my_flow
pull:
- prefect.deployments.steps.git_clone:
name: clone-repo
repository: "git@github.com:my-repo/my-project.git"
branch: main
token: $GITHUB_TOKEN
In this configuration:
1. Replace my-docker-image:latest and my-registry with your actual Docker image name and registry.
2. Use $DOCKER_USERNAME and $DOCKER_PASSWORD as environment variables to securely pass your Docker credentials.
3. Include $GITHUB_TOKEN securely for any repository access.
### Helpful Links:
- Prefect Deployment Documentation
- Docker Integration Guide
You can initialize your deployment configuration using prefect init to get a starter prefect.yaml, which you can customize as shown above.
If you need further specifications or run into issues, please feel free to ask!