Skip to content

Install using kubernetes and helm chart

Andrei Bosco B. Torres edited this page Jul 23, 2021 · 2 revisions

Deployment

  • Copy or modify reference helm chart from helm directory
  • Update Charts.yaml appVersion with the GEN version that you want to use
  • Update values.yaml. Key elements:
    • ingress: hosts
    • ingress: paths: backend: serviceName
    • ingress: tls: secretName
    • ingress: tls: hosts
  • Update templates/configmap.yaml. Review ALL parameters.
  • Create a namespace. E.g.: kubectl create ns gen
  • Create a secrets file based on secrets-example.
    • Review ALL parameters.
    • SOCIAL_AUTH parameters are optional.
    • STATIC parameters are for S3 storage.
    • SENDGRID_API_KEY parameter is used for email communication (such as account activation emails).
  • Add GEN django secrets into kubectl: kubectl -n gen create secret generic gen-secrets --from-env-file secrets
  • Install GEN helm chart: helm install gen ./ --namespace gen

Post-install

  • Collect static files into S3: kubectl -n gen exec *name of your pod* -- python manage.py collectstatic --no-input

  • Create database structure: kubectl -n gen exec *name of your pod* -- python manage.py migrate

  • Create a super user: kubectl -n gen exec *name of your pod* --stdin --tty -- python manage.py createsuperuser --username USERNAME --email USER_EMAIL

Useful commands

  • Check deployments: kubectl -n gen get deployments
  • Check nodes resource usage: kubectl -n gen top node
  • Check pod resource usage: kubectl -n gen top pod
  • Check configmap: kubectl -n gen describe configmaps gen-configmap
  • Check secrets:
    kubectl -n gen describe secrets gen-secrets
    kubectl -n gen get secret gen-secrets -o json
    
  • Check pod logs: kubectl -n gen logs *name of your pod*
  • Check certificate: kubectl -n gen get certificate
  • Check ingress: kubectl -n gen get ingresses
  • To run commands with input: kubectl -n gen exec --stdin *name of your pod* -- sh
Clone this wiki locally