From 0caad1cc2ddd16ef41a7fe870640207d69e21046 Mon Sep 17 00:00:00 2001 From: "Suren A. Chilingaryan" Date: Fri, 23 Feb 2018 18:49:34 +0100 Subject: ADEI cron jobs --- setup/projects/adei/templates/60-adei.yml.j2 | 202 +++++++++++++++++---------- 1 file changed, 127 insertions(+), 75 deletions(-) (limited to 'setup/projects/adei/templates') diff --git a/setup/projects/adei/templates/60-adei.yml.j2 b/setup/projects/adei/templates/60-adei.yml.j2 index 991fc8d..88bfa89 100644 --- a/setup/projects/adei/templates/60-adei.yml.j2 +++ b/setup/projects/adei/templates/60-adei.yml.j2 @@ -13,6 +13,21 @@ labels: objects: {% for name, cfg in adei_frontends.iteritems() %} {% if (cfg.enabled | default(true)) %} +{% if (cfg.cron is defined) %} +{% set pod_type = "cron" %} +{% set pull_policy = "IfNotPresent" %} +{% set restart_policy = "OnFailure" %} +{# set restart_policy = "Never" #} +{% elif (cfg.node is defined) %} +{% set pod_type = "frontend" %} +{% set pull_policy = "Always" %} +{% set restart_policy = "Always" %} +{% else %} +{% set pod_type = "cacher" %} +{% set pull_policy = "Always" %} +{% set restart_policy = "Always" %} +{% endif %} +{% if (cfg.node is defined) %} - apiVersion: v1 kind: Service metadata: @@ -38,90 +53,118 @@ objects: tls: termination: edge insecureEdgeTerminationPolicy: Allow +{% endif %} +{% if (cfg.cron is defined) %} + - apiVersion: batch/v2alpha1 + kind: CronJob + metadata: + name: "{{ cfg.name }}" + spec: + schedule: "{{ cfg.cron }}" + concurrencyPolicy: "Forbid" + jobTemplate: + spec: + completions: "1" + activeDeadlineSeconds: "3600" +# restartPolicy: "Never" + template: + metadata: + annotations: + alpha.image.policy.openshift.io/resolve-names: "*" +{% else %} - apiVersion: v1 kind: DeploymentConfig metadata: name: "{{ cfg.name }}" spec: - replicas: "{{ cfg.replicas }}" - revisionHistoryLimit: 2 - selector: - name: "{{ cfg.name }}" - strategy: - type: Rolling - triggers: - - type: ConfigChange - - type: ImageChange - imageChangeParams: - automatic: true - from: - kind: "ImageStreamTag" - name: "adei:latest" - containerNames: - - "{{ cfg.name }}" - template: - metadata: - name: "{{ cfg.name }}" - labels: - type: "adei" - name: "{{ cfg.name }}" - adei-type: "{{ name }}" - adei-setup: "${setup}" - spec: - volumes: {{ cfg.vols | to_json }} -{% if (cfg.groups is defined) or (cfg.run_as is defined) %} - securityContext: -{% if (cfg.run_as is defined) %} -{% if (kaas_project_config.uids | default(kaas_openshift_uids))[cfg.run_as] is defined %} - - {{ (kaas_project_config.uids | default(kaas_openshift_uids))[cfg.run_as].id }} -{% else %} - - {{ cfg.run_as }} -{% endif %} -{% endif %} + replicas: "{{ cfg.replicas }}" + revisionHistoryLimit: 2 + selector: + name: "{{ cfg.name }}" + strategy: + type: Rolling + triggers: + - type: ConfigChange + - type: ImageChange + imageChangeParams: + automatic: true + from: + kind: "ImageStreamTag" + name: "adei:latest" + containerNames: + - "{{ cfg.name }}" + template: + metadata: +{% endif %} + name: "{{ cfg.name }}" + labels: + app: "adei" + name: "{{ cfg.name }}" + adei-type: "{{ pod_type }}" + adei-name: "{{ name }}" + adei-setup: "${setup}" + spec: + restartPolicy: {{ restart_policy }} + volumes: {{ cfg.vols | to_json }} +{% if (cfg.groups is defined) or (cfg.run_as is defined) %} + securityContext: +{% if (cfg.run_as is defined) %} +{% if (kaas_project_config.uids | default(kaas_openshift_uids))[cfg.run_as] is defined %} + - {{ (kaas_project_config.uids | default(kaas_openshift_uids))[cfg.run_as].id }} +{% else %} + - {{ cfg.run_as }} +{% endif %} +{% endif %} {% if (cfg.groups is defined) %} - supplementalGroups: -{% for group in cfg.groups %} -{% if (kaas_project_config.gids | default(kaas_openshift_gids))[group] is defined %} - - {{ (kaas_project_config.gids | default(kaas_openshift_gids))[group].id }} -{% else %} - - {{ group }} -{% endif %} -{% endfor %} + supplementalGroups: +{% for group in cfg.groups %} +{% if (kaas_project_config.gids | default(kaas_openshift_gids))[group] is defined %} + - {{ (kaas_project_config.gids | default(kaas_openshift_gids))[group].id }} +{% else %} + - {{ group }} +{% endif %} +{% endfor %} +{% endif %} {% endif %} -{% endif %} - containers: - - name: "{{ cfg.name }}" - image: adei - imagePullPolicy: Always - command: - - /opt/scripts/run-apache.sh - ports: - - containerPort: 8080 - env: {{ cfg.env | to_json }} - volumeMounts: {{ cfg.mounts | to_json }} - livenessProbe: - timeoutSeconds: 1 - periodSeconds: 300 - initialDelaySeconds: 300 - httpGet: - path: /adei/probe.php - port: 8080 - readinessProbe: - timeoutSeconds: 1 - periodSeconds: 10 - initialDelaySeconds: 10 - httpGet: - path: /adei/probe.php - port: 8080 - lifecycle: -{% if (cfg.configure | default(false)) %} - postStart: - exec: + containers: + - name: "{{ cfg.name }}" + image: adei + imagePullPolicy: {{ pull_policy }} +{% if (cfg.node is defined) %} command: - - /docker-entrypoint.sh - - /opt/scripts/adei-branch.sh -{% endif %} + - /opt/scripts/run-apache.sh + ports: + - containerPort: 8080 +{% else %} + command: {{ cfg.cmd | to_json }} {% endif %} + env: {{ cfg.env | to_json }} + volumeMounts: {{ cfg.mounts | to_json }} +{% if (cfg.node is defined) %} + livenessProbe: + timeoutSeconds: 1 + periodSeconds: 300 + initialDelaySeconds: 300 + httpGet: + path: /adei/probe.php + port: 8080 + readinessProbe: + timeoutSeconds: 1 + periodSeconds: 10 + initialDelaySeconds: 10 + httpGet: + path: /adei/probe.php + port: 8080 +{% endif %} + lifecycle: +{% if (cfg.configure | default(false)) %} + postStart: + exec: + command: + - /docker-entrypoint.sh + - /opt/scripts/adei-branch.sh +{% endif %} +{% endif %} {% endfor %} parameters: @@ -136,6 +179,15 @@ parameters: description: "Default number of backend caching replicas" - name: apache_servers value: "150" + - name: adei_schedule_cache + value: "*/5 * * * *" + description: "Schedule of caching group updates" + - name: adei_schedule_maintain + value: "*/15 * * * *" + description: "Schedule of maintain tasks" + - name: adei_schedule_clean + value: "9 3 * * *" + description: "Schedule of cleaning tasks" - name: cache_parallel value: "source" description: "Type of caching parallelism: group, source, server" -- cgit v1.2.3