Compare commits

...

698 Commits
master ... main

Author SHA1 Message Date
Michael Haehnel f3bd508ba5
feat(ADP-334): Uses new version 9.2 in pgadmin role
Changelog: Updated
8 months ago
Robert.Kersten 164624cc43 wordpress_image_version: "6.8.0-php8.2" 8 months ago
Michael Haehnel 5e9098f024
Merge branch 'main' into prodnso 9 months ago
Michael Haehnel 65e86d059d
fix[DEV-1368]: Remove obsolete user pubkeys
Changelog: removed
9 months ago
Michael Haehnel cc62f95255
fix[ADP-1489]: Renamed removed user pubkeys
Fix: removed
9 months ago
Michael Hähnel 7ff46123d3 fix[DEV-1368]: Remove obsolete user pubkeys 9 months ago
Michael Haehnel fa6cd24c4b
fix[DEV-1368]: Move obsolete user keys to outdated dir
Changelog: removed
9 months ago
Michael Haehnel 0474d0468e
fix[DEV-1368]: Remove obsolete user pubkeys
Changelog: removed
9 months ago
Michael Haehnel 3524373b86
DEV-1354: Sets WordPress version for demompmx-wfcs-wfcscurrent-01 to 6.2.2.0 9 months ago
Michael Haehnel e9f214394d
DEV-1354: Removes obsolete server prodnso-hocr-iaas-01 from inventory 10 months ago
Hoan To 2064f2e585 removed prodwok01 from patchday 11 months ago
Michael Haehnel 12f4eb5ad4
NOTICKET: Remove obsolete qanso stage 1 year ago
Michael Haehnel 5a9e77aea2
NOTICKET: Change machine type cx21 => cx22 1 year ago
Michael Haehnel 2c21afdbfb
DEV-1374: Remove devscr stage 1 year ago
Sven Ketelsen e41aa9f72c feat: removed prodnso-mpmx-iaas-01 and the role for mpmx
- also removed dns entries at hetzner

curl -X "GET"
"https://dns.hetzner.com/api/v1/records?zone_id=hJRiB8jWn2XQg24rKfECWC"
-H 'Auth-API-Token: <<TOKEN>>' | grep iaas

curl -X "DELETE" "https://dns.hetzner.com/api/v1/records/<<ID>>" -H
'Auth-API-Token: <<TOKEN>>'
1 year ago
Michael Haehnel dcc10d8666
NOTICKET: Add User and pubkey for Sebastian SChroeder #2 1 year ago
Michael Haehnel 72c20bc3c5
NOTICKET: Add User and pubkey for Sebastian SChroeder 1 year ago
Risse, Daniel 85b6577a00 update shh key for daniel.risse 2 years ago
Kersten, Robert 7d5e60cef4 Add ssh keys 2 years ago
Hoan To b6cabb9acd Merge branch 'main' of git.dev-at.de:smardigo-hetzner/ansible/hetzner-ansible 2 years ago
Hoan To b90cddfcd3 adjusted timing for backup 2 years ago
MIchael Haehnel 8d7dc55e29
FIX: Upgrade to docker-compose_v2 in patchday.yml 2 years ago
MIchael Haehnel 4346f2b64a
Clean up 2 years ago
MIchael Haehnel 88d0038109
FIX wait_for harbor restart 2 years ago
MIchael Haehnel c8674c60dd
Add wait time after harbor restart 2 years ago
MIchael Haehnel 0ef11c310f
Update Ansible collection docker 2 years ago
MIchael Haehnel c124a1313f
Improve Harbor container restart after machine reboot with docker_compose_v2 2 years ago
Hoan To 770f2bdf7f removed hans-peter ssh key from devnso stage 2 years ago
Michael Hähnel 4ffcc08f6b DEV-1309 Hotfix 2 years ago
Eichhorn, Philipp 8fc39bac6c SMA-2684: PMCI supports process-search 1.4 2 years ago
Ketelsen, Sven 42a6fa28c0 MPMXKD-28 bugfix for keycloak display name 2 years ago
Sven Ketelsen 40a3217e26 MPMXKD-21 bugfix branding
- mpm eXecution -> mpmX execution
2 years ago
Sven Ketelsen 211e420f34 chore: consolidation
- bootstrap updates
- removed access for hp.w
2 years ago
Sven Ketelsen f010fca28c chore: pmci create/assign default client roles
- "internal-system-scope:system:admin"
- "internal-system-scope:system:workflow-admin"
- "internal-system-scope:system:process-data-reader"
2 years ago
Sven Ketelsen 9100f299a9 chore: added k8s node for prodnso 2 years ago
MIchael Haehnel 4dc86cf3f4
DEV-1271 Change Hetzner API keys for dynamic inventories 2 years ago
MIchael Haehnel a5be5361bf
FIX: Declare managementHostname in backup process 2 years ago
MIchael Haehnel b8c69b2fa4
FIX: Pin connect and iam version
- Downgrade versions after failed upgrade
2 years ago
MIchael Haehnel 0a7d6af6b6
FIX: Pin docker version 2 years ago
Sven Ketelsen 4271500448 pmci tenant management 2 years ago
Sven Ketelsen 8c8d4964f8 bugfixes and cleanup
- pmci tenant management
- outdated elastic certs
2 years ago
MIchael Haehnel 3dd1896aca
DEV-1080 Fix Gitlab-CI Pipeline 2 years ago
MIchael Haehnel 9b7d8a2e9b
DEV-1080 Disabled Gitlab-CI Pipeline patchday-elastic
- ELK stack was mnigrated to k8s, no more hosts available for patchday
2 years ago
Sven Ketelsen 6b889615e7 bugfix: regressions after management update 2 years ago
MIchael Haehnel 67d978e639
DEV-1080 Remove stage elastick stack from prodnso 2 years ago
Sven Ketelsen 42ff3b8a7f bugfix: connect process search was broken
- downgrade process-serach version to 1.3
2 years ago
Sven Ketelsen 0445f1db62 chore: management update to 11.1 2 years ago
MIchael Haehnel 8d242569f3
FIX: Regression in DEV-895
- initialize 'minio_stage_dicts' as an empty array
2 years ago
MIchael Haehnel 401964cc73
FIX: Increase disk space on demompmx-backup-01 2 years ago
MIchael Haehnel 6b28dedf71
DEV-1080 Fix elastic admin creds for qanso 2 years ago
MIchael Haehnel be20a700f1
DEV-1080 Migrate connect-data to k8s on qanso
- remove qanso elastic stack servers
2 years ago
Sven Ketelsen 99a95f87ed chore: bugfix for SMA-2598
- fixed invalid config snippet
2 years ago
MIchael Haehnel 6bb7b67f76
DEV-1271 Changed keycloak admin creds for qanso 2 years ago
MIchael Haehnel 7774268332
FIX: Regression from DEV-1042
- Ansible failed with undefinded variable 'iam_image_name'
2 years ago
MIchael Haehnel 7691b0fd4a
DEV-1271 Changed keycloak admin creds on prodnso+demompmx 2 years ago
Michael Hähnel afa593ddf8 feature: migrated connect-data into k8s 2 years ago
MIchael Haehnel 23b8d75c21
DEV-1080 Change default Kibana hostname to k8s hosted service 2 years ago
Johannes Wicovsky b07d2cebe8 SMA-2598: add error-comment if awx-job fails 2 years ago
Ketelsen, Sven e65a560b82 Bugfix/MPMXKD-23 2 years ago
MIchael Haehnel 37092f8014 DEV-1297 Add lvm to harbor role
- increased size harbor data volume on prodnso
2 years ago
MIchael Haehnel f3d953414e DEV-1271 Change admin passwords
- keycloak
- management
2 years ago
MIchael Haehnel bbb1ed8066 DEV-1080 Disable logstash tls transport encryption on all stages 2 years ago
Hoan To ef33e6a16b DEV-1296: added connect_environment_additional to prodnso-bdev-demo01dev 2 years ago
Hoan To ffa9680df4 DEV-1080: changed configuration of filebeat to use elk in k8s 2 years ago
Michael Hähnel 4139f1df46 DEV-1271 Change API Tokens 2 years ago
Sven Ketelsen d1102e782e chore: switched email from smardigo.digital to netgo.de
- gitea
- harbor
- keycloak
2 years ago
Sven Ketelsen ca4c3fed48 chore: consolidation for awx deployment 2 years ago
Sven Ketelsen d7dd4cf1ac chore: consolidation for awx deployment
- new awx password on prodnso stage
2 years ago
Sven Ketelsen d6154df612 chore: consolidation for awx deployment
- new awx password on qa stage
2 years ago
Sven Ketelsen e4ce321667 DEV-1280 cockpit.mpmx.com 2 years ago
Sven Ketelsen 43abce612a chore: added tar to awx ee image 2 years ago
Ketelsen, Sven 59c22626f4 DEV-0000 rework blackbox exporter 2 years ago
MIchael Haehnel 5ce2d20d07
FIX: encrypted hcloud api token on prodwork01 2 years ago
Ketelsen, Sven ee99ee54c5 DEV-1223 removed keycloak from demo stage 2 years ago
MIchael Haehnel 9b88e35ddc
DEV-1271 Remove Hendrik Kiedrowski 2 years ago
MIchael Haehnel 143e6d089a
CHORE: Remove prodnso-sizcs-iaas-01 2 years ago
Hoan To faed779e46 DEV-1259: reverted change for volume mount 2 years ago
Philipp Eichhorn dbe8d3f716 DEV-1262: process 'service-change' supplies variable 'data.wordpress.admin.username' to awx 2 years ago
Michael Hähnel de9a5d4cda DEV-1200 Enable Prometheus Remote Write for qa and prod 2 years ago
Eichhorn, Philipp dd8c1769bd SMA-2571: add ssh pub key johannes.wicovsky 2 years ago
Hoan To 17ac7b6cd6 changed timer for backup in pmci 2 years ago
MIchael Haehnel 8a09bb9777
DEV-1259 Change backup time in pmci process 2 years ago
Hoan To ff6c25dbdb regression_fix_3_postgres_restore 2 years ago
Hoan To f572683f9a Regression fix postgres restore 2 years ago
Hoan To 2d9148e925 fixed lvm mount for restore server 2 years ago
Fuhrmann, Esther 54de667ee9 hotfix SMA-2574: set MaxRAMPercentage to 50.0 to use more of the available RAM 2 years ago
Michael Hähnel cfce28d583 BUGFIX: grant k8s worker nodes admin access to keycloak 2 years ago
Ketelsen, Sven 5c2316747d hinzufügen von ILM und Templates in der Elastic Rolle 2 years ago
Sven Ketelsen aef0b9652a SMA-2561 elastic host for process search is broken
- add port only when not given by connect_elastic_host
2 years ago
Sven Ketelsen 02d74c4611 SMA-2561 missing harbor rewrite for process-search 2 years ago
Michael Hähnel 4b9dd43587 DEV-2563 BUGFIX: Skip firewall apply if no customer firewall networks set 2 years ago
Eichhorn, Philipp 50f028e289 SMA-2563: process 'service-change' supplies variable 'data.connect.admin.username' to awx 2 years ago
Eichhorn, Philipp 3bec9095f5 SMA-2563: process 'service-change' supplies variable 'data.connect.admin.username' to awx 2 years ago
Michael Hähnel dcdefa465c DEV-1226 - Fix missing Ansible environment variable for prodnso 2 years ago
MIchael Haehnel 36c66fd73a
HOTFIX: New Mobene customer ip address 2 years ago
MIchael Haehnel cd8c222306
NOTICKET: Change customer ip address for Mobene 2 years ago
Michael Hähnel 6bae69b7a7 BUGFIX: wrong ansible-builder config file parameter 2 years ago
Michael Hähnel fa49f2e67f BUGFIX: Wrong ansible-builder config file parameter 2 years ago
Michael Hähnel 0698aaf234 DEV-1229 Switch to ansible-builder v3 2 years ago
MIchael Haehnel 2ea8479002
SMA-2501: Fix regression
- 'connect_version' can also contain 'latest' as valid version tag
2 years ago
MIchael Haehnel 55f44ba845
NOTICKET: Fix lint errors and warnigns 2 years ago
MIchael Haehnel 31ad29b087
DEV-1229 - Quickfix use old galaxy API 2 years ago
Sven Ketelsen 718563cc6e bugfix for ansible ee container creation 2 years ago
Michael Hähnel 7b67ee1a0d DEV-1213 Add external (sub)domain oes.netgo.de 2 years ago
Hoan To 42bfe6f408 changef hetzner_server_type to cpx31 for wfcscurrent-01 2 years ago
Eichhorn, Philipp 81f5e65b3d SMA-2501 add new process-search to PMCI 2 years ago
Michael Hähnel afa0552d4e DEV-1027 Bugfix
- add missing environment for digitalocean
2 years ago
Hans-Peter Wissenbach 1bafb5af5d DEV-1027 add environments to build pipeline and use environment specific awx image 2 years ago
Hoan To 32d07f3ad6 Dev 1143 ssp stage 2 years ago
Michael Hähnel 844706cb29 DEV-1211 bugfix#2: iam access for mobene|prodwork01 is broken 2 years ago
Michael Hähnel 186f73a892 DEV-1211 bugfix: iam access for mobene|prodwork01 is broken 2 years ago
Michael Hähnel 7eb2650482 Extended Traefik lables for access restrictions on keycloak 2 years ago
Hoan To d59a2ace4a DEV-1161 added cockpit vm to demostage 2 years ago
Michael Hähnel 46df2f15bf [DEV-1205] Grant public authentication for KC Realms - Limit Access to admin console 2 years ago
Michael Hähnel 5aeedbb6a6 DEV-1197 Open hcloud fw port tcp/443 for prodnso-nsointern-nsoprod-01 2 years ago
Sven Ketelsen 6798cd1dee SMARCH-129 new server/playbook for mpmx dev 2 years ago
Michael Haehnel e9f5dc36ae NOTICKET: Fix shared_service_vpn_ip in ip_whitelist
- if shared_service_vpn_ip exists it must be in cidr notation to work with hcloud api
2 years ago
Hans-Peter Wissenbach 858757162f DEV-895 dedizierter s3 user 2 years ago
Michael Haehnel d1731144c1 DEV-1201 Fix prometheus monitoring users privileges 2 years ago
Hoan To 15e178da91 DEV-1064_hotfix fixed client secret for management 2 years ago
Hoan To fb6366b62f DEV-1064: hotfix ha keycloak demostage 2 years ago
Hoan To 1a4a8c213f DEV-1199: added connect parameters for linde 2 years ago
Michael Hähnel c875ef3ecd Rollout KW 37 2 years ago
Michael Hähnel 08addce2d4 Rollout KW 36 2 years ago
Hoan To 48787f7122 hotfix_vpn_ip_firewall 2 years ago
Hoan To cb074bb89f DEV-1142: Linde Keycloak IP whitelisting 2 years ago
Ketelsen, Sven 18679082b9 MPMXKD-17 fixed CREATE table grants 2 years ago
Michael Haehnel b5cfa4f662
DEV-1007 Fix missing infrastructure_realm_admin_password_vault 2 years ago
Michael Haehnel 57346e1775
CHORE: Fix harbor-admin stage user 2 years ago
Michael Haehnel 5cdaa7d323
DEV-1007 Fix #3 pgadmin4 2 years ago
Michael Haehnel 0842a54a03
DEV-1007 Fix #2 postgres update database state 2 years ago
Michael Haehnel 7f2ff1c3bc
DEV-1007 FIX postgres update dataabse state 2 years ago
Hoan To 649eca156e Dev 1007: pgadmin users configuration 2 years ago
Sven Ketelsen 7dd094b83d bugfix: rework of kibana objects
- consolidation of default index
- cluster_name is optional
- cluster_service is optional
2 years ago
Sven Ketelsen 5e909c6375 bugfix: activated json logging for keycloak
- added '--log-console-output=json'
2 years ago
Sven Ketelsen 42f0dcb4ef bugfix: fixed tenant for prodnso-sizcs-iaas-01 2 years ago
Ketelsen, Sven b2dfedd124 DEV-1137 iaas server for siz cs 2 years ago
Hans-Peter Wissenbach 8c4a11f743 DEV-1008 enable debug logging 2 years ago
Sven Ketelsen 58d2df4f80 SMA-2417 workaround to catch errors
- refactored awx template id evauluation to allow error handling
2 years ago
Michael Haehnel 1d9e180d51 DEV-1008 New wireguard pubkey of michael.haehnel 2 years ago
Michael Haehnel 1c618c7f1a DEV-1095 Changed hetzner_dns_api_key 2 years ago
Sven Ketelsen 1615102a28 chore: updated outdated argocd server admin pw in vault 2 years ago
Michael Haehnel 8da6c76dfc DEV-1127 Update smardigo automation gpg key of devnso 2 years ago
Ketelsen, Sven 68368b2a7d MPMXKD-8 tenants: fixed url to keycloak 2 years ago
Sven Ketelsen 5597ed36a3 MPMXKD-9 fixed keycloak url in datasouce actions for tenants 2 years ago
Sven Ketelsen efce822168 MPMXKD-11 fixed jobs view 2 years ago
Ketelsen, Sven 9973ae74ea MPMXKD-10 fixed base url configuration 2 years ago
Ketelsen, Sven fd76cf08c0 MPMXKD-10 fixed url to useradmin 2 years ago
Michael Hähnel b4ae93f16d Hotfix/postgres restore volume size 2 years ago
Michael Haehnel c1d26b2e61
DEV-1095 Changed management-admin pw for demompmx 3 years ago
Michael Haehnel ff4784ca2b
NOTICKET: clean out ansible vault prodwork01 3 years ago
Michael Haehnel 56a198f0ef
DEV-1095 Change keycloak admin pw demompmx 3 years ago
Michael Haehnel 7ec591a80e
DEV-1095 Fix wrong gpg private key for qanso 3 years ago
Sven Ketelsen 0fd0e48e5c DEV-1095 offboarding
- rotated hetzner keys
- rotated do key
- removed f.g. sops key
3 years ago
Michael Haehnel 33fd667826
DEV-1095 Fix maria root pw for devnso+qanso 3 years ago
Michael Hähnel 9f51fba92a DEV-1095 Changed API Tokens 3 years ago
Michael Haehnel 7d73a65405 NOTICKET: Decreased prometheus_tsdb_rentention_time to "2w" for devnso stage 3 years ago
Sven Ketelsen 36a5fecb91 DEV-1122 qa -> qanso 3 years ago
Michael Hähnel b10f7c3361 Feature/dev 1122 3 years ago
Michael Haehnel 92793ea54b
DEV-1110 Add group_vars for postgres backup volumes for stage qa 3 years ago
Michael Haehnel 4d06632dda
NOTICKET: Increased volume size for prometheus_datadir on qa 3 years ago
Sven Ketelsen 685eef3a5c DEV-1114 patchday: extracted harbor/maria in own stages 3 years ago
Sven Ketelsen 9229359a4c DEV-1114 patchday: extracted harbor/maria in own stages 3 years ago
Sven Ketelsen 459fc50804 DEV-1114 dev-devnso 3 years ago
Sven Ketelsen 5e00bfd82e chore: fixed argocd password 3 years ago
Michael Haehnel e9e41027b9
DEV-1114 Fixing postgres shared host variables
- Update postgres role: use blockinfile instead lineinfile
3 years ago
Michael Haehnel f37c422ed0
DEV-1114 FIX private gpg key for devnso 3 years ago
Michael Haehnel b8f0e360b5
NOTICKET: Fix duplicate dict
key (description)
3 years ago
Michael Haehnel ab372a0305
DEV-1114 Changed GPG private key for stage devnso 3 years ago
Sven Ketelsen 02b576061f DEV-1114 dev-devnso 3 years ago
Sven Ketelsen ab461ad07d DEV-1114 dev-devnso 3 years ago
Michael Haehnel c3a37cff34 DEV-1114 Updated stage_postgres_acls for devnso 3 years ago
Sven Ketelsen 184a9004a8 DEV-1114 dev -> devnso 3 years ago
Ketelsen, Sven e5806a7510 DEV-1114 rename stage: dev to devnso 3 years ago
Sven Ketelsen add1eaf9b5 chore: added shell script to delete all acme-challenges leftovers
- remove all acme challenge dns entries
3 years ago
Sven Ketelsen 8049e9792a chore: pmci added awx link to jobs formular 3 years ago
Michael Hähnel 9634ad7aeb DEV-1110 Remove old data dir on restore server 3 years ago
Sven Ketelsen f3ac7dc83f DEV-1114 dev -> devnso 3 years ago
Ketelsen, Sven 435972d228 DEV-1111 fixed server info auto discovery 3 years ago
Ketelsen, Sven a6b6e46c44 MPMXKD-1 host configuration for demompmx-aerzte-aerzte-01 3 years ago
Michael Hähnel fde77a6909 Deleted library/__pycache__/smardigo_user_token.cpython-311.pyc 3 years ago
Michael Hähnel 6862f58b78 Feature/dev 1110 Extend backup process to support multiple db servers per stage 3 years ago
Sven Ketelsen b5034abf5b DEV-1111 updates
- gitea 1.19
- pgadmin4 7.1
- traefik 2.10.1
- elastic stack 7.16.3
3 years ago
Sven Ketelsen da102cc254 chore: removed smardigo theme
- smardigo goes mpmx
3 years ago
Sven Ketelsen e0e5a36bbb chore: removed duplication from harbor.yml 3 years ago
Sven Ketelsen 8419298da7 chore: removed gateway leftover 3 years ago
Sven Ketelsen e331f2c652 bugfix: constraint checks
- added missing become false
3 years ago
Sven Ketelsen 93bfc7a897 chore: deleted ext-demo01 instance 3 years ago
Sven Ketelsen 3a6d4e5f52 chore: cleanup
- removed pdns leftover
3 years ago
Ketelsen, Sven 31012d7682 DEV-1073 updates/bugfixes for keycloak 3 years ago
Sven Ketelsen 284489b8c0 chore: updates for galaxy-requirements 3 years ago
Sven Ketelsen 2a9bf448b8 chore: added wordpress again as connect feature 3 years ago
Ketelsen, Sven a8c73fedce DEV-1096 fixed wordpress with pmci 3 years ago
Sven Ketelsen 95a097af9c chore: changed ansible debug command
- changed from >> to > to override file
3 years ago
Sven Ketelsen 9337d07eb2 feature: combined management and vpn updates to one gitlab stage 3 years ago
Sven Ketelsen 3f60665dee feature: combined management and vpn updates to one gitlab stage 3 years ago
Ketelsen, Sven fa856141cf DEV-1008 added wireguard vpn 3 years ago
Michael Hähnel bbb940a978 DEV-1071 Add missing host_vars for linde prod 3 years ago
Michael Hähnel f1a7f63c1c DEV-1071 Fix regresion in patchday.yml 3 years ago
Ketelsen, Sven 1167667988 DEV-1103 bugfix added missing variables 3 years ago
Michael Haehnel 34eb5cc87f
DEV-1071 Configure postgres02 volume size and count 3 years ago
Michael Haehnel 1b4394debe
NOTICKET: Fix double whitespace 3 years ago
Michael Haehnel f96a7da1c2
DEV-1071 Removed unneccessary variables 3 years ago
Michael Haehnel f2d7a0c62b
DEV-1071 Test with secod postgres cluster 3 years ago
Michael Haehnel e80fe769d9
DEV-1063 Fix regression in dynamic inventory for stage ext 3 years ago
Michael Haehnel 3df86e7a8b
NOTICKET: Remove Ansible strategy: free 3 years ago
Michael Haehnel 959670b853
NOTICKET: Add hp.wissenbach to custom_stage_plattform_users 3 years ago
Michael Haehnel 30f2ddd199
DEV-1071 Add LVM enccryption passqhrase for postgres02 cluster 3 years ago
Michael Haehnel 7e9047ce27
DEV-1100 Pull elastic docker images from stage harbor 3 years ago
Michael Haehnel 81f5d06842
DEV-1071 Add postgres02 to all stages
- removed fgoerz system user and ssh key
3 years ago
Michael Hähnel 6390d5fcbd DEV-1071 New postgres cluster for Linde 3 years ago
Sven Ketelsen f6f8d21d24 bugfix: duplicate ansible variable
- fixed configuration for autodiscover lb ips
3 years ago
Sven Ketelsen 84a662017d DEV-1070 maria database backup broken
- upload file changed directory access to from 755 to 644. rsync wansn't
able to read backups anymore
3 years ago
Hoan To 8b0747dc07 DEV-1063: reworked the filtering out the stage name out of the loadbalancer 3 years ago
Görz, Friedrich 8318792f1f DEV-1020 Initial commit new feature branch 3 years ago
Hoan To 1b42d0118c Dev 1063 loadbalancer ip python 3 years ago
Sven Ketelsen 671963edcb bugfix: regression from DEV-1060
- prometheus config update was split
    - update
    - reload
  added missing reloads to PMCI playbooks
3 years ago
Sven Ketelsen 46513ab8a2 WFC-826 set wordpress image proxy for demompmx 3 years ago
Michael Haehnel 2b8fd7cc82
DEV-1057 Adjust cron times for s3 pull jobs 3 years ago
Sven Ketelsen dc97cd4c1f DEV-1070 stage demo mpmx uses now prodnso 3 years ago
Michael Hähnel beb3ce7e6d DEV-1060 Removed enforced double quotes in docker-compose template for 'user' variable 3 years ago
Sven Ketelsen db66b7b790 DEV-1042 polish demo stage
- set default language to "en"
- set default name to "MPM eXecution"
3 years ago
Sven Ketelsen 42c0308fca DEV-1042 polish demo stage
- set default language to "en"
- set default name to "MPM eXecution"
3 years ago
Sven Ketelsen 295cfdf352 DEV-1069 regression for setup connect per pmci
- moved argocd configuration of keycloak_realm_clientscopes to argocd
3 years ago
Sven Ketelsen 0153526cb3 DEV-1069 regression for setup connect per pmci
- moved argocd configuration of keycloak_realm_clientscopes to argocd
3 years ago
Sven Ketelsen 105fdbb675 DEV-1069 regression for setup management instanz
- added legacy configuration for stage dev/qa/prodnso
3 years ago
Sven Ketelsen a7e3ccb21a DEV-1069 changed gitlab-ci branch for demompmx from main to prodnso
- automations should run with prod changes
3 years ago
friedrich goerz b1c65c8a84 DEV-1026+DEV-1033: inc connect_version + iam_version 3 years ago
Michael Hähnel fb1ead8a1a DEV-1060 Prometheus Setup für DEMO MPMX anpassen (Metriken/Alerts) 3 years ago
Sven Ketelsen 67c6a4de58 DEV-1067 bugfix added two nodes to demompmx k8s
- avoid service outages by patchday/outages of nodes
3 years ago
Sven Ketelsen 721eefa819 DEV-1042 demo stage polish
- added process search filter: process_definition_key
3 years ago
Sven Ketelsen 9ccd15d36f DEV-1042 demo stage polish
- added ribbon "demo only"
- added default theme mpm-x
3 years ago
Görz, Friedrich 47c5e8a2f4 DEV-1061: remove not needed pipeline step(demompmx-elastic-stack)
Update .gitlab-ci.yml file
3 years ago
Sven Ketelsen c4d8ff953d DEV-1042 bugfix mail template for pmci service changes 3 years ago
friedrich goerz 17d7bfc94c DEV-1062: removed hacky workaround 3 years ago
Görz, Friedrich e6eb863684 DEV-1066: added additional steps to DROP and RECREATE database in case of restore. 3 years ago
Sven Ketelsen f5aa1949f8 DEV-1042 bugfix regression from pmci
- missing default for smardigo_auth_token_value := -
3 years ago
friedrich goerz 06f97b2a1b DEV-1062: added PRIVATE gpg key for demompmx-stage - bugfix: VAR moved to other vaulted file 3 years ago
friedrich goerz a81d2c9599 DEV-1062: added PRIVATE gpg key for demompmx-stage 3 years ago
Sven Ketelsen 706b14491b DEV-1042 last qa session for pmci process
- bugfix initialize-stage with update_deployment
    missing docker-compose.yml update
- added env variables for
    - management-hostname
    - keycloak-hostname
    - kibana-hostname
3 years ago
Sven Ketelsen 3feaeedbe2 DEV-1058 bugfix backup process
- fixed hard coded ... things
3 years ago
Görz, Friedrich 0f3df72dd0 DEV-1061: added several gitlabci-stages-stuff for 3 years ago
Sven Ketelsen b75fc8a554 chore: linter 3 years ago
Sven Ketelsen 44c88ce7b3 chore: linter 3 years ago
Sven Ketelsen d324a30ff1 DEV-1058 removed ignore_errors
- it doesn't make sense (at all)
3 years ago
Michael Haehnel 4d2de4e2d3
DEV-1058 Fixed Postgres replication 3 years ago
Sven Ketelsen cb1be5a638 chore: fixed name 3 years ago
Sven Ketelsen 5c6fcdc9ad DEV-1058 bugfix management configuration harbor
- moved default values from role management to group all
- allows override per stage
3 years ago
Sven Ketelsen c6920751b7 DEV-1058 bugfix management configuration harbor
- moved default values from role management to group all
- allows override per stage
3 years ago
Sven Ketelsen 2442f6d98f DEV-1058 bugfix filtering by tenant 3 years ago
Sven Ketelsen 1edd02a085 DEV-1058 bugfix etc/hosts for connect-data 3 years ago
Sven Ketelsen abce475cbf DEV-1058 bugfix backup process
- DRY -> stage_XYZ -> all
3 years ago
Sven Ketelsen 0cd70dcded DEV-1058 bugfix backup process
- fixed hard coded ... things
3 years ago
Sven Ketelsen 69e37093b9 DEV-1058 bugfix backup process
- added become to gpg import
3 years ago
Sven Ketelsen 62145f04ca DEV-1058 bugfix backup process
- added gpg
3 years ago
Sven Ketelsen 8ec274f247 DEV-1058 bugfix backup process
- added gpg
3 years ago
Sven Ketelsen 42afa0b1aa DEV-1058 bugfix backup process
- hard coded maria
3 years ago
Sven Ketelsen dab25a4090 DEV-1058 bugfix backup process
- hard coded gpg key
3 years ago
Sven Ketelsen 2d8755cf34 DEV-1058 bugfix backup process
- added kube gitea to /etc/hosts
3 years ago
Sven Ketelsen a3de4b8541 DEV-1058 bugfix backup process
- removed '/' from gitea password, urlencode is a bitch
3 years ago
Sven Ketelsen b9c2ffaef0 DEV-1058 bugfix backup process
- urlencode -> urlencode()
3 years ago
Sven Ketelsen 9a76361218 DEV-1058 bugfix backup process
- hard coded access to gitea::communication-keys.git
3 years ago
Sven Ketelsen 7b1b4e0a82 DEV-1058 bugfix backup process
- removed hard coded database server
3 years ago
Sven Ketelsen 0cdd7d09a0 DEV-1058 bugfix connect: elastic index prefix
- replace all '-' with '_'
3 years ago
Sven Ketelsen c183ccf06b DEV-1058 bugfix configuration for management instance 3 years ago
Sven Ketelsen a9c77a4104 DEV-1058 bugfix removed old pmci process for demompmx stage 3 years ago
Sven Ketelsen 2f8c9f7bf8 DEV-1058 bugfix regression for when condition 3 years ago
Sven Ketelsen d162966317 DEV-1058 pmci added stage to vault expression 3 years ago
Sven Ketelsen 1c3954fd76 DEV-1058 set management realm to "stage-connect" 3 years ago
Hoan To e1e13fd591 DEV-419: parallelized patchday for all stages 3 years ago
Ketelsen, Sven 91303a458d DEV-1042: added new stage for demo mpmx 3 years ago
Michael Hähnel 0a40471a7a Fix typo in comments 3 years ago
Michael Hähnel 4a6c6a3c35 Renamed playbook 3 years ago
Sven Ketelsen d12e670bda chore: added hint to default hetzner ssh keys
- always add them to hetzner clound console.
  server creation will be broken if not
3 years ago
Michael Haehnel 0a2d551779
NOTICKET: FIX Hendriks pubkey
- added e-mail address
3 years ago
Michael Haehnel 44654487f6
NOTICKET: Add new DevOps user Hendrik Kiedrowski 3 years ago
Sven Ketelsen c8297ab6d1 hotfix: pmci playbooks broken
- server create
  - renamed hetzner roles
  - docker networks broken
    - pinned pip dependencies
3 years ago
Sven Ketelsen e3bbd6b0a3 chore: removed unused entries (prodnso k8s nodes) 3 years ago
Sven Ketelsen 58e73fd608 DEV-1042 added new stage: demompmx 3 years ago
Sven Ketelsen ec8c160c5d chore: create new awx-custom-ee for DEV-1042 3 years ago
Michael Haehnel 0bb1c0d18b
DEV-1034 - Revert Keyclok whitelist for prodnso 3 years ago
Sven Ketelsen 6a31893ac8 DEV-1028 extracted constraint checks into own task
- ansible version
- hetzner ansible roles
3 years ago
Sven Ketelsen f8b5e47b0e DEV-1028: added role version check 3 years ago
Sven Ketelsen 6f01e9d0c3 DEV-446 added backuphamster to user deletion prevention 3 years ago
Michael Hähnel ffc5c475de DEV-1005 Activate Kibana feature 'dev_tools' 3 years ago
Sven Ketelsen fb45c9b8cd DEV-1004 hotfix after merge due to dashboard types on qa/prod
- dashboard folders are given by rest api, added filtering
3 years ago
Michael Hähnel 1bb111ce7f DEV-1004 Manage Grafana Dashboard Permissions 3 years ago
Sven Ketelsen 9c1b520636 DEV-837 add load balancer creation to bootstrap 3 years ago
Ketelsen, Sven f30c28733d DEV-837 k8s bootstrap: added creation of load balancer and dns record 3 years ago
Hoan To f2dae18111 DEV-999: alle rollen innerhalb von setup ausgelagert 3 years ago
Michael Haehnel 32d867ef30
DEV-1034 Allow temporarily public access to prodnso-keycloak 3 years ago
Michael Haehnel 83193d70cb
NOTICKET: Silence DB Restore test alerts 3 years ago
Sven Ketelsen 42944bd359 chore: fix pmci error
- wordpress isn't mandatory
3 years ago
Sven Ketelsen a2ddddcd43 chore: fix merge error
- missing renaming of pmci playbook
3 years ago
Michael Haehnel a732c1075e
DEV-1037 Removed 'run-kubernetes' from GitlabCI/CD pipeline 3 years ago
Sven Ketelsen 5a4313fc1e chore: bugfix pmci configuration
- leftover after merge
3 years ago
Sven Ketelsen fcb59f2710 bugfix: awx config update broken
- fixed awx url's after refactoring
3 years ago
Sven Ketelsen 4ae3845681 chore: activate kubernetes awx on dev/qa/prod
- config updates aren't possible without activation flag
- split axw config update into own playbook: awx.yml
3 years ago
Sven Ketelsen 808155f266 chore: set awx hetzner ansible version to main 3 years ago
Ketelsen, Sven 8e9268ca3b DEV-526 added pmci tenant management 3 years ago
Ketelsen, Sven f686073dc8 DEV-1009 Setup dev-acr cluster with blueprint 3 years ago
Sven Ketelsen b80467eff5 chore: monitoring dev-vpn-01
- disabled traefik monitoring
3 years ago
Hans-Peter.Wissenba b6af6e6036 DEV-1018 add custom_stage_hetzner_ssh_keys 3 years ago
Sven Ketelsen d9b2796a3a DEV-997 create-service: missing dns creation 3 years ago
Sven Ketelsen 8f9bd92285 DEV-997 create-service: missing dns creation 3 years ago
Sven Ketelsen d1b55edef4 DEV-997 create-server: missing dns creation 3 years ago
Sven Ketelsen 9ec36071e3 DEV-997 fixed ansible builder step
- added missing stage variable
3 years ago
Sven Ketelsen 97efbdc47b DEV-997 fixed ansible builder step
- added missing stage variable
3 years ago
Sven Ketelsen 41547d7d07 chore: clone all scripts
- ansible roles
- k8s-clusters
3 years ago
Sven Ketelsen 57ea4dc2fd chore: clone all roles script
- simple script to clone all git
  projects used for ansible roles
3 years ago
Michael Hähnel 9ea698f937 DEV-966 Dismantling prodwork01-keycloak-01 3 years ago
Hoan To 82fd5747fa hardcoded dev-stage image for .run-ansible 3 years ago
Hoan To 18c7bcdb07 Fixed pipeline regression because of DEV-1017 3 years ago
Hoan To bc5b4ac816 DEV-1017: added additional pipeline steps for upload in harbor in all stages 3 years ago
Sven Ketelsen 96a0a6ebb9 chore: allow ssh access to ext-mpmexec-02
- 'daniel.risse'
- 'esther.fuhrmann'
- 'philipp.eichhorn'
3 years ago
Ketelsen, Sven d828d100df DEV-1014 bugfix: autodiscover_pre_task broken 3 years ago
friedrich goerz 573cde02e2 DEV-1011: inc. threshold to avoid senseless false positives 3 years ago
Hoan To 0c390415c9 DEV-580: Added prom2teams alert and receiver for email 3 years ago
Hoan To f2abcaf94a Dev 997 provisioning galaxy role 3 years ago
Hoan To e09eb26f1b Dev 997 provisioning galaxy role 3 years ago
Hoan To cfa234801d Dev 997 provisioning galaxy role 3 years ago
Hoan To 9b57bf5958 Dev 997 provisioning galaxy role 3 years ago
Hoan To ea93ce9019 Dev 997 provisioning galaxy role 3 years ago
Hoan To 969b4bb54e Dev-997: provisioning galaxy role 3 years ago
Michael Haehnel bbc57dbac5
DEV-989 Changed hetzner server type in host vars
- VM was upscaled due to high load issues
3 years ago
Hoan To 2ad91fb877 DEV-974: added keycloak backup 3 years ago
Görz, Friedrich 02846bbe75 DEV-987: added missing prodwork01-workernode IPs 3 years ago
friedrich goerz 7ad848df2e DEV-985: bugfix commit - added missing escaped double quotes 3 years ago
Görz, Friedrich 3905dff581 DEV-471: added push metrics part to restre playbook 3 years ago
Michael Hähnel 8374ae0d2a DEV-880 Configure Prometheus high_load Alert instance specific 3 years ago
Michael Hähnel b9f753fa92 DEV-720 Recreate feature branch for new playbook 3 years ago
Görz, Friedrich 96da6ef83f Feature/dev 962 es clsuter activehards alert 3 years ago
Hans-Peter Wissenbach 2d771f4989 Feature/dev 829 - ansible version updaten 3 years ago
friedrich goerz bb0471a9bb NOTICKET: removed forgotten wrong set ansible-VAR 3 years ago
Görz, Friedrich 58cbd76df6 Bug/dev 960 prodwork01 clsuter full 3 years ago
Michael Haehnel 34c63878d2
DEV-800 Removed Mobene Dev Servers via PMCI 3 years ago
Görz, Friedrich af1aff74f5 DEV-960: adding 2 additinal clsuter nodes 3 years ago
friedrich goerz f42dc09f09 DEV-927: fixing problems 3 years ago
friedrich goerz fc20866399 DEV-927: fixing ansible VAR for argocd-keycloak-integration 3 years ago
friedrich goerz e4e65be270 DEV-927: added missing prodnso-VMs for whitelisting on blackboxVM running in DO-cloud 3 years ago
Michael Haehnel e37561f2d5
DEV-927 Fix Prometheus blackbox http targets 3 years ago
Hoan To e24ee7b4fd DEV-931: setup new prodnso k8s cluster 3 years ago
Michael Haehnel 9ff3844eb7
DEV-927 Fix blackbox http targets 3 years ago
Hoan To 955a40448c Feature/dev 930 3 years ago
Michael Hähnel 6b1fd778b5 Feature/dev 927 3 years ago
Sven Ketelsen 3edc177855 DEV-909 added configuration for connect/nsompm 3 years ago
Ketelsen, Sven b73a8a4723 DEV-914 bugfix of regression from customer specific domains 3 years ago
friedrich goerz 2827a45c13 DEV-824: added missing mobene-k8s-nodes for whitleisting 3 years ago
friedrich goerz 5889b7d973 DEV-824: inc. version for blackboxexporter + added new modules for blackbox testing 3 years ago
Hoan To ef8cb4f2fb Dev-631: backup minio 3 years ago
Ketelsen, Sven e4a391be7f DEV-873 added custom node exporter polling for EXT stage 3 years ago
Sven Ketelsen 47c801f5e1 DEV-875 removed ext-bdev-mpmexec-01.smardigo.digital 3 years ago
friedrich goerz e94cf00a1b DEV-889: inc. thresholds ... inc.connect version for mgmt-instance 3 years ago
Sven Ketelsen 93b081d0dd DEV-872 feat hetzner profile for ext-bdev-mpmexec-02
- cpx31 to cpx51
3 years ago
friedrich goerz 6e0ed8fcd6 DEV-876: pinned used helm chart version for ingress 3 years ago
Görz, Friedrich cfd44dc938 DEV-830: removed pip-dependencty for debugigng purpose 3 years ago
friedrich goerz 60d32cc316 DEV-830: added quickfix to workaround 3 years ago
friedrich goerz 2d8e7c84ef DEV-831: inc. wal_keep_size to fix broken backup-process 3 years ago
Görz, Friedrich 5d4974887b DEV-786: added hetzner fw-rules due to mobene nsodev migration 3 years ago
friedrich goerz 00de8eec6d DEV-827: fixing broken argo-keycloak login due to new keycloak version 3 years ago
Sven Ketelsen 7cebf472a4 DEV-794 changed default server profile for elastic from cx31 to cpx31 3 years ago
Hoan To dcfcb3887e DEV-814: start iam with keycloak, before other services in patchday 3 years ago
Ketelsen, Sven f1e7c4683a DEV-844 bugfix increased dependency version 3 years ago
Ketelsen, Sven c4e0e2201e DEV-845 changed hetzner ingress/loadbalancer default config 3 years ago
friedrich goerz 8f0927c7ef DEV-831: increase niceness for gpg and pigz process 3 years ago
Sven Ketelsen 5cd09c7682 DEV-822 feat: ssh key für Hans-Peter Wissenbach hinzugefügt 3 years ago
Hoan To 00dc0435eb DEV-826: added 40 gb to prodnso-postgres-02 backup 3 years ago
Hans-Peter Wissenbach 62b7aec05d DEV-822 feat: ssh key für Hans-Peter Wissenbach hinzugefügt 3 years ago
Hoan To 7100fdf891 DEV-816: Added Volumes to Postgres Slave removed Volumes from Postgres Master 3 years ago
friedrich goerz 9680b9fbbb DEV-788: fix for using version 20.x in keycloak_compact 3 years ago
Hoan To aeb0730c95 DEV-805: added postgres-02 to backup hosts file in qa and prodnso 3 years ago
Hoan To 9be0882562 Dev 783 pg backup secondary node 3 years ago
Görz, Friedrich 8a9e7bfee5 DEV-788: increased keycloak version - pimped dockercompose jinja template due... 3 years ago
friedrich goerz 2f270f1da8 DEV-793: inc. disk count for backup-VM 3 years ago
Sven Ketelsen d2b9312539 DEV-785 bugfix filter empty elements 3 years ago
Hoan To 3fc56d9754 substituted old DO Tokens 3 years ago
friedrich goerz 29cd0de9e0 DEV-769: inc.volcount for pg-backup-vol 3 years ago
friedrich goerz 10763a08be NOTICKET: argocd loglevel decrease to WARN to reduce wasting argo logmessages 3 years ago
Hoan To 3cb0d8e01d DEV-769: fixed typo for linter 3 years ago
Hoan To 4e82754c78 DEV-769: subtituted base_requirements_backup with lv_with_hetzner_volumes role 3 years ago
Görz, Friedrich 16b59b9d79 DEV-758: added new but needed envVAR 3 years ago
friedrich goerz 28f8616551 MOB-486: changed IPfilter for mobene 3 years ago
Michael Hähnel 76c7b4b628 DEV-679 New Role+Playbook for infrastructure realm 3 years ago
friedrich goerz e6cb93dd23 DEV-737: cleanup + scaled prodwork01 cluster 3 years ago
friedrich goerz 45eb3c0f7f NOTICKET: abolishing nightly false positive alerts 3 years ago
Ketelsen, Sven a12c9c3973 DEV-735 updated default firewall rules 3 years ago
Sven Ketelsen 80bfb06f61 DEV-704 removed DEV-701 kernel fix task 3 years ago
friedrich goerz ebcd915658 DEV-730: keylcoak integration - commit ins abentuerland 3 years ago
friedrich goerz 1c6f257b28 DEV-730: added sep. keycloak instance 3 years ago
friedrich goerz 61e034f04e DEV-732: resched. cron to exec metrics sycn script later - added tags 3 years ago
Görz, Friedrich 857045592f DEV-729: fixing broken silencing of alerts for patchday; added rescue block to... 3 years ago
Sven Ketelsen 1b98be3d14 DEV-721 increased backup volumes from 3 to 5 (60GB to 90GB) 3 years ago
Ketelsen, Sven 7c8d548e4d DEV-719 added prometheus polling for ext-bdev-mpmexec-02-connect 3 years ago
Görz, Friedrich e1d05f5e81 DEV-721: exclude restore-servers from patchday - avoiding broken... 3 years ago
Hoan To 2fc032f047 DEV-701_kernel set to newest kernel 3 years ago
Sven Ketelsen 52d89b5259 NOTICKET: changed keycloak version from 14.0.0.2 to 14.0.0.4
- get rid of the stupid small role selects
3 years ago
Michael Hähnel 212d889e1c DEV-708 Added new time zone env var 3 years ago
Michael Haehnel 79d242490a
Added hostvar to adjust docker image version 3 years ago
Ketelsen, Sven 7e80cfaa0e DEV-711 use servers without shared_service_network 3 years ago
Sven Ketelsen 07fc9c607e DEV-601 bugfix kibana wasn't available after reboot
- wrong url for traefik label
- added domain entry creation
3 years ago
Sven Ketelsen 498cdc1fae DEV-601 changed smardigo configuration for mpm democase
- added TZ: "Europe/Berlin"
- added kibana for debug purposes
3 years ago
friedrich goerz bb0354e085 DEV-709: fixing timezone for all dashabords 3 years ago
friedrich goerz 81beaf71ac DEV-709: added needed k8s-related dashboards 3 years ago
Hoan To eca0b05808 Merge branch 'qa' into main 3 years ago
Hoan To 78d0b37804 DEV-598: updated galaxy-requirement versions 3 years ago
friedrich goerz e922bfe258 NOTICKET: added stage label for better identifying of alerts 3 years ago
friedrich goerz a4b58dd3c9 DEV-669: added IMPORTANT param to secret for private helm repo 3 years ago
Görz, Friedrich 982ec72f28 DEV-695: fixing buggy firewall stuff 3 years ago
Görz, Friedrich 2ef6773ed3 DEV-701: changed node-exporter installation from ubuntu-repo to... 3 years ago
Sven Ketelsen f85d73638f bugfix: platform-iaas logs are not shown up in prodnso-platform-* 3 years ago
Ketelsen, Sven d72b6a3fda DEV-700 pmci: bugfix for elastic search feature 3 years ago
friedrich goerz 62a6478060 DEV-607: added missing ufw rules + added automationgit statusgit status 3 years ago
Görz, Friedrich fe911a80ad BugfixRollout main => QA: DEV-699 fixing restore process 3 years ago
friedrich goerz 8146179308 DEV-699: removed label, added assert-stmt for catching error 3 years ago
Hoan To 350a83b872 MOB-400: added prodnso-hocr-iaas-01 to inventory 3 years ago
Sven Ketelsen edc3b243c6 DEV-630 paas@hetzner
- changed declaration to custom_plattform_users
3 years ago
Hoan To 95f3eb2621 DEV-698: changed hetzner_server_type to cx51 3 years ago
Hoan To b21690184c DEV-696: fix regression from DEV-628 3 years ago
Sven Ketelsen 3abcaeed5a DEV-696 chore removed duplicated line 3 years ago
Ketelsen, Sven d912762383 DEV-628 pmci: added spk bz prod configuration as host_vars file 3 years ago
Ketelsen, Sven 4e191e4e02 DEV-630 added support for elk to PaaS 3 years ago
Görz, Friedrich a2583e928b NOTICKET: disabling fw-pipeline-job 3 years ago
Görz, Friedrich 2da1f1ee28 DEV-687 aachen ip hcloud fw 3 years ago
Sven Ketelsen c9c09828bb DEV-677 update hetzner firewall rules for new k8s worker node on dev 3 years ago
friedrich goerz f80341254a NOTICKET: added setup run for prodwork01 3 years ago
Sven Ketelsen c1ca8908a3 chore: ansible linter 3 years ago
Sven Ketelsen f90a83e80e DEV-526 added pmci-callback playbook for testing purposes
- new pmci playbook api
3 years ago
friedrich goerz e473c19792 DEV-606: added pruning 3 years ago
friedrich goerz 92a8c75939 DEV-676: changed hcloud serve type due to OOM problem 3 years ago
Sven Ketelsen a7da70d1a0 DEV-526 added pmci-callback playbook for testing purposes
- new pmci playbook api
3 years ago
Sven Ketelsen 415ea47204 DEV-526 extended template with datasource-actions 3 years ago
Sven Ketelsen 86adc5ce17 DEV-526 extended template with datasource-actions 3 years ago
Hoan To 1bbd04b131 DEV-533: added IP for aachen to whitelist and firewalls 3 years ago
Hoan To 8db347934f DEV-479: added bruteforce detection to keycloak realm configuration 3 years ago
friedrich goerz 64ebe201e2 DEV-648: added addintionl k8s node 3 years ago
Sven Ketelsen fbca9f1234 bugfix: keycloak/_configure_realm.yml: Could not create client Conflict
Removed management of field i. Same client_id in different realms isn't
possible due to database constraints for field id. Keyclloak uses now a
generated uuid.
3 years ago
Sven Ketelsen 954b961ab6 MA-2005 added new feature flag for datasource-action 3 years ago
Sven Ketelsen 16bee429de DEV-666 added iam configuration for mpmexec 3 years ago
Sven Ketelsen 42d8398349 DEV-664 bugfix use server specific domain 3 years ago
Sven Ketelsen 101f3e9005 DEV-666 added iam configuration for mpmexec 3 years ago
Hoan To 2a3c384550 DEV-587:added prometheus and alertmanager for prodwork01 login credentials to vault 3 years ago
Görz, Friedrich fe97fbbab5 Bug/dev 659 pgdatadir nospace 3 years ago
Sven Ketelsen 9f76d05353 SMA-1993 new platform qa server 3 years ago
Hoan To 9096811f8f DEV-588: added prodwork01 to patchday 3 years ago
sven.ketelsen 36752d1f57 DEV-658 increased prodnso prometheus data space
- old 3 * 30
- new 10 * 30
3 years ago
sven.ketelsen 5449de1de4 DEV-656 prepare rollout - moved docker cron job to role common 3 years ago
sven.ketelsen e5604dd030 DEV-656 prepare rollout - added hetzner dns api tokens 3 years ago
Ketelsen, Sven 8adf30109c DEV-655 adjusted filebeat and logstash config 3 years ago
Ketelsen, Sven e343b5f76e DEV-647 added hetzner domain smardigo.dev 3 years ago
friedrich goerz e23813f9d1 NOTICKET: but metrics missing since Nov2021 - needs to be fixed ;) 3 years ago
friedrich goerz d5ae2fe00a DEV-652: pinned argocd chart version 3 years ago
Ketelsen, Sven 35b94aab8a DEV-649 updated pip to >=2.28.1 3 years ago
Ketelsen, Sven 0641e6b03a DEV-646 skip docker network removal by nightly cron job 3 years ago
Görz, Friedrich 2bcffed2d7 DEV-650: added config stuff to drop docker.container.label to avoid crashing... 3 years ago
Ketelsen, Sven 20718b18c1 MOB-367 added script for pull/tag/push images between stages 3 years ago
sven.ketelsen ad6f470920 Revert "DEV-647 added hetzner domain smardigo.dev"
This reverts commit 0b7b2a0f01.
3 years ago
Ketelsen, Sven 0b7b2a0f01 DEV-647 added hetzner domain smardigo.dev 3 years ago
Görz, Friedrich a9c0e86f36 Revert "DEV-647 added hetzner domain smardigo.dev" 3 years ago
Ketelsen, Sven 7cdc602534 DEV-647 added hetzner domain smardigo.dev 3 years ago
Hoan To 8f4b884ba1 added bootstrap for prodwork01 3 years ago
friedrich goerz bf72c7fbc7 DEV-635: removed creating index per job/pod 3 years ago
Michael Hähnel 87a286dd60 DEV-624 New alert for failed db backups 3 years ago
Ketelsen, Sven f754404845 DEV-629 added logging buckets for k8s [job|pod][name] 3 years ago
friedrich goerz 89d11d1d06 NOTICKET: detected bug in failed rollout helm secret due to missing RBAC permissions 3 years ago
Michael Hähnel 43b77acefd DEV-624 adjust mtime to find files older 48h 3 years ago
friedrich goerz f873092498 DEV-624: bugfixed create-restore-backup stuff 3 years ago
Michael Hähnel 9b63b2e5a8 DEV-601 added extra configuration for bdev mpmexec demo server 3 years ago
Michael Hähnel b9e48a3260 DEV-601 added playbook for bdev demo setup 3 years ago
friedrich goerz 959dcc6832 NOTICKET: someone broke sth 3 years ago
Hoan To 593b1fb743 added volume to backup storage space 3 years ago
sven.ketelsen c59cd4c715 DEV-579 add basic auth to prometheus stack 3 years ago
Ketelsen, Sven db57bcb7ca DEV-579 add basic auth to prometheus stack 3 years ago
Görz, Friedrich 24e5cbf3d9 DEV-616: increased vol_count to mitigate disk size problem 3 years ago
Hoan To b3d75c4da8 DEV-585: added new infrastructure project in harbor 3 years ago
Hoan To 17e923b9b4 Feature/dev 583 new cluster 3 years ago
friedrich goerz 664edd2d43 DEV-592: added stuff for argocd to enable helm sops decryption 3 years ago
Michael Haehnel 0b0cb3dd95 DEV-568: Decreased process priority and count of parallel processes for pg backup task 3 years ago
Ketelsen, Sven ccdff552f1 DEV-596 playbook update-monitoring is broken 3 years ago
Sven Ketelsen d0564aec2d DEV-596 regression in connect
- removed outdated/unused usage of mail attachments
3 years ago
Hoan To 98c5f39c85 DEV-579: added prometheus basic auth 3 years ago
Ketelsen, Sven e5e2bdf93e DEV-597 removed ssh keys 3 years ago
Ketelsen, Sven f47c5dc345 DEV-578 investigation for hetzner api rate limits 3 years ago
Ketelsen, Sven 9919985e3d DEV-593 updated versions 3 years ago
Görz, Friedrich 01049bf031 DEV-548: testcluster 3 years ago
friedrich goerz bad109ad83 DEV-582: rollback prom2teamsd version due to problems during container start 3 years ago
friedrich goerz 0b1ef4f671 DEV-558: pinned helm chart version + adding some values for knative monitoring 3 years ago
Ketelsen, Sven ac7285bbcf DEV-572: alertmanager metrics 3 years ago
Sven Ketelsen 726012d85c chore: cleanup 3 years ago
Hoan To a49e2923d5 DEV-529: Dynamic shared memory type fix from posix to mmap 3 years ago
Hoan To 1a529cf787 DEV-553: added remove hcloud volumes at the end of restore playbook 3 years ago
friedrich goerz 659943ccc5 DEV-563: bugfixed hetzner rate limit alert 3 years ago
Ketelsen, Sven 35dbd3cad1 DEV-569: extended stage overview dashboard 3 years ago
friedrich goerz 9e6f28c62a DEV-563: added hetzner dashboard + svennes dashboard + refactoring alert for hetzner_api_rate_limit 3 years ago
Sven Ketelsen c424c1edb4 Merge branch 'main' into qa 3 years ago
Ketelsen, Sven 77e22ca87a DEV-560: major change within smardigo config 3 years ago
Görz, Friedrich 01c972771b Rollout main=>qa 13.09.2022 3 years ago
friedrich goerz 408848d7b4 DEV-556: separate patching for iam service 3 years ago
friedrich goerz 532257651d DEV-557: removed old mobene stuff; k8s servers still in inventroy file 3 years ago
Hoan To 244245336f DEV-540: added awx dashbord to grafana, added alert for failed jobs 3 years ago
Hoan To 223141da20 Dev 549 alert unused volumes 3 years ago
friedrich goerz c23655d57d NOTICKET: cleanup 3 years ago
Görz, Friedrich f5c4f731f0 DEV-546: prometheus data via LVM 3 years ago
Hoan To 142d5a0103 DEV-541: postgres zombies alert 3 years ago
friedrich goerz c7e1ba5402 DEV-552: bugfix for broken patchday 3 years ago
Görz, Friedrich 4a78a8e10c DEV-542: added LVM stuff to easily increase disk space via LVM 3 years ago
friedrich goerz 5367c9929e DEV-539: increased timerange; bugfixed broken silencing for patchday 3 years ago
Görz, Friedrich ffb3aa2122 DEV-543: integrated DO-blackbox VM into DEV-patchday + increased threshold for... 3 years ago
Hoan To a0ff9a5d8e added elasticsearch health check rule 3 years ago
Hoan To d644293f9b Dev 544 backup storage 3 years ago
Ketelsen, Sven e6dddbe4c9 DEV 534: Added hetzner volume to prodnso-postgres-01 for /backups 3 years ago
friedrich goerz 45f4fd20f3 DEV-537: added availability check for kube-awx-domain 3 years ago
Hoan To 6027ba958e added hoan.to ssh-key 3 years ago
friedrich goerz 98dd03416e DEV-522: added auto-patchday for PRODNSO 3 years ago
friedrich goerz 79f2e5b41b DEV-517: added sperate DO for DEVSCR 3 years ago
friedrich goerz 1558548682 DEV-517: added alerting for DO API usage 3 years ago
Görz, Friedrich ea79ce2a29 DEV-517: changed DO-token due to 'too many request' problem 3 years ago
Görz, Friedrich 92a6101f1f tried to silence patchday related alerts 3 years ago
Görz, Friedrich 046f4a3c74 Update .gitlab-ci.yml 3 years ago
friedrich goerz 4f4f8be81a DEV-518: added silences step 3 years ago
friedrich goerz 35e580f264 DEV-518: refactor exec timeslots 3 years ago
friedrich goerz d199433a57 DEV-515: bugfix to start only patchday related jobs 3 years ago
Görz, Friedrich b2d8c1fb26 DEV-515: DEV+QA patchday scheduled for daily patchday at midnight 3 years ago
Sven Ketelsen 7d27da69b4 SC-6 added new worker node for devscr cluster 3 years ago
friedrich goerz 3b8354c2e5 SC-44: added 2 new nodes + added corrected kubespray version 3 years ago
friedrich goerz 981f32690e DEV-506/ changed domain names for metric-stack - removed substring kube 4 years ago
Sven Ketelsen 4d8ea01578 DEV-507 process start from wordpress is broken
- after connect/wordpress update through the portal the
  wordpress used a wrong useris in communication with
  the connect backend
4 years ago
friedrich goerz b1541dc747 DEV-497/DEV-505: changed startupprobe params for gitea 4 years ago
friedrich goerz 2494f2002b DEV-497/DEV-505: added stuff to enable helm secrets in argo 4 years ago
Bas Cancrinus 75c780aeae SC-13: Added public ssh key 4 years ago
Philipp Eichhorn ab5cba3c7c SC-05: add devscr variables to create harbor-pull secret 4 years ago
Sven Ketelsen 06c3589e94 SC-20: added harbor entry to etc/hosts file
- access to harbor through loadbalancer with private ip
4 years ago
Görz, Friedrich b4ebe98e3c DEV-505: removed settings for CCM for kubespray run => install hetzner-CCM in sep. ansible-run; updated used kubespray version 4 years ago
Görz, Friedrich beb013aca3 DEV-497: added stuff for gitea to for bootstrapping k8s-clsuter 4 years ago
Ketelsen, Sven ca121933ea DEV-503: bugfix: added missing configuration for harbor realm 4 years ago
Görz, Friedrich c744eaa837 DEV-497: created new branch due to git-problems - dunno what exactly 4 years ago
Esther Fuhrmann b68995fe5c SC-14 add ssh pub key esther.fuhrmann 4 years ago
daniel.risse f344d9405b SC-15: add ssh key for daniel.risse@netgo.de 4 years ago
Sven Ketelsen c2a323789a DEV-500 bugfix: backwards compatibility for processes
- added null check to variable usages for newly added
  variables. some older processes ran into npe's
4 years ago
friedrich goerz 454b04838f DEV-494: added hcloud as group also for dynamic SMA-instances 4 years ago
Sven Ketelsen 13a05a7a08 bugfix: gitlab/run-patchday runs the patchday twice
- removed one of the two patchday.yml executions.
4 years ago
Sven Ketelsen 41a065b048 bugfix: regression for etc/hosts update
- shouldn't run for non hcloud servers at all
  when expression was wrongly negated
4 years ago
Sven Ketelsen f00fdbe808 bugfix: fixed when expression (regression from DEV-492) 4 years ago
friedrich goerz b23b571f79 DEV-492: fix /etc/hosts-issue for DO-VMs 4 years ago
Görz, Friedrich 3e82085eb0 Bug/dev 476 blackbox do vm 4 years ago
friedrich goerz 9d418ccf11 DEV-476: consolidate dev-blackbox-01 on digitalocean platform 4 years ago
Sven Ketelsen 2cf1d8b9dc bugfix: service creation with portal is broken
- Filebeat autodiscover condition isn't working for all
  hosts. Switched condition to docker_enabled flag. If a
  container has no default log file (harbor) there isn't
  a problem because there will just no log file found.
  The autodiscover docker container log files mustn't
  deactivated in this cases at all.
4 years ago
Eichhorn, Philipp 6200deea76 DEV-489: add ssh key for philipp.eichhorn@netgo.de 4 years ago
Sven Ketelsen 72ff5db355 DEV-416: review collect postgres logs to elk-stack 4 years ago
Sven Ketelsen 0186de2e94 feat: rollout certs on qa 4 years ago
Sven Ketelsen 1048f5845d bugfix: removed daily roll over for log indices 4 years ago
Sven Ketelsen 8156a45ec2 feat: updated elastic certs for qa/prod stages
- create new certificates (--days 1095)
- rollout with playbook smardigo.yml + -t update_certs
  all elasticsearch
  all kibana
  all logstash
- rollout with playbook setup.yml + -t update_certs
  all filebeat
- manually updates connect certs
  use smardigo.yml + -t update_certs - with connect role
4 years ago
Sven Ketelsen acd2205aed bugfix: removed variable k8s_namespace
- has to be set when a k8s namespace should be created
4 years ago
Sven Ketelsen 1fd63f3676 feat: updated elastic certs on dev stage
- create new certificates (--days 1095)
- rollout with playbook smardigo.yml + -t update_certs
  all elasticsearch
  all kibana
  all logstash
- rollout with playbook setup.yml + -t update_certs
  all filebeat
- manually updates connect certs
  use smardigo.yml + -t update_certs - with connect role
4 years ago
Görz, Friedrich 84a013d169 MOB-148: added k8s cluster for mobene stuff 4 years ago
Görz, Friedrich 0f69260711 DEV-416: added stuff to enable filebeat for postgres + mariabb instances 4 years ago
Sven Ketelsen ef24ce7063 bugfix: added missing update monitoring (prometheus) 4 years ago
Sven Ketelsen 55ebe36758 MOB-102: office 365 email account (QA/PROD) 4 years ago
Sven Ketelsen 578d798332 MOB-102: set wordpress image version to latest 4 years ago
friedrich goerz 43fbb20fb8 DEV-484: changed index naming pattern from monthly to daily 4 years ago
Peter Heise 055c5d0b77 DEV-391 - changed public key for offsite storage. 4 years ago
friedrich goerz 8180523963 DEV-480: decrease prometheus retention time for DEV-stage 4 years ago
Sven Ketelsen 79bd5863e0 bugfix: set connect LOG_LEVELs from DEBUG to INFO 4 years ago
Sven Ketelsen 4a661b064f bugfix: axw jobs are now in descending order (by creation time) 4 years ago
friedrich goerz ebf2d41e48 DEV-473: changed custom metric queries to reduce messages in error.log 4 years ago
Görz, Friedrich 1c5b1c44dd DEV-391: fix merge problems + fixing linter problems 4 years ago
Sven Ketelsen 025bc37453 feat: small improvement in portal dossier 4 years ago
Sven Ketelsen 723db05ded feat: send up-and-running mail only when stage isn't DEV
- sendUpAndRunningMail set on process start
4 years ago
Sven Ketelsen 9a16dc20bf bugfix: view for awx jobs 4 years ago
Sven Ketelsen 77e71d0048 feat: fun with email templates aka. thymeleaf 4 years ago
Sven Ketelsen 1ad63bf864 feat: added initial password creation to portal
- randomize passwords according to password policies
  2 Uppercase Characters
  2 Lowercase Characters
  2 Special Characters
  1 Digits
4 years ago
Sven Ketelsen 05ccebc851 feat: added initial password creation to portal
- randomize passwords according to password policies
  2 Uppercase Characters
  2 Lowercase Characters
  2 Special Characters
  1 Digits
4 years ago
Sven Ketelsen 00ca2bc3f1 feat: added initial password creation to portal
- randomize passwords according to password policies
  2 Uppercase Characters
  2 Lowercase Characters
  2 Special Characters
  1 Digits
4 years ago
Ketelsen, Sven 8c69471639 DEV-477 bugfix: delete wordpress database when service is deleted by portal 4 years ago
Sven Ketelsen 1ebcce5a17 Revert "tmp"
This reverts commit 9275cf4672.
4 years ago
Sven Ketelsen 9275cf4672 tmp 4 years ago
Sven Ketelsen 51c1a79eb1 chore: apt: removed duplicated iotop entry 4 years ago
Görz, Friedrich 0eac3f3d3c DEV-429: mariadb upgrade 4 years ago
Sven Ketelsen 9f18847223 feat: added visualization for awx jobs 4 years ago
Sven Ketelsen 06a395855b feat: argo-cd
- activated json logging
- disabled application set controller
4 years ago
Sven Ketelsen 2150ed8e35 feat: switched prodnso-prometheus-01 server type to cpx21
- increased due to disk space 40>80GB
4 years ago
Sven Ketelsen ea827b727e feat: apt: added iotop to defaults 4 years ago
Sven Ketelsen 25bd87846c feat: kibana - default index patterns
- uncategorized-*
- {{ stage }}-*-authlog-*
- {{ stage }}-*-syslog-*
- {{ stage }}-monitoring-*
- {{ stage }}-management-*-connect-*
4 years ago
Sven Ketelsen 26dad106ba review: logstash index pattern
- added block for [kubernetes][statefulset][name]
4 years ago
Sven Ketelsen 2f0c919f2e review: logstash index pattern
- added block for [kubernetes][daemonset][name]
4 years ago
Sven Ketelsen 9c052aabc7 review: logstash index pattern
- added uncategorized block for kubernetes
  no [kubernetes][deployment][name] available

- added uncategorized block for beats
  no [container][name] available
4 years ago
Sven Ketelsen 4fbf0b4203 feat: added node-exporter for kubernetes servers 4 years ago
friedrich goerz 0d5976898a NOTICKET: corrected bloody typo 4 years ago
Görz, Friedrich 98c9f70e8a DEV-338: added logstash config to deliver k8s-dockerlogs into specific indices 4 years ago
Görz, Friedrich 4bf4167216 DEV-386: to use techn.user to scrape metrics for ssh-root-login 4 years ago
Sven Ketelsen aae57149dc bugfix: added missing role-policy-mapping to process 4 years ago
Görz, Friedrich d4aab3b7d8 DEV-473: removed stage specific threshold for replication_lag - flapping... 4 years ago
Görz, Friedrich 6c6dd5c1ae DEV-442: added threshold for pg_repl_lag to avoid false positives on DEV-stage 4 years ago
Michael Hähnel ff9c0d94a1 Extended Monitoring/Alerting for PostgreSQL 4 years ago
Sven Ketelsen acee683569 feat: added workflow heatmap flag to portal
- SMA_WORKFLOW_HEATMAP_ENABLED: [false]|true
4 years ago
Sven Ketelsen 9f65ecaf96 DEV-447: added new ext server ext-bdev-mpmexec-01 4 years ago
friedrich goerz 5d1b951f39 DEV-466: added missing but needed package 4 years ago
Sven Ketelsen f55a892418 bugfix: pgadmin username/password
- username: nso.devops@netgo.de
- password: DEV default
- password: QA vault
- password: PRODNSO vault
4 years ago
Michael Haehnel c112a780f1 Extend hetzner_ssh_keys for michael.haehnel 4 years ago
Sven Ketelsen 331667d8cc DEV-452 reverted backups from hourly to daily 4 years ago
friedrich goerz 0fe89b4985 DEV-452: tried to fix some stuff 4 years ago
Michael Haehnel 10bd066617 DEV-456: Added SSH key for michael.haehnel 4 years ago
Sven Ketelsen 15d313e9fe chore: added incident configuration to smardigo apps 4 years ago
friedrich goerz 0c8bfdb3d9 DEV-452: tried to fix some stuff 4 years ago
friedrich goerz a3bf98465a DEV-452: added workaround to fix problem with missing hetzner internal network 4 years ago
friedrich goerz cd09b5bb5e DEV-452: added workaround to fix problem with missing hetzner internal network 4 years ago
friedrich goerz f7a43f5981 DEV-452: added workaround to fix problem with missing hetzner internal network 4 years ago
friedrich goerz 31e79f7ee6 DEV-452: added DEBUG statements to get more information in case of problems 4 years ago
friedrich goerz 5ce99dbb58 DEV-452: pimped recursive _set_server_state.yml - bugfixed 4 years ago
Görz, Friedrich 37ca359842 DEv-452: added recursive _set_server_state.yml to work around hetzners... 4 years ago
Sven Ketelsen 7a9bd9411e bugfix: logstash mutate - remove_field
- [host][ip]
- [host][mac]
4 years ago
Sven Ketelsen c4a7359e6c chore: added argo-cd projects
- bootstrap
- kube-system
- infrastructure
4 years ago
Sven Ketelsen 104ede597d chore: removed stage prefix from pull secret (namespace) 4 years ago
Sven Ketelsen ae1e2854dc chore: removed stage prefix from pull secret (namespace) 4 years ago
Ketelsen, Sven 60a6c73be6 DEV-424 export for wordpress database (maria) 4 years ago
Görz, Friedrich 9efc1cf2b5 DEV-452: bugfix 4 years ago
friedrich goerz 64d0834b35 DEV-452: added potential fixes for our hetzner create_server - is locked/message problem - bugfix 4 years ago
friedrich goerz dac7002ad9 DEV-452: added potential fixes for our hetzner create_server - is locked/message problem 4 years ago
Sven Ketelsen 2a08f40e89 DEV-375: added sort for backup process search 4 years ago
friedrich goerz 8c8722851f DEV-386: added alert to get notification in case of ssh root login 4 years ago
Sven Ketelsen fff42dea2c chore: removed ignore_errors due to a bug in smardigo 4 years ago
Görz, Friedrich b4937db87a DEV-375: bugfix to run stuff for testdb only when is set 4 years ago
Sven Ketelsen 750b109b54 chore: added ignore_errors due to a bug in smardigo 4 years ago
Sven Ketelsen f631b487bd chore: new smardigo workflow version 4 years ago
Sven Ketelsen fec637ff41 DEV-375: removed button "Server freigeben" in teams 4 years ago
Sven Ketelsen 19c35ddd8c DEV-375: fixed process modell
- 0 0 0 * * ? -> daily at 0.°°
4 years ago
friedrich goerz 615121fe72 DEV-375: added label for restore- server to ignore them in promehtues 4 years ago
Sven Ketelsen 516b2eecd6 DEV-375: cleanup process 4 years ago
Sven Ketelsen a3e662c883 DEV-375: added cron expression for backups
- every day at 0.°°
4 years ago
friedrich goerz 038473f80c DEV-441: resizing postgres-VMs 4 years ago
Sven Ketelsen b4b0508cfe spike: automated mirrors for gitlab (w.i.p.) 4 years ago
Sven Ketelsen 17267379c5 chore: adjusted ssh key comments to convention 4 years ago
Sven Ketelsen ad80ceeaaa SMARCH-126: bootstrap argocd with argocd 4 years ago
Sven Ketelsen 20c745eeb4 SMARCH-126: bootstrap argocd with argocd 4 years ago
Sven Ketelsen 80c94ef184 SMARCH-126: bootstrap argocd with argocd 4 years ago
Ketelsen, Sven 8923ab7574 SMARCH-126: Bootstrap ArgoCD by ArgoCD 4 years ago
Görz, Friedrich 03c87e74dc DEV-435: ssh-key rotation for technical users 4 years ago
Görz, Friedrich bdc33af536 DEV-438: debuggen SFTP-error - thesis: ssh hardening will rise the WARN 4 years ago
Görz, Friedrich 315bee648d DEV-439: removed leftovers from mariadb-transport-encyrption 4 years ago
Sven Ketelsen 3e7320e02f bugfix: added 2h timeout to patchday
- default is 1h - which isn't enough for patchday
4 years ago
Sven Ketelsen ab790591c2 chore: whitelisted admin ips 4 years ago
Sven Ketelsen 2697a27350 DEV-375: extended backup process model
- added database backup verify
4 years ago
Görz, Friedrich f0eab6d3ae DEv-421: refactored installation for postgres-exporter + installed newer... 4 years ago
Görz, Friedrich a2fa12ef40 DEV-396: changed diskspace alert from predictive to alert of current usage 4 years ago
Sven Ketelsen 1a73a7f2be DEV-432: ed25519 with passphrase 4 years ago
friedrich goerz f4c97a9a04 DEV-432: ansible stuff to change ssh ciphers on serverside + added new ssh key for fgoerz 4 years ago
friedrich goerz 819a658e50 DEV-422: mariadb deactivate ssl stuff to ensure stable smardigo-ENV 4 years ago
friedrich goerz ea2e31cd27 DEV-383: fixing bug 4 years ago
Sven Ketelsen 64c2001924 Merge branch 'main' into qa 4 years ago
Görz, Friedrich c507859fb4 Revert "DEV-383: fixing bug on QA"
This reverts commit b39400163e
4 years ago
Görz, Friedrich 62e0a64f26 DEV-414: follow-up tasks prod@hetzner-incident 4 years ago
Görz, Friedrich b39400163e DEV-383: fixing bug on QA 4 years ago
Görz, Friedrich 49fc416764 DEV-382: enable SSL for postgres-connections 4 years ago
Sven Ketelsen d99c9001bf DEV-383: enable SSL for mariadb-connections 4 years ago
Sven Ketelsen 6297ad954e feat: removed admin ips from firewalls 4 years ago
Sven Ketelsen 0b18fc9bc2 MOB-28: added custom whitelisted ips for services 4 years ago
Sven Ketelsen 62fa239b6f MOB-28: added firewall whitelist for mobene - keycloak 4 years ago
Sven Ketelsen fec11415bc MOB-28: added firewall whitelist for mobene - keycloak 4 years ago
friedrich goerz 7d7dbcf622 NOTICKET: hetzner bugfix 4 years ago
Sven Ketelsen 7bb1c9eed3 chore: update of ip whitelist 4 years ago
friedrich goerz 44e21b4f03 NOTICKET: fix broken playbook due to violation of password policy 4 years ago
friedrich goerz fc5745eac2 NOTICKET: fix broken playbook due to renamed yml file 4 years ago
Sven Ketelsen f1c5e1b1f8 bugfix: wrong vault pass for qa/prodnso stage 4 years ago
Claus Paetow 164bc2730e bugfix: updated ssh key configuration
- - ssh-rsa key claus.paetow
- + ssh-ed25519 key claus.paetow
4 years ago
Sven Ketelsen fe66a12c6e bugfix: typo 4 years ago
Sven Ketelsen 4285716f6b chore: removed dev-fgrz-01 4 years ago
Sven Ketelsen 5a728d97be bugfix: typo 4 years ago
Görz, Friedrich 6fbc3af3c4 DEV-374: implemented logical restore-test to check if restore was succussful 4 years ago
Sven Ketelsen 197bcfd4ea DEV-375: added process model for creating backups
- databaseEngines: postgres,maria
4 years ago
Sven Ketelsen 194d3461e6 DEV-375: added process model for creating backups
- databaseEngines: postgres,maria
4 years ago
Sven Ketelsen 46c47ddcf0 bugfix: invalid json syntax 4 years ago
Görz, Friedrich 43da648df6 DEV-389: added gpg-decryption for backup 4 years ago
Sven Ketelsen b08a1466b7 bugfix: management backup process process deletion 4 years ago
Sven Ketelsen 4e07e72b99 bugfix: missing ssh_host for backup playbook
- ansible_ssh_host: {{ stage_server_domain }}
4 years ago
Sven Ketelsen 1c71fedb6e chore: gitlab - fixed vault passwords 4 years ago
Sven Ketelsen 6743bdcf27 chore: gitlab - removed schedules from tasks
- isn't working as expected
4 years ago
Görz, Friedrich 0c9042da83 DEV-373: try to automate restore from database backup 4 years ago
Sven Ketelsen 3257ff9a9b chore: dry pattern 4 years ago
Sven Ketelsen 7cff418410 chore: dry pattern 4 years ago
Sven Ketelsen 9222383ca6 chore: dry pattern 4 years ago
Sven Ketelsen 3bdbd689f6 chore: gitlab test 4 years ago
Sven Ketelsen 079d195153 chore: cleanup/consolidation 4 years ago
Sven Ketelsen 2a1cd6b638 chore: cleanup/consolidation 4 years ago
Sven Ketelsen a24368f884 chore: cleanup/consolidation 4 years ago
Sven Ketelsen 484b60ae16 chore: cleanup/consolidation 4 years ago
Sven Ketelsen 9c782fa7cb chore: dry pattern 4 years ago
Sven Ketelsen fc36445952 chore: dry pattern 4 years ago
Sven Ketelsen 9f75b8969a chore: ansible-management-dev only on main branch 4 years ago
Sven Ketelsen 80b321cd65 DEV-375 feat: new process for backup scheduling 4 years ago
Sven Ketelsen 49aa913213 bugfix: backup runs with gather_facts: false 4 years ago
Sven Ketelsen fa75354842 chore: cleanup 4 years ago
Sven Ketelsen 799fde1d00 chore: cleanup 4 years ago
Sven Ketelsen a35a2fa42e DEV-375 added smardigo backup application (w.i.p.) 4 years ago
Sven Ketelsen 1ee340fdd3 bugfix: added awx templates
- create-remote-database-backup
4 years ago
Sven Ketelsen 68f1c76919 bugfix: timestamp wasn't stabel anymore 4 years ago
Sven Ketelsen 5733b20dc3 bugfix: server creation was broken due to backupuser 4 years ago
Sven Ketelsen b35744a3b3 bugfix: used wrong email address for hetzner key 4 years ago
Sven Ketelsen 0398f7a7ff chore: renamed master into main - consistency 4 years ago
Sven Ketelsen 2c7504c781 chore: renamed master into main - consistency 4 years ago

4
.gitignore vendored

@ -10,3 +10,7 @@ kubespray/
/kubespray/
xvars-*.yml
*/__pycache__/*
# macOS
.DS_Store

@ -1,26 +1,42 @@
---
variables:
AWX_EE_DOCKER_IMAGE_EXTERN: "dev-harbor-01.smardigo.digital/awx/awx-custom-ee"
ANSIBLE_HOST_KEY_CHECKING: 'false'
ANSIBLE_FORCE_COLOR: 'true'
AWX_EE_DOCKER_IMAGE_EXTERN: "harbor-01.smardigo.digital/awx/awx-custom-ee"
ANSIBLE_HOST_KEY_CHECKING: "false"
ANSIBLE_FORCE_COLOR: "true"
image: docker.dev-at.de/smardigo/smardigo-ci-ansible
image: docker.dev-at.de/gitlab/gitlab-ci-ansible:latest
services:
- name: docker-cache.dev-at.de/docker:19-dind
- name: docker.dev-at.de/gitlab/gitlab-ci-ansible:latest
alias: docker
stages:
- ansible-lint
- lint
- ansible-builder
- ansible-run-setup
- ansible-run-kubernetes
- ansible-patchday
- run-setup
- run-setup-digitalocean
- run-update
- run-patchday-harbor
- run-patchday-elastic
- run-patchday-database
- run-patchday-all
- run-hcloud-firewall
ansible-lint-job:
stage: ansible-lint
###############################################################################
### http://patorjk.com/software/taag/#p=display&f=Doom&t=lint
### _ _ _
### | (_) | |
### | |_ _ __ | |_
### | | | '_ \| __|
### | | | | | | |_
### |_|_|_| |_|\__|
###
###############################################################################
lint-job:
stage: lint
script:
- echo "Running ansible-lint to check for linting violations"
- echo "Running lint to check for linting violations"
- ansible-lint -c ansible-lint.cfg
only:
- branches
@ -29,272 +45,650 @@ ansible-lint-job:
tags:
- dind
ansible-builder-job:
# A resource group ensures a job is mutually exclusive across different pipelines for the same project.
resource_group: deployment
###############################################################################
### https://patorjk.com/software/taag/#p=display&f=Doom&t=ansible-builder
### _ _ _ _ _ _ _
### (_) | | | | | (_) | | |
### __ _ _ __ ___ _| |__ | | ___ ______| |__ _ _ _| | __| | ___ _ __
### / _` | '_ \/ __| | '_ \| |/ _ \______| '_ \| | | | | |/ _` |/ _ \ '__|
### | (_| | | | \__ \ | |_) | | __/ | |_) | |_| | | | (_| | __/ |
### \__,_|_| |_|___/_|_.__/|_|\___| |_.__/ \__,_|_|_|\__,_|\___|_|
###
###############################################################################
.builder-job:
stage: ansible-builder
before_script:
- cd ansible-builder
- echo "CI_ENVIRONMENT_NAME=$CI_ENVIRONMENT_NAME"
script:
- echo "Running ansible-build to build awx execution environment"
- ansible-builder build -v 3 --tag $AWX_EE_DOCKER_IMAGE_EXTERN:latest
- docker push $AWX_EE_DOCKER_IMAGE_EXTERN:latest
- cp $SSH_KEY_GITLAB_CI_BUILDER_FILE ansible-builder/context/id_ed25519
- echo "Running ansible-builder to build awx execution environment"
- ansible-builder build -f ansible-builder/execution-environment.yml --tag ${CI_ENVIRONMENT_NAME}-${AWX_EE_DOCKER_IMAGE_EXTERN}:latest -c ansible-builder/context
- docker push ${CI_ENVIRONMENT_NAME}-${AWX_EE_DOCKER_IMAGE_EXTERN}:latest
except:
- schedules
tags:
- dind
- harbor # 05.02.22 TODO some runners run into timeouts
.builder-job-devnso:
extends: .builder-job
environment: devnso
resource_group: devnso
before_script:
- export STAGE=devnso
only:
refs:
- master
- main
builder-job-devnso-automatic:
extends: .builder-job-devnso
only:
changes:
- pip-requirements
- galaxy-requirements.yml
- ansible-builder/**/*
except:
- schedules
builder-job-devnso-manual:
extends: .builder-job-devnso
when: manual
.builder-job-prodnso:
extends: .builder-job
environment: prodnso
resource_group: prodnso
before_script:
- export STAGE=prodnso
only:
refs:
- prodnso
builder-job-prodnso-automatic:
extends: .builder-job-prodnso
only:
changes:
- pip-requirements
- galaxy-requirements.yml
- ansible-builder/**/*
builder-job-prodnso-manual:
extends: .builder-job-prodnso
when: manual
###############################################################################
# Environment specific AWX image from predefined variable $CI_ENVIRONMENT_NAME
.run-ansible:
image: $CI_ENVIRONMENT_NAME-$AWX_EE_DOCKER_IMAGE_EXTERN:latest
tags:
- dind
- harbor # 05.02.22 TODO some runners run into timeouts
########
### https://patorjk.com/software/taag/#p=display&f=Doom&t=ansible%20-%20run
###############################################################################
### http://patorjk.com/software/taag/#p=display&f=Doom&t=setup.yml
### _ _
### | | | |
### ___ ___| |_ _ _ _ __ _ _ _ __ ___ | |
### / __|/ _ \ __| | | | '_ \| | | | '_ ` _ \| |
### \__ \ __/ |_| |_| | |_) | |_| | | | | | | |
### |___/\___|\__|\__,_| .__(_)__, |_| |_| |_|_|
### | | __/ |
### |_| |___/
###
### _ _ _ _ _
### (_) | | | | | | |
### __ _ _ __ ___ _| |__ | | ___ ______ _ __ _ _ _ __ ______ ___ ___| |_ _ _ _ __ _ _ _ __ ___ | |
### / _` | '_ \/ __| | '_ \| |/ _ \ |______| | '__| | | | '_ \ |______| / __|/ _ \ __| | | | '_ \| | | | '_ ` _ \| |
### | (_| | | | \__ \ | |_) | | __/ | | | |_| | | | | \__ \ __/ |_| |_| | |_) | |_| | | | | | | |
### \__,_|_| |_|___/_|_.__/|_|\___| |_| \__,_|_| |_| |___/\___|\__|\__,_| .__(_)__, |_| |_| |_|_|
### | | __/ |
### |_| |___/
ansible-run-setup-1-dev:
image: $AWX_EE_DOCKER_IMAGE_EXTERN:latest
stage: ansible-run-setup
###############################################################################
.run-setup:
extends: .run-ansible
stage: run-setup
before_script:
- 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )'
- echo "CI_ENVIRONMENT_NAME=$CI_ENVIRONMENT_NAME"
script:
- "command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )"
- eval $(ssh-agent -s)
- 'echo "$GITLAB_SSH_KEY" | tr -d "\r" | ssh-add -'
- mkdir -p ~/.ssh
- chmod 0700 ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" >> ~/.ssh/config'
- ssh-add -L
script:
- echo "${ANSIBLE_VAULT_PASS_DEV}" > /tmp/vault-pass
- STAGE=dev && HETZNER_LABEL_SELECTOR="stage=${STAGE}" && ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml setup.yml --tags common --vault-password-file /tmp/vault-pass -u gitlabci
- export HETZNER_LABEL_SELECTOR="stage=${STAGE}"
- ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml setup.yml --vault-password-file /tmp/vault-pass -t common -u gitlabci
after_script:
- rm /tmp/vault-pass
only:
- master
except:
- schedules
tags:
- dind
- harbor # 05.02.22 TODO some runners run into timeouts
resource_group: dev
ansible-run-setup-2-qa:
image: $AWX_EE_DOCKER_IMAGE_EXTERN:latest
stage: ansible-run-setup
run-setup-devnso:
extends: .run-setup
environment: devnso
resource_group: devnso
before_script:
- export STAGE=devnso
- echo "${ANSIBLE_VAULT_PASS_DEVNSO}" > /tmp/vault-pass
only:
- main
run-setup-prodnso:
extends: .run-setup
environment: prodnso
resource_group: prodnso
before_script:
- export STAGE=prodnso
- echo "${ANSIBLE_VAULT_PASS_PRODNSO}" > /tmp/vault-pass
only:
- prodnso
run-setup-demompmx:
extends: .run-setup
environment: prodnso
resource_group: demompmx
before_script:
- 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )'
- export STAGE=demompmx
- echo "${ANSIBLE_VAULT_PASS_DEMOMPMX}" > /tmp/vault-pass
only:
- prodnso
###############################################################################
### http://patorjk.com/software/taag/#p=display&f=Doom&t=vpn.yml
### _
### | |
### __ ___ __ _ __ _ _ _ __ ___ | |
### \ \ / / '_ \| '_ \ | | | | '_ ` _ \| |
### \ V /| |_) | | | || |_| | | | | | | |
### \_/ | .__/|_| |_(_)__, |_| |_| |_|_|
### | | __/ |
### |_| |___/
###
###############################################################################
.vpn-config-update:
extends: .run-ansible
# A resource group ensures a job is mutually exclusive across different pipelines for the same project.
stage: run-update
script:
- "command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )"
- eval $(ssh-agent -s)
- 'echo "$GITLAB_SSH_KEY" | tr -d "\r" | ssh-add -'
- mkdir -p ~/.ssh
- chmod 0700 ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" >> ~/.ssh/config'
script:
- echo "${ANSIBLE_VAULT_PASS_QA}" > /tmp/vault-pass
- STAGE=qa && HETZNER_LABEL_SELECTOR="stage=${STAGE}" && ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml setup.yml --tags common --vault-password-file /tmp/vault-pass -u gitlabci
after_script:
- rm /tmp/vault-pass
- ssh-add -L
- export HETZNER_LABEL_SELECTOR="stage=${STAGE}"
- ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml vpn.yml --vault-password-file /tmp/vault-pass -u gitlabci
only:
- qa
changes:
- usser/**/wireguard.yml
except:
- schedules
tags:
- dind
- harbor # 05.02.22 TODO some runners run into timeouts
resource_group: qa
ansible-run-setup-3-prodnso:
image: $AWX_EE_DOCKER_IMAGE_EXTERN:latest
stage: ansible-run-setup
run-vpn-update-devnso:
extends: .vpn-config-update
environment: devnso
# A resource group ensures a job is mutually exclusive across different pipelines for the same project.
resource_group: devnso
before_script:
- export STAGE=devnso
- echo "${ANSIBLE_VAULT_PASS_DEVNSO}" > /tmp/vault-pass
only:
- main
run-vpn-update-prodnso:
extends: .vpn-config-update
environment: prodnso
# A resource group ensures a job is mutually exclusive across different pipelines for the same project.
resource_group: prodnso
before_script:
- 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )'
- export STAGE=prodnso
- echo "${ANSIBLE_VAULT_PASS_PRODNSO}" > /tmp/vault-pass
only:
- prodnso
###############################################################################
### http://patorjk.com/software/taag/#p=display&f=Doom&t=smardigo.yml
###
### _ _ _
### | (_) | |
### ___ _ __ ___ __ _ _ __ __| |_ __ _ ___ _ _ _ __ ___ | |
### / __| '_ ` _ \ / _` | '__/ _` | |/ _` |/ _ \| | | | '_ ` _ \| |
### \__ \ | | | | | (_| | | | (_| | | (_| | (_) | |_| | | | | | | |
### |___/_| |_| |_|\__,_|_| \__,_|_|\__, |\___(_)__, |_| |_| |_|_|
### __/ | __/ |
### |___/ |___/
###
###############################################################################
.run-management-update:
extends: .run-ansible
stage: run-update
script:
- "command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )"
- eval $(ssh-agent -s)
- 'echo "$GITLAB_SSH_KEY" | tr -d "\r" | ssh-add -'
- mkdir -p ~/.ssh
- chmod 0700 ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" >> ~/.ssh/config'
script:
- echo "${ANSIBLE_VAULT_PASS_PRODNSO}" > /tmp/vault-pass
- STAGE=prodnso && HETZNER_LABEL_SELECTOR="stage=${STAGE}" && ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml setup.yml --tags common --vault-password-file /tmp/vault-pass -u gitlabci
- ssh-add -L
- export HETZNER_LABEL_SELECTOR="stage=${STAGE}"
- ansible-playbook -i stage-$STAGE smardigo.yml --vault-password-file=/tmp/vault-pass -l management -t update_configurations -u gitlabci
after_script:
- rm /tmp/vault-pass
only:
- prodnso
changes:
- smardigo/**/*
except:
- schedules
tags:
- dind
- harbor # 05.02.22 TODO some runners run into timeouts
run-management-update-devnso:
extends: .run-management-update
environment: devnso
resource_group: devnso
before_script:
- export STAGE=devnso
- echo "${ANSIBLE_VAULT_PASS_DEVNSO}" > /tmp/vault-pass
only:
- main
run-management-update-prodnso:
extends: .run-management-update
environment: prodnso
resource_group: prodnso
before_script:
- export STAGE=prodnso
- echo "${ANSIBLE_VAULT_PASS_PRODNSO}" > /tmp/vault-pass
only:
- prodnso
run-management-update-demompmx:
extends: .run-management-update
environment: prodnso
resource_group: demompmx
before_script:
- export STAGE=demompmx
- echo "${ANSIBLE_VAULT_PASS_DEMOMPMX}" > /tmp/vault-pass
only:
- prodnso
########
### https://patorjk.com/software/taag/#p=display&f=Doom&t=ansible%20-%20run
###############################################################################
### http://patorjk.com/software/taag/#p=display&f=Doom&t=patchday.yml
### _ _ _ _
### | | | | | | | |
### _ __ __ _| |_ ___| |__ __| | __ _ _ _ _ _ _ __ ___ | |
### | '_ \ / _` | __/ __| '_ \ / _` |/ _` | | | || | | | '_ ` _ \| |
### | |_) | (_| | || (__| | | | (_| | (_| | |_| || |_| | | | | | | |
### | .__/ \__,_|\__\___|_| |_|\__,_|\__,_|\__, (_)__, |_| |_| |_|_|
### | | __/ | __/ |
### |_| |___/ |___/
###
### _ _ _ _ _ _ _
### (_) | | | | | | | | | | |
### __ _ _ __ ___ _| |__ | | ___ ______ _ __ _ _ _ __ ______ | | ___ _| |__ ___ _ __ _ __ ___| |_ ___ ___ _ _ _ __ ___ | |
### / _` | '_ \/ __| | '_ \| |/ _ \ |______| | '__| | | | '_ \ |______| | |/ / | | | '_ \ / _ \ '__| '_ \ / _ \ __/ _ \/ __|| | | | '_ ` _ \| |
### | (_| | | | \__ \ | |_) | | __/ | | | |_| | | | | | <| |_| | |_) | __/ | | | | | __/ || __/\__ \| |_| | | | | | | |
### \__,_|_| |_|___/_|_.__/|_|\___| |_| \__,_|_| |_| |_|\_\\__,_|_.__/ \___|_| |_| |_|\___|\__\___||___(_)__, |_| |_| |_|_|
### __/ |
### |___/
ansible-run-kubernetes-1-dev:
image: $AWX_EE_DOCKER_IMAGE_EXTERN:latest
stage: ansible-run-kubernetes
###############################################################################
.run-patchday:
extends: .run-ansible
before_script:
- 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )'
- "command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )"
- eval $(ssh-agent -s)
- 'echo "$GITLAB_SSH_KEY" | tr -d "\r" | ssh-add -'
- mkdir -p ~/.ssh
- chmod 0700 ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" >> ~/.ssh/config'
- ssh-add -L
timeout: 2h
run-patchday-harbor-devnso:
extends: .run-patchday
environment: devnso
stage: run-patchday-harbor
resource_group: devnso
script:
- echo "${ANSIBLE_VAULT_PASS_DEV}" > /tmp/vault-pass
- STAGE=dev && HETZNER_LABEL_SELECTOR="stage=${STAGE}" && ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml kubernetes.yml --vault-password-file /tmp/vault-pass -u gitlabci
- export STAGE=devnso
- export HETZNER_LABEL_SELECTOR="stage=${STAGE}"
- echo "${ANSIBLE_VAULT_PASS_DEVNSO}" > /tmp/vault-pass
- ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml patchday.yml --vault-password-file=/tmp/vault-pass -u gitlabci --limit 'harbor'
after_script:
- rm /tmp/vault-pass
only:
- master
- schedules
tags:
- dind
- harbor # 05.02.22 TODO some runners run into timeouts
resource_group: dev
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_BRANCH == "main"
ansible-run-kubernetes-2-qa:
image: $AWX_EE_DOCKER_IMAGE_EXTERN:latest
stage: ansible-run-kubernetes
before_script:
- 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- 'echo "$GITLAB_SSH_KEY" | tr -d "\r" | ssh-add -'
- mkdir -p ~/.ssh
- chmod 0700 ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" >> ~/.ssh/config'
run-patchday-elastic-devnso:
extends: .run-patchday
environment: devnso
stage: run-patchday-elastic
resource_group: devnso
script:
- echo "${ANSIBLE_VAULT_PASS_QA}" > /tmp/vault-pass
- STAGE=qa && HETZNER_LABEL_SELECTOR="stage=${STAGE}" && ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml kubernetes.yml --vault-password-file /tmp/vault-pass -u gitlabci
- export STAGE=devnso
- export HETZNER_LABEL_SELECTOR="stage=${STAGE}"
- echo "${ANSIBLE_VAULT_PASS_DEVNSO}" > /tmp/vault-pass
- ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml patchday.yml --vault-password-file=/tmp/vault-pass -u gitlabci --limit 'elastic'
after_script:
- rm /tmp/vault-pass
only:
- qa
- schedules
tags:
- dind
- harbor # 05.02.22 TODO some runners run into timeouts
resource_group: qa
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_BRANCH == "main"
when: manual # Disable automatic execution of this Stage. We have no Elastic hosts in devnso currently.
ansible-run-kubernetes-3-prodnso:
image: $AWX_EE_DOCKER_IMAGE_EXTERN:latest
stage: ansible-run-kubernetes
before_script:
- 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- 'echo "$GITLAB_SSH_KEY" | tr -d "\r" | ssh-add -'
- mkdir -p ~/.ssh
- chmod 0700 ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" >> ~/.ssh/config'
run-patchday-database-postgres-devnso:
extends: .run-patchday
environment: devnso
stage: run-patchday-database
resource_group: devnso
script:
- export STAGE=devnso
- export HETZNER_LABEL_SELECTOR="stage=${STAGE}"
- echo "${ANSIBLE_VAULT_PASS_DEVNSO}" > /tmp/vault-pass
- ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml patchday.yml --vault-password-file=/tmp/vault-pass -u gitlabci --limit 'postgres'
after_script:
- rm /tmp/vault-pass
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_BRANCH == "main"
run-patchday-database-maria-devnso:
extends: .run-patchday
environment: devnso
stage: run-patchday-database
resource_group: devnso
script:
- export STAGE=devnso
- export HETZNER_LABEL_SELECTOR="stage=${STAGE}"
- echo "${ANSIBLE_VAULT_PASS_DEVNSO}" > /tmp/vault-pass
- ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml patchday.yml --vault-password-file=/tmp/vault-pass -u gitlabci --limit 'maria'
after_script:
- rm /tmp/vault-pass
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_BRANCH == "main"
run-patchday-all-devnso:
extends: .run-patchday
environment: devnso
stage: run-patchday-all
resource_group: devnso
script:
- export STAGE=devnso
- export HETZNER_LABEL_SELECTOR="stage=${STAGE}"
- echo "${ANSIBLE_VAULT_PASS_DEVNSO}" > /tmp/vault-pass
- ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml patchday.yml --vault-password-file=/tmp/vault-pass -u gitlabci --limit 'all:!harbor:!elastic:!postgres:!maria:!k8s_cluster'
after_script:
- rm /tmp/vault-pass
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_BRANCH == "main"
run-patchday-all-k8s-devnso:
extends: .run-patchday
environment: devnso
stage: run-patchday-all
resource_group: devnso
script:
- export STAGE=devnso
- export HETZNER_LABEL_SELECTOR="stage=${STAGE}"
- echo "${ANSIBLE_VAULT_PASS_DEVNSO}" > /tmp/vault-pass
- ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml patchday.yml --vault-password-file=/tmp/vault-pass -u gitlabci --limit 'k8s_cluster'
after_script:
- rm /tmp/vault-pass
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_BRANCH == "main"
run-patchday-harbor-prodnso:
extends: .run-patchday
environment: prodnso
stage: run-patchday-harbor
resource_group: prodnso
script:
- export STAGE=prodnso
- export HETZNER_LABEL_SELECTOR="stage=${STAGE}"
- echo "${ANSIBLE_VAULT_PASS_PRODNSO}" > /tmp/vault-pass
- STAGE=prodnso && HETZNER_LABEL_SELECTOR="stage=${STAGE}" && ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml kubernetes.yml --vault-password-file /tmp/vault-pass -u gitlabci
- ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml patchday.yml --vault-password-file=/tmp/vault-pass -u gitlabci --limit 'harbor'
after_script:
- rm /tmp/vault-pass
only:
- prodnso
- schedules
tags:
- dind
- harbor # 05.02.22 TODO some runners run into timeouts
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_BRANCH == "prodnso"
run-patchday-elastic-prodnso:
extends: .run-patchday
environment: prodnso
stage: run-patchday-elastic
resource_group: prodnso
script:
- export STAGE=prodnso
- export HETZNER_LABEL_SELECTOR="stage=${STAGE}"
- echo "${ANSIBLE_VAULT_PASS_PRODNSO}" > /tmp/vault-pass
- ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml patchday.yml --vault-password-file=/tmp/vault-pass -u gitlabci --limit 'elastic'
after_script:
- rm /tmp/vault-pass
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_BRANCH == "prodnso"
when: manual # Disable automatic execution of this Stage. We have no Elastic hosts in devnso currently.
run-patchday-database-postgres-prodnso:
extends: .run-patchday
environment: prodnso
stage: run-patchday-database
resource_group: prodnso
script:
- export STAGE=prodnso
- export HETZNER_LABEL_SELECTOR="stage=${STAGE}"
- echo "${ANSIBLE_VAULT_PASS_PRODNSO}" > /tmp/vault-pass
- ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml patchday.yml --vault-password-file=/tmp/vault-pass -u gitlabci --limit 'postgres'
after_script:
- rm /tmp/vault-pass
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_BRANCH == "prodnso"
run-patchday-database-maria-prodnso:
extends: .run-patchday
environment: prodnso
stage: run-patchday-database
resource_group: prodnso
script:
- export STAGE=prodnso
- export HETZNER_LABEL_SELECTOR="stage=${STAGE}"
- echo "${ANSIBLE_VAULT_PASS_PRODNSO}" > /tmp/vault-pass
- ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml patchday.yml --vault-password-file=/tmp/vault-pass -u gitlabci --limit 'maria'
after_script:
- rm /tmp/vault-pass
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_BRANCH == "prodnso"
run-patchday-all-prodnso:
extends: .run-patchday
environment: prodnso
stage: run-patchday-all
resource_group: prodnso
script:
- export STAGE=prodnso
- export HETZNER_LABEL_SELECTOR="stage=${STAGE}"
- echo "${ANSIBLE_VAULT_PASS_PRODNSO}" > /tmp/vault-pass
- ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml patchday.yml --vault-password-file=/tmp/vault-pass -u gitlabci --limit 'all:!harbor:!elastic:!postgres:!maria:!k8s_cluster'
after_script:
- rm /tmp/vault-pass
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_BRANCH == "prodnso"
run-patchday-all-k8s-prodnso:
extends: .run-patchday
environment: prodnso
stage: run-patchday-all
resource_group: prodnso
script:
- export STAGE=prodnso
- export HETZNER_LABEL_SELECTOR="stage=${STAGE}"
- echo "${ANSIBLE_VAULT_PASS_PRODNSO}" > /tmp/vault-pass
- ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml patchday.yml --vault-password-file=/tmp/vault-pass -u gitlabci --limit 'k8s_cluster'
after_script:
- rm /tmp/vault-pass
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_BRANCH == "prodnso"
run-patchday-database-postgres-demompmx:
extends: .run-patchday
environment: prodnso
stage: run-patchday-database
resource_group: demompmx
script:
- export STAGE=demompmx
- export HETZNER_LABEL_SELECTOR="stage=${STAGE}"
- echo "${ANSIBLE_VAULT_PASS_DEMOMPMX}" > /tmp/vault-pass
- ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml patchday.yml --vault-password-file=/tmp/vault-pass -u gitlabci --limit 'postgres'
after_script:
- rm /tmp/vault-pass
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_BRANCH == "prodnso"
run-patchday-database-maria-demompmx:
extends: .run-patchday
environment: prodnso
stage: run-patchday-database
resource_group: demompmx
script:
- export STAGE=demompmx
- export HETZNER_LABEL_SELECTOR="stage=${STAGE}"
- echo "${ANSIBLE_VAULT_PASS_DEMOMPMX}" > /tmp/vault-pass
- ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml patchday.yml --vault-password-file=/tmp/vault-pass -u gitlabci --limit 'maria'
after_script:
- rm /tmp/vault-pass
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_BRANCH == "prodnso"
run-patchday-all-demompmx:
extends: .run-patchday
environment: prodnso
stage: run-patchday-all
resource_group: demompmx
script:
- export STAGE=demompmx
- export HETZNER_LABEL_SELECTOR="stage=${STAGE}"
- echo "${ANSIBLE_VAULT_PASS_DEMOMPMX}" > /tmp/vault-pass
- ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml patchday.yml --vault-password-file=/tmp/vault-pass -u gitlabci --limit 'all:!postgres:!maria:!k8s_cluster'
after_script:
- rm /tmp/vault-pass
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_BRANCH == "prodnso"
########
### https://patorjk.com/software/taag/#p=display&f=Doom&t=patchday
### _ _ _
### | | | | | |
### _ __ __ _| |_ ___| |__ __| | __ _ _ _
### | '_ \ / _` | __/ __| '_ \ / _` |/ _` | | | |
### | |_) | (_| | || (__| | | | (_| | (_| | |_| |
### | .__/ \__,_|\__\___|_| |_|\__,_|\__,_|\__, |
### | | __/ |
### |_| |___/
run-patchday-all-k8s-demompmx:
extends: .run-patchday
environment: prodnso
stage: run-patchday-all
resource_group: demompmx
script:
- export STAGE=demompmx
- export HETZNER_LABEL_SELECTOR="stage=${STAGE}"
- echo "${ANSIBLE_VAULT_PASS_DEMOMPMX}" > /tmp/vault-pass
- ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml patchday.yml --vault-password-file=/tmp/vault-pass -u gitlabci --limit 'k8s_cluster'
after_script:
- rm /tmp/vault-pass
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_BRANCH == "prodnso"
###############################################################################
### http://patorjk.com/software/taag/#p=display&f=Doom&t=hcloud-firewall.yml
###
### _ _ _ __ _ _ _ _
### | | | | | | / _(_) | | | | |
### | |__ ___| | ___ _ _ __| |______| |_ _ _ __ _____ ____ _| | | _ _ _ __ ___ | |
### | '_ \ / __| |/ _ \| | | |/ _` |______| _| | '__/ _ \ \ /\ / / _` | | || | | | '_ ` _ \| |
### | | | | (__| | (_) | |_| | (_| | | | | | | | __/\ V V / (_| | | || |_| | | | | | | |
### |_| |_|\___|_|\___/ \__,_|\__,_| |_| |_|_| \___| \_/\_/ \__,_|_|_(_)__, |_| |_| |_|_|
### __/ |
### |___/
###
###############################################################################
ansible-patchday-1-dev:
image: $AWX_EE_DOCKER_IMAGE_EXTERN:latest
stage: ansible-patchday
before_script:
- 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- 'echo "$GITLAB_SSH_KEY" | tr -d "\r" | ssh-add -'
- mkdir -p ~/.ssh
- chmod 0700 ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" >> ~/.ssh/config'
.run-hcloud-firewall:
extends: .run-ansible
stage: run-hcloud-firewall
script:
- echo "${ANSIBLE_VAULT_PASS_DEV}" > /tmp/vault-pass
- STAGE=dev && HETZNER_LABEL_SELECTOR="stage=${STAGE}" && ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml patchday.yml --vault-password-file=/tmp/vault-pass -u gitlabci
- ansible-playbook -e "stage=${STAGE}" hcloud_firewall.yml --vault-password-file /tmp/vault-pass
after_script:
- rm /tmp/vault-pass
when: manual
except:
- schedules
run-hcloud-firewall-devnso:
extends: .run-hcloud-firewall
environment: devnso
resource_group: devnso
before_script:
- export STAGE=devnso
- echo "${ANSIBLE_VAULT_PASS_DEVNSO}" > /tmp/vault-pass
only:
- master
tags:
- dind
- harbor # 05.02.22 TODO some runners run into timeouts
resource_group: dev
- main
run-hcloud-firewall-prodnso:
extends: .run-hcloud-firewall
environment: prodnso
resource_group: prodnso
before_script:
- export STAGE=prodnso
- echo "${ANSIBLE_VAULT_PASS_PRODNSO}" > /tmp/vault-pass
only:
- prodnso
ansible-patchday-2-qa:
image: $AWX_EE_DOCKER_IMAGE_EXTERN:latest
stage: ansible-patchday
run-hcloud-firewall-demompmx:
extends: .run-hcloud-firewall
environment: prodnso
resource_group: demompmx
before_script:
- 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )'
- export STAGE=demompmx
- echo "${ANSIBLE_VAULT_PASS_DEMOMPMX}" > /tmp/vault-pass
only:
- prodnso
###############################################################################
### http://patorjk.com/software/taag/#p=display&f=Doom&t=Digitialocean
###
### ______ _ _ _ _ _
### | _ (_) (_) | (_) | |
### | | | |_ __ _ _| |_ _ __ _| | ___ ___ ___ __ _ _ __
### | | | | |/ _` | | __| |/ _` | |/ _ \ / __/ _ \/ _` | '_ \
### | |/ /| | (_| | | |_| | (_| | | (_) | (_| __/ (_| | | | |
### |___/ |_|\__, |_|\__|_|\__,_|_|\___/ \___\___|\__,_|_| |_|
### __/ |
### |___/
###
###############################################################################
run-setup-digitalocean:
extends: .run-ansible
environment: devnso
stage: run-setup
before_script:
- export STAGE=devnso
- echo "${ANSIBLE_VAULT_PASS_DEVNSO}" > /tmp/vault-pass
script:
- "command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )"
- eval $(ssh-agent -s)
- 'echo "$GITLAB_SSH_KEY" | tr -d "\r" | ssh-add -'
- mkdir -p ~/.ssh
- chmod 0700 ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" >> ~/.ssh/config'
script:
- echo "${ANSIBLE_VAULT_PASS_QA}" > /tmp/vault-pass
- STAGE=qa && HETZNER_LABEL_SELECTOR="stage=${STAGE}" && ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml patchday.yml --vault-password-file=/tmp/vault-pass -u gitlabci
- ssh-add -L
- ansible-playbook -i stage-digitalocean setup.yml --vault-password-file /tmp/vault-pass -t common -u gitlabci
- ansible-playbook -i stage-digitalocean smardigo.yml --vault-password-file /tmp/vault-pass -u gitlabci
after_script:
- rm /tmp/vault-pass
when: manual
only:
- qa
- main
except:
- schedules
tags:
- dind
- harbor # 05.02.22 TODO some runners run into timeouts
resource_group: qa
ansible-patchday-3-prodnso:
image: $AWX_EE_DOCKER_IMAGE_EXTERN:latest
stage: ansible-patchday
run-patchday-devnso-digitalocean:
extends: .run-ansible
environment: devnso
stage: run-patchday-all
before_script:
- 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )'
- echo "${ANSIBLE_VAULT_PASS_DEVNSO}" > /tmp/vault-pass
script:
- "command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )"
- eval $(ssh-agent -s)
- 'echo "$GITLAB_SSH_KEY" | tr -d "\r" | ssh-add -'
- mkdir -p ~/.ssh
- chmod 0700 ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" >> ~/.ssh/config'
script:
- echo "${ANSIBLE_VAULT_PASS_PRODNSO}" > /tmp/vault-pass
- STAGE=prodnso && HETZNER_LABEL_SELECTOR="stage=${STAGE}" && ansible-playbook -i stage-${STAGE}-netgo-hcloud.yml patchday.yml --vault-password-file=/tmp/vault-pass -u gitlabci
- ssh-add -L
- ansible-playbook -i stage-digitalocean patchday.yml --vault-password-file=/tmp/vault-pass -u gitlabci
after_script:
- rm /tmp/vault-pass
when: manual
only:
- prodnso
- schedules
tags:
- dind
- harbor # 05.02.22 TODO some runners run into timeouts
resource_group: prodnso
timeout: 2h
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_BRANCH == "main"

2
.gitmodules vendored

@ -1,4 +1,4 @@
[submodule "kubespray"]
path = kubespray
url = https://github.com/kubernetes-sigs/kubespray.git
branch = v2.18.0
branch = release-2.21

@ -6,7 +6,7 @@
## Install needed ansible collections / roles
ansible-galaxy install -r galaxy-requirements.yml
ansible-galaxy install -r galaxy-requirements.yml -f
# Setup
Create/Start servers for stage-dev
@ -91,10 +91,6 @@ if everything works fine, plz push the created docker container with:
# TODO
IPFire
149.233.6.129 - eShelter
212.121.131.106 - Siemensdamm
Prometheus (Grafana)
docker exec -i dev-prometheus-01-grafana sh -c 'grafana-cli plugins install grafana-piechart-panel'
docker restart dev-prometheus-01-grafana

@ -1,6 +1,5 @@
# Execution Environment for AWX
ansible-builder build --tag dev-harbor-01.smardigo.digital/awx/awx-custom-ee:latest
docker login dev-harbor-01.smardigo.digital
docker tag XXXXXXXX dev-harbor-01.smardigo.digital/awx/awx-custom-ee:latest
docker push dev-harbor-01.smardigo.digital/awx/awx-custom-ee
ansible-builder build --tag $CI_ENVIRONMENT_NAME-harbor-01.smardigo.digital/awx/awx-custom-ee:latest
docker login $CI_ENVIRONMENT_NAME-harbor-01.smardigo.digital
docker push $CI_ENVIRONMENT_NAME-harbor-01.smardigo.digital/awx/awx-custom-ee:latest

@ -1,4 +1,5 @@
python38-devel [platform:rpm compile]
git-core [platform:rpm]
subversion [platform:rpm]
subversion [platform:dpkg]
git-lfs [platform:rpm]
epel-release [platform:rpm]
tar [platform:rpm]

@ -1 +1,2 @@
/_build/
Dockerfile

@ -1,36 +0,0 @@
ARG EE_BASE_IMAGE=quay.io/ansible/ansible-runner:latest
ARG EE_BUILDER_IMAGE=quay.io/ansible/ansible-builder:latest
FROM $EE_BASE_IMAGE as galaxy
ARG ANSIBLE_GALAXY_CLI_COLLECTION_OPTS=
USER root
ADD _build /build
WORKDIR /build
RUN ansible-galaxy role install -r requirements.yml --roles-path /usr/share/ansible/roles
RUN ansible-galaxy collection install $ANSIBLE_GALAXY_CLI_COLLECTION_OPTS -r requirements.yml --collections-path /usr/share/ansible/collections
FROM $EE_BUILDER_IMAGE as builder
COPY --from=galaxy /usr/share/ansible /usr/share/ansible
ADD _build/requirements.txt requirements.txt
ADD _build/bindep.txt bindep.txt
RUN ansible-builder introspect --sanitize --user-pip=requirements.txt --user-bindep=bindep.txt --write-bindep=/tmp/src/bindep.txt --write-pip=/tmp/src/requirements.txt
RUN assemble
FROM $EE_BASE_IMAGE
USER root
COPY --from=galaxy /usr/share/ansible /usr/share/ansible
COPY --from=builder /output/ /output/
RUN /output/install-from-bindep && rm -rf /output/wheels
RUN alternatives --set python /usr/bin/python3
COPY --from=quay.io/project-receptor/receptor:0.9.7 /usr/bin/receptor /usr/bin/receptor
RUN mkdir -p /var/run/receptor
ADD run.sh /run.sh
CMD /run.sh
USER 1000
RUN git lfs install

@ -1,2 +0,0 @@
#! /bin/bash
ansible-runner worker --private-data-dir=/runner

@ -1,16 +1,44 @@
---
version: 1
version: 3
build_arg_defaults:
ANSIBLE_GALAXY_CLI_COLLECTION_OPTS: "--pre"
dependencies:
ansible_core:
package_pip: ansible-core~=2.12
ansible_runner:
package_pip: ansible-runner
galaxy: ../galaxy-requirements.yml
python: ../pip-requirements
python_interpreter:
package_system: "python311"
python_path: "/usr/bin/python3.11"
system: bindep.txt
images:
base_image:
name: quay.io/centos/centos:stream9-minimal
additional_build_files:
- src: ../ansible.cfg
dest: configs
options:
package_manager_path: /usr/bin/microdnf
additional_build_steps:
append:
- RUN alternatives --set python /usr/bin/python3
- COPY --from=quay.io/project-receptor/receptor:0.9.7 /usr/bin/receptor /usr/bin/receptor
append_base:
- RUN $PYCMD -m pip install -U pip
prepend_galaxy:
- ADD _build/configs/ansible.cfg ~/.ansible.cfg
- RUN microdnf install -y git-lfs openssh-clients
- RUN mkdir -p /root/.ssh
- ADD id_ed25519 /root/.ssh/id_ed25519
- RUN chmod -R 700 /root/.ssh
- RUN ssh-keyscan git.dev-at.de >> /root/.ssh/known_hosts
- RUN eval $(ssh-agent) && ssh-add /root/.ssh/id_ed25519
append_final:
- COPY --from=quay.io/ansible/receptor:devel /usr/bin/receptor /usr/bin/receptor
- RUN mkdir -p /var/run/receptor
- ADD run.sh /run.sh
- CMD /run.sh
- USER 1000
- RUN git lfs install
- RUN git lfs install --system

@ -1,3 +1,4 @@
exclude_paths:
- .ansible/
- test*.yml
- pmci-*.yml

@ -1,8 +1,9 @@
[defaults]
pipelining = True
host_key_checking = False
inventory_plugins = ./inventory_plugins
callbacks_enabled = timer
inventory_plugins = inventory_plugins
callbacks_enabled = profile_tasks
interpreter_python = auto_silent
log_path=last_ansible_run
forks = 30
ssh_args = -o ServerAliveInterval=10

@ -0,0 +1,31 @@
---
# configuring awx cluster
- name: 'apply awx config update to {{ host | default("all") }}'
hosts: '{{ host | default("kube_control_plane") }}'
serial: "{{ serial_number | default(10) }}"
vars:
ansible_ssh_host: "{{ stage_server_domain }}"
pre_tasks:
- name: "Check if ansible version is at least {{ ansible_minimal_version }}"
assert:
that:
- ansible_version.string is version(ansible_minimal_version, ">=")
msg: "The ansible version has to be at least {{ ansible_minimal_version }}"
tags:
- always
- name: "Import autodiscover pre-tasks"
import_tasks: tasks/autodiscover_pre_tasks.yml
become: false
tags:
- always
roles:
- role: kubernetes/awx
when: kubernetes_with_awx | default(false)
tags:
- never # shouldn't be done automatically due to removal logic
- update_awx_config

@ -1,101 +0,0 @@
---
# creates database backup
# - postgres
# - executed on stage specific server: {{ stage }}-postgres-01
# - creates database backup for specific database
# Parameters:
# playbook inventory
# stage := the name of the stage (e.g. dev, int, qa, prod)
# tenant_id := (unique key for the tenant, e.g. customer)
# cluster_name := (business name for the cluster, e.g. product, department )
# cluster_size := (WIP node count for the cluster)
# cluster_service := (service to setup, e.g. 'connect', ...)
# cluster_features := (optional features to use, e.g. ['wordpress', 'resubmission', ...])
# custom_backup_name := defines a substring for backup file => {{ stage }}_{{ tenant_id }}_{{ cluster_name }}_{{ cluster_service }}__gehtdichnixan.sql
# smardigo message callback
# scope_id := (scope id of the management process)
# process_instance_id := (process instance id of the management process)
# smardigo_management_action := (smardigo management action anme of the management process)
#############################################################
# Creating inventory dynamically for given parameters
#############################################################
- hosts: localhost
connection: local
gather_facts: false
pre_tasks:
- name: "Check if ansible version is at least 2.10.x"
assert:
that:
- ansible_version.major >= 2
- ansible_version.minor >= 10
msg: "The ansible version has to be at least ({{ ansible_version.full }})"
# add virtual server to load stage specific variables as context
- name: "Add <{{ stage }}-virtual-host-to-read-groups-vars> to hosts"
add_host:
name: "{{ stage }}-virtual-host-to-read-groups-vars"
groups:
- "stage_{{ stage }}"
changed_when: False
tasks:
- name: "Add postgres servers to hosts if necessary"
add_host:
name: "{{ stage }}-postgres-01"
groups:
- "stage_{{ stage }}"
- "{{ item }}"
changed_when: False
with_items: "{{ cluster_features }}"
when: item in ['connect', 'management_connect', 'keycloak', 'webdav', 'gitea', 'workflow_index', 'workflow_proxy', 'pdns']
#############################################################
# Creating database backups for created inventory
#############################################################
- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars"
serial: "{{ serial_number | default(1) }}"
remote_user: root
vars:
postgres_backup_state: dump
ansible_ssh_host: "{{ stage_server_domain }}"
roles:
- role: connect_postgres
when: "'connect' in group_names"
- role: gitea_postgres
when: "'gitea' in group_names"
- role: keycloak_postgres
when: "'keycloak' in group_names"
- role: webdav_postgres
when: "'webdav' in group_names"
- role: workflow_index_postgres
when: "'workflow_index' in group_names"
- role: workflow_proxy_postgres
when: "'workflow_proxy' in group_names"
#############################################################
# Sending smardigo management message to process
#############################################################
- hosts: "{{ stage }}-virtual-host-to-read-groups-vars"
serial: "{{ serial_number | default(1) }}"
gather_facts: false
connection: local
run_once: true
vars:
connect_jwt_username: "{{ management_admin_username }}"
tasks:
- name: "Sending smardigo management message to <{{ smardigo_management_url }}>"
include_tasks: tasks/smardigo_management_message.yml

@ -1,136 +0,0 @@
---
# creates databases on shared service servers
# - postgres
# - executed on stage specific server: {{ stage }}-postgres-01
# - creates databases to work with connect: {{ connect_postgres_database }}
# - creates databases to work with pdns: {{ pdns_postgres_database }}
# - creates databases to work with management connect: {{ management_connect_postgres_database }}
# - creates databases to work with shared webdav: {{ webdav_postgres_database }}
# - creates databases to work with shared keycloak: {{ keycloak_postgres_database }}
# - maria
# - executed on stage specific server: {{ stage }}-maria-01
# - creates databases to work with connect wordpress: {{ connect_wordpress_maria_database }}
# Parameters:
# playbook inventory
# stage := the name of the stage (e.g. dev, int, qa, prod)
# tenant_id := (unique key for the tenant, e.g. customer)
# cluster_name := (business name for the cluster, e.g. product, department )
# cluster_size := (WIP node count for the cluster)
# cluster_service := (service to setup, e.g. 'connect', ...)
# cluster_features := (optional features to use, e.g. ['wordpress', 'resubmission', ...])
# smardigo message callback
# scope_id := (scope id of the management process)
# process_instance_id := (process instance id of the management process)
# smardigo_management_action := (smardigo management action anme of the management process)
#############################################################
# Creating inventory dynamically for given parameters
#############################################################
- hosts: localhost
gather_facts: false
connection: local
pre_tasks:
- name: "Check if ansible version is at least 2.10.x"
assert:
that:
- ansible_version.major >= 2
- ansible_version.minor >= 10
msg: "The ansible version has to be at least ({{ ansible_version.full }})"
# add virtual server to load stage specific variables as context
- name: "Add <{{ stage }}-virtual-host-to-read-groups-vars> to hosts"
add_host:
name: "{{ stage }}-virtual-host-to-read-groups-vars"
groups:
- "stage_{{ stage }}"
changed_when: False
tasks:
- name: "Add postgres servers to hosts if necessary"
add_host:
name: "{{ stage }}-postgres-01"
groups:
- "stage_{{ stage }}"
- "{{ item }}"
changed_when: False
with_items: "{{ cluster_features }}"
when: item in ['connect', 'management_connect', 'keycloak', 'webdav', 'gitea', 'workflow_index', 'workflow_proxy', 'pdns']
- name: "Add maria servers to hosts if necessary"
add_host:
name: "{{ stage }}-maria-01"
groups:
- "stage_{{ stage }}"
- "{{ item }}"
changed_when: False
with_items: "{{ cluster_features }}"
when: item in ['connect_wordpress']
#############################################################
# Creating databases for created inventory
#############################################################
- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars"
serial: "{{ serial_number | default(1) }}"
remote_user: root
vars:
ansible_ssh_host: "{{ stage_server_domain }}"
pre_tasks:
- name: "Import autodiscover pre-tasks"
import_tasks: tasks/autodiscover_pre_tasks.yml
become: false
tags:
- always
roles:
- role: connect_postgres
when: "'connect' in group_names"
- role: pdns_postgres
vars:
initialize: True
when: "'pdns' in group_names"
- role: pdns_admin_postgres
vars:
initialize: True
when: "'pdns' in group_names"
- role: gitea_postgres
when: "'gitea' in group_names"
- role: keycloak_postgres
when: "'keycloak' in group_names"
- role: webdav_postgres
when: "'webdav' in group_names"
- role: workflow_index_postgres
when: "'workflow_index' in group_names"
- role: workflow_proxy_postgres
when: "'workflow_proxy' in group_names"
- role: connect_wordpress_maria
when: "'connect_wordpress' in group_names"
#############################################################
# Sending smardigo management message to process
#############################################################
- hosts: "{{ stage }}-virtual-host-to-read-groups-vars"
serial: "{{ serial_number | default(1) }}"
gather_facts: false
connection: local
run_once: true
vars:
connect_jwt_username: "{{ management_admin_username }}"
tasks:
- name: "Sending smardigo management message to <{{ smardigo_management_url }}>"
include_tasks: tasks/smardigo_management_message.yml

@ -1,98 +0,0 @@
---
# creates realm/clients on shared keycloak service
# - connect_realm: configuration to use with connect/wordpress
# Parameters:
# playbook inventory
# stage := the name of the stage (e.g. dev, int, qa, prod)
# tenant_id := (unique key for the tenant, e.g. customer)
# cluster_name := (business name for the cluster, e.g. product, department )
# cluster_size := (WIP node count for the cluster)
# cluster_service := (service to setup, e.g. 'connect', ...)
# cluster_features := (optional features to use, e.g. ['wordpress', 'resubmission', ...])
# playbook roles (keycloak / oidc)
# current_realm_name :=
# current_realm_display_name :=
# smardigo message callback
# scope_id := (scope id of the management process)
# process_instance_id := (process instance id of the management process)
# smardigo_management_action := (smardigo management action anme of the management process)
#############################################################
# Creating inventory dynamically for given parameters
#############################################################
- hosts: localhost
gather_facts: false
connection: local
pre_tasks:
- name: "Check if ansible version is at least 2.10.x"
assert:
that:
- ansible_version.major >= 2
- ansible_version.minor >= 10
msg: "The ansible version has to be at least ({{ ansible_version.full }})"
# add virtual server to load stage specific variables as context
- name: "Add <{{ stage }}-virtual-host-to-read-groups-vars> to hosts"
add_host:
name: "{{ stage }}-virtual-host-to-read-groups-vars"
groups:
- "stage_{{ stage }}"
changed_when: False
tasks:
- name: Add hosts
add_host:
name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-{{ '%02d' | format(item|int) }}"
groups: "{{ ['stage_' + stage ] + [cluster_service] + cluster_features }}"
with_sequence: start=1 end={{ cluster_size | default(1) }}
changed_when: False
#############################################################
# Creating realms for created inventory
#############################################################
- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars"
serial: "{{ serial_number | default(1) }}"
gather_facts: false
connection: local
collections:
- hetzner.hcloud
- community.general
pre_tasks:
- name: "Import autodiscover pre-tasks"
import_tasks: tasks/autodiscover_pre_tasks.yml
become: false
tags:
- always
roles:
- role: connect_realm
when: '"connect" in group_names'
- role: gitea_realm
when: '"gitea" in group_names'
- role: workflow_proxy_realm
when: '"workflow-proxy" in group_names'
#############################################################
# Sending smardigo management message to process
#############################################################
- hosts: "{{ stage }}-virtual-host-to-read-groups-vars"
serial: "{{ serial_number | default(1) }}"
gather_facts: false
connection: local
run_once: true
vars:
connect_jwt_username: "{{ management_admin_username }}"
tasks:
- name: "Sending smardigo management message to <{{ smardigo_management_url }}>"
include_tasks: tasks/smardigo_management_message.yml

@ -1,16 +1,25 @@
---
# ****** ** ****** ** ** ** ** ******* #
# /*////** **** **////** /** ** /** /** /**////** #
# /* /** **//** ** // /** ** /** /** /** /** #
# /****** ** //** /** /**** /** /** /******* #
# /*//// ** ********** /** /**/** /** /** /**//// #
# /* /** /**//////** //** ** /**//** /** /** /** #
# /******* /** /** //****** /** //** //******* /** #
# /////// // // ////// // // /////// // #
# creates remote database backup
# - postgres
# - executed on stage specific server: {{ stage }}-postgres-02 (currently: slave)
# - executed on stage specific server: {{ shared_service_postgres_secondary }} (currently: slave)
# - creates database backup for ALL databases in postgres-server
# - mariadb
# - executed on stage specific server: {{ stage }}-maria-01
# - executed on stage specific server: {{ shared_service_maria_primary }}
# - creates database backup for ALL databases in mariadb-server
# Parameters:
# playbook inventory
# stage := the name of the stage (e.g. dev, int, qa, prod)
# stage := the name of the stage (e.g. devnso, qanso, prodnso)
# database_engine := the database engine to generate a complete backup for (e.g. postgres, maria)
# smardigo message callback
# scope_id := (scope id of the management process)
# process_instance_id := (process instance id of the management process)
@ -24,37 +33,53 @@
connection: local
gather_facts: false
pre_tasks:
- name: "Check if ansible version is at least 2.10.x"
assert:
that:
- ansible_version.major >= 2
- ansible_version.minor >= 10
msg: "The ansible version has to be at least ({{ ansible_version.full }})"
# add virtual server to load stage specific variables as context
tasks:
# add virtual server to load stage specific variables as context
- name: "Add <{{ stage }}-virtual-host-to-read-groups-vars> to hosts"
add_host:
name: "{{ stage }}-virtual-host-to-read-groups-vars"
groups:
- "stage_{{ stage }}"
- "stage_{{ stage }}"
changed_when: False
- hosts: "{{ stage }}-virtual-host-to-read-groups-vars"
serial: "{{ serial_number | default(1) }}"
gather_facts: false
connection: local
pre_tasks:
- name: "Import constraints check"
import_tasks: tasks/constraints_check.yml
become: false
tags:
- always
- name: "Import autodiscover pre-tasks"
import_tasks: tasks/autodiscover_pre_tasks.yml
become: false
tags:
- always
tasks:
- name: "Add {{ database_engine }} servers to hosts if necessary"
add_host:
name: "{{ stage }}-{{ database_engine }}-01"
name: "{{ item.name }}"
groups:
- "stage_{{ stage }}"
- '{{ database_engine }}'
changed_when: False
- name: "Add 'storage' servers to hosts if necessary"
- "stage_{{ stage }}"
- "{{ database_engine }}"
when:
- (database_engine == 'postgres' and item.service == 'postgres' and (item.role | default('')) == 'slave')
or (database_engine == 'maria' and item.service == 'maria')
loop: "{{ stage_server_infos }}"
- name: "Add 'backup' servers to hosts if necessary"
add_host:
name: "{{ stage }}-fgrz-01"
name: "{{ stage }}-backup-01"
groups:
- "stage_{{ stage }}"
- storage
changed_when: False
- "stage_{{ stage }}"
- "backup"
when:
- "'postgres' in groups or 'maria' in groups"
##############################################################
## Creating remote database backups for created inventory
@ -62,39 +87,47 @@
- hosts: "postgres:maria"
serial: "{{ serial_number | default(1) }}"
gather_facts: false
vars:
ansible_ssh_host: "{{ stage_server_domain }}"
current_date_time: "{{ get_current_date_time }}"
tasks:
- name: "Trigger backup mechanism"
include_role:
name: '{{ database_engine }}'
name: "{{ database_engine }}"
tasks_from: _create_backup
#############################################################
# Syncing remote database backups to storage server
# Syncing remote database backups to backup server
#############################################################
- hosts: "postgres:maria:storage"
- hosts: "postgres:maria:backup"
serial: "{{ serial_number | default(5) }}"
gather_facts: false
vars:
storageserver_system_user: 'backuphamster'
ansible_ssh_host: "{{ stage_server_domain }}"
backup_server_system_user: "backuphamster"
tasks:
# I could not get it up and running with <synchronize> module
# to sync data from remote server A to remote server B
- name: "Syncing remote backups"
become: yes
become_user: '{{ storageserver_system_user }}'
vars:
database_server_ip: "{{ stage }}-{{ database_engine }}-01.{{ domain }}"
shell: '/home/{{ storageserver_system_user }}/pull_remote_backups.sh {{ database_server_ip }} {{ stage }} {{ database_engine }}'
become_user: "{{ backup_server_system_user }}"
shell: "/home/{{ backup_server_system_user }}/pull_remote_backups.sh {{ item }} {{ stage }} {{ database_engine }}"
with_items: "{{ (groups['postgres'] | default([])) + (groups['maria'] | default([])) }}"
when:
- inventory_hostname in groups['storage']
- inventory_hostname in groups['backup']
- name: "Cleanup remote backup dirs: {{ database_engine }}"
become: yes
file:
path: '{{ backup_directory }}/{{ database_engine }}/{{ ansible_date_time.date }}'
path: "{{ backup_directory }}/{{ database_engine }}/{{ get_current_date }}"
state: absent
when:
- not inventory_hostname in groups['storage']
- not inventory_hostname in groups['backup']
- inventory_hostname in groups [database_engine]
#############################################################
# Sending smardigo management message to process
@ -109,5 +142,5 @@
connect_jwt_username: "{{ management_admin_username }}"
tasks:
- name: "Sending smardigo management message to <{{ smardigo_management_url }}>"
- name: "Sending smardigo management message to <{{ shared_service_url_management }}>"
include_tasks: tasks/smardigo_management_message.yml

@ -1,86 +0,0 @@
---
# Parameters:
# playbook inventory
# stage := the name of the stage (e.g. dev, int, qa, prod)
# tenant_id := (unique key for the tenant, e.g. customer)
# cluster_name := (business name for the cluster, e.g. product, department )
# cluster_size := (WIP node count for the cluster)
# cluster_service := (service to setup, e.g. 'connect', ...)
# cluster_features := (optional features to use, e.g. ['wordpress', 'resubmission', ...])
# smardigo message callback
# scope_id := (scope id of the management process)
# process_instance_id := (process instance id of the management process)
# smardigo_management_action := (smardigo management action anme of the management process)
#############################################################
# Creating inventory dynamically for given parameters
#############################################################
- hosts: localhost
gather_facts: false
connection: local
pre_tasks:
- name: "Check if ansible version is at least 2.10.x"
assert:
that:
- ansible_version.major >= 2
- ansible_version.minor >= 10
msg: "The ansible version has to be at least ({{ ansible_version.full }})"
# add virtual server to load stage specific variables as context
- name: "Add <{{ stage }}-virtual-host-to-read-groups-vars> to hosts"
add_host:
name: "{{ stage }}-virtual-host-to-read-groups-vars"
groups:
- "stage_{{ stage }}"
changed_when: False
tasks:
- name: Add hosts
add_host:
name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-{{ '%02d' | format(item|int) }}"
groups: "{{ ['stage_' + stage ] + [cluster_service] + cluster_features }}"
with_sequence: start=1 end={{ cluster_size | default(1) }}
changed_when: False
#############################################################
# Creating services for created inventory
#############################################################
- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars"
serial: "{{ serial_number | default(1) }}"
remote_user: root
vars:
ansible_ssh_host: "{{ stage_server_domain }}"
pre_tasks:
- name: "Import autodiscover pre-tasks"
import_tasks: tasks/autodiscover_pre_tasks.yml
become: false
tags:
- always
roles:
- role: connect
when: "'connect' in group_names"
- role: connect_wordpress
when: "'connect_wordpress' in group_names"
#############################################################
# Sending smardigo management message to process
#############################################################
- hosts: "{{ stage }}-virtual-host-to-read-groups-vars"
serial: "{{ serial_number | default(1) }}"
gather_facts: false
connection: local
run_once: true
vars:
connect_jwt_username: "{{ management_admin_username }}"
tasks:
- name: "Sending smardigo management message to <{{ smardigo_management_url }}>"
include_tasks: tasks/smardigo_management_message.yml

@ -1,120 +0,0 @@
# relay config sections
skopeo:
# path to the skopeo binary; defaults to 'skopeo', in which case it needs to
# be in PATH
binary: skopeo
# directory under which to look for client certs & keys, as well as CA certs
# (see note below)
certs-dir: /etc/skopeo/certs.d
docker:
# Docker host to use as the relay
dockerhost: unix:///var/run/docker.sock
# Docker API version to use, defaults to 1.24
api-version: 1.24
# settings for image matching (see below)
lister:
# maximum number of repositories to list, set to -1 for no limit, defaults to 100
maxItems: 100
# for how long a repository list will be re-used before retrieving again;
# specify as a Go duration value ('s', 'm', or 'h'), set to -1 for not caching,
# defaults to 1h
cacheDuration: 1h
# list of sync tasks
tasks:
- name: smardigo # required
# interval in seconds at which the task should be run; when omitted,
# the task is only run once at start-up
interval: 600
# determines whether for this task, more verbose output should be
# produced; defaults to false when omitted
verbose: true
# 'source' and 'target' are both required and describe the source and
# target registries for this task:
# - 'registry' points to the server; required
# - 'auth' contains the base64 encoded credentials for the registry
# in JSON form {"username": "...", "password": "..."}
# - 'auth-refresh' specifies an interval for automatic retrieval of
# credentials; only for AWS ECR (see below)
# - 'skip-tls-verify' determines whether to skip TLS verification for the
# registry server (only for 'skopeo', see note below); defaults to false
source:
registry: docker.dev-at.de
auth: eyJ1c2VybmFtZSI6ImFkbWluIiwicGFzc3dvcmQiOiJRNHB6aWhWRFl3eUthZEM3NmxiNCJ9Cg==
target:
registry: dev-harbor-01.smardigo.digital
auth: eyJ1c2VybmFtZSI6InJvYm90JGFuc2libGUiLCJwYXNzd29yZCI6IlAwRmJkb2tSc3V0V2lvVWl2cmI5TzVET05HY2FHNk1KIn0K
# 'mappings' is a list of 'from':'to' pairs that define mappings of image
# paths in the source registry to paths in the destination; 'from' is
# required, while 'to' can be dropped if the path should remain the same as
# 'from'. Regular expressions are supported in both fields (read on below
# for more details). Additionally, the tags being synced for a mapping can
# be limited by providing a 'tags' list. This list may contain semver and
# regular expressions filters (see below). When omitted, all image tags are
# synced.
mappings:
- from: smardigo/connect-whitelabel-app
to: smardigo/connect-whitelabel-app
tags:
- 'regex: ^(latest)|(([0-9]|[1-9][0-9]+)\.([0-9]|[1-9][0-9]+)\.([0-9]|[1-9][0-9]+))$'
- from: smardigo/iam-app
to: smardigo/iam-app
tags:
- 'regex: ^(latest)|(([0-9]|[1-9][0-9]+)\.([0-9]|[1-9][0-9]+)\.([0-9]|[1-9][0-9]+))$'
- from: smardigo/smardigo-webdav-app
to: smardigo/smardigo-webdav-app
tags:
- 'regex: ^(latest)|(([0-9]|[1-9][0-9]+)\.([0-9]|[1-9][0-9]+)\.([0-9]|[1-9][0-9]+))$'
- from: smardigo/smardigo-workflow-proxy-app
to: smardigo/smardigo-workflow-proxy-app
tags:
- 'regex: ^(latest)|(([0-9]|[1-9][0-9]+)\.([0-9]|[1-9][0-9]+)\.([0-9]|[1-9][0-9]+))$'
- name: sensw
interval: 600
verbose: true
source:
registry: docker.dev-at.de
auth: eyJ1c2VybmFtZSI6ImFkbWluIiwicGFzc3dvcmQiOiJRNHB6aWhWRFl3eUthZEM3NmxiNCJ9Cg==
target:
registry: dev-harbor-01.smardigo.digital
auth: eyJ1c2VybmFtZSI6InJvYm90JGFuc2libGUiLCJwYXNzd29yZCI6IlAwRmJkb2tSc3V0V2lvVWl2cmI5TzVET05HY2FHNk1KIn0K
mappings:
- from: smardigo/sensw-app
to: sensw/sensw-app
tags:
- 'regex: ^(latest)|(([0-9]|[1-9][0-9]+)\.([0-9]|[1-9][0-9]+)\.([0-9]|[1-9][0-9]+))$'
- from: smardigo/sensw-bda-adapter-app
to: sensw/sensw-bda-adapter-app
tags:
- 'regex: ^(latest)|(([0-9]|[1-9][0-9]+)\.([0-9]|[1-9][0-9]+)\.([0-9]|[1-9][0-9]+))$'
- from: smardigo/sensw-profiskal-export-app
to: sensw/sensw-profiskal-export-app
tags:
- 'regex: ^(latest)|(([0-9]|[1-9][0-9]+)\.([0-9]|[1-9][0-9]+)\.([0-9]|[1-9][0-9]+))$'
- name: ssp
interval: 600
verbose: true
source:
registry: docker.dev-at.de
auth: eyJ1c2VybmFtZSI6ImFkbWluIiwicGFzc3dvcmQiOiJRNHB6aWhWRFl3eUthZEM3NmxiNCJ9Cg==
target:
registry: dev-harbor-01.smardigo.digital
auth: eyJ1c2VybmFtZSI6InJvYm90JGFuc2libGUiLCJwYXNzd29yZCI6IlAwRmJkb2tSc3V0V2lvVWl2cmI5TzVET05HY2FHNk1KIn0K
mappings:
- from: smardigo/ssp-connect-app
to: ssp/ssp-connect-app
tags:
- 'regex: ^(latest)|(([0-9]|[1-9][0-9]+)\.([0-9]|[1-9][0-9]+)\.([0-9]|[1-9][0-9]+))$'
- from: smardigo/smardigo-action-si-dyns-app
to: ssp/smardigo-action-si-dyns-app
tags:
- 'regex: ^(latest)|(([0-9]|[1-9][0-9]+)\.([0-9]|[1-9][0-9]+)\.([0-9]|[1-9][0-9]+))$'

@ -1,11 +0,0 @@
version: '3.7'
services:
local-dregsy:
image: "xelalex/dregsy:0.4.1"
volumes:
- "./config.yaml:/config.yaml:ro"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
environment:
LOG_LEVEL: "debug"
LOG_FORMAT: "json"

@ -1,3 +1,9 @@
#!/bin/bash
docker run -v `pwd`/templates/elastic-certs:/certs -v `pwd`/templates/elastic-certs/$1-instances.yaml:/usr/share/elasticsearch/config/certificates/$1-instances.yml docker.elastic.co/elasticsearch/elasticsearch:7.12.0 /bin/sh "/certs/certutil.sh" $1
if [ "x$1" == "x" ];then
echo "Stage as param \$1 is missing. exit"
exit 1
fi
docker run -v `pwd`/templates/elastic-certs:/certs -v `pwd`/templates/elastic-certs/$1-instances.yaml:/usr/share/elasticsearch/config/certificates/$1-instances.yml docker.elastic.co/elasticsearch/elasticsearch:7.16.3 /bin/sh "/certs/certutil.sh" $1

@ -17,14 +17,11 @@
default: 'no'
pre_tasks:
- name: "Check if ansible version is at least 2.10.x"
assert:
that:
- ansible_version.major >= 2
- ansible_version.minor >= 10
msg: "The ansible version has to be at least ({{ ansible_version.full }})"
delegate_to: 127.0.0.1
- name: "Import constraints check"
import_tasks: tasks/constraints_check.yml
become: false
tags:
- always
- name: "Import autodiscover pre-tasks"
import_tasks: tasks/autodiscover_pre_tasks.yml
@ -36,13 +33,13 @@
- block:
- name: "Delete server <{{ inventory_hostname }}>"
include_role:
name: hcloud
name: hetzner-ansible-hcloud
tasks_from: _set_server_state
vars:
- server_state: "absent"
- name: "Delete DNS entry <{{ inventory_hostname }}> for <{{ domain }}>"
include_role:
name: sma_digitalocean
name: hetzner-ansible-dns
tasks_from: _remove_dns
vars:
record_to_remove: '{{ inventory_hostname }}'

@ -1,60 +0,0 @@
---
- name: 'apply setup to {{ host | default("all") }}'
hosts: '{{ host | default("all") }}'
serial: "{{ serial_number | default(5) }}"
tasks:
- set_fact:
promethues_endpoints_all_stages:
- "{{ lookup('community.general.dig', 'dev-prometheus-01.' + domain ) }}"
- "{{ lookup('community.general.dig', 'qa-prometheus-01.' + domain ) }}"
- "{{ lookup('community.general.dig', 'prodnso-prometheus-01.' + domain ) }}"
- name: "Allow SSH in UFW"
ufw:
rule: limit
port: 22
proto: tcp
- name: "Allow port 9100 for node-exporter in UFW"
ufw:
rule: allow
port: 9100
proto: tcp
src: "{{ item }}"
loop: "{{ promethues_endpoints_all_stages }}"
- name: "Allow port 9115 for blackbox-exporter in UFW"
ufw:
rule: allow
port: 9115
proto: tcp
src: "{{ item }}"
loop: "{{ promethues_endpoints_all_stages + ip_whitelist_admins}}"
- name: "Set firewall default policy"
ufw:
state: enabled
policy: reject
- name: "configure ssh_hardening"
include_role:
# include role from collection called 'devsec'
name: devsec.hardening.ssh_hardening
apply:
tags:
- ssh_hardening
tags:
- ssh_hardening
- name: "Install node-exporter via include_role"
include_role:
name: cloudalchemy.node-exporter
- name: "Install blackbox-exporter via include_role"
include_role:
name: cloudalchemy.blackbox-exporter
apply:
tags:
- blackbox
tags:
- blackbox

@ -1,37 +1,65 @@
---
roles:
- name: geerlingguy.docker
version: 4.1.1
- name: geerlingguy.kubernetes
version: 7.1.0
- name: geerlingguy.redis
version: 1.7.0
- name: idealista.prometheus_redis_exporter_role
version: 2.1.0
- name: cloudalchemy.node-exporter
version: 2.0.0
scm: git
src: https://github.com/cloudalchemy/ansible-node-exporter
- name: cloudalchemy.blackbox-exporter
version: 1.0.0
src: https://github.com/cloudalchemy/ansible-blackbox-exporter
scm: git
- name: postfix
version: v3.6.1
src: https://github.com/Oefenweb/ansible-postfix.git
scm: git
- name: geerlingguy.docker
version: 6.0.3
- name: cloudalchemy.blackbox-exporter
version: 1.0.0
scm: git
src: https://github.com/cloudalchemy/ansible-blackbox-exporter
- name: postfix
version: v3.6.2
scm: git
src: https://github.com/Oefenweb/ansible-postfix.git
- name: hetzner-ansible-dns
version: 0.0.5
scm: git
src: git@git.dev-at.de:smardigo-hetzner/ansible/hetzner-ansible-roles/hetzner-ansible-dns-role.git
- name: hetzner-ansible-hcloud
version: 0.0.4
scm: git
src: git@git.dev-at.de:smardigo-hetzner/ansible/hetzner-ansible-roles/hetzner-ansible-hcloud-role.git
- name: hetzner-ansible-common
version: 0.0.6
scm: git
src: git@git.dev-at.de:smardigo-hetzner/ansible/hetzner-ansible-roles/hetzner-ansible-common-role.git
- name: hetzner-ansible-filebeat
version: 0.0.7
scm: git
src: git@git.dev-at.de:smardigo-hetzner/ansible/hetzner-ansible-roles/hetzner-ansible-filebeat-role.git
- name: hetzner-ansible-metricbeat
version: 0.0.5
scm: git
src: git@git.dev-at.de:smardigo-hetzner/ansible/hetzner-ansible-roles/hetzner-ansible-metricbeat-role.git
- name: hetzner-ansible-node-exporter
version: 0.0.4
scm: git
src: git@git.dev-at.de:smardigo-hetzner/ansible/hetzner-ansible-roles/hetzner-ansible-node-exporter-role.git
- name: hetzner-ansible-traefik
version: 0.0.5
scm: git
src: git@git.dev-at.de:smardigo-hetzner/ansible/hetzner-ansible-roles/hetzner-ansible-traefik-role.git
- name: hetzner-ansible-sma-deploy
version: 0.0.4
scm: git
src: git@git.dev-at.de:smardigo-hetzner/ansible/hetzner-ansible-roles/hetzner-ansible-sma-deploy-role.git
collections:
- name: hetzner.hcloud
version: 1.6.0
- name: community.general
- name: community.docker
version: 2.1.1
- name: kubernetes.core
- name: community.mysql
- name: community.postgresql
- name: community.digitalocean
version: 1.11.0
- name: devsec.hardening
version: 7.12.0
src: https://github.com/dev-sec/ansible-collection-hardening
- name: hetzner.hcloud
version: 1.8.2
- name: community.general
version: 7.0.1
- name: community.docker
version: 3.8.1
- name: kubernetes.core
version: 2.4.0
- name: community.mysql
version: 3.7.1
- name: community.postgresql
version: 2.4.1
- name: community.digitalocean
version: 1.23.0
- name: devsec.hardening
version: 8.7.0
src: https://github.com/dev-sec/ansible-collection-hardening
- name: community.dns
version: 2.5.4

@ -0,0 +1,60 @@
---
# Parameters:
# playbook inventory
# stage := the name of the stage (e.g. devnso, qanso, prodnso)
# environment variable
# GITLAB_API_TOKEN := Access token from gitlab
#############################################################
# Creating inventory dynamically for given parameters
#############################################################
- hosts: localhost
gather_facts: false
connection: local
tasks:
- name: Add hosts
add_host:
name: "{{ stage }}-gitlab"
groups: "{{ ['stage_' + stage ] }}"
#############################################################
# Creating gitlab mirrors for current stage
#############################################################
- hosts: "stage_{{ stage }}"
serial: "{{ serial_number | default(1) }}"
gather_facts: false
connection: local
vars:
projects:
- id: 1210
name: argocd
- id: 1216
name: operator-awx
- id: 1212
name: operator-jaeger
- id: 1231
name: operator-knative
- id: 1233
name: smardigo-awx
- id: 1232
name: smardigo-jaeger
pre_tasks:
- name: "Add repository remote mirror to project"
delegate_to: 127.0.0.1
become: false
uri:
url: "https://git.dev-at.de/api/v4/projects/{{ item.id }}/remote_mirrors"
method: POST
body_format: json
body:
enabled: true
only_protected_branches: true
url: "https://{{ gitea_admin_username }}:{{ gitea_admin_password }}@{{ shared_service_hostname_gitea }}/argocd/{{ item.name }}.git"
headers:
PRIVATE-TOKEN: "{{ lookup('env', 'GITLAB_API_TOKEN') }}"
status_code: [201]
loop: "{{ projects }}"

@ -0,0 +1,6 @@
#!/bin/bash
git clone git@git.dev-at.de:smardigo-hetzner/k8s-clusters/devnso-argocd.git ../devnso-argocd
git clone git@git.dev-at.de:smardigo-hetzner/k8s-clusters/devssp-argocd.git ../devssp-argocd
git clone git@git.dev-at.de:smardigo-hetzner/k8s-clusters/prodnso-argocd.git ../prodnso-argocd
git clone git@git.dev-at.de:smardigo-hetzner/k8s-clusters/demompmx-argocd.git ../demompmx-argocd

@ -0,0 +1,10 @@
#!/bin/bash
git clone git@git.dev-at.de:smardigo-hetzner/ansible/hetzner-ansible-roles/hetzner-ansible-common-role.git ../hetzner-ansible-common-role
git clone git@git.dev-at.de:smardigo-hetzner/ansible/hetzner-ansible-roles/hetzner-ansible-dns-role.git ../hetzner-ansible-dns-role
git clone git@git.dev-at.de:smardigo-hetzner/ansible/hetzner-ansible-roles/hetzner-ansible-filebeat-role.git ../hetzner-ansible-filebeat-role
git clone git@git.dev-at.de:smardigo-hetzner/ansible/hetzner-ansible-roles/hetzner-ansible-hcloud-role.git ../hetzner-ansible-hcloud-role
git clone git@git.dev-at.de:smardigo-hetzner/ansible/hetzner-ansible-roles/hetzner-ansible-metricbeat-role.git ../hetzner-ansible-metricbeat-role
git clone git@git.dev-at.de:smardigo-hetzner/ansible/hetzner-ansible-roles/hetzner-ansible-node-exporter-role.git ../hetzner-ansible-node-exporter-role.
git clone git@git.dev-at.de:smardigo-hetzner/ansible/hetzner-ansible-roles/hetzner-ansible-sma-deploy-role.git ../hetzner-ansible-sma-deploy-role
git clone git@git.dev-at.de:smardigo-hetzner/ansible/hetzner-ansible-roles/hetzner-ansible-traefik-role.git ../hetzner-ansible-traefik-role

@ -0,0 +1,180 @@
---
argocd_oidc_realm: "stage-argocd"
argocd_oidc_client_id: "stage-argocd"
argocd_oidc_client_secret: "{{ argocd_oidc_client_secret_vault | default(argo_keycloak_client_secret_vault) }}" # backwards compatibility
argocd_oidc_admin_username: "argocd-admin"
argocd_oidc_admin_password: "{{ argocd_oidc_admin_password_vault | default(argocd_admin_password_vault) }}" # backwards compatibility
argocd_oidc_admin_email: "{{ devops_email_address }}"
argocd_server_admin_password: "{{ argocd_server_admin_password_vault }}"
k8s_argocd_helm__name: "argo-cd"
k8s_argocd_helm__release_namespace: "argo-cd"
k8s_argocd_helm__chart_version: 5.19.0
# https://github.com/argoproj/argo-helm/tree/master/charts/argo-cd
k8s_argocd_helm__release_values:
repoServer:
serviceAccount:
create: true
name: argo-cd-argocd-repo-server
rbac:
- apiGroups:
- ""
resources:
- secrets
verbs:
- get
logLevel: warn
logFormat: json
env:
- name: ARGOCD_MAX_CONCURRENT_LOGIN_REQUESTS_COUNT
value: "0"
- name: ARGOCD_EXEC_TIMEOUT
value: "300s"
- name: XDG_CONFIG_HOME
value: /.config
- name: GNUPGHOME
value: /home/argocd/.gnupg
- name: HELM_PLUGINS
value: /custom-tools/helm-plugins/
- name: HELM_SECRETS_SOPS_PATH
value: /custom-tools/sops
- name: HELM_SECRETS_VALS_PATH
value: /custom-tools/vals
- name: HELM_SECRETS_KUBECTL_PATH
value: /custom-tools/kubectl
- name: HELM_SECRETS_CURL_PATH
value: /custom-tools/curl
# https://github.com/jkroepke/helm-secrets/wiki/Security-in-shared-environments
- name: HELM_SECRETS_KEY_LOCATION_PREFIX
value: "/sops-gpg/"
- name: HELM_SECRETS_VALUES_ALLOW_SYMLINKS
value: "false"
- name: HELM_SECRETS_VALUES_ALLOW_ABSOLUTE_PATH
value: "false"
- name: HELM_SECRETS_VALUES_ALLOW_PATH_TRAVERSAL
value: "false"
volumes:
- name: custom-tools
emptyDir: {}
- name: custom-tools-helm
emptyDir: {}
- name: gnupg-home
emptyDir: {}
- name: sops-gpg
secret:
secretName: sops-gpg
volumeMounts:
- mountPath: /home/argocd/.gnupg
name: gnupg-home
subPath: .gnupg
- mountPath: /usr/local/bin/kustomize
name: custom-tools
subPath: kustomize
# Verify this matches a XDG_CONFIG_HOME=/.config env variable
- mountPath: /.config/kustomize/plugin/viaduct.ai/v1/ksops/ksops
name: custom-tools
subPath: ksops
- mountPath: /custom-tools/helm-plugins
name: custom-tools-helm
subPath: helm-plugins
- mountPath: /custom-tools/kubectl
name: custom-tools-helm
subPath: kubectl
- mountPath: /custom-tools/sops
name: custom-tools-helm
subPath: sops
- mountPath: /custom-tools/vals
name: custom-tools-helm
subPath: vals
initContainers:
- name: 1-install-ksops
image: viaductoss/ksops:v3.0.1
command: ["/bin/sh", "-c"]
args:
- echo "Installing KSOPS...";
mv ksops /custom-tools/;
mv $GOPATH/bin/kustomize /custom-tools/;
echo "Done.";
volumeMounts:
- mountPath: /custom-tools
name: custom-tools
- name: 2-download-tools
image: alpine:latest
command: [sh, -ec]
env:
- name: HELM_SECRETS_VERSION
value: "3.12.0"
- name: KUBECTL_VERSION
value: "1.24.3"
- name: VALS_VERSION
value: "0.18.0"
- name: SOPS_VERSION
value: "3.7.3"
args:
- |
echo "Installing helm secrets...";
mkdir -p /custom-tools/helm-plugins
wget -qO- https://github.com/jkroepke/helm-secrets/releases/download/v${HELM_SECRETS_VERSION}/helm-secrets.tar.gz | tar -C /custom-tools/helm-plugins -xzf-;
echo "Done.";
echo "Downloading SOPS=${SOPS_VERSION} and kubectl ...";
wget -qO /custom-tools/sops https://github.com/mozilla/sops/releases/download/v${SOPS_VERSION}/sops-v${SOPS_VERSION}.linux
wget -qO /custom-tools/kubectl https://dl.k8s.io/release/v${KUBECTL_VERSION}/bin/linux/amd64/kubectl
echo "Done.";
echo "Downloading vals...";
wget -qO- https://github.com/variantdev/vals/releases/download/v${VALS_VERSION}/vals_${VALS_VERSION}_linux_amd64.tar.gz | tar -xzf- -C /custom-tools/ vals;
echo "Done.";
chmod +x /custom-tools/*;
volumeMounts:
- mountPath: /custom-tools
name: custom-tools-helm
- name: 3-import-gpg-key
image: argoproj/argocd:v2.2.5
command: ["gpg", "--import","/sops-gpg/gpg_key_smardigo_automation__private"]
env:
- name: GNUPGHOME
value: /gnupg-home/.gnupg
volumeMounts:
- mountPath: /sops-gpg
name: sops-gpg
- mountPath: /gnupg-home
name: gnupg-home
server:
logLevel: warn
logFormat: json
config:
kustomize.buildOptions: "--enable-alpha-plugins"
helm.valuesFileSchemes: >-
secrets+gpg-import, secrets+gpg-import-kubernetes,
secrets+age-import, secrets+age-import-kubernetes,
secrets,secrets+literal,
https
service:
sessionAffinity: ClientIP
ingress:
enabled: true
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
cert-manager.io/issue-temporary-certificate: "true"
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/whitelist-source-range: "{{ ( ip_whitelist ) | join(',') }}"
nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
hosts:
- "{{ shared_service_kube_hostname_argocd }}"
tls:
- secretName: "{{ stage }}-kube-argocd-cert"
hosts:
- "{{ shared_service_kube_hostname_argocd }}"
dex:
enabled: false
applicationSet:
enabled: false
configs:
secret:
argocdServerAdminPassword: '{{ argocd_server_admin_password | password_hash("bcrypt") }}'

@ -0,0 +1,16 @@
---
awx_oidc_realm: "stage-awx"
awx_oidc_client_id: "stage-awx"
awx_oidc_client_secret: "{{ awx_oidc_client_secret_vault }}"
awx_oidc_admin_username: "{{ awx_admin_username }}"
awx_oidc_admin_password: "{{ awx_admin_password }}"
awx_oidc_admin_email: "{{ devops_email_address }}"
awx_custom_ee_image: "/awx/awx-custom-ee"
awx_ansible_user_name: "awx"
awx_ansible_user_ssh_key_private: "{{ ansible_ssh_key_private_vault }}"
awx_credential_machine_hetzner_name: hetzner-ansible-ssh
awx_ansible_username: ansible
awx_ansible_password: ansible

@ -0,0 +1,4 @@
---
backup_communication_keys_repository: "https://{{ gitea_admin_username | urlencode() }}:{{ gitea_admin_password | urlencode() }}@{{ shared_service_hostname_gitea }}/gitea-admin/communication-keys.git"
backup_communication_keys_stage_gpg_key: "smardigo_automation_{{ stage }}.gpg.pub"
backup_gpg_recipient: "smardigo automation {{ stage | upper }}"

@ -0,0 +1,31 @@
---
#blackbox_exporter_cli_flags:
# log.level: "debug"
blackbox_exporter_version: "{{ prom_blackbox_exporter_version }}"
blackbox_exporter_configuration_modules:
http_2xx:
http:
method: GET
valid_status_codes: []
prober: http
timeout: 5s
http_3xx:
http:
method: GET
valid_status_codes:
- 301
- 302
prober: http
timeout: 5s
http_4xx:
http:
method: GET
valid_status_codes:
- 401
- 403
prober: http
timeout: 5s

@ -0,0 +1,42 @@
---
# If elastic is served from k8s we need to reach elastic via load balancer port tcp/443
shared_service_connect_data_hostname: "{{ stage }}-connect-data.{{ domain_env }}:443"
shared_service_connect_data_username: "{{ elastic_connect_data_username_vault | default(elastic_admin_username) }}"
shared_service_connect_data_password: "{{ elastic_connect_data_password_vault | default(elastic_admin_password) }}"
connect_id: "{{ inventory_hostname }}-connect"
connect_base_url: "{{ connect_id }}.{{ domain }}"
process_search_id: "{{ inventory_hostname }}-process-search"
wordpress_id: "{{ inventory_hostname }}-wordpress"
wordpress_base_url: "{{ wordpress_id }}.{{ domain }}"
connect_workflow_env:
- "stage:{{ stage }}"
- "protocol:{{ http_s }}"
- "hostname:{{ connect_base_url }}"
- "managementHostname:{{ shared_service_host_management }}"
- "kibanaHostname:{{ shared_service_hostname_kibana }}"
- "keycloakHostname:{{ shared_service_hostname_keycloak }}"
- "smardigoUserToken:{{ smardigo_auth_token_value | default('-') }}"
smardigo_auth_token_name: "Smardigo-User-Token"
smardigo_default_theme: "/themes/netgo.json"
# digital ocean dns service (-> dns-challenge)
connect_customer_urls_digitalocean: []
# hetzner dns service (-> dns-challenge)
connect_customer_urls_hetzner: []
# dns is managed by external provider (-> http-challenge)
connect_customer_urls_extern: []
# configure reverse proxy for each url
# keycloak redirect/origins for each url
connect_customer_urls: "{{
connect_customer_urls_digitalocean
+ connect_customer_urls_hetzner
+ connect_customer_urls_extern }}"
# allow customer specific access from ips in cidr notation (e.g. 1.2.3.4/32)
# use 0.0.0.0/0 for public access
connect_customer_networks: []

@ -0,0 +1,21 @@
---
shared_service_maria_primary: "{{ stage }}-maria-01"
shared_service_postgres_primary: "{{ stage }}-postgres01-01"
shared_service_postgres_secondary: "{{ stage }}-postgres01-02"
shared_service_pg_master_ip: "{{ stage_server_infos
| selectattr('name', '==', shared_service_postgres_primary )
| map(attribute='private_ip')
| list
| first
| default('-') }}"
shared_service_pg_slave_ip: "{{ stage_server_infos
| selectattr('name', '==', shared_service_postgres_secondary )
| map(attribute='private_ip')
| list
| first
| default('-') }}"
postgres_replicator_user: "replicator"
postgres_replicator_user_password: "{{ postgres_replicator_user_password_vault }}"

@ -0,0 +1,8 @@
---
dns: digitalocean
domain: "smardigo.digital"
domain_env: "{{ domain }}"
traefik_letsencrypt_provider: "digitalocean"
hetzner_dns_api_key: '{{ hetzner_dns_api_key_vault }}'
digitalocean_authentication_token: '{{ digitalocean_authentication_token_vault }}'

@ -0,0 +1,16 @@
---
# We use a proxy due to blocked ip addresses by elastic
filebeat_image_name: "{{ shared_service_hostname_harbor }}/docker.elastic.co/beats/filebeat"
metricbeat_image_name: "{{ shared_service_hostname_harbor }}/docker.elastic.co/beats/metricbeat"
elastic_cluster_settings_max_shards: 1000
ilm_configuration:
- name: default_housekeeping
strategy: delete_after
retention: 60d
priority: 200
template: "default_housekeeping"
patterns:
- "{{ stage }}-*"
- "uncategorized-*"

@ -0,0 +1,290 @@
---
hcloud_firewall_objects:
-
name: "{{ stage }}-default"
state: present
rules:
-
direction: in
protocol: icmp
port: ''
source_ips: '{{ ip_whitelist }}'
destination_ips: []
description: "ICMP allowed"
-
direction: in
protocol: tcp
port: '22'
source_ips: '{{ ip_whitelist }}'
destination_ips: []
description: "Allow access to SSH for whitelisted ips"
-
direction: in
protocol: tcp
port: '80'
source_ips: '{{ ip_whitelist }}'
destination_ips: []
description: "Allow access to HTTP for whitelisted ips"
-
direction: in
protocol: tcp
port: '443'
source_ips: '{{ ip_whitelist }}'
destination_ips: []
description: "Allow access to HTTPS for whitelisted ips"
apply_to:
-
type: label_selector
label_selector:
selector: 'stage={{ stage }}'
-
name: "{{ stage }}-monitoring"
state: present
rules:
-
direction: in
protocol: tcp
port: '9080-9085'
source_ips: '{{ ip_whitelist + [ lookup("community.general.dig", stage + "-prometheus-01." + domain ) + "/32"] }}'
destination_ips: []
description: "Allow access to Server/Service Monitoring for whitelisted ips"
-
direction: in
protocol: tcp
port: '9001'
source_ips: '{{ ip_whitelist }}'
destination_ips: []
description: "Allow access to PgAdmin Monitoring for whitelisted ips"
-
direction: in
protocol: tcp
port: '9187'
source_ips: '{{ ip_whitelist }}'
destination_ips: []
description: "Allow access to Postgres-Exporter Monitoring for whitelisted ips"
apply_to:
-
type: label_selector
label_selector:
selector: 'stage={{ stage }}'
-
name: "{{ stage }}-monitoring-extern-https"
state: present
rules:
-
direction: in
protocol: tcp
port: '443'
source_ips:
- "{{ lookup('community.general.dig', '{{ shared_service_hostname_blackbox_exporter }}' ) }}/32"
destination_ips: []
description: "Allow access to Blackbox Monitoring for whitelisted ips"
apply_to:
-
type: label_selector
label_selector:
selector: 'stage={{ stage }},service=connect'
-
type: label_selector
label_selector:
selector: 'stage={{ stage }},service=keycloak'
-
name: "{{ stage }}-access-to-kubernetes-api"
state: present
rules:
-
direction: in
protocol: tcp
port: '6443'
source_ips: "{{ ip_whitelist }}"
destination_ips: []
description: "Allow access to K8-API for whitelisted ips"
apply_to:
-
type: label_selector
label_selector:
selector: 'stage={{ stage }},service=kube_control_plane'
hcloud_firewall_objects_awx:
-
name: "{{ stage }}-awx-ssh-access-for-k8s-nodes"
state: present
rules:
-
direction: in
protocol: tcp
port: '22'
source_ips: "{{ k8s_worker_node_ips }}"
destination_ips: []
description: "Allow access to SSH from kubernetes worker nodes"
apply_to:
-
type: label_selector
label_selector:
selector: 'stage={{ stage }},service'
hcloud_firewall_objects_vpn:
-
name: "{{ stage }}-vpn-access"
state: present
rules:
-
direction: in
protocol: udp
port: "{{ service_port_wireguard }}"
source_ips:
- "0.0.0.0/0"
destination_ips: []
description: "Allow access to VPN"
apply_to:
-
type: label_selector
label_selector:
selector: 'stage={{ stage }},service=vpn'
hcloud_firewall_objects_backup:
-
name: "{{ stage }}-backup-ssh-access"
state: present
rules:
-
direction: in
protocol: tcp
port: '22'
source_ips:
- "{{ offsite_storage_server_ip }}"
destination_ips: []
description: "Allow access to BACKUP from offsite"
apply_to:
-
type: label_selector
label_selector:
selector: 'stage={{ stage }},service=backup'
hcloud_firewall_objects_gitea:
-
name: "{{ stage }}-access-to-gitea"
state: present
rules:
-
direction: in
protocol: tcp
port: '443'
source_ips: "{{ ip_whitelist }}"
destination_ips: []
description: "Allow access to GITEA for whitelisted ips"
-
direction: in
protocol: tcp
port: '443'
source_ips: "{{ [shared_service_network] + k8s_worker_node_ips }}"
destination_ips: []
description: "Allow access to GITEA for kubernetes worker nodes"
-
direction: in
protocol: tcp
port: '443'
source_ips: "{{ [shared_service_network] + (gitea_https_whitelisted_ips | default([])) }}"
destination_ips: []
description: "Allow access to GITEA for custom whitelisted ips"
apply_to:
-
type: label_selector
label_selector:
selector: 'stage={{ stage }},service=gitea'
hcloud_firewall_objects_keycloak:
-
name: "{{ stage }}-access-to-keycloak"
state: present
rules:
-
direction: in
protocol: tcp
port: '443'
source_ips: "{{ ip_whitelist }}"
destination_ips: []
description: "Allow access to KEYCLOAK for custom whitelisted ips"
-
direction: in
protocol: tcp
port: '443'
source_ips: "{{ [shared_service_network] + k8s_worker_node_ips }}"
destination_ips: []
description: "Allow access to KEYCLOAK for kubernetes worker nodes"
-
direction: in
protocol: tcp
port: '443'
source_ips: "{{ [shared_service_network] + (keycloak_https_whitelisted_ips | default([])) }}"
destination_ips: []
description: "Allow access to KEYCLOAK for custom whitelisted ips"
apply_to:
-
type: label_selector
label_selector:
selector: 'stage={{ stage }},service=keycloak'
hcloud_firewall_objects_kibana:
-
name: "{{ stage }}-access-to-kibana"
state: present
rules:
-
direction: in
protocol: tcp
port: '443'
source_ips: "{{ ip_whitelist }}"
destination_ips: []
description: "Allow access to KIBANA for whitelisted ips"
-
direction: in
protocol: tcp
port: '443'
source_ips: "{{ [shared_service_network] + k8s_worker_node_ips }}"
destination_ips: []
description: "Allow access to KIBANA for kubernetes worker nodes"
-
direction: in
protocol: tcp
port: '443'
source_ips: "{{ [shared_service_network] + (kibana_https_whitelisted_ips | default([])) }}"
destination_ips: []
description: "Allow access to KIBANA for custom whitelisted ips"
apply_to:
-
type: label_selector
label_selector:
selector: 'stage={{ stage }},service=kibana'
hcloud_firewall_objects_management:
-
name: "{{ stage }}-access-to-management"
state: present
rules:
-
direction: in
protocol: tcp
port: '443'
source_ips: "{{ ip_whitelist }}"
destination_ips: []
description: "Allow access to MANAGEMENT for whitelisted ips"
-
direction: in
protocol: tcp
port: '443'
source_ips: "{{ [shared_service_network] + k8s_worker_node_ips }}"
destination_ips: []
description: "Allow access to MANAGEMENT for kubernetes worker nodes"
-
direction: in
protocol: tcp
port: '443'
source_ips: "{{ [shared_service_network] + (management_https_whitelisted_ips | default([])) }}"
destination_ips: []
description: "Allow access to MANAGEMENT for custom whitelisted ips"
apply_to:
-
type: label_selector
label_selector:
selector: 'stage={{ stage }},service=connect,tenant=management'

@ -0,0 +1,7 @@
---
gitea_oidc_realm: "stage-gitea"
gitea_oidc_client_id: "stage-gitea"
gitea_oidc_client_secret: "{{ gitea_oidc_client_secret_vault | default(gitea_client_secret) }}" # backwards compatibility
gitea_oidc_admin_username: "{{ gitea_admin_username }}"
gitea_oidc_admin_password: "{{ gitea_admin_password }}"
gitea_oidc_admin_email: "{{ devops_email_address }}"

@ -0,0 +1,4 @@
# smardigo automation {{ stage }} gpg key
# https://git.dev-at.de/smardigo-hetzner/communication-keys/
# push mirror: https://{{ stage }}-gitea-01.smardigo.digital/gitea-admin/communication-keys/
gpg_key_smardigo_automation__private: "{{ gpg_key_smardigo_automation__private__vault }}"

@ -0,0 +1,18 @@
---
# Define a list of unprivileged Grafana users which will be assigned to the 'Viewer' role
# Set initial login password for all users, needs to be changed by the user afterwards!
grafana_users:
- name: "smardigo"
login: "smardigo"
email: "{{ grafana_smardigo_email }}"
password: "{{ grafana_smardigo_password }}"
grafana_smardigo_password: "{{ grafana_smardigo_password_vault }}"
# Define Grafana Dashboards which should be visible users without admin role
# See uids from in hetzner-ansible/templates/prometheus/config/grafana/provisioning/dashboards/*.json
grafana_dashboard_whitelist:
- "hb7fSE0Zz" # Servers
- "spring_boot_21" # Spring Boot Statistics
- "000000039" # PostgreSQL Database
- "549c2bf8936f7767ea6ac47c47b00f2a" # MySQL

@ -0,0 +1,10 @@
---
harbor_oidc_realm: "stage-harbor"
harbor_oidc_client_id: "stage-harbor"
harbor_oidc_client_secret: "{{ harbor_oidc_client_secret_vault | default(docker_registry_oidc_client_secret_vault) }}" # backwards compatibility
harbor_oidc_admin_username: "harbor-admin"
harbor_oidc_admin_password: "{{ harbor_oidc_admin_password_vault }}"
harbor_oidc_admin_email: "{{ devops_email_address }}"
harbor_username: "{{ docker_registry_username_vault }}"
harbor_token: "{{ docker_registry_token_vault }}"

@ -0,0 +1,14 @@
---
keycloak_admin_username: "keycloak-admin"
keycloak_admin_password: "{{ keycloak_admin_password_vault }}"
keycloak_default_theme: "mpmx-theme"
# Additional ips to consider as intranet ips (e.g. inter stage communication)
keycloak_ip_whitelist: []
# Use these Realm ACLs to create custom Traefik labels for Keycloak to restrict admin access per realm
# Both variables are mandatory!
# name: <realm_name>
# admin_ips: <ip/range in cidr notation>
keycloak_admin_realm_acls: []

@ -0,0 +1,2 @@
---
kube_image_repo: "prodnso-harbor-01.smardigo.digital/k8sgcrio-proxy"

@ -0,0 +1,2 @@
---
logstash_ssl_enabled: false

@ -0,0 +1,39 @@
---
management_admin_username: "management-admin" # backwards compatibility
management_admin_password: "{{ management_admin_password_vault }}" # backwards compatibility
management_oidc_realm: "stage-connect"
management_oidc_client_id: "connect"
management_oidc_client_secret: "{{ management_oidc_client_secret_vault }}"
management_oidc_admin_username: "management-admin"
management_oidc_admin_password: "{{ management_admin_password_vault }}"
management_oidc_admin_email: "{{ devops_email_address }}"
management_configurations:
- pmci
- backup
connect_connection_teams_url: "{{ netgo_msteams_hook_cd }}"
connect_connection_awx_url: "{{ shared_service_kube_url_awx }}/"
connect_connection_harbor_url: "{{ shared_service_url_harbor }}/v2/"
connect_connections:
- id: "teams"
name: "MS Teams"
url: "{{ connect_connection_teams_url }}"
connectionType: "HTTPS"
authType: "NO_AUTH"
- id: "awx"
name: "AWX"
url: "{{ connect_connection_awx_url }}"
connectionType: "HTTP"
authType: "BASIC_AUTH"
username: "{{ awx_admin_username }}"
password: "{{ awx_admin_password }}"
- id: "harbor"
name: "Harbor"
url: "{{ connect_connection_harbor_url }}"
connectionType: "HTTP"
authType: "BASIC_AUTH"
username: "{{ harbor_admin_username }}"
password: "{{ harbor_admin_password }}"

@ -0,0 +1,8 @@
---
pgadmin4_oidc_realm: "stage-pgadmin4"
pgadmin4_oidc_client_id: "stage-pgadmin4"
pgadmin4_oidc_dev_username: "pgadmin-dev"
pgadmin4_oidc_dev_password: "{{ pgadmin4_oidc_dev_password_vault }}"
pgadmin4_oidc_client_secret: "{{ pgadmin4_oidc_client_secret_vault }}"
pgadmin4_oidc_dev_email: "developer@netgo.de"
pgadmin4_oidc_admin_email: "{{ devops_email_address }}"

@ -1,6 +1,6 @@
---
ansible_ssh_host: "{{ stage_server_domain }}"
debug: false
ssh_macs:
- umac-128-etm@openssh.com
- hmac-sha2-256-etm@openssh.com
@ -23,8 +23,9 @@ ssh_ciphers:
- aes256-ctr
- aes128-gcm@openssh.com
- aes256-gcm@openssh.com
ssh_permit_root_login: 'yes'
ssh_permit_root_login: "yes"
debug: false
docker_enabled: true
docker_config_enabled: true
traefik_enabled: true
@ -33,116 +34,124 @@ metricbeat_enabled: false
node_exporter_enabled: true
common_apt_dependencies:
- mc
- jq
- vim
# TODO Check if we really want this
# TODO Check if we really want this
- zip
- curl
- htop
- iotop
- net-tools
- bash-completion
- python3-pip
common_pip_dependencies:
- docker-compose
- passlib
- pyOpenSSL>=23.0
- docker==5.0.3
- docker-compose==1.29.2
- requests==2.28
use_ssl: true
http_s: "http{{ use_ssl | ternary('s', '', omit) }}"
domain: "smardigo.digital"
stage_server_domain: "{{ inventory_hostname }}.{{ domain }}"
stage_server_url: "{{ http_s }}://{{ stage_server_domain }}"
alertmanager_channel_smardigo: "#monitoring-{{ stage }}"
stage_kube_load_balancer: "{{ stage_kube }}-ingress"
hetzner_server_type: cx11
hetzner_server_image: ubuntu-20.04
awx_ansible_user_name: "awx"
awx_ansible_user_ssh_key_private: "{{ ansible_ssh_key_private_vault }}"
awx_credential_machine_hetzner_name: hetzner-ansible-ssh
hetzner_location: nbg1
hetzner_load_balancer_type: lb11
gitlab_ansible_user_name: "gitlabci"
# used for root-access by hetzner on server creation (@see cloud console/security/ssh-keys)
hetzner_ssh_keys:
backupuser_user_name: backupuser
# used for root-access by hetzner on server creation
# all ssh keys have to be available to hetzner cloud
# (@see cloud console / security / ssh-keys) (web ui)
default_hetzner_ssh_keys:
- "claus.paetow@netgo.de"
- "friedrich.goerz@netgo.de"
- "peter.heise@netgo.de"
- "sven.ketelsen@netgo.de"
- "michael.haehnel@netgo.de"
- "hoan.to@netgo.de"
- "{{ awx_ansible_user_name }}@netgo.de"
- "{{ gitlab_ansible_user_name }}@netgo.de"
- "{{ gitlab_ansible_user_name }}@git.dev-at.de"
hetzner_ssh_keys: "{{
default_hetzner_ssh_keys
+ (custom_stage_hetzner_ssh_keys | default([]))
}}"
hetzner_server_labels: "stage={{ stage }}"
hetzner_server_labels: "stage={{ stage }} service=none"
admin_user: "root"
sudo_groups: [
{
id: "CentOS",
sudo_group: "wheel",
},
{
id: "RedHat",
sudo_group: "wheel",
},
{
id: "Ubuntu",
sudo_group: "sudo",
},
]
sudo_groups:
[
{ id: "CentOS", sudo_group: "wheel" },
{ id: "RedHat", sudo_group: "wheel" },
{ id: "Ubuntu", sudo_group: "sudo" },
]
sudo_group: "{{ sudo_groups
| selectattr('id', 'match', '' + ansible_distribution + '' )
| selectattr('id', 'match', '' + ansible_distribution + '')
| map(attribute='sudo_group')
| list
| first
| replace('.','-') }}"
| replace('.', '-') }}"
# whitelist for outdated user detection - they wont't be deleted at all
default_plattform_users:
- 'nobody'
- 'elastic'
- 'postgres'
- 'administrator'
- '{{ admin_user }}'
- '{{ backupuser_username }}'
smardigo_plattform_users:
- 'claus.paetow'
- 'friedrich.goerz'
- 'peter.heise'
- 'sven.ketelsen'
- '{{ awx_ansible_user_name }}'
- '{{ gitlab_ansible_user_name }}'
ip_whitelist_admins:
- "79.215.10.239/32" # sven
- "212.86.56.112/32" # peter
ip_whitelist:
default_users:
- "nobody"
- "elastic"
- "postgres"
- "backuphamster"
- "administrator"
- "{{ admin_user }}"
default_platform_users:
- "claus.paetow"
- "sven.ketelsen"
- "michael.haehnel"
- "hoan.to"
- "{{ awx_ansible_user_name }}"
- "{{ gitlab_ansible_user_name }}"
smardigo_platform_users: "{{
default_platform_users
+ (custom_platform_users | default([]))
+ (custom_stage_platform_users | default([]))
}}"
ip_whitelist_netgo:
- "212.121.131.106/32" # netgo berlin
- "149.233.6.129/32" # netgo e-shelter
- "46.245.219.98/32" # netgo borken
- "{{ shared_service_network }}"
- "164.138.195.162/32" # netgo Aachen
ip_whitelist: "{{ ip_whitelist_netgo + [shared_service_network] + [shared_service_vpn_ip + '/32'] if shared_service_vpn_ip else ip_whitelist_netgo + [shared_service_network] }}"
# for test purpose DEV-361
# currently (2022.03.18) set to IP of hetzner VM
gitlab_storage_server: 167.235.18.147/32
offsite_storage_server_ip: 142.132.155.83/32
docker_owner: "{{ admin_user }}"
docker_group: "{{ admin_user }}"
docker_users: "{{ smardigo_plattform_users }}"
docker_compose_version: "1.29.2"
docker_users: "{{ smardigo_platform_users }}"
docker_compose_path: "/usr/bin/docker-compose"
service_base_path: '/etc/smardigo'
service_base_path: "/etc/smardigo"
gitea_admin_email: "nso.devops@netgo.de"
lets_encrypt_email: "nso.devops@netgo.de"
connect_admin_email: "nso.devops@netgo.de"
keycloak_admin_email: "nso.devops@netgo.de"
pgadmin4_admin_email: "nso.devops@netgo.de"
harbor_oidc_admin_email: "nso.devops@netgo.de"
devops_email_address: "nso.devops@netgo.de"
gitea_admin_email: "{{ devops_email_address }}"
lets_encrypt_email: "{{ devops_email_address }}"
connect_admin_email: "{{ devops_email_address }}"
keycloak_admin_email: "{{ devops_email_address }}"
pgadmin4_admin_email: "{{ devops_email_address }}"
grafana_admin_email: "{{ devops_email_address }}"
grafana_smardigo_email: "{{ devops_email_address }}"
harbor_oidc_admin_email: "{{ devops_email_address }}"
argocd_admin_email: "{{ devops_email_address }}"
wordpress_admin_email: "{{ devops_email_address }}"
http_port: "80"
https_port: "443"
@ -157,14 +166,15 @@ service_port_logstash: "5044"
service_port_postgres: "5432"
service_port_kibana: "5601"
service_port_cadvisor: "8080"
service_port_webdav: "8080"
service_port_keycloak: "8080"
service_port_iam: "8082"
service_port_sonarqube: "9000"
service_port_pgadmin: "9001"
service_port_phpmyadmin: "9002"
service_port_node_exporter: "9100"
service_port_blackbox_exporter: "9115"
service_port_elasticsearch: "9200"
service_port_wireguard: "51820"
monitor_port_system: "9082"
monitor_port_docker: "9083"
@ -176,142 +186,13 @@ monitor_port_postgres: "9087"
admin_port_service: "9081"
admin_port_traefik: "9080"
connect_id: "{{ inventory_hostname }}-connect"
connect_base_url: "{{ connect_id }}.{{ domain }}"
wordpress_id: "{{ inventory_hostname }}-wordpress"
wordpress_base_url: "{{ wordpress_id }}.{{ domain }}"
smardigo_auth_token_name: "Smardigo-User-Token"
filebeat_certificate: "{{ stage }}-elastic-stack-filebeat"
logstash_certificate: "{{ stage }}-elastic-stack-logstash-01"
backup_directory: "/backups"
blackbox_exporter_fqdn: "dev-blackbox-01.{{ domain }}"
blackbox_http_2xx_targets:
- 'https://{{ stage }}-keycloak-01.smardigo.digital/auth/'
#- 'https://{{ stage }}-management-01-connect.smardigo.digital/'
blackbox_http_2xx_additional_targets: []
prometheus_federation_enabled: true
kubernetes_prometheus_endpoint: "{{ stage }}-kube-prometheus.{{ domain }}"
backupuser_username: backupuser
backupuser_ssh_pubkey: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDAFRYAy3PqimYUWcO4Q9pdTvDQTsq7hKjWYoQEsJICnRRv+W+5d2lJvC3gqMpmWy9XxtrYePkVHCgIvfJSas9Jv7n7eeYoeWLWJq0nRSKg6EKFCH9y3v8tGPJQQf7wogOhHwr6m79c+lpNVUsVR+QOf76+47ZuwnuEBzK6xbDkmwyt7SPrJ59IFxOlmtz2HgVlTLczLalMygM4qlXqIt+lwuuFz4CsGcr4TwMKp9Uk6SCP3OV12oLnUUUOA3r72qmE4+JeUN6VNbXoBXEANfXm5kbM8w+dFhulCi1fQZCssB8PStA7Cs0gVqL6DYNUKRZaFL8e77hljGkPlOQDxOsBexPuceSDmmr6s5qT1wA6bnEFoeWbLlxixGlFA+1Q/LqWsYzoOZiTHDoaXvsc4VizlPp4Fn0OgJefPjuzBsWOyf0ob5oucfnmCAvEh/k+ioq0bIQDcliAM1UezitblHQgGHhqnKPMi664i0ULLiExARe4IV3KJiaG++RJyzUL5HNz3Qru+K5/pdj2jffluYTC4w+6ZYfjWEZS/DAumExv9T97kFOsapHCQJwTBa368Ch6uKkPCZO8p/ra3xTIUh/PibHaVCadgX2NR9q6jdiQtmc0SOyNJlMlPZD/Q1NrjXJ18ASny7gCBFItMyMtinVx9xQxQ+PFLB8oNYERw1ejIw== storage-server-smardigo'
current_date_time: "{{ lookup('pipe','date +%Y-%m-%d_%H:%M') }}"
hcloud_firewall_objects:
-
name: "{{ stage }}-default"
state: present
rules:
-
direction: in
protocol: icmp
port: ''
source_ips: '{{ ip_whitelist + ip_whitelist_admins }}'
destination_ips: []
description: ICMP allowed
-
direction: in
protocol: tcp
port: '22'
source_ips: '{{ ip_whitelist + ip_whitelist_admins }}'
destination_ips: []
description: SSH allowed
-
direction: in
protocol: tcp
port: '80'
source_ips: '{{ ip_whitelist + ip_whitelist_admins }}'
destination_ips: []
description: HTTP allowed
-
direction: in
protocol: tcp
port: '443'
source_ips: '{{ ip_whitelist + ip_whitelist_admins }}'
destination_ips: []
description: HTTPS allowed
-
direction: in
protocol: tcp
port: 'any'
source_ips: '{{ ip_whitelist_admins }}'
destination_ips: []
description: TCP - allow work from home without VPN
-
direction: in
protocol: udp
port: 'any'
source_ips: '{{ ip_whitelist_admins }}'
destination_ips: []
description: UDP - allow work from home without VPN
apply_to:
-
type: label_selector
label_selector:
selector: 'stage={{ stage }}'
-
name: "{{ stage }}-monitoring"
state: present
rules:
-
direction: in
protocol: tcp
port: '9080-9085'
source_ips: '{{ ip_whitelist + ip_whitelist_admins }}'
destination_ips: []
description: 'Server/Service Monitoring'
-
direction: in
protocol: tcp
port: '9001'
source_ips: '{{ ip_whitelist + ip_whitelist_admins }}'
destination_ips: []
description: 'PgAdmin'
-
direction: in
protocol: tcp
port: '9187'
source_ips: '{{ ip_whitelist + ip_whitelist_admins }}'
destination_ips: []
description: 'Postgres-Exporter'
-
direction: in
protocol: tcp
port: '80'
source_ips: '{{ ip_whitelist + ip_whitelist_admins }}'
destination_ips: []
description: 'AWX'
apply_to:
-
type: label_selector
label_selector:
selector: 'stage={{ stage }}'
-
name: "{{ stage }}-monitoring-extern-https"
state: present
rules:
-
direction: in
protocol: tcp
port: '443'
source_ips:
- "{{ lookup('community.general.dig', 'dev-blackbox-01.smardigo.digital' ) }}/32"
destination_ips: []
description: null
apply_to:
-
type: label_selector
label_selector:
selector: 'service=connect'
-
type: label_selector
label_selector:
selector: 'service=keycloak'
get_current_date: "{{ lookup('pipe', 'date +%Y-%m-%d') }}"
get_current_date_time: "{{ lookup('pipe', 'date +%Y-%m-%d_%H:%M') }}"
hetzner_authentication_ansible: "{{ hetzner_authentication_ansible_vault }}"
hetzner_authentication_ccm: "{{ hetzner_authentication_ccm_vault }}"
@ -321,83 +202,22 @@ k8s_basic_services:
- kubelet
- containerd
hcloud_firewall_objects_awx:
-
name: "{{ stage }}-awx-ssh-access-for-k8s-nodes"
state: present
rules:
-
direction: in
protocol: tcp
port: '22'
source_ips: "{{ src_ips }}"
destination_ips: []
description: null
apply_to:
-
type: label_selector
label_selector:
selector: 'stage={{ stage }}'
-
name: "{{ stage }}-awx-access-SMA-mgmt-instance"
state: present
rules:
-
direction: in
protocol: tcp
port: '443'
source_ips: "{{ src_ips }}"
destination_ips: []
description: null
apply_to:
-
type: label_selector
label_selector:
selector: 'service=connect,tenant=management'
-
name: "{{ stage }}-awx-access-443-SMA-peripheral-instances"
state: present
rules:
-
direction: in
protocol: tcp
port: '443'
source_ips: "{{ src_ips }}"
destination_ips: []
description: null
apply_to:
-
type: label_selector
label_selector:
selector: 'service=gitea'
-
type: label_selector
label_selector:
selector: 'service=keycloak'
-
type: label_selector
label_selector:
selector: 'service=kibana'
hcloud_firewall_objects_backup:
-
name: "{{ stage }}-database-backup-ssh-access"
state: present
rules:
-
direction: in
protocol: tcp
port: '22'
source_ips:
- "{{ gitlab_storage_server }}"
destination_ips: []
description: null
apply_to:
-
type: label_selector
label_selector:
selector: 'service=postgres'
-
type: label_selector
label_selector:
selector: 'service=maria'
selfsigned_ca_private_key_passphrase: "{{ selfsigned_ca_private_key_passphrase_vault }}"
# hetzner upstream DNSservers
upstream_dns_servers:
- 185.12.64.1
- 185.12.64.2
keycloak_admin_username: "keycloak-admin"
keycloak_admin_password: "{{ keycloak_admin_password_vault }}"
# Note: all dollar signs in the hash need to be doubled for escaping.
# To create user:password pair, it's possible to use this command:
# echo $(htpasswd -nb user password) | sed -e s/\\$/\\$\\$/g
traefik_admin_username: "traefik-admin"
traefik_admin_password_htpasswd: "{{ traefik_admin_password_htpasswd_vault }}"
mysql_root_username: "{{ mysql_root_username_vault }}"
mysql_root_password: "{{ mysql_root_password_vault }}"
lvm_volume_encryption: false

@ -0,0 +1,37 @@
---
# node exporter exposes data only into the private network
node_exporter_listen_address: "{{ stage_private_server_ip }}"
blackbox_http_2xx_targets:
- "{{ shared_service_url_gitea }}"
- "{{ shared_service_url_harbor }}"
- "{{ shared_service_url_keycloak }}/auth/"
- "{{ shared_service_url_kibana }}"
- "{{ shared_service_kube_url_awx }}"
blackbox_http_4xx_targets:
- "{{ shared_service_url_management }}"
prometheus_tsdb_rentention_time: "4w"
prometheus_federation_enabled: true
prometheus_remote_write_enabled: true
prometheus_alert_diskspaceusage_warning: 85
prometheus_alert_pg_replication_lag: 120
alertmanager_channel_smardigo: "#monitoring-{{ stage }}"
prometheus_enabled: true
prometheus_alertmanager_enabled: true
prometheus_grafana_enabled: true
prometheus_prom2teams_enabled: true
prometheus_service_names:
- "{{ (prometheus_enabled | default(true)) | ternary(prometheus_id, '') }}"
- "{{ (prometheus_alertmanager_enabled | default(true)) | ternary(alertmanager_id, '') }}"
- "{{ (prometheus_grafana_enabled | default(true)) | ternary(grafana_id, '') }}"
- "{{ (prometheus_prom2teams_enabled | default(true)) | ternary(prom2teams_id, '') }}"
prometheus_docker_volume_names:
- "{{ (prometheus_alertmanager_enabled | default(true)) | ternary(alertmanager_id + '-data', '') }}"
- "{{ (prometheus_grafana_enabled | default(true)) | ternary(grafana_id + '-data', '') }}"

@ -1,4 +1,84 @@
---
# TODO variable shouldn't used in a global way
elastic_id: "{{ inventory_hostname }}-elastic"
# TODO variable shouldn't used in a global way
elastic_exporter_id: "{{ inventory_hostname }}-elastic-exporter"
shared_service_url_harbor: "https://{{ shared_service_hostname_harbor }}"
shared_service_hostname_harbor: "{{ stage }}-harbor-01.{{ domain_env }}"
shared_service_url_gitea: "https://{{ shared_service_hostname_gitea }}"
shared_service_hostname_gitea: "{{ stage }}-gitea-01.{{ domain_env }}"
shared_service_url_keycloak: "https://{{ shared_service_hostname_keycloak }}"
shared_service_hostname_keycloak: "{{ stage }}-keycloak-01.{{ domain_env }}"
shared_service_url_kibana: "https://{{ shared_service_hostname_kibana }}"
shared_service_hostname_kibana: "{{ shared_service_kube_hostname_kibana }}"
shared_service_host_management: "{{ stage }}-management-01"
shared_service_url_management: "https://{{ shared_service_hostname_management }}"
shared_service_hostname_management: "{{ shared_service_host_management }}-connect.{{ domain_env }}"
shared_service_url_pgadmin4: "https://{{ shared_service_hostname_pgadmin4 }}"
shared_service_hostname_pgadmin4: "{{ stage }}-pgadmin4-01-pgadmin4.{{ domain_env }}"
shared_service_url_grafana: "https://{{ shared_service_hostname_grafana }}"
shared_service_hostname_grafana: "{{ stage }}-prometheus-01-grafana.{{ domain_env }}"
shared_service_hostname_logstash: "{{ stage }}-logstash.{{ domain_env }}"
shared_service_hostname_connect_data: "{{ stage }}-connect-data.{{ domain_env }}"
shared_service_hostname_logging_data: "{{ shared_service_elastic_stack_01_hostname }}"
# TODO check if it is still needed
shared_service_elastic_stack_01_hostname: "{{ stage }}-elastic-stack-elastic-01"
shared_service_elastic_stack_02_hostname: "{{ stage }}-elastic-stack-elastic-02"
shared_service_elastic_stack_03_hostname: "{{ stage }}-elastic-stack-elastic-03"
# TODO the blackbox exporter shouldn't be DEV tagged at all
shared_service_hostname_blackbox_exporter: "devnso-blackbox-01.smardigo.digital"
# use private loadbalancer ip for all kubernetes services
stage_kube: "{{ stage }}"
shared_service_kube_url_argocd: "https://{{ shared_service_kube_hostname_argocd }}"
shared_service_kube_hostname_argocd: "{{ stage_kube }}-argocd.{{ domain_env }}"
shared_service_kube_url_awx: "https://{{ shared_service_kube_hostname_awx }}"
shared_service_kube_hostname_awx: "{{ stage_kube }}-awx.{{ domain_env }}"
shared_service_kube_url_gitea: "https://{{ shared_service_kube_hostname_gitea }}"
shared_service_kube_hostname_gitea: "{{ stage_kube }}-gitea.{{ domain_env }}"
shared_service_kube_url_harbor: "https://{{ shared_service_kube_hostname_harbor }}"
shared_service_kube_hostname_harbor: "{{ stage }}-harbor.{{ domain_env }}"
shared_service_kube_url_kibana: "https://{{ shared_service_kube_hostname_kibana }}"
shared_service_kube_hostname_kibana: "{{ stage_kube }}-kibana.{{ domain_env }}"
shared_service_kube_url_prometheus: "https://{{ shared_service_kube_hostname_prometheus }}"
shared_service_kube_hostname_prometheus: "{{ stage_kube }}-prometheus.{{ domain_env }}"
shared_service_kube_url_grafana: "https://{{ shared_service_kube_hostname_grafana }}"
shared_service_kube_hostname_grafana: "{{ stage_kube }}-grafana.{{ domain_env }}"
shared_service_kube_jaeger_collector_hostname: "{{ stage_kube }}-jaeger-collector.{{ domain_env }}"
shared_service_kube_loadbalancer_public_ip_not_available: "public loadbalancer ip not available"
shared_service_kube_loadbalancer_public_ip: "{{ stage_public_ingress_loadbalancer_ip | default(shared_service_kube_loadbalancer_public_ip_not_available) }}"
shared_service_kube_loadbalancer_private_ip_not_available: "private loadbalancer ip not available"
shared_service_kube_loadbalancer_private_ip: "{{ stage_private_ingress_loadbalancer_ip | default(shared_service_kube_loadbalancer_private_ip_not_available) }}"
shared_service_loadbalancer_logstash_public_ip_not_available: "public logstash loadbalancer ip not available"
shared_service_loadbalancer_logstash_public_ip: "{{ stage_public_logstash_loadbalancer_ip | default(shared_service_loadbalancer_logstash_public_ip_not_available) }}"
shared_service_loadbalancer_logstash_private_ip_not_available: "private logstash loadbalancer ip not available"
shared_service_loadbalancer_logstash_private_ip: "{{ stage_private_logstash_loadbalancer_ip | default(shared_service_loadbalancer_logstash_private_ip_not_available) }}"
shared_service_default_additional_hosts:
- name: "{{ shared_service_kube_hostname_argocd }}"
ip: "{{ shared_service_kube_loadbalancer_private_ip }}"
- name: "{{ shared_service_kube_hostname_awx }}"
ip: "{{ shared_service_kube_loadbalancer_private_ip }}"
- name: "{{ shared_service_kube_hostname_gitea }}"
ip: "{{ shared_service_kube_loadbalancer_private_ip }}"
- name: "{{ shared_service_kube_hostname_harbor }}"
ip: "{{ shared_service_kube_loadbalancer_private_ip }}"
- name: "{{ shared_service_kube_hostname_kibana }}"
ip: "{{ shared_service_kube_loadbalancer_private_ip }}"
- name: "{{ shared_service_kube_hostname_prometheus }}"
ip: "{{ shared_service_kube_loadbalancer_private_ip }}"
- name: "{{ shared_service_kube_hostname_grafana }}"
ip: "{{ shared_service_kube_loadbalancer_private_ip }}"
- name: "{{ shared_service_kube_jaeger_collector_hostname }}"
ip: "{{ shared_service_kube_loadbalancer_private_ip }}"
- name: "{{ shared_service_hostname_logstash }}"
ip: "{{ shared_service_loadbalancer_logstash_private_ip }}"
- name: "{{ shared_service_hostname_connect_data }}"
ip: "{{ shared_service_kube_loadbalancer_private_ip }}"
shared_service_additional_hosts: "{{ shared_service_default_additional_hosts + (shared_service_custom_additional_hosts | default([])) }}"

@ -0,0 +1,33 @@
---
elastic_elasticsearch_version: "7.16.3"
elastic_elasticsearch_exporter_version: "v1.5.0"
elastic_filebeat_version: "8.11.1"
elastic_kibana_version: "7.16.3"
elastic_logstash_version: "7.16.3"
elastic_metricbeat_version: "7.16.3"
gitea_version: "1.19"
prom_grafana_version: "9.1.5"
harbor_version: "v2.4.1"
keycloak_version: "21.0.2.7"
pgadmin4_version: "9.2"
prom_alertmanager_version: "v0.25.0"
prom_blackbox_exporter_version: "0.24.0"
prom_prometheus_version: "v2.44.0"
prom_prom2teams_version: "3.2.3" # TODO 4.2.1
traefik_version: "v2.10.3"
connect_version: "10.5.37"
iam_version: "10.5"
process_search_version: "1.3"
wordpress_image_version: "6.8.0-php8.2"
ansible_minimal_version: "2.12.0"
wireguard_version: latest

@ -0,0 +1,8 @@
---
shared_service_vpn: "{{ stage }}-vpn-01"
shared_service_vpn_ip: "{{ stage_server_infos
| selectattr('name', 'match', shared_service_vpn )
| map(attribute='public_ip')
| list
| first
| default('') }}"

@ -0,0 +1,2 @@
---
wordpress_image_name: "wordpress"

@ -1,9 +1,13 @@
---
#TODO needs to be removed after story DEV-361 is finished
hetzner_server_type: "{{ hetzner_server_type_bastelserver | default('cx21') }}"
hetzner_server_labels: "stage={{ stage }} service=bastelserver"
hetzner_server_type: "{{ hetzner_server_type_bastelserver | default('cx22') }}"
hetzner_server_labels: "stage={{ stage }} service=backup"
docker_enabled: false
traefik_enabled: false
filebeat_enabled: false
node_exporter_enabled: false
common_pip_dependencies: []
custom_platform_users:
- backuphamster

@ -1,20 +1,18 @@
---
hetzner_server_type: cx21
hetzner_server_type: cx22
hetzner_server_labels: "stage={{ stage }} service=connect{% if tenant_id is defined %} tenant={{ tenant_id }}{% endif %}"
# unique id for a service, will be used for service access management as well (e.g. keycloak realm)
connect_client_id: "{{ cluster_name }}"
connect_postgres_host: "{{ shared_service_postgres_01_hostname }}"
connect_postgres_host: "{{ shared_service_postgres_primary }}"
connect_postgres_database: "{{ stage }}_{{ tenant_id }}_{{ cluster_name }}_connect"
connect_postgres_username: "{{ connect_postgres_database }}"
connect_postgres_password: "connect-postgres-admin"
#connect_process_search_module: "external"
connect_elastic_host: "{{ shared_service_elastic_stack_01_hostname }}"
connect_elastic_username: "{{ elastic_admin_username }}"
connect_elastic_password: "{{ elastic_admin_password }}"
connect_elastic_host: "{{ shared_service_connect_data_hostname }}"
connect_elastic_username: "{{ shared_service_connect_data_username }}"
connect_elastic_password: "{{ shared_service_connect_data_password }}"
connect_elastic_ca: "file:/usr/share/smardigo/ca.crt"
connect_elastic_prefix: "{{ stage }}_{{ tenant_id }}_{{ cluster_name }}"
@ -26,17 +24,17 @@ connect_auth_module: "oidc"
connect_oidc_client_id: "{{ cluster_name }}"
connect_oidc_client_secret: "{{ cluster_name }}"
connect_oidc_registration_id: "{{ cluster_name }}"
connect_oidc_issuer_uri: "https://{{ shared_service_keycloak_hostname }}/auth/realms/{{ current_realm_name }}"
connect_oidc_issuer_uri: "https://{{ shared_service_hostname_keycloak }}/auth/realms/{{ current_realm_name }}"
connect_password_change_url: "{{ http_s }}://{{ shared_service_keycloak_hostname }}/auth/realms/{{ current_realm_name }}/account/password"
connect_iam_user_management_url: "{{ http_s }}://{{ shared_service_keycloak_hostname }}/auth/admin/{{ current_realm_name }}/console"
connect_password_change_url: "{{ http_s }}://{{ shared_service_hostname_keycloak }}/auth/realms/{{ current_realm_name }}/account/?referrer=security-admin-console#/security/signingin"
connect_user_management_url: "{{ http_s }}://{{ shared_service_hostname_keycloak }}/auth/admin/{{ current_realm_name }}/console"
connect_mail_properties_simulation: false
connect_loglevel_message_queue: "DEBUG"
connect_loglevel_document_index: "DEBUG"
connect_loglevel_workflow_index: "DEBUG"
connect_loglevel_workflow_analysis: "DEBUG"
connect_csrf_token_name: "21f4d682-dbad-45e5-b3b5-47d274b9772d"
connect_csrf_token_value: "4d2ef8cc-f7d9-46d4-b4d6-f20f9dc48040"
process_search_postgres_host: "{{ shared_service_postgres_primary }}"
process_search_postgres_database: "{{ stage }}_{{ tenant_id }}_{{ cluster_name }}_process_search"
process_search_postgres_username: "{{ process_search_postgres_database }}"
process_search_postgres_password: "connect-postgres-admin"

@ -0,0 +1,3 @@
---
connect_datasource_action_enabled: "true"

@ -0,0 +1,3 @@
---
connect_search_elastic_enabled: "true"

@ -1,3 +0,0 @@
---
connect_webdav_enabled: "true"

@ -0,0 +1,4 @@
---
connect_wordpress_maria_database: "{{ stage }}_{{ tenant_id }}_{{ cluster_name }}_connect_wordpress"
connect_wordpress_maria_username: "{{ connect_wordpress_maria_database }}"
connect_wordpress_maria_password: "connect-wordpress-maria-admin"

@ -1,14 +0,0 @@
---
connect_wordpress_maria_host: "{{ shared_service_maria_hostname }}"
connect_wordpress_maria_database: "{{ stage }}_{{ tenant_id }}_{{ cluster_name }}_connect_wordpress"
connect_wordpress_maria_username: "{{ connect_wordpress_maria_database }}"
connect_wordpress_maria_password: "connect-wordpress-maria-admin"
connect_wordpress_oidc_issuer: "{{ http_s }}://{{ shared_service_keycloak_hostname }}/auth/realms/{{ current_realm_name }}"
connect_wordpress_oidc_provider_url: "{{ http_s }}://{{ shared_service_keycloak_hostname }}/auth/realms/{{ current_realm_name }}"
connect_wordpress_oidc_client_id: "{{ cluster_name }}"
connect_wordpress_oidc_client_secret: "{{ cluster_name }}"
connect_wordpress_buergerportal_username: "buergerportal"
connect_wordpress_buergerportal_password: "buergerportal"

@ -0,0 +1,3 @@
---
connect_workflow_heatmap_enabled: "true"

@ -1,6 +1,6 @@
---
hetzner_server_type: cx31
hetzner_server_type: cpx31
hetzner_server_labels: "stage={{ stage }} service=elastic"
traefik_enabled: false

@ -1,6 +1,5 @@
---
hetzner_server_type: cx21
hetzner_server_type: cx22
hetzner_server_labels: "stage={{ stage }} service=gitea"
gitea_id: "{{ inventory_hostname }}-gitea"
@ -8,11 +7,7 @@ gitea_postgres_id: "{{ inventory_hostname }}-postgres-gitea"
gitea_base_url: "{{ inventory_hostname }}.{{ domain }}"
# unique id for a service, will be used for service access management as well (e.g. keycloak realm)
gitea_client_id: "{{ cluster_name }}"
gitea_client_secret: "{{ cluster_name }}"
gitea_postgres_host: "{{ shared_service_postgres_01_hostname }}"
gitea_postgres_host: "{{ shared_service_postgres_primary }}"
gitea_postgres_database: "{{ stage }}_gitea"
gitea_postgres_username: "{{ gitea_postgres_database }}"
gitea_postgres_password: "gitea-postgres-admin"

@ -1,9 +0,0 @@
---
hetzner_server_type: cx21
hetzner_server_labels: "stage={{ stage }} service=gw"
docker_enabled: false
traefik_enabled: false
filebeat_enabled: false
node_exporter_enabled: false

@ -1,4 +1,77 @@
---
hetzner_server_type: cpx31
hetzner_server_labels: "stage={{ stage }} service=harbor"
harbor_homedir: "/data"
harbor_pgdatadir_lvm_hcloudvol_size: 50
harbor_pgdatadir_lvm_hcloudvol_count: 1
harbor_pgdatadir_lvm_hcloudvol_mountpath: "{{ harbor_homedir }}"
filebeat_inputs:
- type: log
paths:
- /var/log/harbor/portal.log
fields:
harbor: true
harbor-component: harbor-portal
- type: log
paths:
- /var/log/harbor/exporter.log
fields:
harbor: true
harbor-component: harbor-exporter
- type: log
paths:
- /var/log/harbor/redis.log
fields:
harbor: true
harbor-component: redis
- type: log
paths:
- /var/log/harbor/registryctl.log
fields:
harbor: true
harbor-component: registryctl
- type: log
paths:
- /var/log/harbor/chartmuseum.log
fields:
harbor: true
harbor-component: chartmuseum
- type: log
paths:
- /var/log/harbor/trivy-adapter.log
fields:
harbor: true
harbor-component: trivy-adapter
- type: log
paths:
- /var/log/harbor/postgresql.log
fields:
harbor: true
harbor-component: harbor-db
- type: log
paths:
- /var/log/harbor/jobservice.log
fields:
harbor: true
harbor-component: harbor-jobservice
- type: log
paths:
- /var/log/harbor/proxy.log
fields:
harbor: true
harbor-component: nginx
- type: log
paths:
- /var/log/harbor/registry.log
fields:
harbor: true
harbor-component: registry
- type: log
paths:
- /var/log/harbor/core.log
fields:
harbor: true
harbor-component: harbor-core

@ -1,4 +1,3 @@
---
hetzner_server_type: cx21
hetzner_server_type: cx22
hetzner_server_labels: "stage={{ stage }} service=iam"

@ -1,9 +1,11 @@
---
ip: "{{ stage_private_server_ip | default('-') }}"
ip: "{{ stage_private_server_ip | default('### use dynamic inventory ###') }}"
### parameters used by kubespray ###
kube_version: v1.23.16
cloud_provider: external
kube_network_plugin: calico
kube_proxy_metrics_bind_address: 0.0.0.0:10249
@ -22,5 +24,16 @@ helm_enabled: true
#TODO configuration migration needed
#krew_enabled: true
kube_service_addresses: 10.233.0.0/18
kube_pods_subnet: 10.233.64.0/18
kube_network_node_prefix: 24
## Automatically renew K8S control plane certificates on first Monday of each month
auto_renew_certificates: true
# First Monday of each month
# auto_renew_certificates_systemd_calendar: "Mon *-*-1,2,3,4,5,6,7 03:{{ groups['kube_control_plane'].index(inventory_hostname) }}0:00"
unsafe_show_logs: true
additional_pip_dependencies:
- kubernetes

@ -3,7 +3,7 @@
hetzner_server_type: cx11
hetzner_server_labels: "stage={{ stage }} service=keycloak"
keycloak_postgres_host: "{{ shared_service_postgres_01_hostname }}"
keycloak_postgres_host: "{{ shared_service_postgres_primary }}"
keycloak_postgres_database: "{{ stage }}_keycloak"
keycloak_postgres_username: "{{ keycloak_postgres_database }}"
keycloak_postgres_password: "keycloak-postgres-admin"

@ -1,9 +1,8 @@
---
hetzner_server_type: "{{ hetzner_server_type_kube_master | default('cpx21') }}"
hetzner_server_type: "{{ hetzner_server_type_kube_cpl | default('cpx21') }}"
hetzner_server_labels: "stage={{ stage }} service=kube_control_plane"
docker_enabled: false
traefik_enabled: false
filebeat_enabled: false
node_exporter_enabled: false

@ -6,4 +6,3 @@ hetzner_server_labels: "stage={{ stage }} service=kube_node"
docker_enabled: false
traefik_enabled: false
filebeat_enabled: false
node_exporter_enabled: false

@ -1,5 +1,4 @@
---
hetzner_server_labels: "stage={{ stage }} service=logstash"
traefik_enabled: false

@ -1,53 +1,2 @@
---
hetzner_server_type: cx21
connect_image_version: "latest"
connect_admin_username: "{{ management_admin_username }}"
connect_admin_password: "{{ management_admin_password }}"
connect_workflow_env: "stage:{{ stage }};smardigoUserToken:{{ smardigo_auth_token_value }}"
connect_process_search_module: "external"
connect_oidc_client_secret: "{{ management_oidc_client_secret }}"
spring_profiles_include: "prod,postgres,elastic,swagger"
tenant_id: "{{ management_oidc_realm }}"
cluster_size: "1"
cluster_name: "{{ management_oidc_client_id }}"
current_realm_name: "management"
current_realm_display_name: "Stage Management"
postgres_acls:
- name: "{{ connect_postgres_database }}"
password: "{{ connect_postgres_password }}"
trusted_cidr_entry: "{{ shared_service_network }}"
current_realm_clients: [
{
name: '{{ management_oidc_client_id }}',
clientId: "{{ management_oidc_client_id }}",
admin_url: '',
root_url: '',
redirect_uris: [
"{{ http_s }}://{{ connect_base_url }}/*"
],
secret: '{{ management_oidc_client_secret }}',
web_origins: [
"{{ http_s }}://{{ connect_base_url }}"
],
}
]
current_realm_users: [
{
"username": "{{ management_admin_username }}",
"password": "{{ management_admin_password }}",
"email": "{{ connect_admin_email }}",
"requiredActions": []
}
]
current_realm_admin_user:
username: "{{ management_realm_admin_username }}"
password: "{{ management_realm_admin_password }}"
email: "{{ connect_admin_email }}"
requiredActions: []
hetzner_server_type: cx22

@ -7,6 +7,9 @@ mysql_databases: []
mysql_users: []
docker_enabled: false
traefik_enabled: false
filebeat_enabled: false
filebeat_maria_enabled: true
custom_platform_users:
- '{{ backupuser_user_name }}'

@ -1,20 +0,0 @@
---
hetzner_server_type: cx11
hetzner_server_labels: "stage={{ stage }} service=pdns"
pdns_id: "{{ inventory_hostname }}-pdns"
pdns_postgres_id: "{{ inventory_hostname }}-postgres-pdns"
pdns_recursor_id: "{{ inventory_hostname }}-recursor-pdns"
pdns_admin_id: "{{ inventory_hostname }}-admin-pdns"
pdns_admin_postgres_id: "{{ inventory_hostname }}-admin-postgres-pdns"
#pdns_api_key: "< see vault >"
pdns_postgres_host: "{{ shared_service_postgres_01_hostname }}"
pdns_postgres_database: "{{ stage }}_pdns"
pdns_postgres_username: "{{ pdns_postgres_database }}"
pdns_postgres_password: "pdns-postgres-admin"
pdns_admin_postgres_database: "{{ stage }}_pdns_admin"
pdns_admin_postgres_username: "{{ pdns_admin_postgres_database }}"
pdns_admin_postgres_password: "pdns-admin-postgres-admin"

@ -1,10 +1,18 @@
---
hetzner_server_type: cpx11
hetzner_server_labels: "stage={{ stage }} service=postgres"
hetzner_server_labels: "stage={{ stage }} service=postgres role={{ server_type }}"
postgres_acls: []
docker_enabled: false
traefik_enabled: false
filebeat_enabled: false
filebeat_postgres_enabled: true
custom_platform_users:
- "{{ backupuser_user_name }}"
postgres_homedir: "/var/lib/postgresql"
postgres_pgdatadir_lvm_hcloudvol_size: 10
postgres_pgdatadir_lvm_hcloudvol_count: 1
postgres_pgdatadir_lvm_hcloudvol_mountpath: "{{ postgres_homedir }}"

@ -0,0 +1,3 @@
---
shared_service_postgres_primary: "{{ stage }}-postgres01-01"
shared_service_postgres_secondary: "{{ stage }}-postgres01-02"

@ -0,0 +1,3 @@
---
shared_service_postgres_primary: "{{ stage }}-postgres02-01"
shared_service_postgres_secondary: "{{ stage }}-postgres02-02"

@ -1,4 +1,3 @@
---
hetzner_server_type: cx21
hetzner_server_type: cx22
hetzner_server_labels: "stage={{ stage }} service=prometheus"

@ -1,11 +0,0 @@
---
hetzner_server_type: cx11
hetzner_server_labels: "stage={{ stage }} service=redis"
docker_enabled: false
traefik_enabled: false
redis_bind_interface: 0.0.0.0
redis_maxmemory: '{{ ansible_memtotal_mb * 0.8 | int }}'
redis_exporter_ip: "{{ ansible_ens10.ipv4.address | default('127.0.0.1') }}"

@ -0,0 +1,15 @@
---
hetzner_server_type: "{{ hetzner_server_type_restore_database | default('cpx21') }}"
hetzner_server_labels: "stage={{ stage }} service=restore database_engine={{ database_engine | default('') }}"
docker_enabled: false
traefik_enabled: false
filebeat_enabled: false
node_exporter_enabled: false
custom_platform_users:
- "{{ backupuser_user_name }}"
# postgresql related
# defining type of server (master|slave|restore)
server_type: restore

@ -0,0 +1,6 @@
---
awx_admin_username: "awx-admin"
awx_admin_password: "{{ awx_admin_password_vault }}"
awx_hetzner_ansible_revision: "prodnso"
awx_custom_ee_image: "/prodnso/awx/awx-custom-ee"

@ -0,0 +1,2 @@
---
backup_lvm_hcloudvol_size: 20

@ -0,0 +1,14 @@
---
harbor_bootstrap_helm_url: "prodnso-harbor-01.smardigo.digital/infrastructure"
harbor_bootstrap_helm_name: "infrastructure"
harbor_bootstrap_username: "{{ harbor_bootstrap_username_vault }}"
harbor_bootstrap_password: "{{ harbor_bootstrap_password_vault}}"
gitea_bootstrap_url: "https://demompmx-gitea.smardigo.digital/demompmx/demompmx-argocd"
gitea_bootstrap_username: "{{ gitea_admin_username }}"
gitea_bootstrap_password: "{{ gitea_admin_password }}"
custom_ip_whitelist:
- "5.75.131.94"
- "116.203.156.144"
- "91.107.225.163"

@ -0,0 +1,6 @@
---
connect_ribbon_display: "demo only"
smardigo_default_theme: "/themes/mpm-x.json"
connect_name: "mpmX execution"
connect_language_code: "en"

@ -0,0 +1,23 @@
---
stage_database_management_connect_name: "{{ stage }}_infrastructure_management_connect"
stage_database_management_connect_password: "connect-postgres-admin"
stage_database_management_process_search_name: "{{ stage }}_infrastructure_management_process_search"
stage_database_management_process_search_password: "connect-postgres-admin"
stage_database_management_keycloak_name: "{{ stage }}_infrastructure_management_keycloak"
stage_database_management_keycloak_password: "keycloak-postgres-admin"
stage_database_management_gitea_name: "{{ stage }}_infrastructure_management_gitea"
stage_database_management_gitea_password: "gitea-postgres-admin"
stage_postgres_acls:
- name: "{{ stage_database_management_connect_name }}"
password: "{{ stage_database_management_connect_password }}"
trusted_cidr_entry: "{{ shared_service_network }}"
- name: "{{ stage_database_management_process_search_name }}"
password: "{{ stage_database_management_process_search_password }}"
trusted_cidr_entry: "{{ shared_service_network }}"
- name: "{{ stage_database_management_keycloak_name }}"
password: "{{ stage_database_management_keycloak_password }}"
trusted_cidr_entry: "{{ shared_service_network }}"
- name: "{{ stage_database_management_gitea_name }}"
password: "{{ stage_database_management_gitea_password }}"
trusted_cidr_entry: "{{ shared_service_network }}"

@ -0,0 +1,170 @@
---
hcloud_firewall_objects:
-
name: "{{ stage }}-default"
state: present
rules:
-
direction: in
protocol: icmp
port: ''
source_ips: '{{ ip_whitelist }}'
destination_ips: []
description: ICMP allowed
-
direction: in
protocol: tcp
port: '22'
source_ips: '{{ ip_whitelist }}'
destination_ips: []
description: SSH allowed
-
direction: in
protocol: tcp
port: '80'
source_ips: '{{ ip_whitelist }}'
destination_ips: []
description: HTTP allowed
-
direction: in
protocol: tcp
port: '443'
source_ips: '{{ ip_whitelist }}'
destination_ips: []
description: HTTPS allowed
apply_to:
-
type: label_selector
label_selector:
selector: 'stage={{ stage }}'
-
name: "{{ stage }}-monitoring"
state: present
rules:
-
direction: in
protocol: tcp
port: '9080-9085'
source_ips: '{{ ip_whitelist + [ lookup("community.general.dig", stage + "-prometheus-01." + domain ) + "/32"] }}'
destination_ips: []
description: 'Server/Service Monitoring'
-
direction: in
protocol: tcp
port: '9001'
source_ips: '{{ ip_whitelist }}'
destination_ips: []
description: 'PgAdmin'
-
direction: in
protocol: tcp
port: '9187'
source_ips: '{{ ip_whitelist }}'
destination_ips: []
description: 'Postgres-Exporter'
apply_to:
-
type: label_selector
label_selector:
selector: 'stage={{ stage }}'
-
name: "{{ stage }}-monitoring-extern-https"
state: present
rules:
-
direction: in
protocol: tcp
port: '443'
source_ips:
- "{{ lookup('community.general.dig', '{{ shared_service_hostname_blackbox_exporter }}' ) }}/32"
destination_ips: []
description: null
apply_to:
-
type: label_selector
label_selector:
selector: 'stage={{ stage }},service=connect'
-
type: label_selector
label_selector:
selector: 'stage={{ stage }},service=keycloak'
-
name: "{{ stage }}-access-to-kubernetes-api"
state: present
rules:
-
direction: in
protocol: tcp
port: '6443'
source_ips: "{{ ip_whitelist }}"
destination_ips: []
description: "Allow access for whitelisted ips"
apply_to:
-
type: label_selector
label_selector:
selector: 'stage={{ stage }},service=kube_control_plane'
-
name: "{{ stage }}-access-to-connect"
state: present
rules:
-
direction: in
protocol: tcp
port: '443'
source_ips:
- '0.0.0.0/0'
destination_ips: []
description: "Whitelisting ALL(also from UNTRUST) incoming HTTPS traffic for connect-instance(s)"
apply_to:
-
type: label_selector
label_selector:
selector: 'stage={{ stage }},service=connect'
hcloud_firewall_objects_keycloak:
-
name: "{{ stage }}-access-to-keycloak"
state: present
rules:
-
direction: in
protocol: tcp
port: '443'
source_ips:
- '0.0.0.0/0'
destination_ips: []
description: "Whitelisting ALL(also from UNTRUST) incoming HTTPS traffic for keycloak-instance(s))"
apply_to:
-
type: label_selector
label_selector:
selector: 'stage={{ stage }},service=keycloak'
hcloud_firewall_objects_cockpit:
-
name: "{{ stage }}-access-to-cockpit"
state: present
rules:
-
direction: in
protocol: tcp
port: '443'
source_ips:
- '0.0.0.0/0'
destination_ips: []
description: "Whitelisting ALL(also from UNTRUST) incoming HTTPS traffic for cockpit-instance(s))"
-
direction: in
protocol: tcp
port: '80'
source_ips:
- '0.0.0.0/0'
destination_ips: []
description: "Whitelisting ALL(also from UNTRUST) incoming HTTPS traffic for cockpit-instance(s))"
apply_to:
-
type: label_selector
label_selector:
selector: 'stage={{ stage }},service=cockpit'

@ -0,0 +1,5 @@
---
gitea_admin_username: "gitea-admin"
gitea_admin_password: "{{ gitea_admin_password_vault }}"
gitea_postgres_username: "gitea-postgres"
gitea_postgres_password: "{{ gitea_postgres_password_vault }}"

@ -0,0 +1,4 @@
---
grafana_signing_secret: "{{ grafana_signing_secret_vault }}"
grafana_admin_username: "grafana-admin"
grafana_admin_password: "{{ grafana_admin_password_vault }}"

@ -0,0 +1,7 @@
---
kubernetes_with_externaldns: true
kubernetes_with_certmanager: true
kubernetes_with_ingress: true
kubernetes_with_gitea: true
kubernetes_with_awx: true

@ -0,0 +1,2 @@
---
logstash_ssl_enabled: false

@ -0,0 +1,2 @@
---
connect_connection_harbor_url: "{{ shared_service_url_harbor }}/v2/prodnso/"

@ -0,0 +1,34 @@
---
stage: "demompmx"
hetzner_server_type_kube_cpl: cpx21
hetzner_server_type_kube_node: cpx31
# TODO read configuration with hetzner rest api
shared_service_network: "10.0.0.0/16"
netgo_msteams_hook_cd: "{{ netgo_msteams_hook_cd_vault }}"
netgo_msteams_hook_alerting: "{{ netgo_msteams_hook_alerting_vault }}"
pgadmin4_admin_username: "{{ pgadmin4_admin_email }}"
pgadmin4_admin_password: "{{ pgadmin4_admin_password_vault }}"
shared_service_hostname_gitea: "{{ shared_service_kube_hostname_gitea }}"
shared_service_hostname_harbor: "{{ shared_service_kube_hostname_harbor }}"
shared_service_iam_hostname: "{{ stage }}-iam-01.{{ domain_env }}"
shared_service_mail_hostname: "{{ stage }}-mail-01.{{ domain_env }}"
connect_jwt_enabled: true
connect_jwt_secret: "06aa5b66a2e241b7af934035df79e8a8"
iam_jwt_enabled: true
iam_jwt_secret: "b9bb2282a3284bf291173ef202928004"
harbor_admin_username: "{{ harbor_admin_username_vault }}"
harbor_admin_password: "{{ harbor_admin_password_vault }}"
shared_service_url_kibana: "{{ shared_service_kube_url_kibana }}"
shared_service_hostname_kibana: "{{ shared_service_kube_hostname_kibana }}"
elastic_admin_username: "{{ elastic_admin_username_vault }}"
elastic_admin_password: "{{ elastic_admin_password_vault }}"

@ -0,0 +1,15 @@
---
prometheus_admin_username: "prometheus-admin"
prometheus_admin_password: "{{ prometheus_admin_password_vault }}"
prometheus_admin_password_htpasswd: "{{ prometheus_admin_password_htpasswd_vault }}"
alertmanager_admin_username: "alertmanager-admin"
alertmanager_admin_password: "{{ alertmanager_admin_password_vault }}"
alertmanager_admin_password_htpasswd: "{{ alertmanager_admin_password_htpasswd_vault }}"
# federation for k8s prometheus -> stage prometheus
prometheus_federation_enabled: false
prometheus_alertmanager_enabled: false
prometheus_prom2teams_enabled: false
prometheus_grafana_enabled: false

@ -0,0 +1,14 @@
---
shared_service_url_harbor: "{{ shared_service_kube_url_harbor }}"
shared_service_url_keycloak: "https://{{ shared_service_hostname_keycloak }}"
shared_service_hostname_keycloak: "{{ stage }}-keycloak.{{ domain_env }}"
shared_service_custom_additional_hosts:
- name: "demompmx-connect-data.smardigo.digital"
ip: "{{ shared_service_kube_loadbalancer_private_ip }}"
iam_image_name: '{{ shared_service_hostname_harbor }}/prodnso/smardigo/iam-app'
connect_image_name: "{{ shared_service_hostname_harbor }}/prodnso/smardigo/connect-whitelabel-app"
process_search_image_name: "{{ shared_service_hostname_harbor }}/prodnso/smardigo/process-search"
wordpress_image_name: "{{ shared_service_hostname_harbor }}/prodnso/smardigo/wordpress"

@ -0,0 +1,143 @@
$ANSIBLE_VAULT;1.1;AES256
31373136616539393331636662663331616138323331363263383163383737633437343263376163
6635343834386131323435653332343039353338613037370a303037643066396434383930616537
32613337346437633136323630633031343064333830373630633437393061333431386661343431
3939633730623534610a373136393531316234303338663931663030303537376135396132356531
61323032353534646663356631376666356539353666333633633831306163656430373066323863
31653232343533633036613538333137343864326462653763633331323134653439353862623932
30623531313763343737313433356139383334306163383564623062323561616666653837303735
64356164633139623464323336323830626236373634373234663135366462393032653763313030
62303831616430663231356133333634616335636465373735383964383230393265636536623734
34393965356132356136306231303666616462303334303735343864616363616432663964666464
38343666326238363361666639323832356638636166396562633535393233306361363161373862
38323738353863653361616364643436646461356363666465323633386533396235333434393332
37323361373366376463666335303737356333613830306635383930626462646438623862613231
64636661303737313666353835343936366330366264643635376332396265626334626630393332
64346131386232353763326665356464336564306130323162363635323864623461613934373464
63373832363538663237666630373661633262353561316662656130386531396331383733313133
30313065393063353330353039336337303934326363636136616335316139663065666163313236
37613434663361626631623765373362663337613239393264323935383336336634656332373266
65313838323831623234393764363931333630636636383439303433626263326232663062323233
65383165636532663463636462626162656531333463313939666131386531363866343637343234
61336666303335376636626237343038633162356437323565623866633737326333653734363834
35376232373232323834643138303638306563333266323739363362653661356132613131633738
63373463623139313833313139386364326234303335656532306465633636313462376334353763
38343339393866636230323131613635626663363065336266623933323133336566393165323631
62616136363262383438636137633631303465343563633461356338333162373936366235663538
30343436623132646531643036336430626133643036313930373135326537323932623636313566
36653037313964616163313432313566383631626164626531346164663064626266346431336464
62353832313464616338323931333737303636663837653835333561373361346132646437343161
34356130343539636133306164346563373230616234323964393239393031333331646631326663
63353763626134666464373935323663336531656535633664623736643837346131346537383736
37623438613733393831373365376231383636636364363934323463646331663938353931333962
39393066656237326337353730623631636632346631616664323135313562333837373161643061
30316162396464323961653135306535396630646639383165643537616265303330373733383730
39633432633562656561663562383030333637336636663431383438653237306164653734646262
39353137363965386439643664353434356263373964356234376361303530613062663134666437
63333866306365343161373838666463303933666533616635323262633130346163656162653439
61383037373139663561366665313666643032613632393265326530616662306334346465613763
32336238613361643662396639613138336134636338396134366639623334336132393839653839
34323638323332663330323663613235313766663435356634376535316561643764613936646430
34336539616335633732363137366131353963373632356131616163623734663262616237643234
38373662383633303739303539623861346263333465303335346234666261633132323739346161
64313261396239313138343962376364656565653839333333383535663839343561323336646336
65343062393662323431303561376232616438623061643561333838663762393263333263373730
34326434656331376361653761376165643561326238376633366163646433373465393337666339
64326530643939663931386634626364636163396431396633326239323438366364643835383064
32633065323066346366616239623530663861336566613965306638613634366433663539383833
31373831333363323364633036356264653434633863656465303837396132343466303262663532
62303466396434303739373738303539616535633566343637333865623732323965656261313462
66316131613938623732313531346436323933646231363464393435663565396633343131393032
37363033356265383365646163636533313536623366316330653565303661333031633132353535
32363961653964383231633931353162396330366466343639663130623664333132336364353062
36653363356562303235623735653965313833616562646334333639363834633964313633626534
39373235363263316532366166383133396339383237316561363130383330623663663366316231
38653965313466346266333834616437613036363662376339323734643864363561383032646461
39383935643430373539613262623138373537653431323462623138356338353666353661656637
36353030633135353937316636333332303931326233393131316361663564353662656534353837
38643666636134353439633633616666646665633962343639363863323064326630386135633661
65303332633934373131663731353036626661653434386464306666616136313933326565313862
38333132316135376532343932653235393061653563623666363161363131383735633362306564
65633135373433613738613464366334343937323333363063316163303064383130353931316433
63366537306633633133336465343830383333316235666237613665316561346266313162616130
63333661303566616337343963353933376463363133656534616465643133653830613266326165
32326133626366376535303030383636653632656164373764366338386232336239653432336439
31633164393562633337306431366330623733393963373033366265353462376235353333393735
61313939306261376535353166666536383566373235643366636335336361623833653735326532
64656334376539316162623832316136663036353964313836613138343037393534663438653564
30303265346537616632343764373038303462326162646666386238386132386231313863323333
30373665373234316437333264356130613436653532396166376633343038346264373461323335
65633336376333376338343365653236386636353637306239363633363933613263396661303033
38646531653335313830666261376532313336336338613562313264616135646638346232656130
61613332393038323264636164653131393838393662393233343037663639363039356438386135
64356434313236306165346137633564636264653739323138666235333032393666376535323566
66356632386338343635633637313832373365653732303833303631643437616265393363343334
32356631386662613865353333303437326538626137346661396663356630663039643931656138
65306162333162336265656464623761636464643232303330643436656430626138353034653030
31366235626165636130363663633966396436366363336332353336613861656434393939626361
61393834396636386462613362383061343432343436343334626431633032613836626334313863
34333365613332336365636136393864306538333266626536326138623466656239376235316235
34636634333136633438623636613562306461626163393433376433373330323361613235336239
33626133636432303532623662653866303965313662363837353737663239393361643937366534
32323765303232346163303264353266376263333733623762656632643833366335636232633834
37636362376665623437623730373737326261303835643336336363356130633637343966353731
62366335363065626164613864663032313133643363366131643266306164653539303239303530
62636535653035336464353138653366653239376361353639646566343762333063623535636665
35373034313034613064343264643464656532343464343863373034616236306236336238656164
34303831663466643766383136373331623361316131363632343735313738383337626466626263
38386564346633303539343862396238656339666631333461626266616238363361306364323432
38663539666663646363323433613464323762336665643732306262393638663063326461653036
39653532373537646237363966386339613833383264396465613134306637656563636461383432
36303739613332623339626335393662656136663631373834656636393765633938336662646137
65323736336630643334633637616664663338346261336135313333383434326465306333326133
32656237616664663964313130376664316234396432353036386462376331623462636539383233
33323936663663636433313436393132353061373031376464646666343532353539306665396464
38623839306534333164623762653565653063363066633135326236393164393732646436313862
32383232653062336539633462353761633938316362626666373664376362613036653836633964
65623761633166643639333136313935663433353965306665643939633665303365333162383833
33396566326139373831666666353764316232373066383036343236303636353761323564623134
36376433626230303138326162373432393932333763393930623462333162396664396634316631
38376538323032656266653236373237643366326362303565313930663438656534383239306338
39386639643731366638616538363835633130343738626238336531343666663561656436306361
64343963373135376638646666363233646539333130313134636434633161383763356531663964
33643261383062363438323164623235346631646236623139323635346534386137306638636535
31303166373934613764663639303135616331663336353163376632346262646636636531346162
31656661333138373762353737383835613065613964613231663266333632383963396462653231
33363231343563613261626264316332633934616362363137386238303339643030386630393333
64306236333339626630383637643663306135643664326465306563323430373731313331316134
39356264316533323635306639643738346361386261333632643265303865336166326232373462
30653937396662623861643430633630373535366430343239376661623837336565616661323239
37373766353730323037643934633164323764656632393734626261333033353261636239613234
38343566393832643938643433366565663661343530353465323533306430306331306365323631
36373163616564336437336566643539333439306638393264373631663331323134303738663935
39386434393238333739326532353839653465323932663033313136386334316438656162303665
30346664613635373438663166656662636530313762636465316632333365643266373235343233
39363934366333353136306363306134336433623031663965653833303361363932636663343933
62313164616661633035646131663438336232343263626531316234336263633839346162363361
35326338643131633066313466343334643631616564373637333734386436343865326335616630
39363763316262613338623631343934386436666666313361356531316632616631383734636539
39303939613361383136313261613363653338646534343934326133626338353935363666353430
36393237376430313338663438323630343930313865666333336432626565356465363731376436
36336433376466313438306166343539653161666438663538343638306663653862383035326434
35386132333031353438633039333633346237336239306637653362653038313465313464316630
32666363376436653263353237633333643536613337313337306164663630316337656161643630
39303831336531303634323761636330636136373861343639366164643864306230616566643863
36363362333739666234363030663731386638366433323063316265663839393932366231613131
35386166333835643565613964613432633635386134663366323637666666333764333735303332
62353264663063636563616565306266623362656565356435306261653234313762373739373938
61306539633832623362653461316638636230393838313037663330386662303830346132356565
64376334353330663639633839326362633762306635613631303464633561613235666437373961
31333663663234333237623566393065323930643661373532633430313432666435366537633062
30633261383935383534333439346230656262393137616366316535616235616666653334306137
62333235323338323864656539633638316633366265616466386564303065356364386234386235
31323161326361383962396439353335376437623133396264333339326436646633386238643666
64333461623533393434366132333738356533326566353935653034633161643532653965383038
65346432626664656435343065373736343763343935656563303938353939313862633562623861
66306137656230336238626337653231306631356130623936393061353736656461613936343666
38383732383862323264373366663864656630343532393432306435663262333465323630656136
61616162396233303939356362396565323232643231343530326236333763316437366330633134
31386264633336376563363737353365653238643339373163643332336663306230353064653335
32343437346431366138393433613565653764336236336133643932646237353733383931356162
38623538363538633961623461336633386530666636373666653735643762353730366631646166
31646330353862383466376666633934643164616533346265633430383766616461633565313935
3535653434646433663366643238313734633737343437393561

@ -0,0 +1,28 @@
$ANSIBLE_VAULT;1.1;AES256
31636439396239346133316438386130633933623133663134646435666433363863333638656432
3039626563386234636566363537616131313435656231390a666139303739383833346333643765
34653761306661353039363463393836313335316266316239346430653864333361656164353336
3766393230626638380a636131356239303432376563353063316665383165636234343261313037
31626531653332306366323233323364323437306566633434353966666435366162366230633739
33663664303138303566393963653733396434616631363037653137343637623137346464656336
61643832353339633132363663353162666431633834353439666439356131373462366663343032
64303362626464396238363535343466633330616238326131376336353636366366363264366137
35616139363034346463303465653066376130376434633264636334363766646563623366643231
33363235306235366135623131366431336561363836386665346438393632653836346539653233
66626361383561333238353136333332353836646639363066376665363238653165303434633861
37373365386162663739343537373163313663373537616130666163373334376266353262306130
32373161663732396163613035383232356462376232323238343432303931663864366334383137
66313037333031306366653963373865366161356635633565346433656532303932336238393764
64323061636534666137346231666435666433316665303238633164303331636465663632653332
33616463326632643331666463353435366632396266663738616130363838343162613535656132
39333536393738373537386237376235356231393565666337393237343436646330613935666439
30666639636234613236623537393734366630626332636165376333663962336339643534306336
65663435363737343935366236346637343734633861333031393737383363646264373463363735
66323462333533613563636331393562616331333332616565653133353636353864303637663064
63666466353432386534383537613831313634323266366364373934313032383364333631373435
64323661373764643638613731326565633663326239306132616362323661653537643562366236
33376436646238663634356536353563343830313862393963333766353266386333323334653231
62383430623262626362383439313236343861316364646663303865316538373639613065636361
39393963366466623663396230373837343531613565643034666131356435313063636235623132
65303864383161326364666366343133326435663832633932633532323765323931643933636364
373236343364616432313762313133346165

@ -0,0 +1,80 @@
$ANSIBLE_VAULT;1.1;AES256
37313336363731346436616536386636623333646135306365353738323239366366303730363038
3336643362616238333336323339663362346238626135330a323765633533666338383965653839
66373236383165343637653839616333613039306661373731376139303134313333653265363133
3066373037383936620a613839373138376432393437346366666231323761663738366464613737
37366532613130323334356436306433666535396231323132363461643863643061366163306535
66323838343130633938656331346333636431323237343535353464393633656430343164336233
62393236646264656633336438323633626661656433616237363730383835386235393332353433
32643732336365646534383532666333363861626533386238363263333265366631663333383735
65396239313538326232663065393434383536616330663361663736326265333464313235616633
31636632663737343338333732356137643065643935376566626365633765336237393231666332
34373034376133613164663332613464303265633831343765373664346436343564366533613736
61646265353133333965663165663364303337306362623264363865613938623637376235343335
31336362396530343462633466303463663139323166623736396165323139323966333731656131
31346665666630663332386231376539636230646534666537336632626637323739313539303064
37363764383839623338666465333939653561626162346664376439666136373166616531303966
62626339353764353434343539626130616533386263356237623365396438663939323966373237
64343663336335363264623466326637633764363162626563313637623831643434663139643637
35326335363166383065663965653665623065356635303739663036313066356639353233333032
66636539353135343336333831393961336139353638616161626331366530303338626266666666
30343965376264633739623034646239663463653138303239366338613664633431343130323034
65333866363638613831303532316236626531393732613462396238343062383562303964396336
38323965316539393862306131656462616363383136396138663865386664383036623232666238
39373136336334643762316161303639613466326665396462393934373133626335653561326336
35616539643439383237313830646565396135393238363864323334333861323536623338303737
61356566643238376633613538353435623536353763383762383738613266643733373838616266
34303862643238363332323334383264333434663332303130643266306461386533313837303466
36323336353636326436353631633862653134313762346362343863363761303164616134396437
35386232386134303437363065646663306530633631613062656333373961393462613234666162
62393137396337616539393161323063396264353264613864636161393735386431666666393335
66656463633238633034383932316466646433373930313333616637636431623463353363366664
64336139393265353732313731633733383966353961363165666130663631326634306338366566
33323230323166376638376430623961663036623765313936646630306366356430653065313266
66326532306235343066643432303938393535613766643734396262643338333162363339636462
66613664383039323166336363383139386535326434383936393631653733323662313232656161
63663835626563326338303566313736323964363738353965313265616537623463346437363835
64356561366662353537653737336463333434333464316239326136353431303237366262316561
35363836396366396263636363656163323634643632333333393966323862373162383537336538
39626433393931393639396537633639633233633266313435373863306232316137396632306163
30343061643337663634313334366630633835653932663236353239626431303761323135633735
38316230353935363031626565646539336133396665333464366165656335333337623338303837
63646431646632356132303464303665623738613937653865623231333865343736633837333865
30373230646163626461373735616538623866313930623533323462356538633635623536323963
38343131636131343461393535393434336564663732646534653438396634353063653937613131
35333566383731646261393038306336643563346134653630636537633537623931303262633432
33373838663332353465363437376330393137633133346363323737383634373863643230346136
31616434386633363739306239343930313466613065656664373331366263373161396165346530
64663264343433333561353232663635353037353466636562366435666235643665613461626561
39336139326337626566623031653765613235396461363733643436376430666533353135306135
33623064396639343163303938636665653337303438626634313034306563626463636239373932
61393339323133356331616665306334323363643165333334353837396434633634643661396561
62363638373537316237393635616636633465303332623961343139383634396437636561633165
65306433363036366265396438613161306334303866343635346632613837653435626366316235
33303630373838303965636564636462326239313130636666303032303363313330643339393539
61626566663336353265303235366634393130626232653363316634666436663030336539353835
37376532633465356235393565313334343665316164353733613638333763633034336564663634
33313464333036613736653238353033323331326236376436346461643634383930383336656263
65363734366166336465393664626435653066303134346364323961613234346532366635633532
65663565613066643932316638373530393031643132613032333964333237636664346630633634
66323030646330653835633133343062663834333231343631656533616164633632316135333937
31393039303933396232383864626434393063306436663364333930336438363261333930653462
32303037353330363838376264303736306138316331313964666337393734656266316331353964
31646665336338653330336330616265383962613562376331613963613630613037396435356338
34373666323263656334636531633165326431366666393930306336633530333736393233363562
66666463623437373535363765386565366334633032373261613031613632656135333838356365
61326265393237356630336235316263313437393937333336393162343664346366303030376537
33353866353139613233353739353961323937643962393665643937393637343631373739333234
30303563356363316336333835373164376132623631393964633236326563663336663737333339
39303162626466326566383939373335616139353665366130616634343865303232373265386330
31363861303832363535323030636333316434376362356530653139373761663463616263656435
31396531343932646661626632316436366264333162353937303437373631646235336239666164
66616133653137316432666632326333343732356161633263333630633766303261323334663663
64613132633036626433633961383935313139383932613139656463356631646531613064343365
31306438313631333338333730356332636163383662336362633535356337613935343762346338
66663162363163623837343835643236333663396638643365626266653331363161623132383231
30623935396535613532343032313262663961396233323531373734336633376562386638386230
61623761303731313434383530386562363438303330613431366537326163353666323239303661
64366438363134323135326337633032376532393731343537373862666465333237306131393665
63376437386134323535623766366461303237303361613065343635663263386633653032316461
373863313430343636663931633062313736

@ -0,0 +1,50 @@
$ANSIBLE_VAULT;1.1;AES256
38316431626139323830383536383065376138333165316365383164376631633261653735353731
6365356664653964346465613031373135396463376331340a613661653335346639363631353765
36613038393562373964623738393532323763663261326239386536633034353862393263323132
3638613932303763660a396666366235336465303964663563376333656465373338653637326265
32303162363837313561393936316636326434666133313734623039363231343632356534363435
31346166636334386637656563323266633736373233333234636336613934393765383438633531
62633539393866323634363435326664653932363163653665303063393732363331303935663566
65363161393136376461313738373266646462303232613735363135646134376134393966633161
30626363303335636134386234363733396238633435636263386162613235636234353132613534
66306634623535313436393463363236633436613261333039663837383837393763373039623166
37623237666338623337383330346661623139373036613833653934333737383463396539616339
65633239363466613539326663383261346231383566373139386465613434316362653766383032
39376432303563323035346436633663343430643561636238633838663062623964643632383463
32336562343837626561326137353833326262356238393138373137336532356134643764656462
64386663666633353663623561393166613461643037656334393864666637356437343932353561
31356335333761623261313530343961326566623561393337653531386162346537383531303437
39663265656236626232333730663161363139353431396364353139633462373762366466326661
66303961316539363333323764656534633863393938363634353132303662343938333064333935
32373733333334636363313937366132303233393763326463656238366439353737303436366437
63663331376561663238623865366363396133653838363531653261353436353631633765353163
37383632366638393339356430393561323864636537613037626365346465613531336264336564
63373634626165613166643331353935306366653233336132303035393661636164646536303533
38616230373531393863316239656562333161613934353331653935663731353963333238373761
64356566373266386535366562613466636365623034373332613366383432663262303431313465
37356562376661623566356130613931353937366163356337616365323131653266623366663663
34636265316463343230623332303332303735313935393466326133323861616233393363393063
39626436303865663132663338653563326666643536663935353239623830363363303231363034
30633833653135363838376663656665383830383661383863356338376337323263386235323436
36383634306534353864316564363562623439306263326333333565343334326635346238333438
31666336636337326262666331653131323365343663373835386335326364653166326531393866
36303966353838353165316138303066313539326137666232613033623936326234356237613966
37313135393139333265383230376434373338633764633730653835363836373137346664613135
32346638303765323666646462393466653631363966333830333137616335346439346237343539
66646664316233663362396638303863623163313432363862306366623436653864373434383833
37353037643434666263663134613936303961393135363661363263373935356337636333353262
31306261356266623139653563666634656262303030326136633231366135653662646535643032
35366237666431393234633062346565363765666531646662623932323335303938653735393562
31353835396531663132656134383730396664363562636361633663383266623330326234613533
30326132303661346230313833643935323964346331656133323636326466393032663436346536
64386632373966656466623736366437346661353266303630396166366634326266366561643462
37653031653233653935346665313039373865346263376432303533623165363564306532383231
37656134333137343264333964343130343862323930616464353538646133376536373837636631
62386662666465646365383363666637313665353535343333613362373764326336306163633762
33303764396461653164393066333437303165303462343634313339366230656563346533333865
31303135313762656139386334633732363265623630303662346538346166373165383237633730
66326264653964373434353833323061383632303530363936623130613436643964346535316334
35373361353334643132353134663636313334623539346235626363373139646333616561353865
62306461333062306261613833643665303639373831333861633937303134653836343430386438
65326565313161653138336262666333323936653838386634333738343730353636

@ -0,0 +1,10 @@
$ANSIBLE_VAULT;1.1;AES256
62326464383361393762396164366461366133353033623562626630303131373064653166323932
3364343534333766353431363662636334323863323731370a333530633639393239303063323966
32616536373232366232653030393962336465383864303030613232353263333936626162636135
3864313839616130350a396663323033613532346535393262623731343439346262393734323934
38613833626130346330613033313366393938356132383232353265356162393561623738663463
32333665613766643835643135653862303934663539386235623432313038376337636565653064
34373635393865373461363538643264373335653330356133366438383234663035343639313731
61393038656463323437343564336435326162303835336265663035636433616664313539636338
3035

@ -0,0 +1,10 @@
$ANSIBLE_VAULT;1.1;AES256
32616238386334306434636635653633656664383664333533363965346230303566623330396464
3634303337393330646330656637636634386230663134620a323065336137653730666230326633
32336566636130356461373435663335363233376535303465383430313661373439626337363432
3536343531336163610a326137383063666266313863666566666534333130323663643761663866
64356266376230643138663834306263346339616164303265306365653864346264386561636230
30383761663566366132666563373066643566663662336661656531613165353030626437376539
32363363353131643435613934353935623832333334663139343739633938373936633937356463
32363435326334316531323934303438646561616238396331663938323330643739626562386639
3861

@ -1,7 +0,0 @@
---
awx_operator_revision: "main"
awx_smardigo_revision: "main"
jaeger_operator_revision: "main"
jaeger_smardigo_revision: "main"

@ -1,3 +0,0 @@
---
awx_hetzner_ansible_revision: "master"

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save