diff --git a/playbooks/openshift-apps/monitor_gating.yml b/playbooks/openshift-apps/monitor_gating.yml new file mode 100644 index 0000000000..c03d4404a0 --- /dev/null +++ b/playbooks/openshift-apps/monitor_gating.yml @@ -0,0 +1,56 @@ +- name: make the app be real + hosts: os_masters_stg[0]:os_masters + user: root + gather_facts: False + + vars_files: + - /srv/web/infra/ansible/vars/global.yml + - "/srv/private/ansible/vars.yml" + - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml + + roles: + - role: openshift/project + app: monitor_gating + description: Monitor the packager and gating workflow + appowners: + - cverna + - pingou + - asaleh + + - role: openshift/object + app: monitor_gating + template: imagestream.yml + objectname: imagestream.yml + + - role: openshift/object + app: monitor_gating + template: buildconfig.yml + objectname: buildconfig.yml + + - role: openshift/object + app: monitor_gating + template: configmap.yml + objectname: configmap.yml + + - role: openshift/object + app: monitor_gating + template: secret.yml + objectname: secret.yml + + - role: openshift/secret-file + app: monitor_gating + secret_name: monitor_gating-ssh + key: id_rsa + privatefile: "git-ssh/monitor_gating" + + - role: openshift/object + app: monitor_gating + template: deploymentconfig.yml + objectname: deploymentconfig.yml + + - role: openshift/start-build + app: monitor_gating + buildname: monitor_gating-build + objectname: monitor_gating-build + tags: + - build diff --git a/roles/openshift-apps/monitor_gating/templates/buildconfig.yml b/roles/openshift-apps/monitor_gating/templates/buildconfig.yml new file mode 100644 index 0000000000..575392a4c5 --- /dev/null +++ b/roles/openshift-apps/monitor_gating/templates/buildconfig.yml @@ -0,0 +1,25 @@ +apiVersion: v1 +kind: BuildConfig +metadata: + name: monitor_gating_build + labels: + environment: "monitor_gating" +spec: + source: + git: +{% if env == 'staging' %} + uri: https://pagure.io/forks/pingou/fedora-ci/monitor-gating.git + ref: "staging" +{% else %} + uri: https://pagure.io/fedora-ci/monitor-gating/.git + ref: "production" +{% endif %} + strategy: + type: Docker + triggers: + - type: ConfigChange + - type: ImageChange + output: + to: + kind: ImageStreamTag + name: monitor_gating:latest diff --git a/roles/openshift-apps/monitor_gating/templates/configmap.yml b/roles/openshift-apps/monitor_gating/templates/configmap.yml new file mode 100644 index 0000000000..c138286711 --- /dev/null +++ b/roles/openshift-apps/monitor_gating/templates/configmap.yml @@ -0,0 +1,11 @@ +{% macro load_file(filename) %}{% include filename %}{%- endmacro -%} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: monitor_gating-configmap + labels: + app: monitor_gating +data: + runner.cfg: |- + {{ load_file('runner.cfg') | indent }} diff --git a/roles/openshift-apps/monitor_gating/templates/deploymentconfig.yml b/roles/openshift-apps/monitor_gating/templates/deploymentconfig.yml new file mode 100644 index 0000000000..1c41ea4eb1 --- /dev/null +++ b/roles/openshift-apps/monitor_gating/templates/deploymentconfig.yml @@ -0,0 +1,55 @@ +--- +apiVersion: v1 +kind: DeploymentConfig +metadata: + labels: + app: monitor_gating + name: monitor_gating +spec: + replicas: 1 + selector: + app: monitor_gating + deploymentconfig: monitor_gating + strategy: + type: Recreate + template: + metadata: + labels: + app: monitor_gating + deploymentconfig: monitor_gating + spec: + containers: + - name: monitor_gating + image: monitor_gating:latest + resources: {} + volumeMounts: + - name: config-volume + mountPath: /config/ + readOnly: true + - name: monitor_gating-secret-volume + mountPath: /config/app-config/ + readOnly: true + - name: monitor_gating-ssh-volume + mountPath: /root/.ssh/ + readOnly: true + volumes: + - name: config-volume + configMap: + name: monitor_gating-configmap + - name: monitor_gating-secret-volume + secret: + secretName: monitor_gating-secret + - name: monitor_gating-ssh-volume + secret: + secretName: monitor_gating-ssh + + triggers: + - type: ConfigChange + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - monitor_gating + from: + kind: ImageStreamTag + name: monitor_gating:latest diff --git a/roles/openshift-apps/monitor_gating/templates/imagestream.yml b/roles/openshift-apps/monitor_gating/templates/imagestream.yml new file mode 100644 index 0000000000..637ce639d3 --- /dev/null +++ b/roles/openshift-apps/monitor_gating/templates/imagestream.yml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: ImageStream +metadata: + name: "monitor_gating" diff --git a/roles/openshift-apps/monitor_gating/templates/monitor_gating.cfg b/roles/openshift-apps/monitor_gating/templates/monitor_gating.cfg new file mode 100644 index 0000000000..e1ab744698 --- /dev/null +++ b/roles/openshift-apps/monitor_gating/templates/monitor_gating.cfg @@ -0,0 +1,46 @@ +{% if env == 'staging' %} +fedpkg = "fedpkg-stage" +resultsdb = "https://taskotron.stg.fedoraproject.org/resultsdb_api/api/v2.0/results" +resultsdb_rdu = "http://resultsdb.ci.centos.org/resultsdb_api/api/v2.0/results" +datagrepper = "https://apps.stg.fedoraproject.org/datagrepper/raw" +pagure_dist_git = "https://src.stg.fedoraproject.org/" +distgit_host = "pkgs.stg.fedoraproject.org" +koji_hub = "https://koji.stg.fedoraproject.org/kojihub" +bodhi = "https://bodhi.stg.fedoraproject.org" +bodhi-cli = "bodhi" +bodhi-user = "packagerbot" +bodhi-password = "{{ monitor_gating_packagerbot_pwd_stg }}" + +_env = "stg" +_ci_env = "stage" +fas_username = "packagerbot" +namespace = "rpms" +name_single = "dummy-test-package-gloster" +name_multi_1 = "dummy-test-package-crested" +name_multi_2 = "dummy-test-package-rubino" +branch = "master" +pagure_token = "{{ monitor_gating_pagure_token_stg }}" + +{% else %} +fedpkg = "fedpkg" +resultsdb = "https://taskotron.fedoraproject.org/resultsdb_api/api/v2.0/results" +resultsdb_rdu = "http://resultsdb.ci.centos.org/resultsdb_api/api/v2.0/results" +datagrepper = "https://apps.fedoraproject.org/datagrepper/raw" +pagure_dist_git = "https://src.fedoraproject.org/" +distgit_host = "pkgs.fedoraproject.org" +koji_hub = "https://koji.fedoraproject.org/kojihub" +bodhi = "https://bodhi.fedoraproject.org" +bodhi-cli = "bodhi" +bodhi-user = "packagerbot" +bodhi-password = "{{ monitor_gating_packagerbot_pwd_prod }}" + +_env = "prod" +_ci_env = "prod" +fas_username = "packagerbot" +namespace = "rpms" +name_single = "dummy-test-package-gloster" +name_multi_1 = "dummy-test-package-crested" +name_multi_2 = "dummy-test-package-rubino" +branch = "master" +pagure_token = "{{ monitor_gating_pagure_token_prod }}" +{% endif %} diff --git a/roles/openshift-apps/monitor_gating/templates/runner.cfg b/roles/openshift-apps/monitor_gating/templates/runner.cfg new file mode 100644 index 0000000000..0e1f254dd0 --- /dev/null +++ b/roles/openshift-apps/monitor_gating/templates/runner.cfg @@ -0,0 +1,8 @@ +# Time between two runs in second +delay = 3600 + +# CLI arguments to give to the script testing the single build gating workflow +workflow_single_gating_args = "--conf /conf/monitor_gating.cfg --auto-update --no-pr" + +# CLI arguments to give to the script testing the multi builds gating workflow +workflow_multi_gating_args = "--conf /conf/monitor_gating.cfg diff --git a/roles/openshift-apps/monitor_gating/templates/secret.yml b/roles/openshift-apps/monitor_gating/templates/secret.yml new file mode 100644 index 0000000000..22aab5a5df --- /dev/null +++ b/roles/openshift-apps/monitor_gating/templates/secret.yml @@ -0,0 +1,10 @@ +{% macro load_file(filename) %}{% include filename %}{%- endmacro -%} +apiVersion: v1 +kind: Secret +metadata: + name: monitor_gating-secret + labels: + app: monitor_gating +stringData: + monitor_gating.cfg: |- + {{ load_file('monitor_gating.cfg') | indent }}