diff options
| author | Suren A. Chilingaryan <csa@suren.me> | 2018-02-23 02:16:43 +0100 | 
|---|---|---|
| committer | Suren A. Chilingaryan <csa@suren.me> | 2018-02-23 02:16:43 +0100 | 
| commit | ca5b5b005d2ca454015f8b0faa54372c60a0e40a (patch) | |
| tree | e3dda23e189f4e15be0967ba83a31980dcd2d44d /setup/projects | |
| parent | e4751f88e52aa8e89e4c94bc6fe4c3346eccf6fe (diff) | |
GlusterFS subpaths, ADEI frontend pods, fixes
Diffstat (limited to 'setup/projects')
| -rw-r--r-- | setup/projects/adei/templates/10-adei-build.yml.j2 | 43 | ||||
| -rw-r--r-- | setup/projects/adei/templates/60-adei.yml.j2 | 149 | ||||
| -rw-r--r-- | setup/projects/adei/vars/globals.yml | 143 | ||||
| -rw-r--r-- | setup/projects/adei/vars/pods.yml | 14 | ||||
| -rw-r--r-- | setup/projects/adei/vars/volumes.yml | 19 | 
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" } | 
