Django Operator for Kubernetes
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Vladimir Smagin bd8cec82de
2 months ago
build simple run 3 months ago
cmd/manager simple run 3 months ago
deploy split controller to smaller files 3 months ago
pkg add annotations to reconcile, fix Makefile 3 months ago
version simple run 3 months ago
.gitignore simple run 3 months ago
Makefile fix 2 months ago readme 2 months ago
VERSION simple run 3 months ago
go.mod simple run 3 months ago
go.sum simple run 3 months ago
tools.go simple run 3 months ago

Django operator for Kubernetes

Can run simple projects with collectstatic and migrations at init stage. In some cases you can run non-django images like hello-world below, just set Django specific flags to False and statics path to /notexists.

Build sources

Prebuilt images

You can find images here

Deploy operator

kubectl -f deploy/service_account.yaml
kubectl -f deploy/role.yaml
kubectl -f deploy/role_binding.yaml
kubectl -f deploy/operator.yaml

Your first Django deployment

This resource can help you run your first image

kind: Django
  name: django-test
  pullPolicy: IfNotPresent
  replicas: 1

  # application port, default 8080
  appPort: 8080

  # path where you store static files, typicaly inside application home
  appStaticPath: "/app/static"

  # run migrations in init container before run
  runMigrate: False

  # run collectstatic in init container before run
  runCollectStatic: False

Full Spec

image specific settings

  • PullPolicy: its usual imagePullPolicy, default IfNotPresent
  • Image: string, required, format <image>:<tag>
  • Replicas: integer, default 1

manage resources

Read more about resources limiting here

  • PodRequests: default is empty
  • PodLimits: default is empty

Affinity and antiaffinity manual

  • Affinity: default is empty

set annotations to service and pod

  • ServiceAnnotations: <key>: <value> dict, default is empty
  • PodAnnotations: <key>: <value> dict, default is empty

application specific configuration

  • AppPort: integer, internal application port, default 8000
  • AppEnv: EnvVar array, default is empty
  • AppStaticPath: string, path to static files, default /app/static
  • RunMigrate: bool, run migrations at init stage, default False
  • RunCollectStatic: bool, run collectstatic at init stage, default False

Copyright by Vladimir Smagin (21h) 2019 email:
Project page: