summaryrefslogtreecommitdiffstats
path: root/setup/projects
diff options
context:
space:
mode:
Diffstat (limited to 'setup/projects')
-rw-r--r--setup/projects/adei/templates/10-adei-build.yml.j243
-rw-r--r--setup/projects/adei/templates/60-adei.yml.j2149
-rw-r--r--setup/projects/adei/vars/globals.yml143
-rw-r--r--setup/projects/adei/vars/pods.yml14
-rw-r--r--setup/projects/adei/vars/volumes.yml19
5 files changed, 355 insertions, 13 deletions
diff --git a/setup/projects/adei/templates/10-adei-build.yml.j2 b/setup/projects/adei/templates/10-adei-build.yml.j2
new file mode 100644
index 0000000..f961219
--- /dev/null
+++ b/setup/projects/adei/templates/10-adei-build.yml.j2
@@ -0,0 +1,43 @@
+apiVersion: v1
+kind: Template
+metadata:
+ name: adei-build
+ annotations:
+ descriptions: "ADEI Build"
+objects:
+ - kind: ImageStream
+ apiVersion: v1
+ metadata:
+ name: adei
+ labels:
+ name: adei
+ - kind: "BuildConfig"
+ apiVersion: "v1"
+ metadata:
+ name: "adei"
+ labels:
+ name: adei
+ spec:
+# runPolicy: "Serial"
+ triggers:
+ - type: "ConfigChange"
+ source:
+ type: "Git"
+ git:
+ uri: "http://adei.info/git/csa/devops/docker/adei.git"
+ contextDir: "adei"
+ strategy:
+ dockerStrategy:
+ dockerfilePath: Dockerfile
+ output:
+ to:
+ kind: "ImageStreamTag"
+ name: "adei:latest"
+ imageLabels:
+ - name: "vendor"
+ value: "KIT"
+ - name: "author"
+ value: "Suren A. Chilingaryan"
+ - name: "authoritative-source-url"
+ value: "adei.info"
+
diff --git a/setup/projects/adei/templates/60-adei.yml.j2 b/setup/projects/adei/templates/60-adei.yml.j2
new file mode 100644
index 0000000..991fc8d
--- /dev/null
+++ b/setup/projects/adei/templates/60-adei.yml.j2
@@ -0,0 +1,149 @@
+apiVersion: v1
+kind: Template
+metadata:
+ name: "adei"
+ annotations:
+ openshift.io/display-name: "Advanced Data Extraction Infrastructure"
+ descriptions: "A complete ADEI deployment for a single setup"
+ openshift.io/provider-display-name: "KIT"
+ openshift.io/documentation-url: "http://adei.info"
+ openshift.io/support-url: "http://adei.info"
+labels:
+ name: adei
+objects:
+{% for name, cfg in adei_frontends.iteritems() %}
+{% if (cfg.enabled | default(true)) %}
+ - apiVersion: v1
+ kind: Service
+ metadata:
+ name: "{{ cfg.name }}"
+ spec:
+ selector:
+ name: "{{ cfg.name }}"
+ ports:
+ - name: "80"
+ port: 80
+ targetPort: 8080
+ - apiVersion: v1
+ kind: Route
+ metadata:
+ name: "{{ cfg.name }}"
+ spec:
+ host: "{{ cfg.node }}"
+ to:
+ kind: Service
+ name: "{{ cfg.name }}"
+ port:
+ targetPort: 8080
+ tls:
+ termination: edge
+ insecureEdgeTerminationPolicy: Allow
+ - 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 %}
+{% 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 %}
+{% 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:
+ command:
+ - /docker-entrypoint.sh
+ - /opt/scripts/adei-branch.sh
+{% endif %}
+{% endif %}
+{% endfor %}
+
+parameters:
+ - name: setup
+ value: "autogen"
+ description: "ADEI setup"
+ - name: adei_replicas
+ value: "2"
+ description: "Number of frontend replics"
+ - name: cache_replicas
+ value: "1"
+ description: "Default number of backend caching replicas"
+ - name: apache_servers
+ value: "150"
+ - name: cache_parallel
+ value: "source"
+ description: "Type of caching parallelism: group, source, server"
+ - name: enable_logs
+ value: "1"
+ description: "Enable detailed ADEI logging (large volume)"
+ - name: enable_debug
+ value: "0"
+ description: "Include debugging information in ADEI logs (huge volume)"
+ - name: "adei_revision"
+ value: "last:1"
diff --git a/setup/projects/adei/vars/globals.yml b/setup/projects/adei/vars/globals.yml
new file mode 100644
index 0000000..9ff9642
--- /dev/null
+++ b/setup/projects/adei/vars/globals.yml
@@ -0,0 +1,143 @@
+adei_domain: "{{ openshift_master_default_subdomain }}"
+
+adei_pod_env:
+ - name: "HOME"
+ value: "/tmp"
+ - name: "MYSQL_SERVER"
+ value: "mysql.adei.svc.cluster.local"
+ - name: "MYSQL_PORT"
+ value: "3306"
+ - name: "MYSQL_USER"
+ value: "adei"
+ - name: "MYSQL_PASSWORD"
+ value: "adei"
+ - name: "MYSQL_DATABASE"
+ value: "adei"
+ - name: "APACHE_SERVERS"
+ value: "${apache_servers}"
+ - name: "ADEI_PORTS"
+ value: "8080"
+ - name: "ADEI_SETUP"
+ value: "${setup}"
+ - name: "ADEI_ENABLED_SETUPS"
+ value: "${setup}"
+ - name: "ADEI_PARALLEL"
+ value: "${cache_parallel}"
+ - name: "ADEI_REVISION"
+ value: "${adei_revision}"
+
+
+adei_prod_env:
+ - name: "ADEI_RELEASE"
+ value: "1"
+ - name: "ADEI_WRITE_LOGS"
+ value: "${enable_logs}"
+ - name: "ADEI_DEBUG"
+ value: "${enable_debug}"
+
+adei_log_env:
+ - name: "ADEI_RELEASE"
+ value: "1"
+ - name: "ADEI_WRITE_LOGS"
+ value: "0"
+ - name: "ADEI_DEBUG"
+ value: "0"
+
+adei_debug_env:
+ - name: "ADEI_RELEASE"
+ value: "0"
+ - name: "ADEI_WRITE_LOGS"
+ value: "0"
+ - name: "ADEI_DEBUG"
+ value: "0"
+
+adei_cron_env:
+ - name: "ADEI_SCHEDULER"
+ value: "0"
+
+
+
+adei_pod_vols:
+ - name: adei-etc
+ persistentVolumeClaim:
+ claimName: adei-etc
+ - name: adei-src
+ persistentVolumeClaim:
+ claimName: adei-src
+ - name: adei-cfg
+ persistentVolumeClaim:
+ claimName: adei-cfg
+ - name: adei-sys
+ persistentVolumeClaim:
+ claimName: adei-sys
+ - name: adei-tmp
+ persistentVolumeClaim:
+ claimName: adei-tmp
+ - name: adei-log
+ persistentVolumeClaim:
+ claimName: adei-log
+# - name: adei-ovr
+# emptyDir: {}
+
+
+adei_prod_mounts:
+ - name: adei-src
+ subPath: prod
+ mountPath: /adei/src
+
+adei_dbg_mounts:
+ - name: adei-src
+ subPath: dbg
+ mountPath: /adei/src
+
+adei_pod_mounts:
+ - name: adei-cfg
+ subPath: "${setup}"
+ mountPath: /adei/cfg
+ - name: adei-sys
+ subPath: "${setup}"
+ mountPath: /adei/sys
+ - name: adei-tmp
+ subPath: "${setup}"
+ mountPath: /adei/tmp
+ - name: adei-log
+ subPath: "${setup}/apache2"
+ mountPath: /var/log/apache2
+
+# Only backends...
+# - name: adei-log
+# subPath: "${setup}/mail"
+# mountPath: /var/spool/mail
+
+#adei_prod_pod_mounts: "{{ adei_prod_mounts | union(adei_pod_mounts) }}"
+#adei_dbg_pod_mounts: "{{ adei_dbg_mounts | union(adei_pod_mounts) }}"
+
+adei_frontends:
+ frontend:
+ name: "adei-${setup}"
+ node: "adei-${setup}.{{ adei_domain }}"
+ replicas: "${adei_replicas}"
+ env: "{{ adei_pod_env | union(adei_prod_env) }}"
+ vols: "{{ adei_pod_vols }}"
+ mounts: "{{ adei_prod_mounts | union(adei_pod_mounts) }}"
+ groups: [ "adei" ]
+ configure: true
+ debug:
+ name: "adei-${setup}-debug"
+ node: "adei-${setup}-debug.{{ adei_domain }}"
+ replicas: 1
+ env: "{{ adei_pod_env | union(adei_debug_env) }}"
+ vols: "{{ adei_pod_vols }}"
+ mounts: "{{ adei_dbg_mounts | union(adei_pod_mounts) }}"
+ groups: [ "adei" ]
+ enabled: false
+ configure: true
+ logs:
+ name: "adei-${setup}-logs"
+ node: "adei-${setup}-logs.{{ adei_domain }}"
+ replicas: 1
+ env: "{{ adei_pod_env | union(adei_log_env) }}"
+ vols: "{{ adei_pod_vols }}"
+ mounts: "{{ adei_prod_mounts | union(adei_pod_mounts) }}"
+ groups: [ "adei" ]
+ enabled: false
diff --git a/setup/projects/adei/vars/pods.yml b/setup/projects/adei/vars/pods.yml
index 3b104ea..c0b943c 100644
--- a/setup/projects/adei/vars/pods.yml
+++ b/setup/projects/adei/vars/pods.yml
@@ -1,19 +1,7 @@
-volumes:
- adei_etc: { volume: "openshift", path: "/adei/etc" }
- adei_db: { volume: "databases", path: "/adei", write: true}
-
-gids:
- adei: { id: 5010 }
- adei_db: { id: 5011 }
-
-files:
- - { osv: "adei_db", path: "mysql", state: "directory", group: "adei_db", mode: "0775" }
-
-
pods:
mysql:
service: { ports: [ 3306 ] }
- sched: { replicas: 1, selector: { master: 1 } }
+ sched: { replicas: 1, strategy: "Recreate", selector: { master: 1 } }
selector: { master: 1 }
groups: [ "adei_db" ]
images:
diff --git a/setup/projects/adei/vars/volumes.yml b/setup/projects/adei/vars/volumes.yml
new file mode 100644
index 0000000..3a0fe4d
--- /dev/null
+++ b/setup/projects/adei/vars/volumes.yml
@@ -0,0 +1,19 @@
+volumes:
+ adei_etc: { volume: "openshift", path: "/adei/etc" } # mysql
+ adei_src: { volume: "openshift", path: "/adei/src", write: true } # prod & debug (init creates setup links)
+ adei_cfg: { volume: "openshift", path: "/adei/cfg", write: true } # per-setup configs (ADEI/wiki modifies setup)
+ adei_sys: { volume: "openshift", path: "/adei/sys" } # per-setup cron-jon overrides
+ adei_tmp: { volume: "temporary", path: "/adei/tmp", write: true } # per-setup temporary files
+ adei_log: { volume: "temporary", path: "/adei/log", write: true } # per-replica (should be fine) temporary files
+ adei_db: { volume: "databases", path: "/adei", write: true}
+
+gids:
+ adei: { id: 5010 }
+ adei_db: { id: 5011 }
+
+files:
+ - { osv: "adei_cfg", path: "/", state: "directory", group: "adei", mode: "0775" }
+ - { osv: "adei_src", path: "/", state: "directory", group: "adei", mode: "0775" }
+ - { osv: "adei_log", path: "/", state: "directory", group: "adei", mode: "0775" }
+ - { osv: "adei_tmp", path: "/", state: "directory", group: "adei", mode: "0775" }
+ - { osv: "adei_db", path: "mysql", state: "directory", group: "adei_db", mode: "0775" }