diff --git a/osm-seed/templates/cgimap/cgimap-deployment.yaml b/osm-seed/templates/cgimap/cgimap-deployment.yaml index 9ce70584..c3f452d6 100644 --- a/osm-seed/templates/cgimap/cgimap-deployment.yaml +++ b/osm-seed/templates/cgimap/cgimap-deployment.yaml @@ -72,4 +72,18 @@ spec: nodeSelector: {{ .Values.cgimap.nodeSelector.label_key }} : {{ .Values.cgimap.nodeSelector.label_value }} {{- end }} + # Affinity settings + {{- if .Values.cgimap.nodeAffinity.enabled }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .Values.cgimap.nodeAffinity.key }} + operator: In + values: + {{- range .Values.cgimap.nodeAffinity.values }} + - {{ . | quote }} + {{- end }} + {{- end }} {{- end }} diff --git a/osm-seed/templates/db/db-backup-job.yaml b/osm-seed/templates/db/db-backup-job.yaml index 08df17c5..c1595bcf 100644 --- a/osm-seed/templates/db/db-backup-job.yaml +++ b/osm-seed/templates/db/db-backup-job.yaml @@ -19,6 +19,10 @@ spec: ttlSecondsAfterFinished: 300 template: spec: + {{- if $job.serviceAccount.enabled }} + serviceAccountName: {{ $job.serviceAccount.name }} + automountServiceAccountToken: true + {{- end }} containers: - name: {{ $job.name }}-backup-job image: {{ $.Values.dbBackupRestore.image.name }}:{{ $.Values.dbBackupRestore.image.tag }} @@ -155,6 +159,19 @@ spec: nodeSelector: {{ $job.nodeSelector.label_key }} : {{ $job.nodeSelector.label_value }} {{- end }} + {{- if $job.nodeAffinity.enabled }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ $job.nodeAffinity.key }} + operator: In + values: + {{- range $job.nodeAffinity.values }} + - {{ . | quote }} + {{- end }} + {{- end }} --- {{- end }} {{- end }} diff --git a/osm-seed/templates/db/db-statefulset.yaml b/osm-seed/templates/db/db-statefulset.yaml index dee980ef..c999445f 100644 --- a/osm-seed/templates/db/db-statefulset.yaml +++ b/osm-seed/templates/db/db-statefulset.yaml @@ -118,4 +118,17 @@ spec: nodeSelector: {{ .Values.db.nodeSelector.label_key }} : {{ .Values.db.nodeSelector.label_value }} {{- end }} + {{- if .Values.db.nodeAffinity.enabled }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .Values.db.nodeAffinity.key }} + operator: In + values: + {{- range .Values.db.nodeAffinity.values }} + - {{ . | quote }} + {{- end }} + {{- end }} {{- end }} diff --git a/osm-seed/templates/jobs/changeset-replication-job-deployment.yaml b/osm-seed/templates/jobs/changeset-replication-job-deployment.yaml index 0f672714..10fc1645 100644 --- a/osm-seed/templates/jobs/changeset-replication-job-deployment.yaml +++ b/osm-seed/templates/jobs/changeset-replication-job-deployment.yaml @@ -18,6 +18,10 @@ spec: labels: app: {{ template "osm-seed.name" . }} spec: + {{- if .Values.changesetReplicationJob.serviceAccount.enabled }} + serviceAccountName: {{ .Values.changesetReplicationJob.serviceAccount.name }} + automountServiceAccountToken: true + {{- end }} containers: - name: {{ .Release.Name }}-changeset-replication-job-deployment image: {{ .Values.changesetReplicationJob.image.name }}:{{ .Values.changesetReplicationJob.image.tag }} @@ -72,4 +76,18 @@ spec: nodeSelector: {{ .Values.changesetReplicationJob.nodeSelector.label_key }} : {{ .Values.changesetReplicationJob.nodeSelector.label_value }} {{- end }} + # Affinity settings + {{- if .Values.changesetReplicationJob.nodeAffinity.enabled }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .Values.changesetReplicationJob.nodeAffinity.key }} + operator: In + values: + {{- range .Values.changesetReplicationJob.nodeAffinity.values }} + - {{ . | quote }} + {{- end }} + {{- end }} {{- end }} \ No newline at end of file diff --git a/osm-seed/templates/jobs/full-history-job.yaml b/osm-seed/templates/jobs/full-history-job.yaml index a0812929..f7a7d897 100644 --- a/osm-seed/templates/jobs/full-history-job.yaml +++ b/osm-seed/templates/jobs/full-history-job.yaml @@ -19,6 +19,10 @@ spec: ttlSecondsAfterFinished: 300 template: spec: + {{- if .Values.fullHistory.serviceAccount.enabled }} + serviceAccountName: {{ .Values.fullHistory.serviceAccount.name }} + automountServiceAccountToken: true + {{- end }} containers: - name: {{ .Release.Name }}-full-history-job image: {{ .Values.fullHistory.image.name }}:{{ .Values.fullHistory.image.tag }} @@ -82,5 +86,19 @@ spec: nodeSelector: {{ .Values.fullHistory.nodeSelector.label_key }} : {{ .Values.fullHistory.nodeSelector.label_value }} {{- end }} + # Affinity settings + {{- if .Values.fullHistory.nodeAffinity.enabled }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .Values.fullHistory.nodeAffinity.key }} + operator: In + values: + {{- range .Values.fullHistory.nodeAffinity.values }} + - {{ . | quote }} + {{- end }} + {{- end }} backoffLimit: 3 {{- end }} \ No newline at end of file diff --git a/osm-seed/templates/jobs/osm-simple-metrics-job.yaml b/osm-seed/templates/jobs/osm-simple-metrics-job.yaml index 5090d038..7df68664 100644 --- a/osm-seed/templates/jobs/osm-simple-metrics-job.yaml +++ b/osm-seed/templates/jobs/osm-simple-metrics-job.yaml @@ -19,6 +19,10 @@ spec: ttlSecondsAfterFinished: 300 template: spec: + {{- if .Values.osmSimpleMetrics.serviceAccount.enabled }} + serviceAccountName: {{ .Values.osmSimpleMetrics.serviceAccount.name }} + automountServiceAccountToken: true + {{- end }} containers: - name: {{ .Release.Name }}-osm-simple-metrics-job image: {{ .Values.osmSimpleMetrics.image.name }}:{{ .Values.osmSimpleMetrics.image.tag }} @@ -66,4 +70,18 @@ spec: nodeSelector: {{ .Values.osmSimpleMetrics.nodeSelector.label_key }}: {{ .Values.osmSimpleMetrics.nodeSelector.label_value }} {{- end }} + # Affinity settings + {{- if .Values.osmSimpleMetrics.nodeAffinity.enabled }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .Values.osmSimpleMetrics.nodeAffinity.key }} + operator: In + values: + {{- range .Values.osmSimpleMetrics.nodeAffinity.values }} + - {{ . | quote }} + {{- end }} + {{- end }} {{- end }} diff --git a/osm-seed/templates/jobs/planet-dump-job.yaml b/osm-seed/templates/jobs/planet-dump-job.yaml index 21a75be9..e378b3b9 100644 --- a/osm-seed/templates/jobs/planet-dump-job.yaml +++ b/osm-seed/templates/jobs/planet-dump-job.yaml @@ -19,9 +19,9 @@ spec: ttlSecondsAfterFinished: 300 template: spec: - {{- if .Values.planetDump.nodeSelector.enabled }} - nodeSelector: - {{ .Values.planetDump.nodeSelector.label_key }} : {{ .Values.planetDump.nodeSelector.label_value }} + {{- if .Values.planetDump.serviceAccount.enabled }} + serviceAccountName: {{ .Values.planetDump.serviceAccount.name }} + automountServiceAccountToken: true {{- end }} containers: - name: {{ .Release.Name }}-planet-dump-job @@ -82,5 +82,23 @@ spec: value: {{ .Values.planetDump.resources.requests.memory | default "2Gi" | quote}} {{- end }} restartPolicy: OnFailure + {{- if .Values.planetDump.nodeSelector.enabled }} + nodeSelector: + {{ .Values.planetDump.nodeSelector.label_key }} : {{ .Values.planetDump.nodeSelector.label_value }} + {{- end }} + # Affinity settings + {{- if .Values.planetDump.nodeAffinity.enabled }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .Values.planetDump.nodeAffinity.key }} + operator: In + values: + {{- range .Values.planetDump.nodeAffinity.values }} + - {{ . | quote }} + {{- end }} + {{- end }} backoffLimit: 3 {{- end }} \ No newline at end of file diff --git a/osm-seed/templates/jobs/populate-apidb-job.yaml b/osm-seed/templates/jobs/populate-apidb-job.yaml index 5377718a..706ef954 100644 --- a/osm-seed/templates/jobs/populate-apidb-job.yaml +++ b/osm-seed/templates/jobs/populate-apidb-job.yaml @@ -11,6 +11,10 @@ metadata: spec: template: spec: + {{- if .Values.populateApidb.serviceAccount.enabled }} + serviceAccountName: {{ .Values.populateApidb.serviceAccount.name }} + automountServiceAccountToken: true + {{- end }} containers: - name: {{ .Release.Name }}-populate-apidb-job image: {{ .Values.populateApidb.image.name }}:{{ .Values.populateApidb.image.tag }} @@ -44,4 +48,18 @@ spec: nodeSelector: {{ .Values.populateApidb.nodeSelector.label_key }} : {{ .Values.populateApidb.nodeSelector.label_value }} {{- end }} + # Affinity settings + {{- if .Values.populateApidb.nodeAffinity.enabled }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .Values.populateApidb.nodeAffinity.key }} + operator: In + values: + {{- range .Values.populateApidb.nodeAffinity.values }} + - {{ . | quote }} + {{- end }} + {{- end }} {{- end }} \ No newline at end of file diff --git a/osm-seed/templates/jobs/replication-job-deployment.yaml b/osm-seed/templates/jobs/replication-job-deployment.yaml index 1851906c..9e0ba5bd 100644 --- a/osm-seed/templates/jobs/replication-job-deployment.yaml +++ b/osm-seed/templates/jobs/replication-job-deployment.yaml @@ -18,6 +18,10 @@ spec: labels: app: {{ template "osm-seed.name" . }} spec: + {{- if .Values.replicationJob.serviceAccount.enabled }} + serviceAccountName: {{ .Values.replicationJob.serviceAccount.name }} + automountServiceAccountToken: true + {{- end }} priorityClassName: {{ .Release.Name }}-{{ .Values.replicationJob.priorityClass | default "high-priority" }} containers: - name: {{ .Release.Name }}-replication-job-deployment @@ -89,4 +93,18 @@ spec: nodeSelector: {{ .Values.replicationJob.nodeSelector.label_key }} : {{ .Values.replicationJob.nodeSelector.label_value }} {{- end }} + # Affinity settings + {{- if .Values.replicationJob.nodeAffinity.enabled }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .Values.replicationJob.nodeAffinity.key }} + operator: In + values: + {{- range .Values.replicationJob.nodeAffinity.values }} + - {{ . | quote }} + {{- end }} + {{- end }} {{- end }} \ No newline at end of file diff --git a/osm-seed/templates/jobs/replication-monitoring-job.yaml b/osm-seed/templates/jobs/replication-monitoring-job.yaml index ff07c7e6..d0b054c4 100644 --- a/osm-seed/templates/jobs/replication-monitoring-job.yaml +++ b/osm-seed/templates/jobs/replication-monitoring-job.yaml @@ -19,9 +19,9 @@ spec: ttlSecondsAfterFinished: 60 template: spec: - {{- if .Values.monitoringReplication.nodeSelector.enabled }} - nodeSelector: - {{ .Values.monitoringReplication.nodeSelector.label_key }} : {{ .Values.monitoringReplication.nodeSelector.label_value }} + {{- if .Values.monitoringReplication.serviceAccount.enabled }} + serviceAccountName: {{ .Values.monitoringReplication.serviceAccount.name }} + automountServiceAccountToken: true {{- end }} containers: - name: {{ .Release.Name }}-replication-monitoring-job @@ -78,5 +78,23 @@ spec: value: {{ .Values.monitoringReplication.resources.requests.memory | default "2Gi" | quote}} {{- end }} restartPolicy: OnFailure + {{- if .Values.monitoringReplication.nodeSelector.enabled }} + nodeSelector: + {{ .Values.monitoringReplication.nodeSelector.label_key }} : {{ .Values.monitoringReplication.nodeSelector.label_value }} + {{- end }} + # Affinity settings + {{- if .Values.monitoringReplication.nodeAffinity.enabled }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .Values.monitoringReplication.nodeAffinity.key }} + operator: In + values: + {{- range .Values.monitoringReplication.nodeAffinity.values }} + - {{ . | quote }} + {{- end }} + {{- end }} backoffLimit: 3 {{- end }} \ No newline at end of file diff --git a/osm-seed/templates/memcached/memcached-deployment.yml b/osm-seed/templates/memcached/memcached-deployment.yml index cebad86e..cf9ed54e 100644 --- a/osm-seed/templates/memcached/memcached-deployment.yml +++ b/osm-seed/templates/memcached/memcached-deployment.yml @@ -43,4 +43,18 @@ spec: nodeSelector: {{ .Values.memcached.nodeSelector.label_key }} : {{ .Values.memcached.nodeSelector.label_value }} {{- end }} + # Affinity settings + {{- if .Values.memcached.nodeAffinity.enabled }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .Values.memcached.nodeAffinity.key }} + operator: In + values: + {{- range .Values.memcached.nodeAffinity.values }} + - {{ . | quote }} + {{- end }} + {{- end }} {{- end }} \ No newline at end of file diff --git a/osm-seed/templates/nominatim-api/nominatim-statefulset.yaml b/osm-seed/templates/nominatim-api/nominatim-statefulset.yaml index fc0aaa5b..bf83a75e 100644 --- a/osm-seed/templates/nominatim-api/nominatim-statefulset.yaml +++ b/osm-seed/templates/nominatim-api/nominatim-statefulset.yaml @@ -124,4 +124,18 @@ spec: nodeSelector: {{ .Values.nominatimApi.nodeSelector.label_key }} : {{ .Values.nominatimApi.nodeSelector.label_value }} {{- end }} + # Affinity settings + {{- if .Values.nominatimApi.nodeAffinity.enabled }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .Values.nominatimApi.nodeAffinity.key }} + operator: In + values: + {{- range .Values.nominatimApi.nodeAffinity.values }} + - {{ . | quote }} + {{- end }} + {{- end }} {{- end }} diff --git a/osm-seed/templates/osmcha-app/deployment.yaml b/osm-seed/templates/osmcha-app/deployment.yaml index 52475326..51ad624f 100644 --- a/osm-seed/templates/osmcha-app/deployment.yaml +++ b/osm-seed/templates/osmcha-app/deployment.yaml @@ -88,5 +88,19 @@ spec: nodeSelector: {{ .Values.osmchaApi.nodeSelector.label_key }} : {{ .Values.osmchaApi.nodeSelector.label_value }} {{- end }} + # Affinity settings + {{- if .Values.osmchaApi.nodeAffinity.enabled }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .Values.osmchaApi.nodeAffinity.key }} + operator: In + values: + {{- range .Values.osmchaApi.nodeAffinity.values }} + - {{ . | quote }} + {{- end }} + {{- end }} {{- end }} diff --git a/osm-seed/templates/osmcha-db/osmcha-db-statefulset.yaml b/osm-seed/templates/osmcha-db/osmcha-db-statefulset.yaml index c196ce25..25088c40 100644 --- a/osm-seed/templates/osmcha-db/osmcha-db-statefulset.yaml +++ b/osm-seed/templates/osmcha-db/osmcha-db-statefulset.yaml @@ -96,4 +96,18 @@ spec: nodeSelector: {{ .Values.osmchaDb.nodeSelector.label_key }} : {{ .Values.osmchaDb.nodeSelector.label_value }} {{- end }} + # Affinity settings + {{- if .Values.osmchaDb.nodeAffinity.enabled }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .Values.osmchaDb.nodeAffinity.key }} + operator: In + values: + {{- range .Values.osmchaDb.nodeAffinity.values }} + - {{ . | quote }} + {{- end }} + {{- end }} {{- end }} diff --git a/osm-seed/templates/overpass-api/overpass-api-statefulset.yaml b/osm-seed/templates/overpass-api/overpass-api-statefulset.yaml index b04e1f96..f4ea9a15 100644 --- a/osm-seed/templates/overpass-api/overpass-api-statefulset.yaml +++ b/osm-seed/templates/overpass-api/overpass-api-statefulset.yaml @@ -92,4 +92,18 @@ spec: nodeSelector: {{ .Values.overpassApi.nodeSelector.label_key }} : {{ .Values.overpassApi.nodeSelector.label_value }} {{- end }} + # Affinity settings + {{- if .Values.overpassApi.nodeAffinity.enabled }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .Values.overpassApi.nodeAffinity.key }} + operator: In + values: + {{- range .Values.overpassApi.nodeAffinity.values }} + - {{ . | quote }} + {{- end }} + {{- end }} {{- end }} diff --git a/osm-seed/templates/taginfo/taginfo-deployment.yaml b/osm-seed/templates/taginfo/taginfo-deployment.yaml index 2acf87df..03465c83 100644 --- a/osm-seed/templates/taginfo/taginfo-deployment.yaml +++ b/osm-seed/templates/taginfo/taginfo-deployment.yaml @@ -22,6 +22,10 @@ spec: release: {{ .Release.Name }} run: {{ .Release.Name }}-taginfo-web spec: + {{- if .Values.taginfo.serviceAccount.enabled }} + serviceAccountName: {{ .Values.taginfo.serviceAccount.name }} + automountServiceAccountToken: true + {{- end }} priorityClassName: {{ .Release.Name }}-{{ .Values.taginfo.priorityClass | default "medium-priority" }} containers: - name: {{ .Chart.Name }}-taginfo @@ -61,4 +65,18 @@ spec: nodeSelector: {{ .Values.taginfo.nodeSelector.label_key }} : {{ .Values.taginfo.nodeSelector.label_value }} {{- end }} + # Affinity settings + {{- if .Values.taginfo.nodeAffinity.enabled }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .Values.taginfo.nodeAffinity.key }} + operator: In + values: + {{- range .Values.taginfo.nodeAffinity.values }} + - {{ . | quote }} + {{- end }} + {{- end }} {{- end }} diff --git a/osm-seed/templates/tasking-manager-api/tm-deployment.yaml b/osm-seed/templates/tasking-manager-api/tm-deployment.yaml index 8ba044da..3a04c211 100644 --- a/osm-seed/templates/tasking-manager-api/tm-deployment.yaml +++ b/osm-seed/templates/tasking-manager-api/tm-deployment.yaml @@ -69,4 +69,18 @@ spec: nodeSelector: {{ .Values.tmApi.nodeSelector.label_key }} : {{ .Values.tmApi.nodeSelector.label_value }} {{- end }} + # Affinity settings + {{- if .Values.tmApi.nodeAffinity.enabled }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .Values.tmApi.nodeAffinity.key }} + operator: In + values: + {{- range .Values.tmApi.nodeAffinity.values }} + - {{ . | quote }} + {{- end }} + {{- end }} {{- end }} \ No newline at end of file diff --git a/osm-seed/templates/tasking-manager-db/tm-db-statefulset.yaml b/osm-seed/templates/tasking-manager-db/tm-db-statefulset.yaml index 1774d3a0..a1dd3b63 100644 --- a/osm-seed/templates/tasking-manager-db/tm-db-statefulset.yaml +++ b/osm-seed/templates/tasking-manager-db/tm-db-statefulset.yaml @@ -103,4 +103,18 @@ spec: nodeSelector: {{ .Values.tmDb.nodeSelector.label_key }} : {{ .Values.tmDb.nodeSelector.label_value }} {{- end }} + # Affinity settings + {{- if .Values.tmDb.nodeAffinity.enabled }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .Values.tmDb.nodeAffinity.key }} + operator: In + values: + {{- range .Values.tmDb.nodeAffinity.values }} + - {{ . | quote }} + {{- end }} + {{- end }} {{- end }} diff --git a/osm-seed/templates/tiler-db/tiler-db-statefulset.yaml b/osm-seed/templates/tiler-db/tiler-db-statefulset.yaml index f9ccd242..ef37697e 100644 --- a/osm-seed/templates/tiler-db/tiler-db-statefulset.yaml +++ b/osm-seed/templates/tiler-db/tiler-db-statefulset.yaml @@ -106,5 +106,19 @@ spec: nodeSelector: {{ .Values.tilerDb.nodeSelector.label_key }} : {{ .Values.tilerDb.nodeSelector.label_value }} {{- end }} + # Affinity settings + {{- if .Values.tilerDb.nodeAffinity.enabled }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .Values.tilerDb.nodeAffinity.key }} + operator: In + values: + {{- range .Values.tilerDb.nodeAffinity.values }} + - {{ . | quote }} + {{- end }} + {{- end }} {{- end }} {{- end }} diff --git a/osm-seed/templates/tiler-imposm/tiler-imposm-statefulset.yaml b/osm-seed/templates/tiler-imposm/tiler-imposm-statefulset.yaml index ade99bd9..ffb71e04 100644 --- a/osm-seed/templates/tiler-imposm/tiler-imposm-statefulset.yaml +++ b/osm-seed/templates/tiler-imposm/tiler-imposm-statefulset.yaml @@ -19,6 +19,10 @@ spec: labels: app: {{ .Release.Name }}-tiler-imposm-sts spec: + {{- if .Values.tilerImposm.serviceAccount.enabled }} + serviceAccountName: {{ .Values.tilerImposm.serviceAccount.name }} + automountServiceAccountToken: true + {{- end }} priorityClassName: {{ .Release.Name }}-{{ .Values.tilerImposm.priorityClass | default "medium-priority" }} containers: - name: {{ .Release.Name }}-tiler-imposm-sts @@ -98,4 +102,18 @@ spec: nodeSelector: {{ .Values.tilerImposm.nodeSelector.label_key }} : {{ .Values.tilerImposm.nodeSelector.label_value }} {{- end }} + # Affinity settings + {{- if .Values.tilerImposm.nodeAffinity.enabled }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .Values.tilerImposm.nodeAffinity.key }} + operator: In + values: + {{- range .Values.tilerImposm.nodeAffinity.values }} + - {{ . | quote }} + {{- end }} + {{- end }} {{- end }} diff --git a/osm-seed/templates/tiler-server/tiler-server-cache-cleaner-deployment.yaml b/osm-seed/templates/tiler-server/tiler-server-cache-cleaner-deployment.yaml index 3ec0915f..b84ff55c 100644 --- a/osm-seed/templates/tiler-server/tiler-server-cache-cleaner-deployment.yaml +++ b/osm-seed/templates/tiler-server/tiler-server-cache-cleaner-deployment.yaml @@ -20,6 +20,10 @@ spec: labels: app: {{ template "osm-seed.name" . }} spec: + {{- if .Values.tilerServerCacheCleaner.serviceAccount.enabled }} + serviceAccountName: {{ .Values.tilerServerCacheCleaner.serviceAccount.name }} + automountServiceAccountToken: true + {{- end }} containers: - name: {{ .Release.Name }}-tiler-server-cache-cleaner-deployment image: {{ .Values.tilerServer.image.name }}:{{ .Values.tilerServer.image.tag }} @@ -40,6 +44,20 @@ spec: nodeSelector: {{ .Values.tilerServerCacheCleaner.nodeSelector.label_key }} : {{ .Values.tilerServerCacheCleaner.nodeSelector.label_value }} {{- end }} + # Affinity settings + {{- if .Values.tilerServerCacheCleaner.nodeAffinity.enabled }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .Values.tilerServerCacheCleaner.nodeAffinity.key }} + operator: In + values: + {{- range .Values.tilerServerCacheCleaner.nodeAffinity.values }} + - {{ . | quote }} + {{- end }} + {{- end }} {{- end }} {{- end }} {{- end }} \ No newline at end of file diff --git a/osm-seed/templates/tiler-server/tiler-server-deployment.yaml b/osm-seed/templates/tiler-server/tiler-server-deployment.yaml index 883ea298..6efc0ec5 100644 --- a/osm-seed/templates/tiler-server/tiler-server-deployment.yaml +++ b/osm-seed/templates/tiler-server/tiler-server-deployment.yaml @@ -24,6 +24,10 @@ spec: run: {{ .Release.Name }}-tiler-server spec: priorityClassName: {{ .Release.Name }}-{{ .Values.tilerServer.priorityClass | default "medium-priority" }} + {{- if .Values.tilerServer.serviceAccount.enabled }} + serviceAccountName: {{ .Values.tilerServer.serviceAccount.name }} + automountServiceAccountToken: true + {{- end }} containers: - name: {{ .Chart.Name }}-tiler-server image: "{{ .Values.tilerServer.image.name }}:{{ .Values.tilerServer.image.tag }}" @@ -60,5 +64,19 @@ spec: nodeSelector: {{ .Values.tilerServer.nodeSelector.label_key }} : {{ .Values.tilerServer.nodeSelector.label_value }} {{- end }} + # Affinity settings + {{- if .Values.tilerServer.nodeAffinity.enabled }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .Values.tilerServer.nodeAffinity.key }} + operator: In + values: + {{- range .Values.tilerServer.nodeAffinity.values }} + - {{ . | quote }} + {{- end }} + {{- end }} {{- end }} {{- end }} diff --git a/osm-seed/templates/tiler-server/tiler-server-statefulset.yaml b/osm-seed/templates/tiler-server/tiler-server-statefulset.yaml index 40cea078..c7078ce9 100644 --- a/osm-seed/templates/tiler-server/tiler-server-statefulset.yaml +++ b/osm-seed/templates/tiler-server/tiler-server-statefulset.yaml @@ -25,6 +25,10 @@ spec: run: {{ .Release.Name }}-tiler-server spec: priorityClassName: {{ .Release.Name }}-{{ .Values.tilerServer.priorityClass | default "medium-priority" }} + {{- if .Values.tilerServer.serviceAccount.enabled }} + serviceAccountName: {{ .Values.tilerServer.serviceAccount.name }} + automountServiceAccountToken: true + {{- end }} containers: - name: {{ .Chart.Name }}-tiler-server image: "{{ .Values.tilerServer.image.name }}:{{ .Values.tilerServer.image.tag }}" @@ -73,5 +77,19 @@ spec: nodeSelector: {{ .Values.tilerServer.nodeSelector.label_key }} : {{ .Values.tilerServer.nodeSelector.label_value }} {{- end }} + # Affinity settings + {{- if .Values.tilerServer.nodeAffinity.enabled }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .Values.tilerServer.nodeAffinity.key }} + operator: In + values: + {{- range .Values.tilerServer.nodeAffinity.values }} + - {{ . | quote }} + {{- end }} + {{- end }} {{- end }} {{- end }} diff --git a/osm-seed/templates/web/web-deployment.yaml b/osm-seed/templates/web/web-deployment.yaml index dca9eca3..d51eed99 100644 --- a/osm-seed/templates/web/web-deployment.yaml +++ b/osm-seed/templates/web/web-deployment.yaml @@ -22,6 +22,10 @@ spec: release: {{ .Release.Name }} run: {{ .Release.Name }}-web spec: + {{- if .Values.web.serviceAccount.enabled }} + serviceAccountName: {{ .Values.web.serviceAccount.name }} + automountServiceAccountToken: true + {{- end }} priorityClassName: {{ .Release.Name }}-{{ .Values.web.priorityClass | default "high-priority" }} containers: - name: {{ .Chart.Name }}-web @@ -190,4 +194,28 @@ spec: nodeSelector: {{ .Values.web.nodeSelector.label_key }} : {{ .Values.web.nodeSelector.label_value }} {{- end }} + # Node affinity + {{- if .Values.web.nodeAffinity.enabled }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: {{ .Values.web.nodeAffinity.key }} + operator: In + values: + {{- range .Values.web.nodeAffinity.values }} + - {{ . | quote }} + {{- end }} + # Pod anti-affinity, to set that no two pods are scheduled on the same node + {{- if .Values.web.podAntiAffinity.enabled }} + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app: {{ template "osm-seed.name" . }} + component: web-deployment + topologyKey: "kubernetes.io/hostname" + {{- end }} + {{- end }} {{- end }} diff --git a/osm-seed/templates/web/web-hpa.yaml b/osm-seed/templates/web/web-hpa.yaml index 82684065..91c702fb 100644 --- a/osm-seed/templates/web/web-hpa.yaml +++ b/osm-seed/templates/web/web-hpa.yaml @@ -11,7 +11,7 @@ spec: minReplicas: {{ .Values.web.autoscaling.minReplicas }} maxReplicas: {{ .Values.web.autoscaling.maxReplicas }} metrics: - {{- if .Values.web.autoscaling.cpuUtilization.enable }} + {{- if .Values.web.autoscaling.cpuUtilization.enabled }} - type: Resource resource: name: cpu @@ -19,7 +19,7 @@ spec: type: Utilization averageUtilization: {{ .Values.web.autoscaling.cpuUtilization.value }} {{- end }} - {{- if .Values.web.autoscaling.memoryUtilization.enable }} + {{- if .Values.web.autoscaling.memoryUtilization.enabled }} - type: Resource resource: name: memory diff --git a/osm-seed/values.yaml b/osm-seed/values.yaml index 7158b8f2..b6e76723 100644 --- a/osm-seed/values.yaml +++ b/osm-seed/values.yaml @@ -135,7 +135,10 @@ db: max_worker_processes = 4 max_parallel_workers_per_gather = 2 max_parallel_workers = 4 - + nodeAffinity: + enabled: false + key: "nodegroup_type" + values: ["database"] # ==================================================================================================== # Variables for osm-seed website # ==================================================================================================== @@ -144,6 +147,9 @@ web: image: name: "" tag: "" + serviceAccount: + enabled: true + name: ohm-web-s3-bucket-access-staging priorityClass: "high-priority" replicaCount: 1 ingressDomain: www.dev.osmseed.org @@ -206,16 +212,19 @@ web: periodSeconds: 60 sharedMemorySize: 256Mi livenessProbeExec: true + + nodeAffinity: + enabled: true + key: "nodegroup_type" + values: ["web"] + podAntiAffinity: # To set that no two pods are scheduled on the same node + enabled: false # ==================================================================================================== # Variables for memcached. Memcached is used to store session cookies # ==================================================================================================== memcached: enabled: false priorityClass: "high-priority" - nodeSelector: - enabled: false - label_key: nodegroup_type - label_value: web resources: enabled: false requests: @@ -226,7 +235,14 @@ memcached: enabled: false memory: "2Gi" cpu: "2" - + nodeSelector: + enabled: false + label_key: nodegroup_type + label_value: web + nodeAffinity: + enabled: false + key: "nodegroup_type" + values: ["web"] # ==================================================================================================== # Cgimap # ==================================================================================================== @@ -246,27 +262,32 @@ cgimap: enabled: false memory: "2Gi" cpu: "2" - nodeSelector: - enabled: false autoscaling: enabled: false minReplicas: 2 maxReplicas: 4 cpuUtilization: 60 memoryUtilization: 60 + nodeSelector: + enabled: false + label_key: nodegroup_type + label_value: web + nodeAffinity: + enabled: false + key: "nodegroup_type" + values: ["web"] # ==================================================================================================== # Variables for full-history container # ==================================================================================================== fullHistory: enabled: false - priorityClass: "low-priority" image: name: "" tag: "" - nodeSelector: - enabled: false - label_key: nodegroup-type - label_value: ohm-non-tiler + priorityClass: "low-priority" + serviceAccount: + enabled: true + name: ohm-web-s3-bucket-access-staging schedule: "* * * * *" env: OVERWRITE_FHISTORY_FILE: false @@ -284,6 +305,14 @@ fullHistory: enabled: false memory: "2Gi" cpu: "2" + nodeSelector: + enabled: false + label_key: nodegroup_type + label_value: web + nodeAffinity: + enabled: false + key: "nodegroup_type" + values: ["web"] # ==================================================================================================== # Variables for osm-seed database backup and restore # ==================================================================================================== @@ -293,6 +322,9 @@ dbBackupRestore: tag: "0.1.0-0.dev.git.942.h994af82" cronjobs: - name: web-db + serviceAccount: + enabled: true + name: ohm-web-s3-bucket-access-staging enabled: false schedule: "* * * * *" env: @@ -318,8 +350,17 @@ dbBackupRestore: cpu: "2" nodeSelector: enabled: false + label_key: nodegroup_type + label_value: web + nodeAffinity: + enabled: false + key: "nodegroup_type" + values: ["web"] - name: osmcha-db enabled: false + serviceAccount: + enabled: true + name: ohm-web-s3-bucket-access-staging schedule: "* * * * *" env: # DB action: backup/restore @@ -344,6 +385,12 @@ dbBackupRestore: cpu: "2" nodeSelector: enabled: false + label_key: nodegroup_type + label_value: web + nodeAffinity: + enabled: false + key: "nodegroup_type" + values: ["web"] # ==================================================================================================== # Variables for osm-seed for osmosis, this configuration os to get the planet dump files from apidb # ==================================================================================================== @@ -352,6 +399,9 @@ planetDump: image: name: "" tag: "" + serviceAccount: + enabled: true + name: ohm-web-s3-bucket-access-staging priorityClass: "medium-priority" schedule: "* * * * *" env: @@ -372,6 +422,12 @@ planetDump: cpu: "2" nodeSelector: enabled: false + label_key: nodegroup_type + label_value: web + nodeAffinity: + enabled: false + key: "nodegroup_type" + values: ["web"] # ==================================================================================================== # Variables for replication-job, Configuration to create the replication files by, minute, hour, or day # ==================================================================================================== @@ -380,6 +436,9 @@ replicationJob: image: name: "" tag: "" + serviceAccount: + enabled: true + name: ohm-web-s3-bucket-access-staging priorityClass: "medium-priority" env: ENABLE_SEND_SLACK_MESSAGE: "false" @@ -396,15 +455,24 @@ replicationJob: cpu: "2" nodeSelector: enabled: false + label_key: nodegroup_type + label_value: web + nodeAffinity: + enabled: false + key: "nodegroup_type" + values: ["web"] # ==================================================================================================== # Variables for osm-seed to pupulate the apidb # ==================================================================================================== populateApidb: enabled: false - priorityClass: "medium-priority" image: name: "" tag: "" + priorityClass: "medium-priority" + serviceAccount: + enabled: true + name: ohm-web-s3-bucket-access-staging env: URL_FILE_TO_IMPORT: "http://download.geofabrik.de/europe/monaco-latest.osm.pbf" resources: @@ -417,6 +485,14 @@ populateApidb: enabled: false memory: "2Gi" cpu: "2" + nodeSelector: + enabled: false + label_key: nodegroup_type + label_value: web + nodeAffinity: + enabled: false + key: "nodegroup_type" + values: ["web"] # ==================================================================================================== # Variables to start a pod to process osm files # ==================================================================================================== @@ -486,10 +562,6 @@ tilerDb: enabled: false memory: "2Gi" cpu: "2" - nodeSelector: - enabled: false - label_key: nodegroup_type - label_value: tiler # To use postgresqlConfig, you need to have already $PGDATA set up in a persistent disk postgresqlConfig: enabled: false @@ -510,6 +582,15 @@ tilerDb: max_worker_processes = 4 max_parallel_workers_per_gather = 2 max_parallel_workers = 4 + nodeSelector: + enabled: false + label_key: nodegroup_type + label_value: web + nodeAffinity: + enabled: false + key: "nodegroup_type" + values: ["web"] + # ==================================================================================================== # Variables for tiler-imposm # ==================================================================================================== @@ -518,6 +599,9 @@ tilerImposm: image: name: "" tag: "" + serviceAccount: + enabled: true + name: ohm-web-s3-bucket-access-staging priorityClass: "medium-priority" env: TILER_IMPORT_FROM: osm @@ -555,20 +639,27 @@ tilerImposm: nodeSelector: enabled: false label_key: nodegroup_type - label_value: tiler + label_value: web + nodeAffinity: + enabled: false + key: "nodegroup_type" + values: ["web"] # ==================================================================================================== # Variables for tiler-server # ==================================================================================================== tilerServer: enabled: false + image: + name: "" + tag: "" externalService: enabled: true ip: "37.1.1.5" port: 9090 - image: - name: "" - tag: "" priorityClass: "medium-priority" + serviceAccount: + enabled: true + name: ohm-s3-bucket-access-staging replicaCount: 1 serviceAnnotations: {} ingressDomain: tiler2.dev.openhistoricalmap.org @@ -612,15 +703,24 @@ tilerServer: nodeSelector: enabled: false label_key: nodegroup_type - label_value: tiler - autoscaling: + label_value: web + nodeAffinity: enabled: false + key: "nodegroup_type" + values: ["web"] + # ==================================================================================================== # Variables for tiler-server cache cleaner, only avaliable in case the TILER_CACHE_TYPE = s3 # ==================================================================================================== tilerServerCacheCleaner: enabled: false + image: + name: "" + tag: "" priorityClass: "medium-priority" + serviceAccount: + enabled: true + name: ohm-web-s3-bucket-access-staging replicaCount: 1 command: "./tile_cache_downloader.sh & ./expire-watcher.sh" resources: @@ -637,18 +737,25 @@ tilerServerCacheCleaner: KILL_PROCESS: manually MAX_NUM_PS: 3 PROCESS_NAME: tegola - nodeSelector: - enabled: false - label_key: nodegroup_type - label_value: tiler autoscaling: enabled: false minReplicas: 1 maxReplicas: 2 cpuUtilization: 60 + nodeSelector: + enabled: false + label_key: nodegroup_type + label_value: web + nodeAffinity: + enabled: false + key: "nodegroup_type" + values: ["web"] tilerCacheCleanerJob: enabled: false + image: + name: "" + tag: "" priorityClass: "medium-priority" tilesFile: imposm/imposm3_expire_dir/latest.tiles minZoom: 0 @@ -664,6 +771,14 @@ tilerCacheCleanerJob: enabled: false memory: "2Gi" cpu: "2" + nodeSelector: + enabled: false + label_key: nodegroup_type + label_value: web + nodeAffinity: + enabled: false + key: "nodegroup_type" + values: ["web"] # ==================================================================================================== # Variables for Tasking Manager DB # ==================================================================================================== @@ -673,10 +788,6 @@ tmDb: name: "postgres" tag: "11" priorityClass: "medium-priority" - nodeSelector: - enabled: false - label_key: nodegroup_type - label_value: web env: POSTGRES_DB: tm POSTGRES_PASSWORD: tm @@ -695,6 +806,14 @@ tmDb: enabled: false memory: "2Gi" cpu: "2" + nodeSelector: + enabled: false + label_key: nodegroup_type + label_value: web + nodeAffinity: + enabled: false + key: "nodegroup_type" + values: ["web"] # ==================================================================================================== # Variables for Tasking Manager API # ==================================================================================================== @@ -705,8 +824,6 @@ tmApi: name: "" tag: "" priorityClass: "medium-priority" - nodeSelector: - enabled: false replicaCount: 1 ingressDomain: tm-api.dev.osmseed.org serviceAnnotations: {} @@ -749,7 +866,14 @@ tmApi: enabled: false memory: "2Gi" cpu: "2" - + nodeSelector: + enabled: false + label_key: nodegroup_type + label_value: web + nodeAffinity: + enabled: false + key: "nodegroup_type" + values: ["web"] # ==================================================================================================== # Nominatim UI, The image need to be update with your own docker image # ==================================================================================================== @@ -813,18 +937,25 @@ nominatimApi: GCP_gcePersistentDisk_size: 50Gi nodeSelector: enabled: false + label_key: nodegroup_type + label_value: web + nodeAffinity: + enabled: false + key: "nodegroup_type" + values: ["web"] + # ==================================================================================================== # Variables for overpass-api # ==================================================================================================== overpassApi: enabled: false + image: + name: "" + tag: "" externalService: enabled: true ip: "37.1.1.5" port: 9090 - image: - name: "" - tag: "" priorityClass: "medium-priority" serviceAnnotations: {} ingressDomain: overpass-api.dev.osmseed.org @@ -863,6 +994,12 @@ overpassApi: cpu: "2" nodeSelector: enabled: false + label_key: nodegroup_type + label_value: web + nodeAffinity: + enabled: false + key: "nodegroup_type" + values: ["web"] # ==================================================================================================== # Variables for taginfo # ==================================================================================================== @@ -871,6 +1008,9 @@ taginfo: image: name: "" tag: "" + serviceAccount: + enabled: true + name: ohm-web-s3-bucket-access-staging priorityClass: "medium-priority" serviceAnnotations: {} ingressDomain: taginfo-dev.staging.openhistoricalmap.org @@ -901,16 +1041,16 @@ taginfo: memory: "2Gi" cpu: "2" nodeSelector: - enabled: true + enabled: false label_key: nodegroup_type label_value: web + nodeAffinity: + enabled: false + key: "nodegroup_type" + values: ["web"] cronjob: enabled: true schedule: "0 2 */3 * *" - nodeSelector: - enabled: true - label_key: nodegroup_type - label_value: job_xlarge resources: enabled: false requests: @@ -919,6 +1059,14 @@ taginfo: limits: memory: "14Gi" cpu: "3800m" + nodeSelector: + enabled: false + label_key: nodegroup_type + label_value: web + nodeAffinity: + enabled: false + key: "nodegroup_type" + values: ["web"] # ==================================================================================================== # Variables for osm-simple-metrics # ==================================================================================================== @@ -927,6 +1075,9 @@ osmSimpleMetrics: image: name: "" tag: "" + serviceAccount: + enabled: true + name: ohm-web-s3-bucket-access-staging priorityClass: "medium-priority" schedule: "* */1 * * *" resources: @@ -941,6 +1092,12 @@ osmSimpleMetrics: cpu: "2" nodeSelector: enabled: false + label_key: nodegroup_type + label_value: web + nodeAffinity: + enabled: false + key: "nodegroup_type" + values: ["web"] # ==================================================================================================== # Variables for osm-simple-metrics # ==================================================================================================== @@ -950,6 +1107,9 @@ monitoringReplication: name: "developmentseed/osmseed-replication-job" tag: "0.1.0-n770.hd15c9f2" priorityClass: "medium-priority" + serviceAccount: + enabled: true + name: ohm-web-s3-bucket-access-staging schedule: "* */1 * * *" env: CREATE_MISSING_FILES: empty @@ -966,6 +1126,12 @@ monitoringReplication: cpu: "2" nodeSelector: enabled: false + label_key: nodegroup_type + label_value: web + nodeAffinity: + enabled: false + key: "nodegroup_type" + values: ["web"] # ==================================================================================================== # Variables for changeset-replication-job, Configuration to create the replication files by, minute, hour, or day # ==================================================================================================== @@ -974,6 +1140,9 @@ changesetReplicationJob: image: name: "" tag: "" + serviceAccount: + enabled: true + name: ohm-web-s3-bucket-access-staging priorityClass: "medium-priority" resources: enabled: false @@ -987,6 +1156,12 @@ changesetReplicationJob: cpu: "2" nodeSelector: enabled: false + label_key: nodegroup_type + label_value: web + nodeAffinity: + enabled: false + key: "nodegroup_type" + values: ["web"] # ==================================================================================================== # Variables for osmcha web builder @@ -1040,7 +1215,11 @@ osmchaApi: nodeSelector: enabled: false label_key: nodegroup_type - label_value: db + label_value: web + nodeAffinity: + enabled: false + key: "nodegroup_type" + values: ["web"] fetch_changesets_cronjob: "*/2 * * * *" process_changesets_cronjob: "*/2 * * * *" # ==================================================================================================== @@ -1081,6 +1260,12 @@ osmchaDb: GCP_gcePersistentDisk_size: 50Gi nodeSelector: enabled: false + label_key: nodegroup_type + label_value: web + nodeAffinity: + enabled: false + key: "nodegroup_type" + values: ["web"] # ==================================================================================================== # Planet server files