Skip to content
Open
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
### Removed

- All support for debug pods via Ingress NGINX canary annotations has been
removed. Users of this feature must re-implement it.

Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
### Added

- The new `DRYDOCK_INGRESS_CLASS` allows to configure the ingress class used by
the Ingress and Issuers objects.

5 changes: 0 additions & 5 deletions drydock/patches/kustomization-resources
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,6 @@
- plugins/drydock/k8s/ingress/extra-hosts.yml
- plugins/drydock/k8s/ingress/static-cache.yml
{%- endif %}
{% if DRYDOCK_DEBUG -%}
- plugins/drydock/k8s/debug/deployments.yml
- plugins/drydock/k8s/debug/services.yml
- plugins/drydock/k8s/debug/ingress.yml
{%- endif %}
{% if DRYDOCK_REGISTRY_CREDENTIALS -%}
- plugins/drydock/k8s/secrets/image-pull-secret.yml
{% endif -%}
111 changes: 43 additions & 68 deletions drydock/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,49 @@

INIT_JOBS_SYNC_WAVE = 1

tutor_hooks.Filters.CONFIG_DEFAULTS.add_items(
[
("DRYDOCK_VERSION", __version__),
("DRYDOCK_INIT_JOBS", False),
("DRYDOCK_INIT_JOBS_EXCLUDED", []),
("DRYDOCK_CMS_SSO_USER", "cms"),
("DRYDOCK_AUTO_TLS", True),
("DRYDOCK_MIGRATE_FROM", 0),
("DRYDOCK_INGRESS", True),
("DRYDOCK_INGRESS_CLASS", "nginx"),
("DRYDOCK_INGRESS_EXTRA_HOSTS", []),
("DRYDOCK_INGRESS_LMS_EXTRA_HOSTS", []),
("DRYDOCK_NEWRELIC_LICENSE_KEY", ""),
("DRYDOCK_CUSTOM_CERTS", {}),
("DRYDOCK_LETSENCRYPT_EMAIL", "{{ CONTACT_EMAIL }}"),
("DRYDOCK_ENABLE_MULTITENANCY", True),
("DRYDOCK_ENABLE_SCORM", True),
("DRYDOCK_POD_LIFECYCLE", True),
("DRYDOCK_BYPASS_CADDY", False),
("DRYDOCK_PDB_MINAVAILABLE_PERCENTAGE_LMS", 0),
("DRYDOCK_PDB_MINAVAILABLE_PERCENTAGE_LMS_WORKER", 0),
("DRYDOCK_PDB_MINAVAILABLE_PERCENTAGE_CMS", 0),
("DRYDOCK_PDB_MINAVAILABLE_PERCENTAGE_CMS_WORKER", 0),
("DRYDOCK_PDB_MINAVAILABLE_PERCENTAGE_MFE", 0),
("DRYDOCK_PDB_MINAVAILABLE_PERCENTAGE_FORUM", 0),
("DRYDOCK_PDB_MINAVAILABLE_PERCENTAGE_CADDY", 0),
(
"DRYDOCK_POST_INIT_DEPLOYMENTS",
["lms", "cms", "forum", "lms-worker", "cms-worker", "superset", "superset-worker", "superset-celery-beat"],
),
("DRYDOCK_NGINX_STATIC_CACHE_CONFIG", {}),
("DRYDOCK_REGISTRY_CREDENTIALS", ""),
]
)

tutor_hooks.Filters.CONFIG_OVERRIDES.add_items(
[
("FORUM_MONGODB_DATABASE", "cs_comments_service"),
("MONGODB_ROOT_USERNAME", ""),
("MONGODB_ROOT_PASSWORD", ""),
]
)


# This function is taken from
# https://github.com/overhangio/tutor/blob/v16.1.8/tutor/commands/k8s.py#L182
Expand Down Expand Up @@ -83,9 +126,6 @@ def get_init_tasks():
CORE_SYNC_WAVES_ORDER: SYNC_WAVES_ORDER_ATTRS_TYPE = {
"drydock-upgrade-lms-job": 50,
"drydock-upgrade-cms-job": 51,
"lms-debug": 50,
"cms-debug": 50,
"ingress-debug": 200,
"deployments:post-init-apps": 100,
"horizontalpodautoscalers:all": 150,
}
Expand Down Expand Up @@ -131,67 +171,6 @@ def get_sync_waves_for_resource(resource_name: str) -> SYNC_WAVES_ORDER_ATTRS_TY
return get_sync_waves_order().get(resource_name, 0)


################# Configuration
config = {
# Add here your new settings
"defaults": {
"VERSION": __version__,
"INIT_JOBS": False,
"INIT_JOBS_EXCLUDED": [],
"CMS_SSO_USER": "cms",
"AUTO_TLS": True,
"MIGRATE_FROM": 0,
"INGRESS": True,
"INGRESS_EXTRA_HOSTS": [],
"INGRESS_LMS_EXTRA_HOSTS": [],
"NEWRELIC_LICENSE_KEY": "",
"CUSTOM_CERTS": {},
"DEBUG": False,
"LETSENCRYPT_EMAIL": "{{ CONTACT_EMAIL }}",
"ENABLE_MULTITENANCY": True,
"ENABLE_SCORM": True,
"POD_LIFECYCLE": True,
"BYPASS_CADDY": False,
"PDB_MINAVAILABLE_PERCENTAGE_LMS": 0,
"PDB_MINAVAILABLE_PERCENTAGE_LMS_WORKER": 0,
"PDB_MINAVAILABLE_PERCENTAGE_CMS": 0,
"PDB_MINAVAILABLE_PERCENTAGE_CMS_WORKER": 0,
"PDB_MINAVAILABLE_PERCENTAGE_MFE": 0,
"PDB_MINAVAILABLE_PERCENTAGE_FORUM": 0,
"PDB_MINAVAILABLE_PERCENTAGE_CADDY": 0,
"POST_INIT_DEPLOYMENTS": [
"lms",
"cms",
"forum",
"lms-worker",
"cms-worker",
"superset",
"superset-worker",
"superset-celery-beat",
],
"NGINX_STATIC_CACHE_CONFIG": {},
"REGISTRY_CREDENTIALS": "",
},
# Add here settings that don't have a reasonable default for all users. For
# instance: passwords, secret keys, etc.
"unique": {
# "SECRET_KEY": "\{\{ 24|random_string \}\}",
},
# Danger zone! Add here values to override settings from Tutor core or other plugins.
"overrides": {},
}

tutor_hooks.Filters.CONFIG_DEFAULTS.add_items([("OPENEDX_DEBUG_COOKIE", "ednx_enable_debug")])
tutor_hooks.Filters.CONFIG_OVERRIDES.add_items(
[
# This values are not prefixed with DRYDOCK_
("FORUM_MONGODB_DATABASE", "cs_comments_service"),
("MONGODB_ROOT_USERNAME", ""),
("MONGODB_ROOT_PASSWORD", ""),
]
)


################# You don't really have to bother about what's below this line,
################# except maybe for educational purposes :)

Expand All @@ -212,10 +191,6 @@ def get_sync_waves_for_resource(resource_name: str) -> SYNC_WAVES_ORDER_ATTRS_TY
tutor_hooks.priorities.LOW, # Apply our changes last to correctly override defaults.
)

# Load all configuration entries
tutor_hooks.Filters.CONFIG_DEFAULTS.add_items([(f"DRYDOCK_{key}", value) for key, value in config["defaults"].items()])
tutor_hooks.Filters.CONFIG_UNIQUE.add_items([(f"DRYDOCK_{key}", value) for key, value in config["unique"].items()])
tutor_hooks.Filters.CONFIG_OVERRIDES.add_items(list(config["overrides"].items()))

tutor_hooks.Filters.ENV_TEMPLATE_VARIABLES.add_items(
[
Expand Down
103 changes: 0 additions & 103 deletions drydock/templates/drydock/k8s/debug/deployments.yml

This file was deleted.

35 changes: 0 additions & 35 deletions drydock/templates/drydock/k8s/debug/ingress.yml

This file was deleted.

28 changes: 0 additions & 28 deletions drydock/templates/drydock/k8s/debug/services.yml

This file was deleted.

2 changes: 1 addition & 1 deletion drydock/templates/drydock/k8s/ingress/cms.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ metadata:
}
{%- endif %}
spec:
ingressClassName: nginx
ingressClassName: {{ DRYDOCK_INGRESS_CLASS }}
rules:
- host: {{ CMS_HOST }}
http:
Expand Down
2 changes: 1 addition & 1 deletion drydock/templates/drydock/k8s/ingress/extra-hosts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ metadata:
cert-manager.io/issuer: letsencrypt
{%- endif %}
spec:
ingressClassName: nginx
ingressClassName: {{ DRYDOCK_INGRESS_CLASS }}
rules:
- host: {{ host }}
http:
Expand Down
2 changes: 1 addition & 1 deletion drydock/templates/drydock/k8s/ingress/issuer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ spec:
solvers:
- http01:
ingress:
class: nginx
class: {{ DRYDOCK_INGRESS_CLASS }}
{% endif -%}

{% if DRYDOCK_CUSTOM_CERTS -%}
Expand Down
2 changes: 1 addition & 1 deletion drydock/templates/drydock/k8s/ingress/lms.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ metadata:
}
{%- endif %}
spec:
ingressClassName: nginx
ingressClassName: {{ DRYDOCK_INGRESS_CLASS }}
rules:
- host: {{ LMS_HOST }}
http:
Expand Down
2 changes: 1 addition & 1 deletion drydock/templates/drydock/k8s/ingress/meilisearch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ metadata:
cert-manager.io/issuer: letsencrypt
{%- endif %}
spec:
ingressClassName: nginx
ingressClassName: {{ DRYDOCK_INGRESS_CLASS }}
rules:
- host: {{ MEILISEARCH_HOST }}
http:
Expand Down
2 changes: 1 addition & 1 deletion drydock/templates/drydock/k8s/ingress/mfe.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ metadata:
cert-manager.io/issuer: letsencrypt
{%- endif %}
spec:
ingressClassName: nginx
ingressClassName: {{ DRYDOCK_INGRESS_CLASS }}
rules:
- host: {{ MFE_HOST }}
http:
Expand Down
2 changes: 1 addition & 1 deletion drydock/templates/drydock/k8s/ingress/notes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ metadata:
cert-manager.io/issuer: letsencrypt
{%- endif %}
spec:
ingressClassName: nginx
ingressClassName: {{ DRYDOCK_INGRESS_CLASS }}
rules:
- host: {{ NOTES_HOST }}
http:
Expand Down