diff --git a/ansible/roles/epfl.phd-assess/tasks/monitoring.yml b/ansible/roles/epfl.phd-assess/tasks/monitoring.yml index 57fa836d..7e15b379 100644 --- a/ansible/roles/epfl.phd-assess/tasks/monitoring.yml +++ b/ansible/roles/epfl.phd-assess/tasks/monitoring.yml @@ -168,3 +168,68 @@ cmd: | oc delete pod prometheus-0 tags: monitoring.restart + + +- name: "Pull upstream {{ monitoring_node_base_image_mirrored_from }} image into {{ monitoring_node_base_image_mirrored_to }}" + when: openshift_namespace == phd_assess_build_namespace + delegate_to: localhost + openshift_imagestream: + metadata: + name: node + namespace: "{{ openshift_namespace }}" + from: "{{ monitoring_node_base_image_mirrored_from }}" + tag: "{{ monitoring_node_base_image_tag }}" + +- name: "Build the disk-usage-exporter image" + when: openshift_namespace == phd_assess_build_namespace + delegate_to: localhost + openshift_imagestream: + metadata: + name: disk-usage-exporter + namespace: "{{ openshift_namespace }}" + from: "{{ monitoring_node_base_image_mirrored_to }}:{{ monitoring_node_base_image_tag }}" + git: + repository: "https://github.com/epfl-si/PhDAssess" + path: docker/monitoring + spec: + resources: + limits: + cpu: '1' + memory: 100M + +- name: "disk-usage-exporter DeploymentConfig" + openshift: + state: latest + apiVersion: apps.openshift.io/v1 + kind: DeploymentConfig + metadata: + name: disk-usage-exporter + namespace: "{{ openshift_namespace }}" + spec: + selector: + deployment-config.name: disk-usage-exporter + template: + metadata: + labels: + deployment-config.name: disk-usage-exporter + spec: + containers: + - name: disk-image-exporter + image: "{{ monitoring_node_disk_usage_exporter_image }}" + volumeMounts: + - name: zeebe-data + mountPath: /usr/local/zeebe/data + env: + - name: DISK_USAGE_TARGET + value: /usr/local/zeebe/data + resources: + limits: + cpu: '1' + memory: 50M + ports: + - name: metrics + containerPort: 3000 + volumes: + - name: zeebe-data + persistentVolumeClaim: + claimName: "{{ volume_zeebe_name }}" diff --git a/ansible/roles/epfl.phd-assess/vars/main.yml b/ansible/roles/epfl.phd-assess/vars/main.yml index 2a7b945b..9b4df456 100644 --- a/ansible/roles/epfl.phd-assess/vars/main.yml +++ b/ansible/roles/epfl.phd-assess/vars/main.yml @@ -41,3 +41,8 @@ monitoring_prometheus_htpass: |- {% for cred in lookup("file", "/keybase/team/epfl_phdassess/prometheus-credentials.yml") | from_yaml %} {{ cred.user }}:{{ cred.password | password_hash('bcrypt', cred.salt) }} {% endfor %} + +monitoring_node_base_image_mirrored_from: "docker.io/library/node:{{ monitoring_node_base_image_tag }}" +monitoring_node_base_image_tag: alpine +monitoring_node_base_image_mirrored_to: "{{openshift_local_image_registry}}/{{openshift_namespace}}/node" +monitoring_node_disk_usage_exporter_image: "{{openshift_local_image_registry}}/{{openshift_namespace}}/disk-usage-exporter" diff --git a/docker/monitoring/Dockerfile b/docker/monitoring/Dockerfile new file mode 100644 index 00000000..19fe1d73 --- /dev/null +++ b/docker/monitoring/Dockerfile @@ -0,0 +1,9 @@ +FROM node:alpine + +WORKDIR /app +COPY package.json yarn.lock . +RUN yarn + +ADD server.ts . +CMD ["node", "-r", "ts-node/register", "server.ts"] +