Files
prefect-flows-pg-backup/setup_blocks.py
Damien Arnodo c134107893
All checks were successful
Deploy Prefect Flows / deploy (push) Successful in 48s
fix: configure AwsCredentials with AwsClientParameters for Garage
- Use endpoint_url via aws_client_parameters
- Set signature_version to s3v4
- Set addressing_style to path
- Set region to garage
2026-02-01 10:39:51 +00:00

51 lines
1.6 KiB
Python

"""
Setup Prefect Blocks from environment variables.
"""
import os
from prefect_aws import AwsCredentials
from prefect_aws.client_parameters import AwsClientParameters
from prefect.blocks.system import Secret
def setup_blocks():
"""Crée ou met à jour les Blocks nécessaires."""
# AWS/S3 Credentials pour Garage
aws_access_key = os.environ.get("AWS_ACCESS_KEY_ID")
aws_secret_key = os.environ.get("AWS_SECRET_ACCESS_KEY")
aws_endpoint = os.environ.get("AWS_ENDPOINT_URL")
if all([aws_access_key, aws_secret_key, aws_endpoint]):
# Configuration client pour Garage (S3-compatible)
client_params = AwsClientParameters(
endpoint_url=aws_endpoint,
config={
"signature_version": "s3v4",
"s3": {"addressing_style": "path"},
},
)
creds = AwsCredentials(
aws_access_key_id=aws_access_key,
aws_secret_access_key=aws_secret_key,
region_name="garage",
aws_client_parameters=client_params,
)
creds.save("garage-credentials", overwrite=True)
print("✅ Block 'garage-credentials' created/updated")
else:
print("⚠️ Skipping garage-credentials: missing environment variables")
# PostgreSQL password pour netbox
pg_password = os.environ.get("PG_PASSWORD")
if pg_password:
Secret(value=pg_password).save("netbox-db-password", overwrite=True)
print("✅ Block 'netbox-db-password' created/updated")
else:
print("⚠️ Skipping netbox-db-password: PG_PASSWORD not set")
if __name__ == "__main__":
setup_blocks()