""" 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()