Skip to main content

Helper plugin for Kubernetes deployments of Open edX

Project description

Helper plugin for Kubernetes deployments of Open edX. It extends Tutor’s K8s environment with deployment patches and configuration knobs for autoscaling and resource sizing of LMS, CMS, their workers, MFEs, and Caddy.

What it does

  • Adds Kubernetes patch templates that tweak deployments, HPAs, and resource requests/limits for Tutor services.

  • Exposes K8S_* configuration settings so you can tune replicas, HPA behavior, and resources without editing manifests by hand.

Installation

pip install git+https://github.com/aulasneo/tutor-contrib-k8s.git

Usage

tutor plugins enable k8s

Configuration

All settings are regular Tutor config values prefixed with K8S_. You can set them via tutor config save or by editing your Tutor config file.

tutor config save \
  --set K8S_LMS_REPLICAS=2 \
  --set K8S_LMS_MAX_REPLICAS=6

After changing settings, re-render or redeploy your Tutor K8s environment as you normally would so the updated templates are applied.

Settings and defaults

Setting

Default

K8S_VERSION

Plugin version

K8S_LMS_HPA_CPU_AVERAGE_UTILIZATION

80

K8S_LMS_HPA_MEMORY_AVERAGE_UTILIZATION

80

K8S_LMS_HPA_SCALE_UP_STABILIZATION_WINDOW_SECONDS

0

K8S_LMS_HPA_SCALE_UP_PERCENT

100

K8S_LMS_HPA_SCALE_UP_PODS

4

K8S_LMS_HPA_SCALE_UP_PERIOD_SECONDS

60

K8S_LMS_HPA_SCALE_DOWN_STABILIZATION_WINDOW_SECONDS

300

K8S_LMS_HPA_SCALE_DOWN_PERCENT

10

K8S_LMS_HPA_SCALE_DOWN_PODS

1

K8S_LMS_HPA_SCALE_DOWN_PERIOD_SECONDS

60

K8S_CMS_HPA_CPU_AVERAGE_UTILIZATION

80

K8S_CMS_HPA_MEMORY_AVERAGE_UTILIZATION

80

K8S_CMS_HPA_SCALE_UP_STABILIZATION_WINDOW_SECONDS

0

K8S_CMS_HPA_SCALE_UP_PERCENT

100

K8S_CMS_HPA_SCALE_UP_PODS

4

K8S_CMS_HPA_SCALE_UP_PERIOD_SECONDS

60

K8S_CMS_HPA_SCALE_DOWN_STABILIZATION_WINDOW_SECONDS

300

K8S_CMS_HPA_SCALE_DOWN_PERCENT

10

K8S_CMS_HPA_SCALE_DOWN_PODS

1

K8S_CMS_HPA_SCALE_DOWN_PERIOD_SECONDS

60

K8S_LMS_WORKER_HPA_CPU_AVERAGE_UTILIZATION

80

K8S_LMS_WORKER_HPA_MEMORY_AVERAGE_UTILIZATION

80

K8S_LMS_WORKER_HPA_SCALE_UP_STABILIZATION_WINDOW_SECONDS

0

K8S_LMS_WORKER_HPA_SCALE_UP_PERCENT

100

K8S_LMS_WORKER_HPA_SCALE_UP_PODS

4

K8S_LMS_WORKER_HPA_SCALE_UP_PERIOD_SECONDS

60

K8S_LMS_WORKER_HPA_SCALE_DOWN_STABILIZATION_WINDOW_SECONDS

300

K8S_LMS_WORKER_HPA_SCALE_DOWN_PERCENT

10

K8S_LMS_WORKER_HPA_SCALE_DOWN_PODS

1

K8S_LMS_WORKER_HPA_SCALE_DOWN_PERIOD_SECONDS

60

K8S_CMS_WORKER_HPA_CPU_AVERAGE_UTILIZATION

80

K8S_CMS_WORKER_HPA_MEMORY_AVERAGE_UTILIZATION

80

K8S_CMS_WORKER_HPA_SCALE_UP_STABILIZATION_WINDOW_SECONDS

0

K8S_CMS_WORKER_HPA_SCALE_UP_PERCENT

100

K8S_CMS_WORKER_HPA_SCALE_UP_PODS

4

K8S_CMS_WORKER_HPA_SCALE_UP_PERIOD_SECONDS

60

K8S_CMS_WORKER_HPA_SCALE_DOWN_STABILIZATION_WINDOW_SECONDS

300

K8S_CMS_WORKER_HPA_SCALE_DOWN_PERCENT

10

K8S_CMS_WORKER_HPA_SCALE_DOWN_PODS

1

K8S_CMS_WORKER_HPA_SCALE_DOWN_PERIOD_SECONDS

60

K8S_MFE_HPA_CPU_AVERAGE_UTILIZATION

80

K8S_MFE_HPA_MEMORY_AVERAGE_UTILIZATION

80

K8S_MFE_HPA_SCALE_UP_STABILIZATION_WINDOW_SECONDS

0

K8S_MFE_HPA_SCALE_UP_PERCENT

100

K8S_MFE_HPA_SCALE_UP_PODS

4

K8S_MFE_HPA_SCALE_UP_PERIOD_SECONDS

60

K8S_MFE_HPA_SCALE_DOWN_STABILIZATION_WINDOW_SECONDS

300

K8S_MFE_HPA_SCALE_DOWN_PERCENT

10

K8S_MFE_HPA_SCALE_DOWN_PODS

1

K8S_MFE_HPA_SCALE_DOWN_PERIOD_SECONDS

60

K8S_CADDY_HPA_CPU_AVERAGE_UTILIZATION

80

K8S_CADDY_HPA_MEMORY_AVERAGE_UTILIZATION

80

K8S_CADDY_HPA_SCALE_UP_STABILIZATION_WINDOW_SECONDS

0

K8S_CADDY_HPA_SCALE_UP_PERCENT

100

K8S_CADDY_HPA_SCALE_UP_PODS

4

K8S_CADDY_HPA_SCALE_UP_PERIOD_SECONDS

60

K8S_CADDY_HPA_SCALE_DOWN_STABILIZATION_WINDOW_SECONDS

300

K8S_CADDY_HPA_SCALE_DOWN_PERCENT

10

K8S_CADDY_HPA_SCALE_DOWN_PODS

1

K8S_CADDY_HPA_SCALE_DOWN_PERIOD_SECONDS

60

K8S_CMS_CPU_REQUEST

100m

K8S_CMS_MEMORY_REQUEST

1Gi

K8S_CMS_CPU_LIMIT

100m

K8S_CMS_MEMORY_LIMIT

2Gi

K8S_CMS_REPLICAS

1

K8S_CMS_MAX_REPLICAS

3

K8S_CMS_WORKER_CPU_REQUEST

100m

K8S_CMS_WORKER_MEMORY_REQUEST

1Gi

K8S_CMS_WORKER_CPU_LIMIT

100m

K8S_CMS_WORKER_MEMORY_LIMIT

2Gi

K8S_CMS_WORKER_REPLICAS

1

K8S_CMS_WORKER_MAX_REPLICAS

3

K8S_LMS_CPU_REQUEST

100m

K8S_LMS_MEMORY_REQUEST

1Gi

K8S_LMS_CPU_LIMIT

100m

K8S_LMS_MEMORY_LIMIT

2Gi

K8S_LMS_REPLICAS

1

K8S_LMS_MAX_REPLICAS

3

K8S_LMS_WORKER_CPU_REQUEST

100m

K8S_LMS_WORKER_MEMORY_REQUEST

1Gi

K8S_LMS_WORKER_CPU_LIMIT

100m

K8S_LMS_WORKER_MEMORY_LIMIT

2Gi

K8S_LMS_WORKER_REPLICAS

1

K8S_LMS_WORKER_MAX_REPLICAS

3

K8S_MFE_CPU_REQUEST

10m

K8S_MFE_MEMORY_REQUEST

30Mi

K8S_MFE_CPU_LIMIT

100m

K8S_MFE_MEMORY_LIMIT

100Mi

K8S_MFE_REPLICAS

1

K8S_MFE_MAX_REPLICAS

3

K8S_CADDY_CPU_REQUEST

10m

K8S_CADDY_MEMORY_REQUEST

30Mi

K8S_CADDY_CPU_LIMIT

100m

K8S_CADDY_MEMORY_LIMIT

100Mi

K8S_CADDY_REPLICAS

1

K8S_CADDY_MAX_REPLICAS

3

License

This software is licensed under the terms of the AGPLv3.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tutor_contrib_k8s-19.0.0.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tutor_contrib_k8s-19.0.0-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file tutor_contrib_k8s-19.0.0.tar.gz.

File metadata

  • Download URL: tutor_contrib_k8s-19.0.0.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.0

File hashes

Hashes for tutor_contrib_k8s-19.0.0.tar.gz
Algorithm Hash digest
SHA256 60852efb44bebde13679356a4b5c7349e369881dbf6067521f8f9e1d896238a3
MD5 d7588b7aa82c95d005605194656fa532
BLAKE2b-256 027452ff407d464b19ff8e2703f1629b25ab9277c2e3a254effc09fb7d8797f5

See more details on using hashes here.

File details

Details for the file tutor_contrib_k8s-19.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for tutor_contrib_k8s-19.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 be4a9aa425e081eb2fa7166ee863cd1ba0f070dda7eaa29f491fcecf1e6de6f9
MD5 97f55b627eefbc5126ba2b35f6362a26
BLAKE2b-256 154e548c76ea4221633f34d574ca733521ec20b519ce2ddc1a3ab12072d9a44a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page