From f485ee878c0a0d33b1860d9fed3fb803a77251d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rub=C3=A9n=20Torrero=20Marijnissen?= Date: Mon, 15 Jan 2024 15:14:25 +0000 Subject: [PATCH 1/2] Add forced indentation --- .yamllint | 3 + playbook.cleanup.yml | 32 +++---- playbook.yml | 100 +++++++++++----------- roles/agent/handlers/main.yml | 4 +- roles/agent/tasks/main.yml | 1 - roles/containers/tasks/main.yml | 139 ++++++++++++++++++------------- roles/postgres/handlers/main.yml | 4 +- roles/postgres/tasks/cleanup.yml | 20 ++--- roles/postgres/tasks/main.yml | 110 ++++++++++++------------ roles/proxy/handlers/main.yml | 4 +- roles/rabbitmq/tasks/main.yml | 40 ++++----- 11 files changed, 239 insertions(+), 218 deletions(-) create mode 100644 .yamllint diff --git a/.yamllint b/.yamllint new file mode 100644 index 0000000..9424204 --- /dev/null +++ b/.yamllint @@ -0,0 +1,3 @@ +rules: + indentation: + spaces: 2 diff --git a/playbook.cleanup.yml b/playbook.cleanup.yml index cdaff34..572ca38 100644 --- a/playbook.cleanup.yml +++ b/playbook.cleanup.yml @@ -4,29 +4,29 @@ hosts: trento-server become: true tasks: - - name: Containers - ansible.builtin.include_role: - name: containers - tasks_from: cleanup - - name: Proxy - ansible.builtin.include_role: - name: proxy - tasks_from: cleanup + - name: Containers + ansible.builtin.include_role: + name: containers + tasks_from: cleanup + - name: Proxy + ansible.builtin.include_role: + name: proxy + tasks_from: cleanup - name: Clean up postgres hosts: postgres-hosts become: true tasks: - - name: Postgres - ansible.builtin.include_role: - name: postgres - tasks_from: cleanup + - name: Postgres + ansible.builtin.include_role: + name: postgres + tasks_from: cleanup - name: Clean up rabbitmq hosts: rabbitmq-hosts become: true tasks: - - name: Rabbitmq - ansible.builtin.include_role: - name: rabbitmq - tasks_from: cleanup + - name: Rabbitmq + ansible.builtin.include_role: + name: rabbitmq + tasks_from: cleanup diff --git a/playbook.yml b/playbook.yml index 20c496d..9b94453 100644 --- a/playbook.yml +++ b/playbook.yml @@ -4,87 +4,87 @@ hosts: trento-server become: true pre_tasks: - - name: Check SLES distribution and version - ansible.builtin.fail: - msg: "This playbook only runs on SLES for SAP 15 SP3 or above. Detected: {{ ansible_distribution }} {{ ansible_distribution_version }}" - when: > - ((ansible_distribution != "SLES_SAP") and - (ansible_distribution != "openSUSE Leap")) or - (ansible_distribution_version is version('15.3', '<')) + - name: Check SLES distribution and version + ansible.builtin.fail: + msg: "This playbook only runs on SLES for SAP 15 SP3 or above. Detected: {{ ansible_distribution }} {{ ansible_distribution_version }}" + when: > + ((ansible_distribution != "SLES_SAP") and + (ansible_distribution != "openSUSE Leap")) or + (ansible_distribution_version is version('15.3', '<')) tasks: - - name: Install installation prerequisites - community.general.zypper: - name: - - gcc - - python3-devel - - sudo + - name: Install installation prerequisites + community.general.zypper: + name: + - gcc + - python3-devel + - sudo - - name: Install python prerequisites - community.general.zypper: - name: - - python3-setuptools - - python3-pip - - python3-pexpect - state: present - update_cache: true + - name: Install python prerequisites + community.general.zypper: + name: + - python3-setuptools + - python3-pip + - python3-pexpect + state: present + update_cache: true - - name: Install docker - community.general.zypper: - name: docker - state: present - update_cache: true + - name: Install docker + community.general.zypper: + name: docker + state: present + update_cache: true - - name: Start docker service - ansible.builtin.service: - name: docker - state: started - enabled: true + - name: Start docker service + ansible.builtin.service: + name: docker + state: started + enabled: true - name: Provision postgres become: true vars: - provision_postgres: "true" + provision_postgres: "true" hosts: postgres-hosts roles: - - role: postgres - when: provision_postgres == 'true' - become: true + - role: postgres + when: provision_postgres == 'true' + become: true - name: Provision prometheus become: true vars: - provision_prometheus: "true" + provision_prometheus: "true" hosts: prometheus-hosts roles: - - role: prometheus - when: provision_prometheus == 'true' - become: true + - role: prometheus + when: provision_prometheus == 'true' + become: true - name: Provision rabbitmq become: true vars: - provision_rabbitmq: "true" + provision_rabbitmq: "true" hosts: rabbitmq-hosts roles: - - role: rabbitmq - when: provision_rabbitmq == 'true' + - role: rabbitmq + when: provision_rabbitmq == 'true' - name: Configure trento projects vars: - provision_proxy: "true" + provision_proxy: "true" hosts: trento-server become: true roles: - - role: containers - become: true - - role: proxy - when: provision_proxy == 'true' - become: true + - role: containers + become: true + - role: proxy + when: provision_proxy == 'true' + become: true - name: Configure trento agents hosts: agents become: true roles: - - role: agent - become: true + - role: agent + become: true diff --git a/roles/agent/handlers/main.yml b/roles/agent/handlers/main.yml index 316bad1..b7f137a 100644 --- a/roles/agent/handlers/main.yml +++ b/roles/agent/handlers/main.yml @@ -2,5 +2,5 @@ --- - name: Restart Trento agent ansible.builtin.service: - name: trento-agent - state: restarted + name: trento-agent + state: restarted diff --git a/roles/agent/tasks/main.yml b/roles/agent/tasks/main.yml index 03d601d..43e3e7f 100644 --- a/roles/agent/tasks/main.yml +++ b/roles/agent/tasks/main.yml @@ -1,6 +1,5 @@ # code: language=ansible --- - - name: Add Trento agent repository community.general.zypper_repository: name: trento diff --git a/roles/containers/tasks/main.yml b/roles/containers/tasks/main.yml index d8871c0..dffe278 100644 --- a/roles/containers/tasks/main.yml +++ b/roles/containers/tasks/main.yml @@ -2,77 +2,96 @@ --- - name: Install docker python management deps ansible.builtin.pip: - name: - - docker - state: present + name: + - docker + state: present - name: Force pull trento images when: force_pull_images == 'true' loop: - - "{{ wanda_container_image }}" - - "{{ web_container_image }}" + - "{{ wanda_container_image }}" + - "{{ web_container_image }}" community.docker.docker_image: - name: "{{ item }}" - force_source: true - source: pull - + name: "{{ item }}" + force_source: true + source: pull - name: Create trento docker network community.docker.docker_network: - name: "{{ docker_network_name }}" + name: "{{ docker_network_name }}" - name: Wanda container community.docker.docker_container: - name: "{{ wanda_container_name }}" - state: started - restart_policy: unless-stopped - recreate: "{{ force_recreate_wanda_container == 'true' }}" - networks: - - name: "{{ docker_network_name }}" - image: "{{ wanda_container_image }}" - pull: true - entrypoint: ["/bin/sh", "-c", "/app/bin/wanda eval \"Wanda.Release.init()\" && /app/bin/wanda start"] - etc_hosts: - host.docker.internal: "host-gateway" - ports: - - "{{ wanda_container_port }}:4000" - env: - CORS_ORIGIN: "http://localhost" # TODO: Remove placeholder - SECRET_KEY_BASE: "{{ secret_key_base }}" - ACCESS_TOKEN_ENC_SECRET: "{{ access_token_secret }}" - AMQP_URL: "{{ amqp_protocol }}://{{ rabbitmq_username }}:{{ rabbitmq_password }}@{{ rabbitmq_host }}/{{ rabbitmq_vhost | urlencode | replace('/', '%2F') }}" - DATABASE_URL: "ecto://{{ wanda_postgres_user }}:{{ wanda_postgres_password }}@{{ wanda_postgres_host }}/{{ wanda_postgres_db }}" + name: "{{ wanda_container_name }}" + state: started + restart_policy: unless-stopped + recreate: "{{ force_recreate_wanda_container == 'true' }}" + networks: + - name: "{{ docker_network_name }}" + image: "{{ wanda_container_image }}" + pull: true + entrypoint: + [ + "/bin/sh", + "-c", + '/app/bin/wanda eval "Wanda.Release.init()" && /app/bin/wanda start', + ] + etc_hosts: + host.docker.internal: "host-gateway" + ports: + - "{{ wanda_container_port }}:4000" + env: + CORS_ORIGIN: "http://localhost" # TODO: Remove placeholder + SECRET_KEY_BASE: "{{ secret_key_base }}" + ACCESS_TOKEN_ENC_SECRET: "{{ access_token_secret }}" + AMQP_URL: >- + "{{ amqp_protocol }}://{{ rabbitmq_username }}:{{ rabbitmq_password }}" + "@{{ rabbitmq_host }}/{{ rabbitmq_vhost | urlencode | replace('/', '%2F') }}" + DATABASE_URL: >- + "ecto://{{ wanda_postgres_user }}:{{ wanda_postgres_password }}" + "@{{ wanda_postgres_host }}/{{ wanda_postgres_db }}" - name: Web container community.docker.docker_container: - name: "{{ web_container_name }}" - state: started - recreate: "{{ force_recreate_web_container == 'true' }}" - restart_policy: unless-stopped - image: "{{ web_container_image }}" - pull: true - networks: - - name: "{{ docker_network_name }}" - entrypoint: ["/bin/sh", "-c", "/app/bin/trento eval \"Trento.Release.init()\" && /app/bin/trento start"] - etc_hosts: - host.docker.internal: "host-gateway" - ports: - - "{{ web_container_port }}:4000" - env: - AMQP_URL: "{{ amqp_protocol }}://{{ rabbitmq_username }}:{{ rabbitmq_password }}@{{ rabbitmq_host }}/{{ rabbitmq_vhost | urlencode | replace('/', '%2F') }}" - DATABASE_URL: "ecto://{{ web_postgres_user }}:{{ web_postgres_password }}@{{ web_postgres_host }}/{{ web_postgres_db }}" - EVENTSTORE_URL: "ecto://{{ web_postgres_user }}:{{ web_postgres_password }}@{{ web_postgres_host }}/{{ web_postgres_event_store }}" - ENABLE_ALERTING: "{{ enable_alerting }}" - # SMTP_SERVER: "{{ .Values.alerting.smtpServer }}" - # SMTP_PORT: "{{ .Values.alerting.smtpPort }}" - # SMTP_USER: "{{ .Values.alerting.smtpUser }}" - # SMTP_PASSWORD: "{{ .Values.alerting.smtpPassword }}" - # ALERT_SENDER: "{{ .Values.alerting.sender }}" - # ALERT_RECIPIENT: "{{ .Values.alerting.recipient }}" - PROMETHEUS_URL: "{{ prometheus_url }}" - SECRET_KEY_BASE: "{{ secret_key_base }}" - ACCESS_TOKEN_ENC_SECRET: "{{ access_token_secret }}" - REFRESH_TOKEN_ENC_SECRET: "{{ refresh_token_secret }}" - ADMIN_USER: "{{ web_admin_username }}" - ADMIN_PASSWORD: "{{ web_admin_password }}" - ENABLE_API_KEY: "{{ enable_api_key }}" + name: "{{ web_container_name }}" + state: started + recreate: "{{ force_recreate_web_container == 'true' }}" + restart_policy: unless-stopped + image: "{{ web_container_image }}" + pull: true + networks: + - name: "{{ docker_network_name }}" + entrypoint: + [ + "/bin/sh", + "-c", + '/app/bin/trento eval "Trento.Release.init()" && /app/bin/trento start', + ] + etc_hosts: + host.docker.internal: "host-gateway" + ports: + - "{{ web_container_port }}:4000" + env: + AMQP_URL: >- + "{{ amqp_protocol }}://{{ rabbitmq_username }}:{{ rabbitmq_password }}" + "@{{ rabbitmq_host }}/{{ rabbitmq_vhost | urlencode | replace('/', '%2F') }}" + DATABASE_URL: >- + "ecto://{{ web_postgres_user }}:{{ web_postgres_password }}" + "@{{ web_postgres_host }}/{{ web_postgres_db }}" + EVENTSTORE_URL: >- + "ecto://{{ web_postgres_user }}:{{ web_postgres_password }}" + "@{{ web_postgres_host }}/{{ web_postgres_event_store }}" + ENABLE_ALERTING: "{{ enable_alerting }}" + # SMTP_SERVER: "{{ .Values.alerting.smtpServer }}" + # SMTP_PORT: "{{ .Values.alerting.smtpPort }}" + # SMTP_USER: "{{ .Values.alerting.smtpUser }}" + # SMTP_PASSWORD: "{{ .Values.alerting.smtpPassword }}" + # ALERT_SENDER: "{{ .Values.alerting.sender }}" + # ALERT_RECIPIENT: "{{ .Values.alerting.recipient }}" + PROMETHEUS_URL: "{{ prometheus_url }}" + SECRET_KEY_BASE: "{{ secret_key_base }}" + ACCESS_TOKEN_ENC_SECRET: "{{ access_token_secret }}" + REFRESH_TOKEN_ENC_SECRET: "{{ refresh_token_secret }}" + ADMIN_USER: "{{ web_admin_username }}" + ADMIN_PASSWORD: "{{ web_admin_password }}" + ENABLE_API_KEY: "{{ enable_api_key }}" diff --git a/roles/postgres/handlers/main.yml b/roles/postgres/handlers/main.yml index 53eda80..d542a84 100644 --- a/roles/postgres/handlers/main.yml +++ b/roles/postgres/handlers/main.yml @@ -2,5 +2,5 @@ --- - name: Restart postgres ansible.builtin.service: - name: postgresql - state: restarted + name: postgresql + state: restarted diff --git a/roles/postgres/tasks/cleanup.yml b/roles/postgres/tasks/cleanup.yml index 889cf6d..288d3d0 100644 --- a/roles/postgres/tasks/cleanup.yml +++ b/roles/postgres/tasks/cleanup.yml @@ -3,29 +3,29 @@ - name: Remove web database become_user: postgres community.postgresql.postgresql_db: - name: "{{ web_postgres_db }}" - state: absent + name: "{{ web_postgres_db }}" + state: absent - name: Remove web event store database become_user: postgres community.postgresql.postgresql_db: - name: "{{ web_postgres_event_store }}" - state: absent + name: "{{ web_postgres_event_store }}" + state: absent - name: Remove wanda event store database become_user: postgres community.postgresql.postgresql_db: - name: "{{ wanda_postgres_db }}" - state: absent + name: "{{ wanda_postgres_db }}" + state: absent - name: Remove web database user become_user: postgres community.postgresql.postgresql_user: - name: "{{ web_postgres_user }}" - state: absent + name: "{{ web_postgres_user }}" + state: absent - name: Remove wanda database user become_user: postgres community.postgresql.postgresql_user: - name: "{{ wanda_postgres_user }}" - state: absent + name: "{{ wanda_postgres_user }}" + state: absent diff --git a/roles/postgres/tasks/main.yml b/roles/postgres/tasks/main.yml index b6e59b7..0fba200 100644 --- a/roles/postgres/tasks/main.yml +++ b/roles/postgres/tasks/main.yml @@ -3,106 +3,106 @@ - name: Install postgresql when: install_postgres == 'true' community.general.zypper: - name: - - postgresql - - postgresql-server - - postgresql-server-devel - - postgresql-contrib - state: present - update_cache: true + name: + - postgresql + - postgresql-server + - postgresql-server-devel + - postgresql-contrib + state: present + update_cache: true - name: Install postgres python management deps ansible.builtin.pip: - name: - - psycopg2-binary - state: present + name: + - psycopg2-binary + state: present - name: Start postgresql service ansible.builtin.service: - name: postgresql - state: started - enabled: true + name: postgresql + state: started + enabled: true - name: "Configure postgres to listen on *" become_user: postgres community.postgresql.postgresql_set: - name: listen_addresses - value: "*" + name: listen_addresses + value: "*" notify: Restart postgres - name: Configure pg_hba to accept connection from trento containers become_user: postgres notify: Restart postgres community.postgresql.postgresql_pg_hba: - contype: host - dest: "/var/lib/pgsql/data/pg_hba.conf" - databases: all - users: all - address: "0.0.0.0/0" - method: "md5" + contype: host + dest: "/var/lib/pgsql/data/pg_hba.conf" + databases: all + users: all + address: "0.0.0.0/0" + method: "md5" - name: Create postgres web database become_user: postgres community.postgresql.postgresql_db: - name: "{{ web_postgres_db }}" - state: present + name: "{{ web_postgres_db }}" + state: present - name: Create postgres web event store become_user: postgres community.postgresql.postgresql_db: - name: "{{ web_postgres_event_store }}" - state: present + name: "{{ web_postgres_event_store }}" + state: present - name: Create postgres wanda database become_user: postgres community.postgresql.postgresql_db: - name: "{{ wanda_postgres_db }}" - state: present + name: "{{ wanda_postgres_db }}" + state: present - name: Create web database user become_user: postgres community.postgresql.postgresql_user: - db: "{{ web_postgres_db }}" - name: "{{ web_postgres_user }}" - password: "{{ web_postgres_password }}" - comment: "Web user provisioned by playbook" - state: present + db: "{{ web_postgres_db }}" + name: "{{ web_postgres_user }}" + password: "{{ web_postgres_password }}" + comment: "Web user provisioned by playbook" + state: present - name: Create wanda database user become_user: postgres community.postgresql.postgresql_user: - db: "{{ wanda_postgres_db }}" - name: "{{ wanda_postgres_user }}" - password: "{{ wanda_postgres_password }}" - comment: "Wanda user provisioned by playbook" - state: present + db: "{{ wanda_postgres_db }}" + name: "{{ wanda_postgres_user }}" + password: "{{ wanda_postgres_password }}" + comment: "Wanda user provisioned by playbook" + state: present - name: Grant privilegies to the web user for the web database become_user: postgres community.postgresql.postgresql_privs: - db: "{{ web_postgres_db }}" - objs: public - roles: "{{ web_postgres_user }}" - privs: ALL - type: schema - state: present + db: "{{ web_postgres_db }}" + objs: public + roles: "{{ web_postgres_user }}" + privs: ALL + type: schema + state: present - name: Grant privilegies to the web user for the web event store become_user: postgres community.postgresql.postgresql_privs: - db: "{{ web_postgres_event_store }}" - objs: public - roles: "{{ web_postgres_user }}" - privs: ALL - type: schema - state: present + db: "{{ web_postgres_event_store }}" + objs: public + roles: "{{ web_postgres_user }}" + privs: ALL + type: schema + state: present - name: Grant privilegies to the wanda user for the wanda database become_user: postgres community.postgresql.postgresql_privs: - db: "{{ wanda_postgres_db }}" - objs: public - roles: "{{ wanda_postgres_user }}" - privs: ALL - type: schema - state: present + db: "{{ wanda_postgres_db }}" + objs: public + roles: "{{ wanda_postgres_user }}" + privs: ALL + type: schema + state: present diff --git a/roles/proxy/handlers/main.yml b/roles/proxy/handlers/main.yml index 3cde5cd..d820a27 100644 --- a/roles/proxy/handlers/main.yml +++ b/roles/proxy/handlers/main.yml @@ -2,5 +2,5 @@ --- - name: Restart nginx ansible.builtin.service: - name: nginx - state: restarted + name: nginx + state: restarted diff --git a/roles/rabbitmq/tasks/main.yml b/roles/rabbitmq/tasks/main.yml index 42a71f0..768d962 100644 --- a/roles/rabbitmq/tasks/main.yml +++ b/roles/rabbitmq/tasks/main.yml @@ -2,35 +2,35 @@ --- - name: Install erlang community.general.zypper: - name: erlang - state: present - update_cache: true + name: erlang + state: present + update_cache: true - name: Install rabbitmq community.general.zypper: - name: rabbitmq-server - state: present - update_cache: true + name: rabbitmq-server + state: present + update_cache: true - name: Start rabbitmq service ansible.builtin.service: - name: rabbitmq-server - state: started - enabled: true + name: rabbitmq-server + state: started + enabled: true - name: Create rabbitmq trento vhost community.rabbitmq.rabbitmq_vhost: - name: "{{ rabbitmq_vhost }}" - node: "{{ rabbitmq_node_name }}" - state: present + name: "{{ rabbitmq_vhost }}" + node: "{{ rabbitmq_node_name }}" + state: present - name: Configure rabbitmq trento user community.rabbitmq.rabbitmq_user: - user: "{{ rabbitmq_username }}" - node: "{{ rabbitmq_node_name }}" - password: "{{ rabbitmq_password }}" - permissions: - - vhost: "{{ rabbitmq_vhost }}" - configure_priv: ".*" - read_priv: ".*" - write_priv: ".*" + user: "{{ rabbitmq_username }}" + node: "{{ rabbitmq_node_name }}" + password: "{{ rabbitmq_password }}" + permissions: + - vhost: "{{ rabbitmq_vhost }}" + configure_priv: ".*" + read_priv: ".*" + write_priv: ".*" From b07c84776afd5d8aceab89caceff0d2826b5cd32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rub=C3=A9n=20Torrero=20Marijnissen?= Date: Tue, 16 Jan 2024 13:52:21 +0000 Subject: [PATCH 2/2] Reduce line-length rule to warning level --- .ansible-lint | 2 ++ roles/containers/tasks/main.yml | 20 +++++--------------- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/.ansible-lint b/.ansible-lint index f615bf2..0531728 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -1,2 +1,4 @@ exclude_paths: - .github/ +skip_list: + - yaml[line-length] diff --git a/roles/containers/tasks/main.yml b/roles/containers/tasks/main.yml index dffe278..d96b2cf 100644 --- a/roles/containers/tasks/main.yml +++ b/roles/containers/tasks/main.yml @@ -44,12 +44,8 @@ CORS_ORIGIN: "http://localhost" # TODO: Remove placeholder SECRET_KEY_BASE: "{{ secret_key_base }}" ACCESS_TOKEN_ENC_SECRET: "{{ access_token_secret }}" - AMQP_URL: >- - "{{ amqp_protocol }}://{{ rabbitmq_username }}:{{ rabbitmq_password }}" - "@{{ rabbitmq_host }}/{{ rabbitmq_vhost | urlencode | replace('/', '%2F') }}" - DATABASE_URL: >- - "ecto://{{ wanda_postgres_user }}:{{ wanda_postgres_password }}" - "@{{ wanda_postgres_host }}/{{ wanda_postgres_db }}" + AMQP_URL: "{{ amqp_protocol }}://{{ rabbitmq_username }}:{{ rabbitmq_password }}@{{ rabbitmq_host }}/{{ rabbitmq_vhost | urlencode | replace('/', '%2F') }}" + DATABASE_URL: "ecto://{{ wanda_postgres_user }}:{{ wanda_postgres_password }}@{{ wanda_postgres_host }}/{{ wanda_postgres_db }}" - name: Web container community.docker.docker_container: @@ -72,15 +68,9 @@ ports: - "{{ web_container_port }}:4000" env: - AMQP_URL: >- - "{{ amqp_protocol }}://{{ rabbitmq_username }}:{{ rabbitmq_password }}" - "@{{ rabbitmq_host }}/{{ rabbitmq_vhost | urlencode | replace('/', '%2F') }}" - DATABASE_URL: >- - "ecto://{{ web_postgres_user }}:{{ web_postgres_password }}" - "@{{ web_postgres_host }}/{{ web_postgres_db }}" - EVENTSTORE_URL: >- - "ecto://{{ web_postgres_user }}:{{ web_postgres_password }}" - "@{{ web_postgres_host }}/{{ web_postgres_event_store }}" + AMQP_URL: "{{ amqp_protocol }}://{{ rabbitmq_username }}:{{ rabbitmq_password }}@{{ rabbitmq_host }}/{{ rabbitmq_vhost | urlencode | replace('/', '%2F') }}" + DATABASE_URL: "ecto://{{ web_postgres_user }}:{{ web_postgres_password }}@{{ web_postgres_host }}/{{ web_postgres_db }}" + EVENTSTORE_URL: "ecto://{{ web_postgres_user }}:{{ web_postgres_password }}@{{ web_postgres_host }}/{{ web_postgres_event_store }}" ENABLE_ALERTING: "{{ enable_alerting }}" # SMTP_SERVER: "{{ .Values.alerting.smtpServer }}" # SMTP_PORT: "{{ .Values.alerting.smtpPort }}"