
apiVersion: v1
kind: ConfigMap
metadata:
  name: uwsgi-ini-configmap 
data:
  uwsgi.ini: |
    [uwsgi]
    uwsgi-socket = 0.0.0.0:8000
    http-socket = 0.0.0.0:8001
    pidfile = /tmp/geonode.pid

    chdir = /usr/src/geonode/
    module = geonode.wsgi:application

    strict = false
    master = true
    enable-threads = true
    vacuum = true                        ; Delete sockets during shutdown
    single-interpreter = true
    die-on-term = true                   ; Shutdown when receiving SIGTERM (default is respawn)
    need-app = true

    # logging
    # path to where uwsgi logs will be saved
    # CHANGED IN KUBE TO LOG TO STDOUT
    # logto = /var/log/geonode.log

    touch-reload = /usr/src/geonode/geonode/wsgi.py
    buffer-size = 32768

    harakiri = 60                        ; forcefully kill workers after 60 seconds
    py-callos-afterfork = true           ; allow workers to trap signals

    max-requests = 1000                  ; Restart workers after this many requests
    max-worker-lifetime = 3600           ; Restart workers after this many seconds
    reload-on-rss = 2048                 ; Restart workers after this much resident memory
    worker-reload-mercy = 60             ; How long to wait before forcefully killing workers

    cheaper-algo = busyness
    processes = 128                      ; Maximum number of workers allowed
    cheaper = 8                          ; Minimum number of workers allowed
    cheaper-initial = 16                 ; Workers created at startup
    cheaper-overload = 1                 ; Length of a cycle in seconds
    cheaper-step = 16                    ; How many workers to spawn at a time

    cheaper-busyness-multiplier = 30     ; How many cycles to wait before killing workers
    cheaper-busyness-min = 20            ; Below this threshold, kill workers (if stable for multiplier cycles)
    cheaper-busyness-max = 70            ; Above this threshold, spawn new workers
    cheaper-busyness-backlog-alert = 16  ; Spawn emergency workers if more than this many requests are waiting in the queue
    cheaper-busyness-backlog-step = 2    ; How many emergency workers to create if there are too many requests in the queue

