Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix plumbing for bucket name and url generation #162

Merged
merged 1 commit into from
Jan 14, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion skipper/skipper/core/storage/media.py
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand Down
4 changes: 2 additions & 2 deletions skipper/skipper/core/storage/static.py
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand Down
8 changes: 4 additions & 4 deletions skipper/skipper/environment_secret.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,24 +55,24 @@
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)
SKIPPER_S3_MEDIA_ENDPOINT_URL = os.environ.get('SKIPPER_S3_MEDIA_ENDPOINT_URL', DEFAULT_S3_ENDPOINT_URL)
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)
SKIPPER_S3_STATIC_ENDPOINT_URL = os.environ.get('SKIPPER_S3_STATIC_ENDPOINT_URL', DEFAULT_S3_ENDPOINT_URL)
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
Expand Down
14 changes: 8 additions & 6 deletions skipper/skipper/settings_env.py
Original file line number Diff line number Diff line change
Expand Up @@ -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}/'

Expand Down Expand Up @@ -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

Expand All @@ -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': {
Expand All @@ -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',
Expand Down
Loading