Skip to content

Commit 292e59c

Browse files
committed
Role for auditing-timescaledb.
1 parent 2f4028f commit 292e59c

File tree

6 files changed

+109
-0
lines changed

6 files changed

+109
-0
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# auditing-timescaledb
2+
3+
This role provides a database for the metal-api that can be used for storing audit traces. The auditing feature has to be explicitly enabled in the metal-api in order to make use of this database.
4+
5+
This role just wraps the [postgres-backup-restore](/control-plane/roles/postgres-backup-restore) role. Refer to this role for further documentation.
6+
7+
## Variables
8+
9+
The role should take the same variables as the wrapped role, but prefixed with `auditing_timescaledb_` instead of `postgres_`.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../../../control-plane-defaults/
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../../../../defaults
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---
2+
auditing_timescaledb_name: auditing-timescaledb
3+
auditing_timescaledb_namespace: "{{ metal_control_plane_namespace }}"
4+
5+
auditing_timescaledb_image_pull_policy: "{{ metal_control_plane_image_pull_policy }}"
6+
7+
auditing_timescaledb_storage_size: 10Gi
8+
auditing_timescaledb_storage_class:
9+
auditing_timescaledb_db: auditing
10+
auditing_timescaledb_user: postgres
11+
auditing_timescaledb_password: change-me
12+
auditing_timescaledb_max_connections: 100
13+
14+
auditing_timescaledb_backup_restore_sidecar_image_pull_policy: "{{ metal_control_plane_image_pull_policy }}"
15+
auditing_timescaledb_backup_restore_sidecar_provider: local
16+
auditing_timescaledb_backup_restore_sidecar_backup_cron_schedule: "0 * * * *"
17+
auditing_timescaledb_backup_restore_sidecar_log_level: debug
18+
auditing_timescaledb_backup_restore_sidecar_object_prefix: "{{ auditing_timescaledb_name }}-{{ metal_control_plane_stage_name }}"
19+
auditing_timescaledb_backup_restore_sidecar_object_max_keep:
20+
21+
auditing_timescaledb_backup_restore_sidecar_gcp_bucket_name:
22+
auditing_timescaledb_backup_restore_sidecar_gcp_backup_location:
23+
auditing_timescaledb_backup_restore_sidecar_gcp_project_id:
24+
auditing_timescaledb_backup_restore_sidecar_gcp_serviceaccount_json:
25+
26+
auditing_timescaledb_resources:
27+
requests:
28+
memory: "256Mi"
29+
cpu: "500m"
30+
limits:
31+
memory: "1Gi"
32+
cpu: "1"
33+
34+
auditing_timescaledb_registry_auth_enabled: "{{ metal_registry_auth_enabled }}"
35+
auditing_timescaledb_registry_auth:
36+
auths:
37+
https://index.docker.io/v1/:
38+
username: "{{ metal_registry_auth_user }}"
39+
password: "{{ metal_registry_auth_password }}"
40+
auth: "{{ (metal_registry_auth_user + ':' + metal_registry_auth_password) | b64encode }}"
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
---
2+
- name: Gather release versions
3+
setup_yaml:
4+
5+
- name: Check mandatory variables for this role are set
6+
assert:
7+
fail_msg: "not all mandatory variables given, check role documentation"
8+
quiet: yes
9+
that:
10+
- auditing_timescaledb_image_name is defined
11+
- auditing_timescaledb_image_tag is defined
12+
- auditing_timescaledb_backup_restore_sidecar_image_name is defined
13+
- auditing_timescaledb_backup_restore_sidecar_image_tag is defined
14+
15+
- name: Create namespace
16+
k8s:
17+
definition:
18+
apiVersion: v1
19+
kind: Namespace
20+
metadata:
21+
name: "{{ auditing_timescaledb_namespace }}"
22+
labels:
23+
name: "{{ auditing_timescaledb_namespace }}"
24+
25+
- name: Deploy auditing timescale db
26+
include_role:
27+
name: metal-roles/control-plane/roles/postgres-backup-restore
28+
vars:
29+
postgres_name: "{{ auditing_timescaledb_name }}"
30+
postgres_namespace: "{{ auditing_timescaledb_namespace }}"
31+
postgres_image_pull_policy: "{{ auditing_timescaledb_image_pull_policy }}"
32+
postgres_image_name: "{{ auditing_timescaledb_image_name }}"
33+
postgres_image_tag: "{{ auditing_timescaledb_image_tag }}"
34+
postgres_registry_auth_enabled: "{{ auditing_timescaledb_registry_auth_enabled }}"
35+
postgres_registry_auth: "{{ auditing_timescaledb_registry_auth }}"
36+
postgres_storage_size: "{{ auditing_timescaledb_storage_size }}"
37+
postgres_storage_class: "{{ auditing_timescaledb_storage_class }}"
38+
postgres_db: "{{ auditing_timescaledb_db }}"
39+
postgres_user: "{{ auditing_timescaledb_user }}"
40+
postgres_password: "{{ auditing_timescaledb_password }}"
41+
postgres_max_connections: "{{ auditing_timescaledb_max_connections }}"
42+
postgres_backup_restore_sidecar_image_pull_policy: "{{ auditing_timescaledb_backup_restore_sidecar_image_pull_policy }}"
43+
postgres_backup_restore_sidecar_image_name: "{{ auditing_timescaledb_backup_restore_sidecar_image_name }}"
44+
postgres_backup_restore_sidecar_image_tag: "{{ auditing_timescaledb_backup_restore_sidecar_image_tag }}"
45+
postgres_backup_restore_sidecar_provider: "{{ auditing_timescaledb_backup_restore_sidecar_provider }}"
46+
postgres_backup_restore_sidecar_backup_cron_schedule: "{{ auditing_timescaledb_backup_restore_sidecar_backup_cron_schedule }}"
47+
postgres_backup_restore_sidecar_log_level: "{{ auditing_timescaledb_backup_restore_sidecar_log_level }}"
48+
postgres_backup_restore_sidecar_object_prefix: "{{ auditing_timescaledb_backup_restore_sidecar_object_prefix }}"
49+
postgres_backup_restore_sidecar_gcp_bucket_name: "{{ auditing_timescaledb_backup_restore_sidecar_gcp_bucket_name }}"
50+
postgres_backup_restore_sidecar_gcp_backup_location: "{{ auditing_timescaledb_backup_restore_sidecar_gcp_backup_location }}"
51+
postgres_backup_restore_sidecar_gcp_project_id: "{{ auditing_timescaledb_backup_restore_sidecar_gcp_project_id }}"
52+
postgres_backup_restore_sidecar_gcp_serviceaccount_json: "{{ auditing_timescaledb_backup_restore_sidecar_gcp_serviceaccount_json }}"
53+
postgres_resources: "{{ auditing_timescaledb_resources }}"
54+
postgres_backup_restore_sidecar_object_max_keep: "{{ auditing_timescaledb_backup_restore_sidecar_object_max_keep }}"

defaults/main.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ metal_stack_release:
4646
headscale_db_backup_restore_sidecar_image_name: "docker-images.metal-stack.generic.backup-restore-sidecar.name"
4747
auditing_meili_backup_restore_sidecar_image_tag: "docker-images.metal-stack.generic.backup-restore-sidecar.tag"
4848
auditing_meili_backup_restore_sidecar_image_name: "docker-images.metal-stack.generic.backup-restore-sidecar.name"
49+
auditing_timescaledb_backup_restore_sidecar_image_tag: "docker-images.metal-stack.generic.backup-restore-sidecar.tag"
50+
auditing_timescaledb_backup_restore_sidecar_image_name: "docker-images.metal-stack.generic.backup-restore-sidecar.name"
4951
# gardener
5052
firewall_controller_manager_image_tag: "docker-images.metal-stack.gardener.firewall-controller-manager.tag"
5153
firewall_controller_manager_image_name: "docker-images.metal-stack.gardener.firewall-controller-manager.name"
@@ -92,6 +94,8 @@ metal_stack_release:
9294
headscale_db_image_name: "docker-images.third-party.control-plane.headscale-db.name"
9395
auditing_meili_image_name: "docker-images.third-party.control-plane.meilisearch.name"
9496
auditing_meili_image_tag: "docker-images.third-party.control-plane.meilisearch.tag"
97+
auditing_timescaledb_image_name: "docker-images.third-party.control-plane.timescaledb.name"
98+
auditing_timescaledb_image_tag: "docker-images.third-party.control-plane.timescaledb.tag"
9599
image_cache_coredns_image_tag: "docker-images.third-party.partition.image-cache-coredns.tag"
96100
image_cache_coredns_image_name: "docker-images.third-party.partition.image-cache-coredns.name"
97101
image_cache_haproxy_image_tag: "docker-images.third-party.partition.image-cache-haproxy.tag"

0 commit comments

Comments
 (0)