1+ apiVersion : apps/v1
2+ kind : Deployment
3+ metadata :
4+ name : deployment
5+ spec :
6+ replicas : 1
7+ revisionHistoryLimit : 2
8+ selector :
9+ matchLabels :
10+ app : datatracker
11+ strategy :
12+ type : Recreate
13+ template :
14+ metadata :
15+ labels :
16+ app : datatracker
17+ spec :
18+ # -------------------------------------------------------
19+ # Node Affinity
20+ # -------------------------------------------------------
21+ nodeSelector :
22+ doks.digitalocean.com/node-pool : pool-apollo-hperf
23+ affinity :
24+ podAntiAffinity :
25+ preferredDuringSchedulingIgnoredDuringExecution :
26+ - weight : 100
27+ podAffinityTerm :
28+ labelSelector :
29+ matchExpressions :
30+ - key : app
31+ operator : In
32+ values :
33+ - mailarchive
34+ topologyKey : " kubernetes.io/hostname"
35+ # -------------------------------------------------------
36+ securityContext :
37+ runAsNonRoot : true
38+ containers :
39+ # -----------------------------------------------------
40+ # ScoutAPM Container
41+ # -----------------------------------------------------
42+ - name : scoutapm
43+ image : " scoutapp/scoutapm:version-1.4.0"
44+ imagePullPolicy : IfNotPresent
45+ livenessProbe :
46+ exec :
47+ command :
48+ - " sh"
49+ - " -c"
50+ - " ./core-agent probe --tcp 0.0.0.0:6590 | grep -q 'Agent found'"
51+ securityContext :
52+ readOnlyRootFilesystem : true
53+ runAsUser : 65534 # "nobody" user by default
54+ runAsGroup : 65534 # "nogroup" group by default
55+ # -----------------------------------------------------
56+ # Datatracker Container
57+ # -----------------------------------------------------
58+ - name : datatracker
59+ image : " ghcr.io/ietf-tools/datatracker:$APP_IMAGE_TAG"
60+ imagePullPolicy : Always
61+ ports :
62+ - containerPort : 80
63+ name : http
64+ protocol : TCP
65+ volumeMounts :
66+ - name : dt-vol
67+ mountPath : /a
68+ - name : dt-tmp
69+ mountPath : /tmp
70+ - name : dt-cfg
71+ mountPath : /workspace/ietf/settings_local.py
72+ subPath : settings_local.py
73+ envFrom :
74+ - configMapRef :
75+ name : django-config
76+ securityContext :
77+ allowPrivilegeEscalation : false
78+ capabilities :
79+ drop :
80+ - ALL
81+ readOnlyRootFilesystem : true
82+ runAsUser : 1000
83+ runAsGroup : 1000
84+ volumes :
85+ - name : dt-vol
86+ nfs :
87+ server : 10.108.0.18
88+ path : " /mnt/datatracker"
89+ readOnly : false
90+ - name : dt-tmp
91+ emptyDir :
92+ sizeLimit : " 2Gi"
93+ - name : dt-cfg
94+ configMap :
95+ name : files-cfgmap
96+ dnsPolicy : ClusterFirst
97+ restartPolicy : Always
98+ terminationGracePeriodSeconds : 30
99+ ---
100+ apiVersion : v1
101+ kind : ConfigMap
102+ metadata :
103+ name : django-config
104+ data :
105+ # n.b., these are debug values / non-secret secrets
106+ DATATRACKER_SERVER_MODE : " development" # development for staging, production for production
107+ DATATRACKER_ADMINS : |-
108+ Robert Sparks <rjsparks@nostrum.com>
109+ Ryan Cross <rcross@amsl.com>
110+ Kesara Rathnayake <kesara@staff.ietf.org>
111+ Jennifer Richards <jennifer@staff.ietf.org>
112+ Nicolas Giard <nick@staff.ietf.org>
113+ DATATRACKER_ALLOWED_HOSTS : " .ietf.org" # newline-separated list also allowed
114+ # DATATRACKER_DATATRACKER_DEBUG: "false"
115+
116+ # DB access details - needs to be filled in
117+ # DATATRACKER_DBHOST: "db"
118+ # DATATRACKER_DBPORT: "5432"
119+ # DATATRACKER_DBNAME: "datatracker"
120+ # DATATRACKER_DBUSER: "django" # secret
121+ # DATATRACKER_DBPASS: "RkTkDPFnKpko" # secret
122+
123+ DATATRACKER_DJANGO_SECRET_KEY : " PDwXboUq!=hPjnrtG2=ge#N$Dwy+wn@uivrugwpic8mxyPfHk" # secret
124+
125+ # Set this to point testing / staging at the production statics server until we
126+ # sort that out
127+ # DATATRACKER_STATIC_URL: "https://static.ietf.org/dt/12.10.0/"
128+
129+ # DATATRACKER_EMAIL_DEBUG: "true"
130+
131+ # Outgoing email details
132+ # DATATRACKER_EMAIL_HOST: "localhost" # defaults to localhost
133+ # DATATRACKER_EMAIL_PORT: "2025" # defaults to 2025
134+
135+ # The value here is the default from settings.py (i.e., not actually secret)
136+ DATATRACKER_NOMCOM_APP_SECRET_B64 : " m9pzMezVoFNJfsvU9XSZxGnXnwup6P5ZgCQeEnROOoQ=" # secret
137+
138+ DATATRACKER_IANA_SYNC_PASSWORD : " this-is-the-iana-sync-password" # secret
139+ DATATRACKER_RFC_EDITOR_SYNC_PASSWORD : " this-is-the-rfc-editor-sync-password" # secret
140+ DATATRACKER_YOUTUBE_API_KEY : " this-is-the-youtube-api-key" # secret
141+ DATATRACKER_GITHUB_BACKUP_API_KEY : " this-is-the-github-backup-api-key" # secret
142+
143+ # API key configuration
144+ DATATRACKER_API_KEY_TYPE : " ES265"
145+ # secret - value here is the default from settings.py (i.e., not actually secret)
146+ DATATRACKER_API_PUBLIC_KEY_PEM_B64 : |-
147+ Ci0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tCk1Ga3dFd1lIS29aSXpqMENBUVlJS
148+ 29aSXpqMERBUWNEUWdBRXFWb2pzYW9mREpTY3VNSk4rdHNodW15Tk01TUUKZ2Fyel
149+ ZQcWtWb3ZtRjZ5RTdJSi9kdjRGY1YrUUtDdEovck9TOGUzNlk4WkFFVll1dWtoZXM
150+ weVoxdz09Ci0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQo=
151+ # secret - value here is the default from settings.py (i.e., not actually secret)
152+ DATATRACKER_API_PRIVATE_KEY_PEM_B64 : |-
153+ Ci0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLQpNSUdIQWdFQU1CTUdCeXFHU000O
154+ UFnRUdDQ3FHU000OUF3RUhCRzB3YXdJQkFRUWdvSTZMSmtvcEtxOFhySGk5ClFxR1
155+ F2RTRBODNURllqcUx6KzhnVUxZZWNzcWhSQU5DQUFTcFdpT3hxaDhNbEp5NHdrMzY
156+ yeUc2Ykkwemt3U0IKcXZOVStxUldpK1lYcklUc2duOTIvZ1Z4WDVBb0swbitzNUx4
157+ N2ZwanhrQVJWaTY2U0Y2elRKblgKLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQo=
158+
159+ # DATATRACKER_MEETECHO_API_BASE: "https://meetings.conf.meetecho.com/api/v1/"
160+ DATATRACKER_MEETECHO_CLIENT_ID : " this-is-the-meetecho-client-id" # secret
161+ DATATRACKER_MEETECHO_CLIENT_SECRET : " this-is-the-meetecho-client-secret" # secret
162+
163+ # DATATRACKER_MATOMO_SITE_ID: "7" # must be present to enable Matomo
164+ # DATATRACKER_MATOMO_DOMAIN_PATH: "analytics.ietf.org"
165+
166+ CELERY_PASSWORD : " this-is-a-secret" # secret
167+
168+ DATATRACKER_APP_API_TOKENS_JSON : " {}" # secret
169+
170+ # use this to override default - one entry per line
171+ # DATATRACKER_CSRF_TRUSTED_ORIGINS: |-
172+ # https://datatracker.staging.ietf.org
173+
174+ # Scout configuration
175+ DATATRACKER_SCOUT_KEY : " this-is-the-scout-key"
176+ DATATRACKER_SCOUT_NAME : " StagingDatatracker"
177+ ---
178+ apiVersion : v1
179+ kind : Service
180+ metadata :
181+ name : datatracker
182+ spec :
183+ type : ClusterIP
184+ ports :
185+ - port : 80
186+ targetPort : http
187+ protocol : TCP
188+ name : http
189+ selector :
190+ app : datatracker
0 commit comments