From b7d273ca47eb66807c8a4e7e22fb00198e0b3529 Mon Sep 17 00:00:00 2001 From: Maximilian Kreuzkam Date: Wed, 25 Sep 2024 15:32:08 +0200 Subject: [PATCH 01/11] EW-1025: Add new tsp sync cronjob. --- .../schulcloud-server-tspsync/tasks/main.yml | 21 ++++ .../templates/api-tsp-sync-cronjob.yml.j2 | 109 ++++++++++++++++++ 2 files changed, 130 insertions(+) create mode 100644 ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 diff --git a/ansible/roles/schulcloud-server-tspsync/tasks/main.yml b/ansible/roles/schulcloud-server-tspsync/tasks/main.yml index 3f323efb681..daaa45fac92 100644 --- a/ansible/roles/schulcloud-server-tspsync/tasks/main.yml +++ b/ansible/roles/schulcloud-server-tspsync/tasks/main.yml @@ -81,3 +81,24 @@ when: not WITH_TSP tags: - cronjob + + - name: API TSP Sync CronJob + kubernetes.core.k8s: + kubeconfig: ~/.kube/config + namespace: "{{ NAMESPACE }}" + template: api-tsp-sync-cronjob.yml.j2 + when: WITH_TSP + tags: + - cronjob + + - name: remove API TSP Sync CronJob + kubernetes.core.k8s: + kubeconfig: ~/.kube/config + state: absent + api_version: batch/v1 + kind: CronJob + namespace: "{{ NAMESPACE }}" + name: api-tsp-sync-cronjob + when: not WITH_TSP + tags: + - cronjob \ No newline at end of file diff --git a/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 b/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 new file mode 100644 index 00000000000..706606ac2fc --- /dev/null +++ b/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 @@ -0,0 +1,109 @@ +apiVersion: batch/v1 +kind: CronJob +metadata: + namespace: {{ NAMESPACE }} + labels: + app: api-tsp-sync-cronjob + app.kubernetes.io/part-of: schulcloud-verbund + app.kubernetes.io/version: {{ SCHULCLOUD_SERVER_IMAGE_TAG }} + app.kubernetes.io/name: api-tsp-sync-cronjob + app.kubernetes.io/component: tsp-sync + app.kubernetes.io/managed-by: ansible + git.branch: {{ SCHULCLOUD_SERVER_BRANCH_NAME }} + git.repo: {{ SCHULCLOUD_SERVER_REPO_NAME }} + name: api-tsp-sync-cronjob +spec: + concurrencyPolicy: Forbid + schedule: "{{ SERVER_TSP_SYNC_CRONJOB_SCHEDULE|default("9 3 * * *", true) }}" + jobTemplate: + metadata: + labels: + app: api-tsp-sync-cronjob + app.kubernetes.io/part-of: schulcloud-verbund + app.kubernetes.io/version: {{ SCHULCLOUD_SERVER_IMAGE_TAG }} + app.kubernetes.io/name: api-tsp-sync-cronjob + app.kubernetes.io/component: tsp-sync + app.kubernetes.io/managed-by: ansible + git.branch: {{ SCHULCLOUD_SERVER_BRANCH_NAME }} + git.repo: {{ SCHULCLOUD_SERVER_REPO_NAME }} + spec: + template: + spec: + securityContext: + runAsUser: 1000 + runAsGroup: 1000 + fsGroup: 1000 + runAsNonRoot: true + containers: + - name: api-tsp-sync-cronjob + image: {{ SCHULCLOUD_SERVER_IMAGE }}:{{ SCHULCLOUD_SERVER_IMAGE_TAG }} + envFrom: + - configMapRef: + name: api-configmap + - secretRef: + name: api-secret + command: ['/bin/sh', '-c'] + args: [' npm run nest:start:console sync run tsp'] + resources: + limits: + cpu: {{ API_CPU_LIMITS|default("2000m", true) }} + memory: {{ API_MEMORY_LIMITS|default("2Gi", true) }} + requests: + cpu: {{ API_CPU_REQUESTS|default("100m", true) }} + memory: {{ API_MEMORY_REQUESTS|default("150Mi", true) }} + restartPolicy: OnFailure +{% if AFFINITY_ENABLE is defined and AFFINITY_ENABLE|bool %} + affinity: + podAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - weight: 20 + podAffinityTerm: + labelSelector: + matchExpressions: + - key: app.kubernetes.io/part-of + operator: In + values: + - schulcloud-verbund + topologyKey: "kubernetes.io/hostname" + namespaceSelector: {} + - weight: 10 + podAffinityTerm: + labelSelector: + matchExpressions: + - key: git.repo + operator: In + values: + - {{ SCHULCLOUD_SERVER_REPO_NAME }} + topologyKey: "kubernetes.io/hostname" + namespaceSelector: {} + - weight: 10 + podAffinityTerm: + labelSelector: + matchExpressions: + - key: git.branch + operator: In + values: + - {{ SCHULCLOUD_SERVER_BRANCH_NAME }} + topologyKey: "kubernetes.io/hostname" + namespaceSelector: {} + - weight: 10 + podAffinityTerm: + labelSelector: + matchExpressions: + - key: app.kubernetes.io/version + operator: In + values: + - {{ SCHULCLOUD_SERVER_IMAGE_TAG }} + topologyKey: "kubernetes.io/hostname" + namespaceSelector: {} +{% endif %} + metadata: + labels: + app: api-tsp-sync-cronjob + app.kubernetes.io/part-of: schulcloud-verbund + app.kubernetes.io/version: {{ SCHULCLOUD_SERVER_IMAGE_TAG }} + app.kubernetes.io/name: api-tsp-sync-cronjob + app.kubernetes.io/component: tsp-sync + app.kubernetes.io/managed-by: ansible + git.branch: {{ SCHULCLOUD_SERVER_BRANCH_NAME }} + git.repo: {{ SCHULCLOUD_SERVER_REPO_NAME }} From 05c4c65f842b3c5c482c915d9cc65e5dfc367e87 Mon Sep 17 00:00:00 2001 From: Maximilian Kreuzkam Date: Wed, 25 Sep 2024 16:17:24 +0200 Subject: [PATCH 02/11] Add configmap and use sync command. --- .../templates/api-tsp-sync-cronjob-configmap.yml.j2 | 12 ++++++++++++ .../templates/api-tsp-sync-cronjob.yml.j2 | 4 +++- 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob-configmap.yml.j2 diff --git a/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob-configmap.yml.j2 b/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob-configmap.yml.j2 new file mode 100644 index 00000000000..3afbbcf424f --- /dev/null +++ b/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob-configmap.yml.j2 @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + namespace: {{ NAMESPACE }} + name: api-tsp-sync-cronjob-configmap + labels: + app: api-tsp-sync-cronjob +data: + NODE_OPTIONS: "--max-old-space-size=3072" + NEST_LOG_LEVEL: "error" + EXIT_ON_ERROR: "true" + diff --git a/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 b/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 index 706606ac2fc..b56f193759e 100644 --- a/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 +++ b/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 @@ -40,10 +40,12 @@ spec: envFrom: - configMapRef: name: api-configmap + - configMapRef: + name: api-tsp-sync-cronjob-configmap - secretRef: name: api-secret command: ['/bin/sh', '-c'] - args: [' npm run nest:start:console sync run tsp'] + args: ['npm run nest:start:sync tsp'] resources: limits: cpu: {{ API_CPU_LIMITS|default("2000m", true) }} From 989783abb77e1f6efd228f64863ba63f524eb6d7 Mon Sep 17 00:00:00 2001 From: Maximilian Kreuzkam Date: Wed, 25 Sep 2024 16:36:09 +0200 Subject: [PATCH 03/11] Add configmap to tasks. --- .../schulcloud-server-tspsync/tasks/main.yml | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/ansible/roles/schulcloud-server-tspsync/tasks/main.yml b/ansible/roles/schulcloud-server-tspsync/tasks/main.yml index daaa45fac92..c69bdd86545 100644 --- a/ansible/roles/schulcloud-server-tspsync/tasks/main.yml +++ b/ansible/roles/schulcloud-server-tspsync/tasks/main.yml @@ -101,4 +101,25 @@ name: api-tsp-sync-cronjob when: not WITH_TSP tags: - - cronjob \ No newline at end of file + - cronjob + + - name: API TSP Sync CronJob ConfigMap + kubernetes.core.k8s: + kubeconfig: ~/.kube/config + namespace: "{{ NAMESPACE }}" + template: api-tsp-sync-cronjob-configmap.yml.j2 + when: WITH_TSP + tags: + - configmap + + - name: remove API TSP Sync CronJob ConfigMap + kubernetes.core.k8s: + kubeconfig: ~/.kube/config + state: absent + api_version: batch/v1 + kind: ConfigMap + namespace: "{{ NAMESPACE }}" + name: api-tsp-sync-cronjob-configmap + when: not WITH_TSP + tags: + - configmap \ No newline at end of file From 7046da1b1f5269c964a3f607086e04d63a4f246c Mon Sep 17 00:00:00 2001 From: Maximilian Kreuzkam Date: Thu, 26 Sep 2024 08:21:16 +0200 Subject: [PATCH 04/11] Remove configmap and add test logging statement. --- .../schulcloud-server-tspsync/tasks/main.yml | 21 ------------------- .../api-tsp-sync-cronjob-configmap.yml.j2 | 12 ----------- .../templates/api-tsp-sync-cronjob.yml.j2 | 2 -- .../src/infra/sync/tsp/tsp-sync.strategy.ts | 14 +++++++++++++ 4 files changed, 14 insertions(+), 35 deletions(-) delete mode 100644 ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob-configmap.yml.j2 diff --git a/ansible/roles/schulcloud-server-tspsync/tasks/main.yml b/ansible/roles/schulcloud-server-tspsync/tasks/main.yml index c69bdd86545..9ae3bfd2b89 100644 --- a/ansible/roles/schulcloud-server-tspsync/tasks/main.yml +++ b/ansible/roles/schulcloud-server-tspsync/tasks/main.yml @@ -102,24 +102,3 @@ when: not WITH_TSP tags: - cronjob - - - name: API TSP Sync CronJob ConfigMap - kubernetes.core.k8s: - kubeconfig: ~/.kube/config - namespace: "{{ NAMESPACE }}" - template: api-tsp-sync-cronjob-configmap.yml.j2 - when: WITH_TSP - tags: - - configmap - - - name: remove API TSP Sync CronJob ConfigMap - kubernetes.core.k8s: - kubeconfig: ~/.kube/config - state: absent - api_version: batch/v1 - kind: ConfigMap - namespace: "{{ NAMESPACE }}" - name: api-tsp-sync-cronjob-configmap - when: not WITH_TSP - tags: - - configmap \ No newline at end of file diff --git a/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob-configmap.yml.j2 b/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob-configmap.yml.j2 deleted file mode 100644 index 3afbbcf424f..00000000000 --- a/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob-configmap.yml.j2 +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - namespace: {{ NAMESPACE }} - name: api-tsp-sync-cronjob-configmap - labels: - app: api-tsp-sync-cronjob -data: - NODE_OPTIONS: "--max-old-space-size=3072" - NEST_LOG_LEVEL: "error" - EXIT_ON_ERROR: "true" - diff --git a/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 b/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 index b56f193759e..3b7b6de0d9f 100644 --- a/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 +++ b/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 @@ -40,8 +40,6 @@ spec: envFrom: - configMapRef: name: api-configmap - - configMapRef: - name: api-tsp-sync-cronjob-configmap - secretRef: name: api-secret command: ['/bin/sh', '-c'] diff --git a/apps/server/src/infra/sync/tsp/tsp-sync.strategy.ts b/apps/server/src/infra/sync/tsp/tsp-sync.strategy.ts index 5f7eb3a44c5..9c638934e9a 100644 --- a/apps/server/src/infra/sync/tsp/tsp-sync.strategy.ts +++ b/apps/server/src/infra/sync/tsp/tsp-sync.strategy.ts @@ -1,15 +1,29 @@ import { Injectable } from '@nestjs/common'; +import { Logger } from '@src/core/logger'; import { SyncStrategy } from '../strategy/sync-strategy'; import { SyncStrategyTarget } from '../sync-strategy.types'; @Injectable() export class TspSyncStrategy extends SyncStrategy { + constructor(private readonly logger: Logger) { + super(); + this.logger.setContext(TspSyncStrategy.name); + } + getType(): SyncStrategyTarget { return SyncStrategyTarget.TSP; } sync(): Promise { // implementation + // Just for testing purposes + this.logger.info({ + getLogMessage() { + return { + message: 'Running TSP sync', + }; + }, + }); return Promise.resolve(); } } From 4c71fd356c75a7a158aff37be3595508dc198fca Mon Sep 17 00:00:00 2001 From: Maximilian Kreuzkam Date: Thu, 26 Sep 2024 10:05:16 +0200 Subject: [PATCH 05/11] Add confgmap. --- .../schulcloud-server-tspsync/tasks/main.yml | 21 +++++++++++++++++++ .../api-tsp-sync-cronjob-configmap.yml.j2 | 11 ++++++++++ .../templates/api-tsp-sync-cronjob.yml.j2 | 2 ++ 3 files changed, 34 insertions(+) create mode 100644 ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob-configmap.yml.j2 diff --git a/ansible/roles/schulcloud-server-tspsync/tasks/main.yml b/ansible/roles/schulcloud-server-tspsync/tasks/main.yml index 9ae3bfd2b89..77dd323b57e 100644 --- a/ansible/roles/schulcloud-server-tspsync/tasks/main.yml +++ b/ansible/roles/schulcloud-server-tspsync/tasks/main.yml @@ -102,3 +102,24 @@ when: not WITH_TSP tags: - cronjob + + - name: API TSP Sync CronJob ConfigMap + kubernetes.core.k8s: + kubeconfig: ~/.kube/config + namespace: "{{ NAMESPACE }}" + template: api-tsp-sync-cronjob-configmap.yml.j2 + when: WITH_TSP + tags: + - configmap + + - name: remove API TSP Sync CronJob ConfigMap + kubernetes.core.k8s: + kubeconfig: ~/.kube/config + state: absent + api_version: batch/v1 + kind: ConfigMap + namespace: "{{ NAMESPACE }}" + name: api-tsp-sync-cronjob-configmap + when: not WITH_TSP + tags: + - configmap \ No newline at end of file diff --git a/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob-configmap.yml.j2 b/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob-configmap.yml.j2 new file mode 100644 index 00000000000..a087c1b7ebe --- /dev/null +++ b/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob-configmap.yml.j2 @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + namespace: {{ NAMESPACE }} + name: api-tsp-sync-cronjob-configmap + labels: + app: api-tsp-sync-cronjob +data: + NODE_OPTIONS: "--max-old-space-size=3072" + NEST_LOG_LEVEL: "info" + EXIT_ON_ERROR: "false" \ No newline at end of file diff --git a/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 b/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 index 3b7b6de0d9f..b56f193759e 100644 --- a/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 +++ b/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 @@ -40,6 +40,8 @@ spec: envFrom: - configMapRef: name: api-configmap + - configMapRef: + name: api-tsp-sync-cronjob-configmap - secretRef: name: api-secret command: ['/bin/sh', '-c'] From 6613f11f950a5123879905f2fbe1f59af0785be1 Mon Sep 17 00:00:00 2001 From: Maximilian Kreuzkam Date: Thu, 26 Sep 2024 10:57:12 +0200 Subject: [PATCH 06/11] Configmap adjusted. --- .../roles/schulcloud-server-tspsync/tasks/main.yml | 12 ------------ .../templates/api-tsp-sync-cronjob-configmap.yml.j2 | 2 +- 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/ansible/roles/schulcloud-server-tspsync/tasks/main.yml b/ansible/roles/schulcloud-server-tspsync/tasks/main.yml index 77dd323b57e..577a112e75e 100644 --- a/ansible/roles/schulcloud-server-tspsync/tasks/main.yml +++ b/ansible/roles/schulcloud-server-tspsync/tasks/main.yml @@ -111,15 +111,3 @@ when: WITH_TSP tags: - configmap - - - name: remove API TSP Sync CronJob ConfigMap - kubernetes.core.k8s: - kubeconfig: ~/.kube/config - state: absent - api_version: batch/v1 - kind: ConfigMap - namespace: "{{ NAMESPACE }}" - name: api-tsp-sync-cronjob-configmap - when: not WITH_TSP - tags: - - configmap \ No newline at end of file diff --git a/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob-configmap.yml.j2 b/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob-configmap.yml.j2 index a087c1b7ebe..6099a167cde 100644 --- a/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob-configmap.yml.j2 +++ b/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob-configmap.yml.j2 @@ -8,4 +8,4 @@ metadata: data: NODE_OPTIONS: "--max-old-space-size=3072" NEST_LOG_LEVEL: "info" - EXIT_ON_ERROR: "false" \ No newline at end of file + EXIT_ON_ERROR: "true" \ No newline at end of file From 923e8b3ab3ebf11cb02ddb8961c92bca7e10d503 Mon Sep 17 00:00:00 2001 From: Maximilian Kreuzkam Date: Thu, 26 Sep 2024 11:31:12 +0200 Subject: [PATCH 07/11] Remove logging. --- .../server/src/infra/sync/tsp/tsp-sync.strategy.ts | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/apps/server/src/infra/sync/tsp/tsp-sync.strategy.ts b/apps/server/src/infra/sync/tsp/tsp-sync.strategy.ts index 9c638934e9a..5f7eb3a44c5 100644 --- a/apps/server/src/infra/sync/tsp/tsp-sync.strategy.ts +++ b/apps/server/src/infra/sync/tsp/tsp-sync.strategy.ts @@ -1,29 +1,15 @@ import { Injectable } from '@nestjs/common'; -import { Logger } from '@src/core/logger'; import { SyncStrategy } from '../strategy/sync-strategy'; import { SyncStrategyTarget } from '../sync-strategy.types'; @Injectable() export class TspSyncStrategy extends SyncStrategy { - constructor(private readonly logger: Logger) { - super(); - this.logger.setContext(TspSyncStrategy.name); - } - getType(): SyncStrategyTarget { return SyncStrategyTarget.TSP; } sync(): Promise { // implementation - // Just for testing purposes - this.logger.info({ - getLogMessage() { - return { - message: 'Running TSP sync', - }; - }, - }); return Promise.resolve(); } } From 5b895351e12ef66a221c625549cf2df0ab5d2bf1 Mon Sep 17 00:00:00 2001 From: mkreuzkam-cap <144103168+mkreuzkam-cap@users.noreply.github.com> Date: Thu, 26 Sep 2024 14:09:40 +0200 Subject: [PATCH 08/11] Apply suggestions from code review Co-authored-by: mamutmk5 <3045922+mamutmk5@users.noreply.github.com> --- .../templates/api-tsp-sync-cronjob.yml.j2 | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 b/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 index b56f193759e..a07e29f17de 100644 --- a/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 +++ b/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 @@ -7,7 +7,7 @@ metadata: app.kubernetes.io/part-of: schulcloud-verbund app.kubernetes.io/version: {{ SCHULCLOUD_SERVER_IMAGE_TAG }} app.kubernetes.io/name: api-tsp-sync-cronjob - app.kubernetes.io/component: tsp-sync + app.kubernetes.io/component: sync app.kubernetes.io/managed-by: ansible git.branch: {{ SCHULCLOUD_SERVER_BRANCH_NAME }} git.repo: {{ SCHULCLOUD_SERVER_REPO_NAME }} @@ -22,12 +22,22 @@ spec: app.kubernetes.io/part-of: schulcloud-verbund app.kubernetes.io/version: {{ SCHULCLOUD_SERVER_IMAGE_TAG }} app.kubernetes.io/name: api-tsp-sync-cronjob - app.kubernetes.io/component: tsp-sync + app.kubernetes.io/component: sync app.kubernetes.io/managed-by: ansible git.branch: {{ SCHULCLOUD_SERVER_BRANCH_NAME }} git.repo: {{ SCHULCLOUD_SERVER_REPO_NAME }} spec: template: + metadata: + labels: + app: api-tsp-sync-cronjob + app.kubernetes.io/part-of: schulcloud-verbund + app.kubernetes.io/version: {{ SCHULCLOUD_SERVER_IMAGE_TAG }} + app.kubernetes.io/name: api-tsp-sync-cronjob + app.kubernetes.io/component: sync + app.kubernetes.io/managed-by: ansible + git.branch: {{ SCHULCLOUD_SERVER_BRANCH_NAME }} + git.repo: {{ SCHULCLOUD_SERVER_REPO_NAME }} spec: securityContext: runAsUser: 1000 @@ -99,13 +109,3 @@ spec: topologyKey: "kubernetes.io/hostname" namespaceSelector: {} {% endif %} - metadata: - labels: - app: api-tsp-sync-cronjob - app.kubernetes.io/part-of: schulcloud-verbund - app.kubernetes.io/version: {{ SCHULCLOUD_SERVER_IMAGE_TAG }} - app.kubernetes.io/name: api-tsp-sync-cronjob - app.kubernetes.io/component: tsp-sync - app.kubernetes.io/managed-by: ansible - git.branch: {{ SCHULCLOUD_SERVER_BRANCH_NAME }} - git.repo: {{ SCHULCLOUD_SERVER_REPO_NAME }} From d5ad4bdcbb1f4a85c614a1d1572e7d0081b29d1c Mon Sep 17 00:00:00 2001 From: Maximilian Kreuzkam Date: Thu, 26 Sep 2024 15:15:08 +0200 Subject: [PATCH 09/11] Code review comments --- .../roles/schulcloud-server-tspsync/tasks/main.yml | 6 +++--- .../templates/api-tsp-sync-cronjob-configmap.yml.j2 | 11 +++++++++-- .../templates/api-tsp-sync-cronjob.yml.j2 | 2 -- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/ansible/roles/schulcloud-server-tspsync/tasks/main.yml b/ansible/roles/schulcloud-server-tspsync/tasks/main.yml index 577a112e75e..6776ca2590f 100644 --- a/ansible/roles/schulcloud-server-tspsync/tasks/main.yml +++ b/ansible/roles/schulcloud-server-tspsync/tasks/main.yml @@ -87,7 +87,7 @@ kubeconfig: ~/.kube/config namespace: "{{ NAMESPACE }}" template: api-tsp-sync-cronjob.yml.j2 - when: WITH_TSP + when: FEATURE_TSP_SYNC_ENABLED tags: - cronjob @@ -99,7 +99,7 @@ kind: CronJob namespace: "{{ NAMESPACE }}" name: api-tsp-sync-cronjob - when: not WITH_TSP + when: not FEATURE_TSP_SYNC_ENABLED tags: - cronjob @@ -108,6 +108,6 @@ kubeconfig: ~/.kube/config namespace: "{{ NAMESPACE }}" template: api-tsp-sync-cronjob-configmap.yml.j2 - when: WITH_TSP + when: FEATURE_TSP_SYNC_ENABLED tags: - configmap diff --git a/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob-configmap.yml.j2 b/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob-configmap.yml.j2 index 6099a167cde..c93af4d7c2e 100644 --- a/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob-configmap.yml.j2 +++ b/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob-configmap.yml.j2 @@ -7,5 +7,12 @@ metadata: app: api-tsp-sync-cronjob data: NODE_OPTIONS: "--max-old-space-size=3072" - NEST_LOG_LEVEL: "info" - EXIT_ON_ERROR: "true" \ No newline at end of file + NEST_LOG_LEVEL: "error" + EXIT_ON_ERROR: "true" + FEATURE_IDENTITY_MANAGEMENT_ENABLED: "{{ FEATURE_IDENTITY_MANAGEMENT_ENABLED }}" + FEATURE_IDENTITY_MANAGEMENT_STORE_ENABLED: "{{ FEATURE_IDENTITY_MANAGEMENT_STORE_ENABLED }}" + FEATURE_IDENTITY_MANAGEMENT_LOGIN_ENABLED: "{{ FEATURE_IDENTITY_MANAGEMENT_LOGIN_ENABLED }}" + IDENTITY_MANAGEMENT__INTERNAL_URI: "{{ IDENTITY_MANAGEMENT__INTERNAL_URI }}" + IDENTITY_MANAGEMENT__EXTERNAL_URI: "{{ IDENTITY_MANAGEMENT__EXTERNAL_URI }}" + IDENTITY_MANAGEMENT__TENANT: "{{ IDENTITY_MANAGEMENT__TENANT }}" + IDENTITY_MANAGEMENT__CLIENTID: "{{ IDENTITY_MANAGEMENT__CLIENTID }}" \ No newline at end of file diff --git a/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 b/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 index a07e29f17de..50966a79758 100644 --- a/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 +++ b/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 @@ -48,8 +48,6 @@ spec: - name: api-tsp-sync-cronjob image: {{ SCHULCLOUD_SERVER_IMAGE }}:{{ SCHULCLOUD_SERVER_IMAGE_TAG }} envFrom: - - configMapRef: - name: api-configmap - configMapRef: name: api-tsp-sync-cronjob-configmap - secretRef: From 481cd9aadf37c08ded74a7b949807a4ffb0f3a52 Mon Sep 17 00:00:00 2001 From: Maximilian Kreuzkam Date: Thu, 26 Sep 2024 16:19:05 +0200 Subject: [PATCH 10/11] Use new with variable for tsp sync. --- ansible/roles/schulcloud-server-tspsync/tasks/main.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ansible/roles/schulcloud-server-tspsync/tasks/main.yml b/ansible/roles/schulcloud-server-tspsync/tasks/main.yml index 6776ca2590f..7270accefc1 100644 --- a/ansible/roles/schulcloud-server-tspsync/tasks/main.yml +++ b/ansible/roles/schulcloud-server-tspsync/tasks/main.yml @@ -87,7 +87,7 @@ kubeconfig: ~/.kube/config namespace: "{{ NAMESPACE }}" template: api-tsp-sync-cronjob.yml.j2 - when: FEATURE_TSP_SYNC_ENABLED + when: WITH_TSP_SYNC tags: - cronjob @@ -99,7 +99,7 @@ kind: CronJob namespace: "{{ NAMESPACE }}" name: api-tsp-sync-cronjob - when: not FEATURE_TSP_SYNC_ENABLED + when: not WITH_TSP_SYNC tags: - cronjob @@ -108,6 +108,6 @@ kubeconfig: ~/.kube/config namespace: "{{ NAMESPACE }}" template: api-tsp-sync-cronjob-configmap.yml.j2 - when: FEATURE_TSP_SYNC_ENABLED + when: WITH_TSP_SYNC tags: - configmap From aabdda0a6926a85d194223b999e6ddbd22f6d4ad Mon Sep 17 00:00:00 2001 From: Maximilian Kreuzkam Date: Tue, 1 Oct 2024 12:52:25 +0200 Subject: [PATCH 11/11] code review. --- ansible/roles/schulcloud-server-tspsync/defaults/main.yml | 1 + ansible/roles/schulcloud-server-tspsync/tasks/main.yml | 2 +- .../templates/api-tsp-sync-cronjob.yml.j2 | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 ansible/roles/schulcloud-server-tspsync/defaults/main.yml diff --git a/ansible/roles/schulcloud-server-tspsync/defaults/main.yml b/ansible/roles/schulcloud-server-tspsync/defaults/main.yml new file mode 100644 index 00000000000..3d8c26f28b4 --- /dev/null +++ b/ansible/roles/schulcloud-server-tspsync/defaults/main.yml @@ -0,0 +1 @@ +SERVER_TSP_SYNC_CRONJOB_SCHEDULE: "9 3 * * *" \ No newline at end of file diff --git a/ansible/roles/schulcloud-server-tspsync/tasks/main.yml b/ansible/roles/schulcloud-server-tspsync/tasks/main.yml index 7270accefc1..05ea93d07ef 100644 --- a/ansible/roles/schulcloud-server-tspsync/tasks/main.yml +++ b/ansible/roles/schulcloud-server-tspsync/tasks/main.yml @@ -108,6 +108,6 @@ kubeconfig: ~/.kube/config namespace: "{{ NAMESPACE }}" template: api-tsp-sync-cronjob-configmap.yml.j2 - when: WITH_TSP_SYNC + state: "{{ 'present' if WITH_TSP_SYNC|bool else 'absent'}}" tags: - configmap diff --git a/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 b/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 index 50966a79758..0a526e4028c 100644 --- a/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 +++ b/ansible/roles/schulcloud-server-tspsync/templates/api-tsp-sync-cronjob.yml.j2 @@ -14,7 +14,7 @@ metadata: name: api-tsp-sync-cronjob spec: concurrencyPolicy: Forbid - schedule: "{{ SERVER_TSP_SYNC_CRONJOB_SCHEDULE|default("9 3 * * *", true) }}" + schedule: "{{ SERVER_TSP_SYNC_CRONJOB_SCHEDULE }}" jobTemplate: metadata: labels: