From 35358203bc3ff0b7fabe7ba0c26e3515aa97c1bb Mon Sep 17 00:00:00 2001 From: Martin Braun Date: Tue, 14 Jan 2025 16:53:07 +0100 Subject: [PATCH] fix plumbing for bucket name and url generation --- skipper/skipper/core/storage/media.py | 2 +- skipper/skipper/core/storage/static.py | 4 ++-- skipper/skipper/environment_secret.py | 8 ++++---- skipper/skipper/settings_env.py | 14 ++++++++------ 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/skipper/skipper/core/storage/media.py b/skipper/skipper/core/storage/media.py index 7161937..28b4f83 100644 --- a/skipper/skipper/core/storage/media.py +++ b/skipper/skipper/core/storage/media.py @@ -13,7 +13,7 @@ @deconstructible class S3Boto3MediaStorage(PrivatePublicS3Boto3Storage): # type: ignore - bucket_name = setting('NF_AWS_STORAGE_BUCKET_NAME_MEDIA') + bucket_name = setting('SKIPPER_S3_MEDIA_BUCKET_NAME') access_key = setting('SKIPPER_S3_MEDIA_ACCESS_KEY_ID') secret_key = setting('SKIPPER_S3_MEDIA_SECRET_ACCESS_KEY') endpoint_url = setting('SKIPPER_S3_MEDIA_ENDPOINT_URL') diff --git a/skipper/skipper/core/storage/static.py b/skipper/skipper/core/storage/static.py index c40bb54..d9d114c 100644 --- a/skipper/skipper/core/storage/static.py +++ b/skipper/skipper/core/storage/static.py @@ -11,8 +11,8 @@ @deconstructible class S3Boto3StaticStorage(PrivatePublicS3Boto3Storage): # type: ignore - bucket_name = setting('NF_AWS_STORAGE_BUCKET_NAME_STATIC') - querystring_auth = setting('NF_AWS_QUERYSTRING_AUTH_STATIC') + bucket_name = setting('SKIPPER_S3_STATIC_BUCKET_NAME') + querystring_auth = False access_key = setting('SKIPPER_S3_STATIC_ACCESS_KEY_ID') secret_key = setting('SKIPPER_S3_STATIC_SECRET_ACCESS_KEY') endpoint_url = setting('SKIPPER_S3_STATIC_ENDPOINT_URL') diff --git a/skipper/skipper/environment_secret.py b/skipper/skipper/environment_secret.py index 1ac381a..dda3249 100644 --- a/skipper/skipper/environment_secret.py +++ b/skipper/skipper/environment_secret.py @@ -55,6 +55,8 @@ DEFAULT_S3_ENDPOINT_URL = os.environ.get('SKIPPER_S3_ENDPOINT_URL') DEFAULT_S3_EXTERNAL_ENDPOINT_URL = os.environ.get('SKIPPER_S3_EXTERNAL_ENDPOINT_URL') DEFAULT_S3_REGION_NAME = os.environ.get('SKIPPER_S3_REGION_NAME', 'eu-west-1') +# defaulting to path style to work with minio by default +DEFAULT_S3_ADDRESSING_STYLE = os.environ.get('SKIPPER_S3_ADDRESSING_STYLE', 'path') SKIPPER_S3_MEDIA_ACCESS_KEY_ID = os.environ.get('SKIPPER_S3_MEDIA_ACCESS_KEY_ID', DEFAULT_S3_ACCESS_KEY_ID) SKIPPER_S3_MEDIA_SECRET_ACCESS_KEY = os.environ.get('SKIPPER_S3_MEDIA_SECRET_ACCESS_KEY', DEFAULT_S3_SECRET_ACCESS_KEY) @@ -62,8 +64,7 @@ SKIPPER_S3_MEDIA_EXTERNAL_ENDPOINT_URL = os.environ.get('SKIPPER_S3_MEDIA_EXTERNAL_ENDPOINT_URL', DEFAULT_S3_EXTERNAL_ENDPOINT_URL) SKIPPER_S3_MEDIA_BUCKET_NAME = os.environ['SKIPPER_S3_MEDIA_BUCKET_NAME'] SKIPPER_S3_MEDIA_REGION_NAME = os.environ.get('SKIPPER_S3_MEDIA_REGION_NAME', DEFAULT_S3_REGION_NAME) -# defaulting to path style to work with minio by default -SKIPPER_S3_MEDIA_ADDRESSING_STYLE = os.environ.get('SKIPPER_S3_MEDIA_ADDRESSING_STYLE', 'path') +SKIPPER_S3_MEDIA_ADDRESSING_STYLE = os.environ.get('SKIPPER_S3_MEDIA_ADDRESSING_STYLE', DEFAULT_S3_ADDRESSING_STYLE) SKIPPER_S3_STATIC_ACCESS_KEY_ID = os.environ.get('SKIPPER_S3_STATIC_ACCESS_KEY_ID', DEFAULT_S3_ACCESS_KEY_ID) SKIPPER_S3_STATIC_SECRET_ACCESS_KEY = os.environ.get('SKIPPER_S3_STATIC_SECRET_ACCESS_KEY', DEFAULT_S3_SECRET_ACCESS_KEY) @@ -71,8 +72,7 @@ SKIPPER_S3_STATIC_EXTERNAL_ENDPOINT_URL = os.environ.get('SKIPPER_S3_STATIC_EXTERNAL_ENDPOINT_URL', DEFAULT_S3_EXTERNAL_ENDPOINT_URL) SKIPPER_S3_STATIC_BUCKET_NAME = os.environ['SKIPPER_S3_STATIC_BUCKET_NAME'] SKIPPER_S3_STATIC_REGION_NAME = os.environ.get('SKIPPER_S3_STATIC_REGION_NAME', DEFAULT_S3_REGION_NAME) -# defaulting to path style to work with minio by default -SKIPPER_S3_STATIC_ADDRESSING_STYLE = os.environ.get('SKIPPER_S3_STATIC_ADDRESSING_STYLE', 'path') +SKIPPER_S3_STATIC_ADDRESSING_STYLE = os.environ.get('SKIPPER_S3_STATIC_ADDRESSING_STYLE', DEFAULT_S3_ADDRESSING_STYLE) def check_s3_settings() -> None: # Collect all variables we assigned earlier for MEDIA and STATIC, don't check *_EXTERNAL_ENDPOINT_URL as that is allowed to be empty diff --git a/skipper/skipper/settings_env.py b/skipper/skipper/settings_env.py index 03c6b0d..c7946a1 100644 --- a/skipper/skipper/settings_env.py +++ b/skipper/skipper/settings_env.py @@ -267,7 +267,10 @@ def task_upstream_dashboard(tenant: Tenant, user: Optional[Union[User, Anonymous ] if environment.SKIPPER_S3_STATIC_EXTERNAL_ENDPOINT_URL is not None and environment.SKIPPER_S3_STATIC_EXTERNAL_ENDPOINT_URL != "": - csp_static_url = f'{environment.SKIPPER_S3_STATIC_EXTERNAL_ENDPOINT_URL}/{environment.SKIPPER_S3_STATIC_BUCKET_NAME}/' + if environment.SKIPPER_S3_STATIC_ADDRESSING_STYLE == 'virtual': + csp_static_url = f'{environment.SKIPPER_S3_STATIC_EXTERNAL_ENDPOINT_URL}/' + else: + csp_static_url = f'{environment.SKIPPER_S3_STATIC_EXTERNAL_ENDPOINT_URL}/{environment.SKIPPER_S3_STATIC_BUCKET_NAME}/' else: csp_static_url = f'{environment.SKIPPER_S3_STATIC_ENDPOINT_URL}/{environment.SKIPPER_S3_STATIC_BUCKET_NAME}/' @@ -421,7 +424,6 @@ def task_upstream_dashboard(tenant: Tenant, user: Optional[Union[User, Anonymous # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/2.1/howto/static-files/ -SKIPPER_USE_S3 = True AWS_DEFAULT_ACL = None AWS_BUCKET_ACL = None @@ -430,12 +432,16 @@ def task_upstream_dashboard(tenant: Tenant, user: Optional[Union[User, Anonymous SKIPPER_S3_MEDIA_ENDPOINT_URL = environment.SKIPPER_S3_MEDIA_ENDPOINT_URL SKIPPER_S3_MEDIA_EXTERNAL_ENDPOINT_URL = environment.SKIPPER_S3_MEDIA_EXTERNAL_ENDPOINT_URL SKIPPER_S3_MEDIA_REGION_NAME = environment.SKIPPER_S3_MEDIA_REGION_NAME +SKIPPER_S3_MEDIA_ADDRESSING_STYLE = environment.SKIPPER_S3_MEDIA_ADDRESSING_STYLE +SKIPPER_S3_MEDIA_BUCKET_NAME = environment.SKIPPER_S3_MEDIA_BUCKET_NAME SKIPPER_S3_STATIC_ACCESS_KEY_ID = environment.SKIPPER_S3_STATIC_ACCESS_KEY_ID SKIPPER_S3_STATIC_SECRET_ACCESS_KEY = environment.SKIPPER_S3_STATIC_SECRET_ACCESS_KEY SKIPPER_S3_STATIC_ENDPOINT_URL = environment.SKIPPER_S3_STATIC_ENDPOINT_URL SKIPPER_S3_STATIC_EXTERNAL_ENDPOINT_URL = environment.SKIPPER_S3_STATIC_EXTERNAL_ENDPOINT_URL SKIPPER_S3_STATIC_REGION_NAME = environment.SKIPPER_S3_STATIC_REGION_NAME +SKIPPER_S3_STATIC_ADDRESSING_STYLE = environment.SKIPPER_S3_STATIC_ADDRESSING_STYLE +SKIPPER_S3_STATIC_BUCKET_NAME = environment.SKIPPER_S3_STATIC_BUCKET_NAME STORAGES = { 'staticfiles': { @@ -447,10 +453,6 @@ def task_upstream_dashboard(tenant: Tenant, user: Optional[Union[User, Anonymous } # by default use the authenticated one AWS_STORAGE_BUCKET_NAME = environment.SKIPPER_S3_MEDIA_BUCKET_NAME -NF_AWS_STORAGE_BUCKET_NAME_STATIC = environment.SKIPPER_S3_STATIC_BUCKET_NAME -NF_AWS_QUERYSTRING_AUTH_STATIC = False - -NF_AWS_STORAGE_BUCKET_NAME_MEDIA = environment.SKIPPER_S3_MEDIA_BUCKET_NAME AWS_S3_OBJECT_PARAMETERS = { 'CacheControl': 'max-age=86400',