From b3eabd3289398200a3d27b08fc1a15db066092a6 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:16:51 +0200
Subject: [PATCH] Adding an accounting automation deploy
---
.../accounting-config.yaml | 13 ++++++
common/playbooks/accounting.yaml | 44 +++++++++++++++++++
.../accounting-config.yaml | 1 +
staging1/inventory/99-all.yaml | 2 +-
staging1/playbooks/accounting.yaml | 1 +
.../accounting-config.yaml | 1 +
staging2/playbooks/accounting.yaml | 1 +
7 files changed, 62 insertions(+), 1 deletion(-)
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/inventory/99-all.yaml b/staging1/inventory/99-all.yaml
index 0398c06..1c9210e 100644
--- a/staging1/inventory/99-all.yaml
+++ b/staging1/inventory/99-all.yaml
@@ -17,4 +17,4 @@ all:
vault_mount_point: secrets/users/e1662e20-e34b-468c-b0ce-d899bc878364@egi.eu/eosc-staging
notebooks_hostname: notebooks-stg1.cloud.cesnet.cz
- grafana_hostname: grafana-stg1.cloud.cesnet.cz
+ grafana_hostname: grafana-stg1.cloud.cesnet.cz
\ 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