From 1f7cc5a2edabbd51f3b56abd63206e07f7b6f219 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jarom=C3=ADr=20Hradil?= <jaromir.hradil@cesnet.cz> Date: Mon, 26 Aug 2024 17:35:21 +0200 Subject: [PATCH] Adding an automated accounting deploy --- .../accounting-config.yaml | 13 ++++++ common/playbooks/accounting.yaml | 44 +++++++++++++++++++ .../accounting-config.yaml | 1 + staging1/playbooks/accounting.yaml | 1 + .../accounting-config.yaml | 1 + staging2/playbooks/accounting.yaml | 1 + 6 files changed, 61 insertions(+) create mode 100644 common/accounting_deployments/accounting-config.yaml create mode 100644 common/playbooks/accounting.yaml create mode 120000 staging1/accounting_deployments/accounting-config.yaml create mode 120000 staging1/playbooks/accounting.yaml create mode 120000 staging2/accounting_deployments/accounting-config.yaml create mode 120000 staging2/playbooks/accounting.yaml diff --git a/common/accounting_deployments/accounting-config.yaml b/common/accounting_deployments/accounting-config.yaml new file mode 100644 index 0000000..0335719 --- /dev/null +++ b/common/accounting_deployments/accounting-config.yaml @@ -0,0 +1,13 @@ +eosc: + tokenUrl: "https://{{ secrets['checkin_host'] }}/OIDC/token" + clientId: "{{ secrets['client_id'] }}" + clientSecret: "{{ secrets['client_secret'] }}" + accountingUrl: "https://{{ secrets['accounting_host'] }}" + accountingInstallationId: "{{ secrets['accounting_install_id'] }}" + flavorMetrics: + small-environment-2-vcpu-4-gb-ram: 668bdd5988e1d617b217ecb9 + medium-environment-4-vcpu-8-gb-ram: 668bdd75d1bc0f46a16be8a2 + large-environment-8-vcpu-16-gb-ram-gpu: 668bdd8b88e1d617b217ecba + large-environment-8-vcpu-16-gb-ram: 6694d9eb744c3c7ae7531917 + + diff --git a/common/playbooks/accounting.yaml b/common/playbooks/accounting.yaml new file mode 100644 index 0000000..293a4c2 --- /dev/null +++ b/common/playbooks/accounting.yaml @@ -0,0 +1,44 @@ +- name: EOSC accounting deployment + hosts: master + become: true + tasks: + - name: Configure helm repo + shell: |- + helm repo add egi-accounting https://egi-federation.github.io/egi-notebooks-accounting + helm repo update + when: "'egi-accounting' not in ansible_local.helm_repos | map(attribute='name') | list" + - name: Get credentials from Vault for accounting + set_fact: + secrets: "{{ lookup('community.hashi_vault.hashi_vault', (vault_mount_point, 'accounting') | path_join, + token_validate=false) }}" + - name: Get accounting installation ID from Vault + set_fact: + secrets: "{{ secrets | combine(lookup('community.hashi_vault.hashi_vault', (vault_mount_point, 'site-' + site_name) | path_join, + token_validate=false)) }}" + - name: Debug accounting secrets + debug: + msg: "{{ item.key }} = {{ item.value }}" + loop: "{{ secrets | dict2items }}" + - name: Copy config file to master + template: + src: "../accounting_deployments/accounting-config.yaml" + dest: "/tmp/accounting-config.yaml" + mode: 0600 + - name: Deploy/upgrade accounting instance + vars: + name: "notebooks-accounting" + version: "0.2.0" + shell: |- + helm status --namespace accounting {{ name }} + if [ $? -ne 0 ]; then + helm install --create-namespace --namespace accounting \ + -f /tmp/accounting-config.yaml --version {{ version }} \ + {{ name }} egi-accounting/notebooks-accounting + else + helm upgrade --version {{ version }} -f /tmp/accounting-config.yaml \ + --namespace accounting {{ name }} egi-accounting/notebooks-accounting + fi + environment: + KUBECONFIG: /etc/kubernetes/admin.conf + PATH: /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin + when: true \ No newline at end of file diff --git a/staging1/accounting_deployments/accounting-config.yaml b/staging1/accounting_deployments/accounting-config.yaml new file mode 120000 index 0000000..c064841 --- /dev/null +++ b/staging1/accounting_deployments/accounting-config.yaml @@ -0,0 +1 @@ +../../common/accounting_deployments/accounting-config.yaml \ No newline at end of file diff --git a/staging1/playbooks/accounting.yaml b/staging1/playbooks/accounting.yaml new file mode 120000 index 0000000..8928484 --- /dev/null +++ b/staging1/playbooks/accounting.yaml @@ -0,0 +1 @@ +../../common/playbooks/accounting.yaml \ No newline at end of file diff --git a/staging2/accounting_deployments/accounting-config.yaml b/staging2/accounting_deployments/accounting-config.yaml new file mode 120000 index 0000000..c064841 --- /dev/null +++ b/staging2/accounting_deployments/accounting-config.yaml @@ -0,0 +1 @@ +../../common/accounting_deployments/accounting-config.yaml \ No newline at end of file diff --git a/staging2/playbooks/accounting.yaml b/staging2/playbooks/accounting.yaml new file mode 120000 index 0000000..8928484 --- /dev/null +++ b/staging2/playbooks/accounting.yaml @@ -0,0 +1 @@ +../../common/playbooks/accounting.yaml \ No newline at end of file -- GitLab