Compare commits

...

376 Commits

Author SHA1 Message Date
Moritz Jörg 9e1beb6895 Add more Nix Apps
Rewrite of some of the Apps to Nix. Tried to convert
ApplicationSets to simple Applications with an ${env}
modifier.
2025-02-21 17:47:45 +00:00
juselius e3b1ef76da fix: fix amqp password 2025-02-04 17:02:42 +01:00
juselius 6663fc2cc5 Merge branch 'nixidy' of gitlab.com:oceanbox/manifests into nixidy 2025-02-04 15:43:37 +01:00
juselius dd7e28c2e2 fix: add bast and oty to sorcerer dev cors 2025-02-04 15:43:24 +01:00
juselius 6976ea8d93 fix: only sync atlantis db secrets if bootstrap is enabled 2025-01-31 13:25:45 +01:00
juselius 8421acaa25 fix: unify atlantis secrets policy 2025-01-31 13:22:27 +01:00
juselius f425a1c551 fix: update prod atlantis 2025-01-30 21:53:54 +01:00
juselius d8a3706305 fix: fix increase prod-atlantis replica count 2025-01-30 21:18:03 +01:00
juselius 1ef512e2eb fix: fix prod-atlantis sorcerer uri to prod 2025-01-30 21:16:40 +01:00
juselius 39e69dff7f fix: fix prod-atlantis db and disable bootstrap 2025-01-30 20:55:39 +01:00
juselius 5d86e81fb0 feat: change preprod to prod! 2025-01-30 20:45:33 +01:00
juselius 265f188f66 fix: fix prod-sorcerer replica count 2025-01-30 20:23:38 +01:00
juselius 2508817f30 fix: fix redis prod env secret 2025-01-30 20:22:10 +01:00
juselius e04dd170ac fix: fix redis prod env secret 2025-01-30 20:19:13 +01:00
juselius 861f288ec0 fix: fix redis secret (static) 2025-01-30 20:14:12 +01:00
juselius 20de965607 fix: fix redis secret 2025-01-30 20:13:16 +01:00
juselius b63d89d9e6 fix: add missing redis 2025-01-30 20:10:37 +01:00
juselius c9ba27539e feat: add new prod-sorcerer 2025-01-30 20:08:09 +01:00
juselius daa4a87597 fix: update atlantis preprod 2025-01-28 10:50:28 +01:00
juselius a96c6c28a9 fix: update atlantis preprod 2025-01-24 16:29:36 +01:00
juselius 45f598fb8b fix: update preprod atlantis 2025-01-23 21:04:20 +01:00
juselius b0cdab1790 feat: remove rabbitmq secret from atlantis chart and put it in kustomizations 2025-01-23 18:09:26 +01:00
juselius 28e2ba87eb fix: fix accidental lowecasing 2025-01-23 18:08:27 +01:00
juselius 89e99bed42 fix: ignore redis secret 2025-01-23 17:03:49 +01:00
juselius d30ec463bb fix: fix redis secret name 2025-01-23 16:59:13 +01:00
juselius 0f8dae5436 fix: update preprod atlantis and sorcerer 2025-01-23 16:43:03 +01:00
juselius 2422db91e2 fix: update atlantis preprod and sorcerer beta 2025-01-21 10:58:57 +01:00
juselius d7117d18b8 feat: flip over to new keycloak instance 2025-01-20 08:58:56 +01:00
juselius befe13225c fix: new atlantis and sorcerer preprod 2025-01-17 15:27:16 +01:00
juselius bc71b78da6 fix: update atlantis preprod 2025-01-14 18:52:26 +01:00
juselius f1385b8d0b fix: update sorcerer beta and atlantis preprod 2025-01-14 15:54:55 +01:00
juselius 87e3219c0c fix: add redis to sorcerer 2025-01-11 21:12:18 +01:00
juselius 74fa77e91c fix: update atlantis preprod 2025-01-11 21:11:44 +01:00
juselius 5940db6833 fix: update staging sorcerer for maps.beta 2025-01-11 16:37:04 +01:00
juselius c02d40564d fix: update staging sorcerer for maps.beta 2025-01-11 16:19:36 +01:00
juselius 934ea43ae9 fix: update staging sorcerer for maps.beta 2025-01-11 16:00:06 +01:00
juselius f0eae55b5e fix: update atlantis fga model 2025-01-11 13:36:22 +01:00
juselius 423b9ce28c fix: temp hack for preprod atlantis db 2025-01-11 09:36:51 +01:00
juselius a93031b11b fix: fix atlantis env secret policy 2025-01-11 09:36:14 +01:00
juselius 4fc69cafe6 fix: fix preprod wankery 2025-01-10 14:04:29 +01:00
juselius 089096f936 fix: fix preprod wankery 2025-01-10 13:50:16 +01:00
juselius e3c174a995 fix: atlantis preprod tweaks 2025-01-10 13:26:56 +01:00
juselius 4830a58ed9 fix: fix pølsefingre 2025-01-10 13:16:04 +01:00
juselius d47ee8f5f1 fix: fix atlantis subscriptions 2025-01-10 13:08:02 +01:00
juselius 211db0669f Merge branch 'nixidy' of gitlab.com:oceanbox/manifests into nixidy 2025-01-10 12:49:01 +01:00
juselius 386c098373 fix: update (pre)prod atlantis manifests 2025-01-10 12:48:34 +01:00
juselius fcde51b19e fix: update atlantis beta 2025-01-09 18:51:44 +01:00
juselius 20a34d6bf0 fix: update salmar client secret 2025-01-09 12:40:15 +01:00
juselius 8d666f5722 fix: update aqua-kompetanse client secret 2025-01-06 11:53:49 +01:00
juselius a0c5699c71 Merge branch 'nixidy' of gitlab.com:oceanbox/manifests into nixidy 2025-01-03 08:50:31 +01:00
juselius ea7b4d7d01 fix: update atlantis beta 2025-01-03 08:50:15 +01:00
juselius b20300e315 fix: fix appsettings with oidc logout endpoint 2025-01-02 20:37:24 +01:00
juselius fa552169bc fix: update openfga secret policy 2025-01-01 12:05:54 +01:00
juselius f2bfd484b4 fix: change openfga db name 2024-12-31 15:30:52 +01:00
juselius e1317584ce feat: add policy to fixup openfga connection uri 2024-12-31 15:17:08 +01:00
juselius ff3407f80c fix: fix image name 2024-12-31 13:49:24 +01:00
juselius d05f619618 fix: update openfga postgres to 17 2024-12-31 13:44:17 +01:00
juselius aaf7fad09a fix: fix (defunct) keycloak frontend url 2024-12-31 13:43:23 +01:00
juselius 4498df8aea fix: fix staging atlantis app and tweak keycloak 2024-12-31 13:34:38 +01:00
juselius 0726aa922b fix: fix keycloak admin ingress secret 2024-12-30 18:47:11 +01:00
juselius b291bba5d1 fix: disable keycloak admin ingress 2024-12-30 18:37:19 +01:00
juselius 2f8e31b829 fix: fix json typo 2024-12-30 15:28:18 +01:00
juselius 45b46e2394 fix: move staging atlantis onto keycloak 2024-12-30 15:19:26 +01:00
juselius f9231e96a0 fix: disable keycloak cli job 2024-12-30 14:14:52 +01:00
juselius fcc0994c38 fix: change ingress to auth.oceanbox.io 2024-12-30 13:47:25 +01:00
juselius f065b69ab7 fix: reduce old keycloak replicas to 1 2024-12-30 13:43:53 +01:00
juselius 2ea3e85c3c fix: fix keycloak and remove import-export sidecar 2024-12-30 13:40:53 +01:00
juselius d176df16dd debug: add import-export sidecar 2024-12-29 21:50:31 +01:00
juselius 43c6077d9a debug: add import-export sidecar 2024-12-29 21:47:15 +01:00
juselius 3d67b97222 debug: add import-export sidecar 2024-12-29 21:44:06 +01:00
juselius 3706f37030 debug: add import-export sidecar 2024-12-29 21:41:07 +01:00
juselius dee898a97d fix: fix(?) admin ingress on prod-keycloak 2024-12-28 14:55:25 +01:00
juselius ce1bbcfda2 fix: tweak ingress for now 2024-12-28 14:46:17 +01:00
juselius 3a17a72924 fix: enable admin ingress on prod-keycloak 2024-12-28 14:34:51 +01:00
juselius b46c2cb456 debug: missing account token 2024-12-28 13:35:06 +01:00
juselius 2531e40a80 debug: missing account token 2024-12-28 10:37:58 +01:00
juselius fdc3de12fd debug: missing account token 2024-12-28 10:25:00 +01:00
juselius ae707279e7 debug: missing account token 2024-12-28 10:20:45 +01:00
juselius 0ce818e2f5 debug: missing account token 2024-12-28 09:44:12 +01:00
juselius 4c7315c5ba fix: add keycloak ingress whitelist for now 2024-12-27 22:43:02 +01:00
juselius 768c54db1a feat: new prod keycloak deploy with cnpg database 2024-12-27 22:15:17 +01:00
juselius 0f62b0b01c fix: update keycloak theme (perhaps) 2024-12-27 18:05:06 +01:00
juselius 13178964cb Merge branch 'nixidy' of gitlab.com:oceanbox/manifests into nixidy 2024-12-27 17:54:59 +01:00
juselius 83241d90f9 fix: update keycloak theme (perhaps) 2024-12-27 17:53:39 +01:00
juselius fc24cee169 fix: disable keycloak admin ingress (again) 2024-12-27 15:02:27 +01:00
juselius 768ccb8fd3 fix: enable keycloak admin ingress (again) 2024-12-27 14:24:19 +01:00
juselius d2b03dd2eb fix: remove redis secret from atlantis chart 2024-12-27 12:26:03 +01:00
juselius 22cab489a5 fix: disable keycloak admin ingress 2024-12-25 09:23:33 +01:00
juselius 5081ef9a13 fix: run keycloak in 2 replicas 2024-12-25 09:10:15 +01:00
juselius 38f80bdf48 fix: add missing ingress to keycloak 2024-12-25 09:02:12 +01:00
juselius 674dfa1ed5 fix: add missing ingress to keycloak 2024-12-25 08:47:13 +01:00
juselius 1f7a82e895 fix: disable redis-stack for now 2024-12-23 08:21:08 +01:00
juselius 1a39118763 fix: use unified external redis for sorcerer and atlantis 2024-12-23 07:31:14 +01:00
juselius 50aabe96b8 fix: migrate from internal to external redis 2024-12-23 07:23:06 +01:00
juselius 261f287e53 fix: secure keycloak master realm 2024-12-21 18:39:57 +01:00
juselius 3b1d5e0ee1 fix: increases prod openfga db replicas to 2 2024-12-21 08:44:40 +01:00
juselius c58e2f675f fix: upgrade dex 2024-12-20 14:42:01 +01:00
juselius d836ff2cef fix: add itp as a test domain for multi-tenant 2024-12-20 14:40:05 +01:00
juselius e68c57ed05 fix: update atlantis and sorcerer 2024-12-20 14:27:57 +01:00
juselius 1c713f324a fix: flip dex over on nixidy branch (for now) 2024-12-20 09:52:38 +01:00
juselius b7631bf882 fix: flip dex over on nixidy branch (for now) 2024-12-20 09:49:57 +01:00
juselius c21945811e fix: flip dex over on nixidy branch (for now) 2024-12-20 09:47:43 +01:00
juselius 426fe34412 fix: flip dex over on nixidy branch (for now) 2024-12-20 09:45:24 +01:00
juselius dd3f44ff52 fix: update dex for upstream multi-tenancy 2024-12-20 09:24:31 +01:00
juselius d299f4a21c Merge branch 'nixidy' of gitlab.com:oceanbox/manifests into nixidy 2024-12-20 09:16:25 +01:00
juselius 000161461f fix: update openfga uri 2024-12-20 09:15:11 +01:00
juselius d69830cc47 fix: fix openfga ingress (use production certs) 2024-12-20 06:21:29 +01:00
juselius 675e3299a1 fix: update openfga 2024-12-19 19:26:27 +01:00
juselius 219bc47465 fix: update openfga 2024-12-19 18:56:06 +01:00
juselius c31bf79671 fix: update openfga 2024-12-19 18:52:23 +01:00
juselius 903fbdbaa8 fix: update openfga values 2024-12-19 17:44:12 +01:00
juselius 83a025cdcf fix: fix yet another typo 2024-12-19 16:39:16 +01:00
juselius bc7c15db24 fix: fix typo 2024-12-19 16:02:44 +01:00
juselius 73555a2d80 fix: update loki, tempo and openfga apps 2024-12-19 16:00:53 +01:00
juselius b19abf333d fix: update verisons and ingress 2024-12-19 15:56:36 +01:00
juselius 5b8732ae04 fix: revert servicemonitor port 2024-12-19 15:52:35 +01:00
juselius 3a49ef6c53 feat: make servicemonitor port configurable 2024-12-19 15:27:16 +01:00
juselius 4d9c401ab8 fix: fix typo 2024-12-19 15:22:07 +01:00
juselius ec0344ffe8 fix: update sorcerer and ingress paths 2024-12-19 15:12:31 +01:00
juselius cc85d8eccf fix: update atlantis and ingress paths 2024-12-19 15:11:54 +01:00
juselius 4131917813 Merge branch 'nixidy' of gitlab.com:oceanbox/manifests into nixidy 2024-12-19 09:55:04 +01:00
juselius 0f3f8b7a38 feat: enable dapr-api-token 2024-12-19 09:54:55 +01:00
juselius 64048984a6 feat: add internal ingress to sorcerer 2024-12-19 09:53:32 +01:00
juselius 8989cdb100 fix: add kyverno policies for dapr api tokens 2024-12-19 09:50:33 +01:00
juselius 95fa446986 fix: update sorcerer 2024-12-14 20:35:01 +01:00
juselius d2e50f1776 fix: use multi-audience tokens 2024-12-14 19:12:27 +01:00
juselius a0d937e40a fix: update staging atlantis and sorcerer 2024-12-14 12:02:20 +01:00
juselius eba8f961f0 fix: update staging atlantis and sorcerer 2024-12-14 11:50:21 +01:00
juselius 8edbe0e078 fix: dapr component scopes for sorcerer 2024-12-14 09:10:15 +01:00
juselius 61403261cd fix: update atlantis 2024-12-14 08:59:30 +01:00
juselius 721049e742 fix: update atlantis 2024-12-13 19:24:05 +01:00
juselius 69cb89aba1 fix: update atlatis and sorcerer staging 2024-12-13 18:48:16 +01:00
juselius b55c36832f fix: fix atlantis ingress 2024-12-12 16:06:44 +01:00
juselius 90e1e35e0a feat: rudimentary fga permissions checking in api 2024-12-12 15:45:17 +01:00
juselius a8c29c6b00 :fix: enable atlantis ingress 2024-12-12 15:24:42 +01:00
juselius 57a9246b35 :fix: update atlantis image 2024-12-12 15:19:14 +01:00
juselius c96fae310d :fix: enable atlantis ingress 2024-12-12 15:18:24 +01:00
juselius 4e5fcda742 :fix: update atlantis secrets 2024-12-12 14:59:13 +01:00
juselius b331dff18e :fix: update atlantis image 2024-12-12 14:56:44 +01:00
juselius d1e9df5b35 fix: update atlantis manifests 2024-12-12 14:53:24 +01:00
juselius 4ece141ce0 fix: update atlantis manifests 2024-12-12 14:47:14 +01:00
juselius 9d9836bffb fix: update atlantis manifests and argo apps 2024-12-12 14:38:26 +01:00
juselius b12146c054 fix: fix sorcerer redis settings 2024-12-12 14:24:14 +01:00
juselius ce94dc0a3b fix: fix sorcerer chart link 2024-12-12 13:41:00 +01:00
juselius db011cfb4d fix: fix fixes 2024-12-12 13:15:25 +01:00
juselius 9b1a687ef5 fix: update sorcerer image 2024-12-12 12:53:32 +01:00
juselius e51c5eb248 fix: update sorcerer image 2024-12-12 12:43:37 +01:00
juselius 1dfdf226d5 fix: update sorcerer image 2024-12-12 12:32:51 +01:00
juselius a04cbeadad fix: update sorcerer image 2024-12-12 12:13:51 +01:00
juselius 3283758478 fix: update sorcerer image 2024-12-12 12:10:33 +01:00
juselius 5296c67194 fix: fix sorcerer volume claims 2024-12-12 12:03:57 +01:00
juselius 9eb9714c7f feat: move from atlantis and sorcerer applicationsets 2024-12-09 12:46:35 +01:00
juselius 70a78699e3 fix: update sorcerer manifests 2024-12-09 12:40:42 +01:00
juselius ca6b80d13f feat: update atlantis chart, values and app for spmsa 2024-12-09 10:49:02 +01:00
juselius 6ba97b006b feat: disable flakes, use normal nix shell 2024-12-04 15:15:31 +01:00
juselius 1feb953dc4 fix: add internal ingress to atlantis 2024-12-04 15:00:35 +01:00
Jonas Juselius a2203fc1d7 fix: add kyverno secret policies for sorcerer 2024-11-25 13:17:49 +01:00
Jonas Juselius c520f042c6 fix: allow atlatnis azure keyvault and blobstore 2024-11-22 13:55:33 +01:00
Jonas Juselius e6788bbc41 Merge branch 'nixidy' of gitlab.com:oceanbox/manifests into nixidy 2024-11-21 09:56:51 +01:00
juselius c75378a0e3 fix: fix atlantis secrets policies 2024-11-20 20:09:22 +01:00
Jonas Juselius e8e652039c Merge remote-tracking branch 'origin/main' into nixidy 2024-11-18 13:24:20 +01:00
juselius 993612f3bd feat: add cpol to sync regcreds 2024-11-18 10:35:37 +01:00
juselius b45432c826 fix: make sorcerer honor env: in values 2024-11-18 10:34:29 +01:00
juselius 414c993fe1 feat: add cpol to sync azure keyvault credentials 2024-11-18 10:33:34 +01:00
juselius 5c044cbbfe fix: disable zipkin ingress on otel collector 2024-11-18 08:34:19 +01:00
Jonas Juselius 243260f479 feat: add redis to sorcerer 2024-11-16 14:23:34 +01:00
juselius 8510a9b8a2 fix: add zipkin path to otel collector 2024-11-16 10:06:05 +01:00
juselius 77ed76758e fix: add port 8085 to local atlantis and sorcerer 2024-11-16 08:13:59 +01:00
Jonas Juselius f8d82f4f46 fix: fix sorcerer local redirect url 2024-11-15 11:49:00 +01:00
Jonas Juselius 50bf3814a5 fix: add all known leroys 2024-11-15 09:36:39 +01:00
Jonas Juselius a8da4c1198 fix: fix otel url typo 2024-11-14 14:37:53 +01:00
juselius 35b5882d3e feat: add dapr configuration store to atlantis staging 2024-11-01 12:35:12 +01:00
juselius 2203b09fb4 fix: add acl.json to new atlantis deployment 2024-10-31 14:33:10 +01:00
juselius 673bb00a9a fix: add Måsøval 2024-10-31 14:25:55 +01:00
juselius 01b9bc4465 fix: add Måsøval 2024-10-31 12:56:22 +01:00
Jonas Juselius ef6282ca17 fix: upgrade keycloak 2024-10-30 12:02:21 +01:00
Jonas Juselius 503128903b feat: update atlantis chart and values for monolith 2024-10-25 19:14:10 +02:00
Jonas Juselius 7ca0a2d397 Merge branch 'nixidy' of gitlab.com:oceanbox/manifests into nixidy 2024-10-15 08:02:36 +02:00
Jonas Juselius 474d04862c fix: enable atlantis service monitor 2024-10-15 08:02:22 +02:00
juselius ea929b7dc4 wip: kustomization experiments 2024-10-15 07:37:43 +02:00
juselius 354bd72248 wip: well, looking better 2024-10-14 18:02:42 +02:00
Jonas Juselius ed26ad8af2 wip: getting there, slowly 2024-10-14 15:47:14 +02:00
juselius 372c11c31e feat: rename kustomizations/ to values/ 2024-10-14 07:59:16 +02:00
juselius 91b56423f2 wip: figuring out how to do multiple envs and stuff 2024-10-14 07:51:07 +02:00
Jonas Juselius 768cb1ddef wip: figuring it out, slowly 2024-10-11 18:56:56 +02:00
juselius a5cf93c758 wip: add openfga app with direct helm render 2024-10-10 20:50:50 +02:00
Jonas Juselius 11b398801d wip: try nixidy 2024-10-10 16:04:41 +02:00
Jonas Juselius 61379ad665 fix: update vcluster adn remove kyverno policies 2024-10-09 14:07:23 +02:00
Jonas Juselius eb2eebaa34 feat: simplify charts, resources, kustomizations and applications for atlantis SPMSA 2024-10-08 16:54:58 +02:00
Jonas Juselius 15dae312ef fix: add hubocean group 2024-10-08 09:39:46 +02:00
juselius 2e00aceed1 fix: fix volumes and secrets for atlantis 2024-10-04 14:28:09 +02:00
juselius 1eb0e6c630 fix: tweak atlantis chart for SPMSA monolith. 2024-10-04 13:43:55 +02:00
juselius bcf6d5b582 feat: add policy to sync atlantis devel secrets 2024-10-04 12:48:40 +02:00
Jonas Juselius 7b046c343f fix: add APP_NAME and APP_NAMESPACE to default env 2024-09-28 12:58:51 +02:00
Jonas Juselius 2bc0748ab8 fix: set otel loglevel to info 2024-09-28 10:17:53 +02:00
Jonas Juselius dbc230de9c fix: update opentelemetry and tempo manifests for service graphs 2024-09-27 20:00:11 +02:00
Jonas Juselius 58abecc074 fix: phase out jaeger in favor of tempo and otel collecotor 2024-09-27 19:59:22 +02:00
Jonas Juselius aac2b7bd2c feat: fix otel collector settings 2024-09-27 14:31:36 +02:00
Jonas Juselius c4b8ed8185 feat: add opentelemetry-collector 2024-09-27 11:44:36 +02:00
Jonas Juselius b5a3585fa7 fix: update loki 2024-09-27 11:03:57 +02:00
Jonas Juselius 2a37d6d182 fix: update loki 2024-09-27 08:54:36 +02:00
juselius 0f6f5cf14e fix: fix loki and tempo configs 2024-09-26 21:47:31 +02:00
juselius 50d2c88be2 fix: inline tempo and loki values 2024-09-26 21:30:02 +02:00
juselius 06b5b3e4a4 fix: add tempo s3 storage 2024-09-26 19:38:28 +02:00
juselius a1c6852173 feat: add loki with ingress 2024-09-26 19:10:00 +02:00
juselius 7d044764cb fix: add tempo ingress and storage 2024-09-26 19:09:38 +02:00
juselius 74d429ee49 feat: add tempo tracing 2024-09-26 18:09:56 +02:00
Jonas Juselius de4e9b9b22 fix: add script to install/update staging vluster (with persistence) 2024-09-19 13:16:19 +02:00
sematic-release bfbf4ffba7 ci: atlantis 2024-09-18 12:35:56 +00:00
stigrj 1ecd8eeb91 ci: atlantis 2024-09-18 12:31:12 +00:00
sematic-release 02ea91bb03 ci: atlantis 2024-09-18 10:46:03 +00:00
sematic-release 9115931e76 ci: sorcerer 2024-09-18 10:45:45 +00:00
stigrj 3896e1ec4f ci: atlantis 2024-09-18 10:41:28 +00:00
stigrj 625b0bf319 ci: sorcerer 2024-09-18 10:41:13 +00:00
sematic-release 0b99b54825 ci: atlantis 2024-09-18 09:02:46 +00:00
sematic-release 00f02e5067 ci: archmeister 2024-09-18 09:01:29 +00:00
sematic-release 2affcfb103 ci: petimeter 2024-09-18 09:00:11 +00:00
sematic-release ee491e25c0 ci: hipster 2024-09-18 08:59:18 +00:00
Jonas Juselius 189a6546f8 ci: atlantis 2024-09-18 08:58:07 +00:00
Jonas Juselius a5175488f6 ci: archmeister 2024-09-18 08:56:39 +00:00
Jonas Juselius 7fda8cecd9 ci: petimeter 2024-09-18 08:56:37 +00:00
Jonas Juselius e4bb425944 ci: hipster 2024-09-18 08:56:16 +00:00
Jonas Juselius d235a3cdea fix: fix atlantis appsettings 2024-09-13 17:35:32 +02:00
Jonas Juselius 74936fe9b7 ci: atlantis 2024-09-13 15:28:25 +00:00
Jonas Juselius 9dbedbcf75 ci: atlantis 2024-09-13 15:15:17 +00:00
Jonas Juselius 5c95f39c84 Merge branch 'kaih-csi-addons-network-policy' into 'main'
network policy for csi-addons controller

See merge request oceanbox/manifests!1
2024-09-13 15:06:45 +00:00
sematic-release 055aa404aa ci: sorcerer 2024-09-13 13:33:35 +00:00
Jonas Juselius a24e467991 ci: sorcerer 2024-09-13 13:29:12 +00:00
juselius 2c7a1baffe fix: add testing https client to dex 2024-09-03 11:04:12 +02:00
juselius b23305c5d9 fix: add test client to dex 2024-09-03 10:31:33 +02:00
Jonas Juselius ba56ee5dac fix: disable openfga playground 2024-08-28 10:14:53 +02:00
Jonas Juselius 2316c661b0 fix: fix openfga playground ingress 2024-08-28 10:09:14 +02:00
Jonas Juselius 91407d6ff4 fix: fix openfga playground ingress 2024-08-28 10:08:04 +02:00
Jonas Juselius acd2f17076 fix: fix openfga playground ingress 2024-08-28 10:01:47 +02:00
Jonas Juselius 898fa6e0c6 fix: fix openfga playground ingress 2024-08-28 09:58:07 +02:00
Jonas Juselius d7df338c95 Merge branch 'main' of gitlab.com:oceanbox/manifests 2024-08-28 09:56:14 +02:00
Jonas Juselius f9796e5208 feat: add openfga playground ingress 2024-08-28 09:55:49 +02:00
sematic-release a839bb48ec ci: hipster 2024-08-28 07:41:21 +00:00
stigrj e536345fe1 ci: hipster 2024-08-28 07:38:20 +00:00
Jonas Juselius 070220a26c fix: fix openfga values and screts 2024-08-28 09:38:08 +02:00
Jonas Juselius 1b44b49a4b fix: fix openfga values and screts 2024-08-28 09:13:44 +02:00
juselius 4419f911af fix: fix goTemplate typo 2024-08-27 16:53:46 +02:00
Jonas Juselius 696755f2dc fix: fix type 2024-08-27 16:02:35 +02:00
Jonas Juselius 2b473364be fix: don't use kustomize for openfga 2024-08-27 16:01:05 +02:00
Jonas Juselius 52514f32b8 fix: fix openfga chart file 2024-08-27 15:36:17 +02:00
Jonas Juselius ed71d76790 feat: add openfga app and kustomizations 2024-08-27 15:09:40 +02:00
sematic-release 29fc43f796 ci: atlantis 2024-08-26 13:30:16 +00:00
Jonas Juselius a78ebd1a96 ci: atlantis 2024-08-26 13:25:24 +00:00
sematic-release dcfd063be4 ci: atlantis 2024-08-26 13:08:10 +00:00
Jonas Juselius 56ada0e393 ci: atlantis 2024-08-26 13:03:19 +00:00
sematic-release e50d16dfec ci: atlantis 2024-08-26 12:15:40 +00:00
Jonas Juselius 6f239fe48c ci: atlantis 2024-08-26 12:10:58 +00:00
sematic-release a7b722b616 ci: atlantis 2024-08-25 14:31:51 +00:00
Jonas Juselius 3636f2eea4 ci: atlantis 2024-08-25 14:27:04 +00:00
sematic-release 818f037feb ci: atlantis 2024-08-24 12:31:33 +00:00
sematic-release 1b7e0e6635 ci: sorcerer 2024-08-24 12:27:12 +00:00
Jonas Juselius c4b8cee3f8 ci: atlantis 2024-08-24 12:26:39 +00:00
Jonas Juselius 7851681c35 ci: sorcerer 2024-08-24 12:22:50 +00:00
sematic-release 2a2e23b79f ci: atlantis 2024-08-24 11:04:43 +00:00
Jonas Juselius 1dcac4767d ci: atlantis 2024-08-24 10:59:58 +00:00
sematic-release e5b086f973 ci: atlantis 2024-08-23 12:44:46 +00:00
Jonas Juselius 3bce847954 ci: atlantis 2024-08-23 12:39:55 +00:00
Jonas Juselius e2a3ad50cb ci: archmeister 2024-08-22 16:35:58 +00:00
Jonas Juselius 7146d19f3c fix: fix archmeister staging internal api (take 4) 2024-08-22 16:09:06 +02:00
Jonas Juselius 823fabfae4 fix: fix archmeister staging internal api (take 3) 2024-08-22 16:06:48 +02:00
Jonas Juselius 17a4fb1622 fix: fix archmeister staging internal api (take 2) 2024-08-22 16:05:37 +02:00
Jonas Juselius e8f70357bf fix: upgrade vcluster dapr to 1.14.0 2024-08-22 16:03:05 +02:00
Jonas Juselius 8b48106f06 fix: fix archmeister staging internal api 2024-08-22 16:02:42 +02:00
Jonas Juselius 7f08fefd56 fix: add explict whitelist patch to archmesiter staging 2024-08-22 15:55:18 +02:00
Jonas Juselius e922693b52 ci: atlantis 2024-08-22 13:21:21 +00:00
sematic-release da2ceeed52 ci: hipster 2024-08-22 12:37:29 +00:00
Jonas Juselius a278190fd3 ci: hipster 2024-08-22 12:34:29 +00:00
sematic-release 032f4701b9 ci: hipster 2024-08-22 12:14:20 +00:00
Jonas Juselius d8e5b48488 ci: hipster 2024-08-22 12:11:21 +00:00
Jonas Juselius 394d035969 fix: add akerbla, nr, sjomatnorge and tatidentilbake to acl 2024-08-22 13:20:47 +02:00
sematic-release a8e17b0bca ci: sorcerer 2024-08-21 14:14:58 +00:00
sematic-release 83a2e97568 ci: archmeister 2024-08-21 14:14:27 +00:00
Jonas Juselius 5cb15f3a87 ci: sorcerer 2024-08-21 14:10:26 +00:00
Jonas Juselius 5b72f938ba ci: archmeister 2024-08-21 14:09:30 +00:00
Jonas Juselius 2f2d5ba787 ci: sorcerer 2024-08-19 07:43:00 +00:00
Jonas Juselius 5e3dbe5e6d fix: add Sinkberg to acl 2024-08-14 13:04:55 +02:00
Jonas Juselius ef1136f16d fix: set staging replicacounts to 1 2024-08-12 16:13:38 +02:00
Jonas Juselius df481c0cd2 fix: update replica count and session affinity for sorcerer 2024-08-12 15:37:46 +02:00
Jonas Juselius f7a704cf84 fix: update replica count for hipster and petimeter 2024-08-12 14:30:57 +02:00
Jonas Juselius 30191b1491 fix: update replica count for archmeister 2024-08-12 14:27:12 +02:00
Jonas Juselius 6422c7e7f2 fix: set deploy_name for atlantis redis scaleout 2024-08-12 14:21:38 +02:00
Jonas Juselius 7b42000743 fix: disable session affinity for atlantis 2024-08-12 14:19:05 +02:00
sematic-release ee9b8c0e10 ci: atlantis 2024-08-12 12:04:03 +00:00
Jonas Juselius 4c4edc285c ci: atlantis 2024-08-12 11:59:06 +00:00
sematic-release ed486baefd ci: atlantis 2024-08-11 08:20:36 +00:00
Jonas Juselius cb80883161 ci: atlantis 2024-08-11 08:15:53 +00:00
sematic-release b61f29d8ee ci: atlantis 2024-08-10 07:19:59 +00:00
Jonas Juselius e462f0b4ec ci: atlantis 2024-08-10 07:15:19 +00:00
juselius b3fa5bac98 Merge branch 'main' of gitlab.com:oceanbox/manifests 2024-08-09 22:42:32 +02:00
juselius 306a223592 feat: set atlantis ingress http session affinity 2024-08-09 22:42:22 +02:00
sematic-release e9da4a9ab6 ci: atlantis 2024-08-09 20:36:49 +00:00
Jonas Juselius 1e90a6bfab ci: atlantis 2024-08-09 20:31:40 +00:00
juselius c243de22c8 fix: enable atlantis autosync 2024-08-09 15:41:34 +02:00
juselius 00c0873eed fix: set staging atlantis 2 replica 2024-08-09 15:30:38 +02:00
juselius c6b66cf363 fix: set staging atlantis 1 replica 2024-08-09 15:26:53 +02:00
juselius ff584303c4 fix: disable atlantis autosync for now 2024-08-09 15:23:10 +02:00
Jonas Juselius bbcf79aeb3 feat: run staging-atlantis in 2 replicas 2024-08-09 12:44:07 +02:00
sematic-release 4bce2dd19f ci: atlantis 2024-08-09 10:35:19 +00:00
Jonas Juselius 8fd46c5362 ci: atlantis 2024-08-09 10:30:37 +00:00
Jonas Juselius 2e096f77c8 Merge branch 'main' of gitlab.com:oceanbox/manifests 2024-08-09 12:26:29 +02:00
Jonas Juselius 621120aa03 fix: update atlantis appsettings for redis 2024-08-09 12:26:25 +02:00
sematic-release 27b6edb2f8 ci: atlantis 2024-08-08 11:09:41 +00:00
Jonas Juselius ac213969e1 ci: atlantis 2024-08-08 11:05:14 +00:00
juselius 91bb327f25 fix: fix sorcerer prod deployment patch 2024-07-05 16:33:25 +02:00
juselius 09f6bd9e11 feat: mount both /backup and /archives for now 2024-07-05 15:58:49 +02:00
Jonas Juselius daefa1130d Merge branch 'main' of gitlab.com:oceanbox/manifests 2024-07-02 19:03:08 +02:00
Jonas Juselius 2b4b619236 fix: make sorcerer run on fs-backup for now 2024-07-02 19:02:55 +02:00
Jonas Juselius a70ca81fb3 ci: sorcerer 2024-07-02 10:46:34 +00:00
Jonas Juselius f297475534 fix: add stub argocd cluster connection configs 2024-06-21 08:52:25 +02:00
Jonas Juselius 3eaf3d61fc fix: fix yolo-dl volume mounts (take 3) 2024-06-20 12:41:29 +02:00
Jonas Juselius 0b50437b9b fix: move manifests to charts/yolo-dl and fix volume mounts 2024-06-20 12:14:26 +02:00
Jonas Juselius 2112d3decc feat: add yolo-dl application 2024-06-20 09:43:01 +02:00
Jonas Juselius 3b0b261092 fix: ignore cpu limit diffs for redis 2024-06-19 13:07:59 +02:00
Jonas Juselius 8827153ac3 fix: fix atlantis resource diffing and ignores 2024-06-19 12:02:18 +02:00
Jonas Juselius 423d6c7a63 fix: only run busynix in staging 2024-06-19 12:01:38 +02:00
Jonas Juselius 05295eafe7 feat: use explicit clone annotation to clone rabbitmq and redis secrets 2024-06-19 11:09:53 +02:00
Jonas Juselius fd2d757504 fix: modify the source rabbitmq secret before clone 2024-06-19 10:55:03 +02:00
Jonas Juselius 9b7dc4d51b fix: revert rabbitmq and redis cpol simplifications 2024-06-19 10:23:01 +02:00
juselius a7382d8cdf fix: simplify kyverno rules using operations: 2024-06-18 15:46:12 +02:00
juselius 63dabec1b9 fix: add atlantis namespace to secrets 2024-06-18 15:24:42 +02:00
juselius 2a4ff8ce59 fix: use vcluster chart from local repo 2024-06-18 15:10:57 +02:00
juselius f2ee92c78f fix: argo ignore changes to redis and rabbitmq sercrets (set via kyverno) 2024-06-18 15:10:32 +02:00
juselius 5d9930cba2 fix: move redis and rabbitmq secrets to resources 2024-06-18 15:09:44 +02:00
Jonas Juselius 7a53370c6c fix: create placeholder secrets for rabbitmq and redis 2024-06-13 13:11:20 +02:00
Jonas Juselius bfef95f5ec fix: sync redis and rabbitmq secrets only if they exist 2024-06-13 13:04:43 +02:00
sematic-release 569e12ad59 ci: atlantis 2024-06-12 18:54:41 +00:00
Jonas Juselius 3229012a3c ci: atlantis 2024-06-12 18:49:56 +00:00
juselius 73a828c8e9 fix: add redis and rabbitmq secrets to labeled vcluster namepspaces 2024-06-12 20:17:13 +02:00
Jonas Juselius 21323e0b37 fix: tweak redis resources 2024-06-10 14:49:18 +02:00
Jonas Juselius 9dbfde76bd fix: tweak redis resources 2024-06-10 14:48:21 +02:00
Jonas Juselius 832eb5766b fix: tweak redis resources 2024-06-10 14:46:56 +02:00
Jonas Juselius 351939706a fix: tweak redis resources 2024-06-10 12:48:14 +02:00
Jonas Juselius 06affea347 fix: tweak redis resources 2024-06-10 12:11:22 +02:00
Jonas Juselius 4c35c489b3 fix: tweak redis resources 2024-06-10 10:41:51 +02:00
Jonas Juselius eebfe4e583 fix: fix redis nodeport (take 3) 2024-06-10 10:28:07 +02:00
Jonas Juselius 4b7337677b fix: fix redis nodeport (take 2) 2024-06-10 10:26:11 +02:00
Jonas Juselius 3457879466 fix: fix redis nodeport 2024-06-10 10:16:31 +02:00
Jonas Juselius c7338b4dce fix: fix typo 2024-06-10 10:12:48 +02:00
Jonas Juselius 148170c3ed Merge branch 'main' of gitlab.com:oceanbox/manifests 2024-06-10 10:01:13 +02:00
Jonas Juselius 156da412f3 fix: simplyfy redis, and run staging in standalone mode 2024-06-10 10:01:03 +02:00
juselius 1fad11992f fix: run prod rabbitmq in a 3 quorum cluster 2024-06-08 14:00:23 +02:00
Jonas Juselius 50925f3f9e Merge branch 'main' of gitlab.com:oceanbox/manifests 2024-06-06 15:30:44 +02:00
Jonas Juselius 2fc4249a22 fix: rabbitmq replicas staging=1 2024-06-06 15:30:34 +02:00
sematic-release 75a61bfd60 ci: hipster 2024-06-06 13:03:42 +00:00
Jonas Juselius 3430c02d40 ci: archmeister 2024-06-06 13:03:30 +00:00
Jonas Juselius 8966224736 ci: petimeter 2024-06-06 13:01:54 +00:00
Jonas Juselius 3b4c727619 Merge branch 'main' of gitlab.com:oceanbox/manifests 2024-06-06 15:01:17 +02:00
Jonas Juselius 2cdab2c5c9 fix: rabbitmq replicas prod=1 staging=2 2024-06-06 15:01:08 +02:00
Jonas Juselius 80742c41dc ci: atlantis 2024-06-06 13:01:02 +00:00
Jonas Juselius a2f066ac28 ci: hipster 2024-06-06 13:00:36 +00:00
Jonas Juselius 178c1310ad ci: sorcerer 2024-06-06 12:05:46 +00:00
Jonas Juselius 8fb71916b1 devell: remove leftover cruft 2024-06-06 13:53:22 +02:00
Jonas Juselius 052b06843d feat: make appsettings a configmap 2024-06-06 13:23:58 +02:00
Jonas Juselius e146a67afd feat: make appsettings a configmap 2024-06-06 13:18:45 +02:00
Jonas Juselius dd769158ae fix: update dex manifests/ to kustomizations/ (final) 2024-06-06 12:54:58 +02:00
Jonas Juselius d07fdbe356 fix: update dex manifests/ to kustomizations/ 2024-06-06 12:52:05 +02:00
Jonas Juselius 956838404b fix: update manifests/ to kustomizations/ 2024-06-06 12:48:54 +02:00
Jonas Juselius 07bc85ee48 fix: update sorcerer allowed origins 2024-06-06 12:41:42 +02:00
Jonas Juselius 5fef65774a fix: fix tilt/dev oidc redirect urls 2024-06-06 12:37:55 +02:00
Jonas Juselius 3166dc921a fix: fix vcluster creation script 2024-06-06 10:18:36 +02:00
Jonas Juselius 713e9f1fc4 fix: update dapr manifest api version 2024-06-06 08:52:33 +02:00
Jonas Juselius accd4d3e4e devel: rename manifests/ to kustomizations/ 2024-06-06 08:52:13 +02:00
Jonas Juselius e0af3046ca fix: automatically create atlantis ns on vcluster spinup 2024-06-06 08:50:41 +02:00
Jonas Juselius 9939db5afb fix: fix vcluster chart name 2024-06-06 08:31:21 +02:00
Jonas Juselius a45351700e feat: add appId to rabbitmq client name 2024-06-05 12:54:12 +02:00
Jonas Juselius 501d6bbe7d fix: update oceanbox repo in init.sh 2024-06-05 12:48:29 +02:00
Jonas Juselius 1fd1c78eb9 fix: fix dex resources 2024-06-05 11:47:17 +02:00
Jonas Juselius dee2082624 fix: fix manifests path in dex 2024-06-05 11:28:28 +02:00
Jonas Juselius 317ebe4403 feat: improved helm chart and repo support 2024-06-05 10:16:00 +02:00
Jonas Juselius 0c53cc454f fix: updates for new charts/manifests structure 2024-06-04 20:45:22 +02:00
hanssenkai 01743a0422 network policy for csi-addons controller 2024-05-30 14:45:59 +02:00
423 changed files with 70556 additions and 1399 deletions
+1
View File
@@ -0,0 +1 @@
use nix
+4
View File
@@ -1,2 +1,6 @@
*.tgz
_*/
.direnv/
.pre-commit-config.yaml
_manifest.yaml
_resources.yaml
-21
View File
@@ -1,21 +0,0 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: atlantis-host-cluster-resources
namespace: argocd
spec:
project: aux
destination:
server: https://kubernetes.default.svc
syncPolicy:
automated:
prune: false
selfHeal: false
sources:
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: main
path: resources/atlantis/host-manifests
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: main
path: 'resources/atlantis/manifests/prod'
-46
View File
@@ -1,46 +0,0 @@
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: redis
namespace: argocd
spec:
generators:
- list:
elements:
- cluster: https://kubernetes.default.svc
env: prod
hostname: redis.srv.oceanbox.io
- cluster: https://kubernetes.default.svc
env: staging
hostname: redis.beta.oceanbox.io
template:
metadata:
name: '{{ env }}-redis'
spec:
project: aux
destination:
server: https://kubernetes.default.svc
namespace: redis
sources:
# - repoURL: https://charts.bitnami.com/bitnami
# targetRevision: 18.9.1
# chart: redis
# helm:
# valueFiles:
# - $values/redis/values.yaml
# - repoURL: https://gitlab.com/oceanbox/manifests.git
# targetRevision: HEAD
# path: manifests/redis/{{ env }}
# ref: values
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: main
path: manifests/redis
plugin:
name: kustomize-helm-with-rewrite
parameters:
- name: env
string: '{{ env }}'
- name: hostname
string: '{{ hostname }}'
- name: chart
string: bitnami/redis
@@ -13,11 +13,11 @@ spec:
hostname: archmeister.srv.oceanbox.io
autoSync: false
prune: true
- cluster: https://staging-vcluster.staging-vcluster
env: staging
hostname: archmeister.beta.oceanbox.io
autoSync: true
prune: true
# - cluster: https://staging-vcluster.staging-vcluster
# env: staging
# hostname: archmeister.beta.oceanbox.io
# autoSync: true
# prune: true
template:
metadata:
name: "{{ .env }}-archmeister"
@@ -29,7 +29,7 @@ spec:
sources:
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: main
path: manifests/archmeister
path: values/archmeister
plugin:
name: kustomize-helm-with-rewrite
parameters:
+27
View File
@@ -0,0 +1,27 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: atlantis-cluster-resources
namespace: argocd
# annotations: # close, but no cigar
# argocd.argoproj.io/compare-options: ServerSideDiff=true,IncludeMutationWebhook=true
spec:
project: atlantis
destination:
server: https://kubernetes.default.svc
syncPolicy:
automated:
prune: false
selfHeal: false
# ignoreDifferences:
# - kind: Secret
# name: prod-rabbitmq
# jqPathExpressions:
# - '.data'
# - '.metadata.annotations.clone'
# - '.metadata.labels'
sources:
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: main
path: resources/atlantis
@@ -1,3 +1,4 @@
# Currently not in use. Configured via the create-vcluster script.
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
@@ -14,6 +15,8 @@ spec:
prune: false
# - cluster: https://staging-vcluster.staging-vcluster
# env: staging
# autoSync: false
# prune: false
template:
metadata:
name: "{{ .env }}-atlantis-resources"
+51
View File
@@ -0,0 +1,51 @@
{ lib, config, ... }:
let
cfg = config.apps.atlantis;
env = config.apps.env;
values = lib.apps.appValues {
inherit env;
base = ../values/atlantis;
extraValues = {};
};
kustomize = r:
if r.kind == "Deployment" then
lib.attrsets.recursiveUpdate r {
spec.template.spec.containers =
builtins.map (x:
x // {
livenessProbe.httpGet.path = "/healthz";
readinessProble.httpGet.path = "/healthz";
env = x.env ++ [ { name = "INERNAL_PORT"; value = 8000; } ];
}) r.spec.template.spec.containers;
}
else if r.kind == "Service" then
{}
else r;
in
{
options.apps.atlantis = lib.apps.appOptions {
revision = lib.mkOption {
type = lib.types.str;
default = "main";
description = "Revision";
};
hostname = lib.mkOption {
type = lib.types.str;
default = if env == "prod"
then "maps.oceanbox.io"
else "atlantis.beta.oceanbox.io";
description = "Revision";
};
};
config = lib.apps.appConfig cfg "${env}-atlantis" {
helm.releases."${env}-atlantis" = {
inherit values;
chart = ../charts/atlantis;
transformer = rs: builtins.map (x: kustomize x) rs;
};
};
}
@@ -13,11 +13,11 @@ spec:
hostname: atlantis.srv.oceanbox.io
autoSync: false
prune: true
- cluster: https://staging-vcluster.staging-vcluster
env: staging
hostname: atlantis.beta.oceanbox.io
autoSync: true
prune: true
# - cluster: https://staging-vcluster.staging-vcluster
# env: staging
# hostname: atlantis.beta.oceanbox.io
# autoSync: true
# prune: true
template:
metadata:
name: '{{ .env }}-atlantis'
@@ -29,7 +29,7 @@ spec:
sources:
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: main
path: manifests/atlantis
path: values/atlantis
plugin:
name: kustomize-helm-with-rewrite
parameters:
@@ -7,9 +7,9 @@ spec:
generators:
- list:
elements:
- cluster: https://kubernetes.default.svc
env: prod
hostname: busynix.srv.oceanbox.io
# - cluster: https://kubernetes.default.svc
# env: prod
# hostname: busynix.srv.oceanbox.io
- cluster: https://staging-vcluster.staging-vcluster
env: staging
hostname: busynix.beta.oceanbox.io
@@ -24,7 +24,7 @@ spec:
source:
repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: main
path: manifests/busynix
path: values/busynix
plugin:
name: kustomize-helm-with-rewrite
parameters:
@@ -25,8 +25,8 @@ spec:
chart: cerbos
helm:
valueFiles:
- $values/manifests/cerbos/values.yaml
- $values/manifests/cerbos/values-{{ env }}.yaml
- $values/values/cerbos/values.yaml
- $values/values/cerbos/values-{{ env }}.yaml
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: main
ref: values
+46
View File
@@ -0,0 +1,46 @@
{ lib, config, ... }:
let
cfg = config.apps.dapr;
env = config.apps.env;
values = lib.apps.appValues {
inherit env;
extraValues = {
global.ha.enabled = true;
};
};
in
{
options.apps.dapr = lib.apps.appOptions {
revision = lib.mkOption {
type = lib.types.str;
default = "1.14.4";
description = "Dapr chart version";
};
};
config = lib.apps.appConfig cfg "dapr" {
namespace = "argocd";
helm.releases.dapr = {
inherit values;
chart = lib.helm.downloadHelmChart {
repo = "https://dapr.github.io/helm-charts/";
chart = "dapr";
version = cfg.revision;
};
};
annotations = {
"argocd.argoproj.io/sync-options" = "SkipDryRunOnMissingResource=true";
};
resources = {
"argoproj.io".v1alpha1.Application.dapr.spec = {
destination = {
namespace = "dapr-system";
server = "https://kubernetes.default.svc";
};
project = "default";
};
};
};
}
+33
View File
@@ -0,0 +1,33 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: dapr
namespace: argocd
annotations:
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
destination:
namespace: dapr-system
server: https://kubernetes.default.svc
project: default
syncPolicy:
# managedNamespaceMetadata:
# labels:
# component: aux
syncOptions:
- CreateNamespace=true
- ApplyOutOfSyncOnly=true
automated:
prune: true
selfHeal: true
sources:
- repoURL: https://dapr.github.io/helm-charts/
targetRevision: 1.14.4
chart: dapr
helm:
values: |
global:
ha:
enabled: true
+16
View File
@@ -0,0 +1,16 @@
{ ... }:
{
imports = [
./atlantis.nix
./dapr.nix
./dex.nix
./keycloak.nix
./loki.nix
./openfga.nix
./opentelemetry-collector.nix
./rabbitmq.nix
./redis.nix
./tempo.nix
./wordpress.nix
];
}
+39
View File
@@ -0,0 +1,39 @@
{ lib, config, ... }:
let
cfg = config.apps.dex;
env = config.apps.env;
values = lib.apps.appValues {
inherit env;
base = ../values/dex;
extraValues = {};
};
in
{
options.apps.dex = lib.apps.appOptions {
enable = lib.mkEnableOption "Dex";
revision = lib.mkOption {
type = lib.types.str;
default = "0.16.0";
description = "Dex chart version";
};
hostname = lib.mkOption {
type = lib.types.str;
description = "Dex hostname";
default = "idp.${env}.oceanbox.io";
};
};
config = lib.apps.appConfig cfg "${env}-dex" {
namespace = "idp";
helm.releases.dex = {
inherit values;
chart = lib.helm.downloadHelmChart {
repo = "https://charts.dexidp.io";
chart = "dex";
version = cfg.revision;
chartHash = "";
};
transformer = rs: builtins.map (x: kustomize x) rs;
};
};
}
+2 -2
View File
@@ -10,6 +10,6 @@ spec:
namespace: idp
source:
repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: main
path: manifests/dex/manifests
targetRevision: nixidy
path: values/dex/manifests
@@ -24,7 +24,7 @@ spec:
sources:
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: main
path: manifests/geoserver
path: values/geoserver
plugin:
name: kustomize-helm-with-rewrite
parameters:
@@ -13,11 +13,11 @@ spec:
hostname: hipster.srv.oceanbox.io
autoSync: false
prune: true
- cluster: https://staging-vcluster.staging-vcluster
env: staging
hostname: hipster.beta.oceanbox.io
autoSync: true
prune: true
# - cluster: https://staging-vcluster.staging-vcluster
# env: staging
# hostname: hipster.beta.oceanbox.io
# autoSync: true
# prune: true
template:
metadata:
name: '{{ .env }}-hipster'
@@ -29,7 +29,7 @@ spec:
sources:
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: main
path: manifests/hipster
path: values/hipster
plugin:
name: kustomize-helm-with-rewrite
parameters:
@@ -14,9 +14,9 @@ spec:
chart: jaeger-operator
helm:
valueFiles:
- $values/manifests/jaeger/values.yaml
- $values/values/jaeger/values.yaml
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: main
# path: manifests/jaeger/manifests
# path: values/jaeger/manifests
ref: values
+34
View File
@@ -0,0 +1,34 @@
{ lib, config, ... }:
let
cfg = config.apps.keycloak;
env = config.apps.env;
values = lib.apps.appValues {
inherit env;
base = ../values/keycloak;
extraValues = {};
};
in
{
options.apps.keycloak = lib.apps.appOptions {
enable = lib.mkEnableOption "Keycloak";
revision = lib.mkOption {
type = lib.types.str;
default = "24.0.2";
description = "Keycloak chart version";
};
};
config = lib.apps.appConfig cfg "keycloak" {
namespace = "idp";
helm.releases.keycloak = {
inherit values;
chart = lib.helm.downloadHelmChart {
repo = "https://charts.bitnami.com/bitnami";
chart = "keycloak";
version = cfg.revision;
chartHash = "";
};
transformer = rs: builtins.map (x: kustomize x) rs;
};
};
}
@@ -10,12 +10,12 @@ spec:
namespace: idp
sources:
- repoURL: https://charts.bitnami.com/bitnami
targetRevision: 18.3.4
targetRevision: 24.0.2
chart: keycloak
helm:
valueFiles:
- $values/manifests/keycloak/values.yaml
- $values/values/keycloak/values.yaml
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: main
targetRevision: nixidy
ref: values
+249
View File
@@ -0,0 +1,249 @@
{ lib, config, ... }:
let
cfg = config.apps.loki;
env = config.apps.env;
values = lib.apps.appValues {
inherit env;
extraValues = {
loki = {
auth_enabled = false;
storage = {
bucketNames = {
chunks = cfg.buckets.chunks;
ruler = cfg.buckets.ruler;
admin = cfg.buckets.admin;
};
s3 =
{
endpoint = cfg.s3.endpoint;
region = cfg.s3.region;
secretAccessKey = "\${S3SECRET}";
accessKeyId = "\${S3KEY}";
s3ForcePathStyle = true;
}
// lib.optionalAttrs cfg.s3.insecureSkipVerify {
http_config.insecure_skip_verify = true;
};
};
schemaConfig.configs = [
{
from = "2024-04-01";
index.period = "24h";
index.prefix = "loki_index_";
object_store = "s3";
schema = "v13";
store = "tsdb";
}
];
compactor = {
compaction_interval = "10m";
working_directory = "/tmp/loki/compactor";
retention_enabled = true;
retention_delete_delay = "2h";
retention_delete_worker_count = 150;
delete_request_store = "s3";
};
limits_config.retention_period = "744h";
};
write = {
extraArgs = [ "-config.expand-env=true" ];
extraEnv = [
{
name = "S3KEY";
valueFrom.secretKeyRef = {
name = cfg.secret.name;
key = cfg.secret.accessKey;
};
}
{
name = "S3SECRET";
valueFrom.secretKeyRef = {
name = cfg.secret.name;
key = cfg.secret.secretKey;
};
}
];
tolerations = [
{
effect = "NoSchedule";
operator = "Equal";
key = "unschedulable";
value = "true";
}
];
};
read = {
extraArgs = [ "-config.expand-env=true" ];
extraEnv = [
{
name = "S3KEY";
valueFrom.secretKeyRef = {
name = cfg.secret.name;
key = cfg.secret.accessKey;
};
}
{
name = "S3SECRET";
valueFrom.secretKeyRef = {
name = cfg.secret.name;
key = cfg.secret.secretKey;
};
}
];
tolerations = [
{
effect = "NoSchedule";
operator = "Equal";
key = "unschedulable";
value = "true";
}
];
};
ingress = {
enabled = true;
ingressClassName = "nginx";
annotations = {
"cert-manager.io/cluster-issuer" = "letsencrypt-staging";
"nginx.ingress.kubernetes.io/ssl-redirect" = "true";
"atlantis.oceanbox.io/expose" = "internal";
};
hosts = [ "loki.adm.oceanbox.io" ];
tls = [{
hosts = [ "loki.adm.oceanbox.io" ];
secretName = "loki-distributed-tls";
}];
};
compactor = {
extraArgs = [ "-config.expand-env=true" ];
extraEnv = [
{
name = "S3KEY";
valueFrom.secretKeyRef = {
name = cfg.secret.name;
key = cfg.secret.accessKey;
};
}
{
name = "S3SECRET";
valueFrom.secretKeyRef = {
name = cfg.secret.name;
key = cfg.secret.secretKey;
};
}
];
};
backend = {
extraArgs = [ "-config.expand-env=true" ];
extraEnv = [
{
name = "S3KEY";
valueFrom.secretKeyRef = {
name = cfg.secret.name;
key = cfg.secret.accessKey;
};
}
{
name = "S3SECRET";
valueFrom.secretKeyRef = {
name = cfg.secret.name;
key = cfg.secret.secretKey;
};
}
];
};
};
};
in
{
options.apps.loki = lib.apps.appOptions {
revision = lib.mkOption {
type = lib.types.str;
default = "6.12.0";
description = "Loki chart version";
};
buckets = {
chunks = lib.mkOption {
type = lib.types.str;
default = "loki-chunks";
description = "S3 bucket for chunks";
};
ruler = lib.mkOption {
type = lib.types.str;
default = "loki-chunks";
description = "S3 bucket for ruler";
};
admin = lib.mkOption {
type = lib.types.str;
default = "loki-chunks";
description = "S3 bucket for admin";
};
};
s3 = {
endpoint = lib.mkOption {
type = lib.types.str;
default = "http://10.255.241.30:30080";
description = "S3 endpoint";
};
region = lib.mkOption {
type = lib.types.str;
default = "tos";
description = "S3 region";
};
insecureSkipVerify = lib.mkOption {
type = lib.types.bool;
default = true;
description = "Skip TLS verification";
};
};
secret = {
name = lib.mkOption {
type = lib.types.str;
default = "loki-s3";
description = "Name of the S3 credentials secret";
};
accessKey = lib.mkOption {
type = lib.types.str;
default = "AWS_ACCESS_KEY_ID";
description = "Access key field in secret";
};
secretKey = lib.mkOption {
type = lib.types.str;
default = "AWS_ACCESS_KEY_SECRET";
description = "Secret key field in secret";
};
};
};
config = lib.apps.appConfig cfg "loki" {
namespace = "argocd";
helm.releases.loki = {
inherit values;
chart = lib.helm.downloadHelmChart {
repo = "https://grafana.github.io/helm-charts";
chart = "loki";
version = cfg.revision;
chartHash = "sha256-YUtEIUiQWRzlttfOOgDk1xfTaiAZ12tIgpGr1QcMpro=";
};
};
annotations = {
"argocd.argoproj.io/sync-options" = "SkipDryRunOnMissingResource=true";
};
# TODO: Add network policies as a second source or integrate them into `resources`.
resources = {
"argoproj.io".v1alpha1.Application.loki.spec.ignoreDifferences = [
{
group = "apps";
kind = "StatefulSet";
jsonPointers = [ "/spec/persistentVolumeClaimRetentionPolicy" ];
}
];
};
};
}
+150
View File
@@ -0,0 +1,150 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: loki
namespace: argocd
annotations:
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
destination:
namespace: loki
server: 'https://kubernetes.default.svc'
project: aux
ignoreDifferences:
- group: apps
kind: StatefulSet
jsonPointers:
- /spec/persistentVolumeClaimRetentionPolicy
syncPolicy:
managedNamespaceMetadata:
labels:
component: aux
syncOptions:
- CreateNamespace=true
- ApplyOutOfSyncOnly=true
automated:
prune: true
selfHeal: true
sources:
- repoURL: https://gitlab.com/serit/k8s/serit-platform-manifests.git
path: network-policies/netpol-loki
targetRevision: HEAD
- repoURL: 'https://grafana.github.io/helm-charts'
targetRevision: 6.12.0
chart: loki
helm:
values: |
loki:
auth_enabled: false
storage:
bucketNames:
chunks: loki-chunks
ruler: loki-chunks
admin: loki-chunks
s3:
endpoint: http://10.255.241.30:30080
region: tos
accessKeyId: ${S3KEY}
secretAccessKey: ${S3SECRET}
s3ForcePathStyle: true
http_config:
insecure_skip_verify: true
schemaConfig:
configs:
- from: "2024-04-01"
index:
period: 24h
prefix: loki_index_
object_store: s3
schema: v13
store: tsdb
compactor:
compaction_interval: 10m
working_directory: /tmp/loki/compactor
retention_enabled: true
retention_delete_delay: 2h
retention_delete_worker_count: 150
delete_request_store: s3
limits_config:
retention_period: 744h
write:
extraArgs:
- -config.expand-env=true
extraEnv:
- name: S3KEY
valueFrom:
secretKeyRef:
name: loki-s3
key: AWS_ACCESS_KEY_ID
- name: S3SECRET
valueFrom:
secretKeyRef:
name: loki-s3
key: AWS_ACCESS_KEY_SECRET
tolerations:
- effect: "NoSchedule"
operator: "Equal"
key: "unschedulable"
value: "true"
read:
extraArgs:
- -config.expand-env=true
extraEnv:
- name: S3KEY
valueFrom:
secretKeyRef:
name: loki-s3
key: AWS_ACCESS_KEY_ID
- name: S3SECRET
valueFrom:
secretKeyRef:
name: loki-s3
key: AWS_ACCESS_KEY_SECRET
tolerations:
- effect: "NoSchedule"
operator: "Equal"
key: "unschedulable"
value: "true"
ingress:
enabled: true
ingressClassName: nginx
annotations:
cert-manager.io/cluster-issuer: letsencrypt-staging
nginx.ingress.kubernetes.io/ssl-redirect: "true"
atlantis.oceanbox.io/expose: internal
hosts:
- loki.adm.oceanbox.io
tls:
- hosts:
- loki.adm.oceanbox.io
secretName: loki-distributed-tls
compactor:
extraArgs:
- -config.expand-env=true
extraEnv:
- name: S3KEY
valueFrom:
secretKeyRef:
name: loki-s3
key: AWS_ACCESS_KEY_ID
- name: S3SECRET
valueFrom:
secretKeyRef:
name: loki-s3
key: AWS_ACCESS_KEY_SECRET
backend:
extraArgs:
- -config.expand-env=true
extraEnv:
- name: S3KEY
valueFrom:
secretKeyRef:
name: loki-s3
key: AWS_ACCESS_KEY_ID
- name: S3SECRET
valueFrom:
secretKeyRef:
name: loki-s3
key: AWS_ACCESS_KEY_SECRET
+39
View File
@@ -0,0 +1,39 @@
{ lib, config, ... }:
let
cfg = config.apps.openfga;
env = config.apps.env;
values = lib.apps.appValues {
inherit env;
base = ../values/openfga;
extraValues = {};
};
kustomize = r:
if r.kind == "Job" then
lib.attrsets.recursiveUpdate r { spec.backoffLimit = 2; }
else r;
in
{
options.apps.openfga = lib.apps.appOptions {};
config = lib.apps.appConfig cfg "${env}-openfga" {
helm.releases."${env}-openfga" = {
inherit values;
chart = lib.helm.downloadHelmChart {
repo = "https://openfga.github.io/helm-charts";
chart = "openfga";
version = "0.2.12";
chartHash = "sha256-7yLcw9/oNPvCePrtTJwKAG88t0Ym5Dl/S83Gz+gQdDU=";
};
transformer = rs: builtins.map (x: kustomize x) rs;
};
annotations = {};
resources = {
services.poop.spec = {
};
};
};
}
+117
View File
@@ -0,0 +1,117 @@
{ lib, config, ... }:
let
cfg = config.apps.opentelemetry-collector;
env = config.apps.env;
values = lib.apps.appValues {
inherit env;
extraValues = {
mode = "deployment";
image = {
repository = "otel/opentelemetry-collector-k8s";
};
service = {
type = "LoadBalancer";
loadBalancerIP = "10.255.241.12";
};
config = {
receivers = {
"prometheus/collector" = {
config.scrape_configs = [{
job_name = "opentelemetry-collector";
static_configs = [{
targets = [ "\${env:MY_POD_IP}:8888" ];
}];
}];
};
zipkin.endpoint = "\${env:MY_POD_IP}:9411";
};
exporters = {
otlp = {
endpoint = "tempo.tempo.svc:4317";
tls.insecure = true;
};
"otlphttp/metrics" = {
endpoint = "http://prom-prometheus.prometheus:9090/api/v1/otlp";
tls.insecure = true;
};
"otlphttp/logs" = {
endpoint = "http://loki-write-headless.loki:3100/otlp";
tls.insecure = true;
};
"debug/metrics".verbosity = "detailed";
"debug/traces".verbosity = "detailed";
"debug/logs".verbosity = "detailed";
};
service = {
telemetry.logs.level = "info";
pipelines = {
traces = {
receivers = [ "otlp" "zipkin" ];
processors = [ "batch" ];
exporters = [ "otlp" ];
};
metrics = {
receivers = [ "otlp" "prometheus/collector" ];
processors = [ "batch" ];
exporters = [ "otlphttp/metrics" ];
};
logs = {
receivers = [ "otlp" ];
processors = [ "batch" ];
exporters = [ "otlphttp/logs" ];
};
};
};
};
ports.metrics.enabled = true;
ingress = {
enabled = false;
annotations = {
"cert-manager.io/cluster-issuer" = "letsencrypt-production";
"nginx.ingress.kubernetes.io/ssl-redirect" = "true";
"atlantis.oceanbox.io/expose" = "internal";
};
ingressClassName = "nginx";
hosts = [{
host = "opentelemetry-collector.adm.oceanbox.io";
paths = [{
path = "/";
pathType = "Prefix";
port = 4318;
}];
}];
tls = [{
secretName = "collector-tls";
hosts = [ "opentelemetry-collector.adm.oceanbox.io" ];
}];
};
};
};
in
{
options.apps.opentelemetry-collector = lib.apps.appOptions {
revision = lib.mkOption {
type = lib.types.str;
default = "0.107.0";
description = "OpenTelemetry Collector chart version";
};
};
config = lib.apps.appConfig cfg "opentelemetry-collector" {
namespace = "argocd";
helm.releases.opentelemetry-collector = {
inherit values;
chart = lib.helm.downloadHelmChart {
repo = "https://open-telemetry.github.io/opentelemetry-helm-charts";
chart = "opentelemetry-collector";
version = cfg.revision;
chartHash = "sha256-0000000000000000000000000000000000000000000000"; # TODO: Add correct hash
};
};
annotations = {
"argocd.argoproj.io/sync-options" = "SkipDryRunOnMissingResource=true";
};
};
}
+109
View File
@@ -0,0 +1,109 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: opentelemetry-collector
namespace: argocd
annotations:
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
destination:
namespace: otel
server: 'https://kubernetes.default.svc'
project: aux
syncPolicy:
# managedNamespaceMetadata:
# labels:
# component: aux
syncOptions:
- CreateNamespace=true
- ApplyOutOfSyncOnly=true
automated:
prune: true
selfHeal: true
sources:
- repoURL: 'https://open-telemetry.github.io/opentelemetry-helm-charts'
targetRevision: 0.107.0
chart: opentelemetry-collector
helm:
values: |
mode: deployment
image:
repository: otel/opentelemetry-collector-k8s
service:
type: LoadBalancer
loadBalancerIP: 10.255.241.12
config:
receivers:
prometheus/collector:
config:
scrape_configs:
- job_name: 'opentelemetry-collector'
static_configs:
- targets:
- ${env:MY_POD_IP}:8888
zipkin:
endpoint: ${env:MY_POD_IP}:9411
exporters:
otlp:
endpoint: "tempo.tempo.svc:4317"
tls:
insecure: true
otlphttp/metrics:
endpoint: http://prom-prometheus.prometheus:9090/api/v1/otlp
tls:
insecure: true
otlphttp/logs:
endpoint: http://loki-write-headless.loki:3100/otlp
tls:
insecure: true
debug/metrics:
verbosity: detailed
debug/traces:
verbosity: detailed
debug/logs:
verbosity: detailed
service:
telemetry:
logs:
level: "info"
pipelines:
traces:
receivers: [otlp,zipkin]
processors: [batch]
exporters: [otlp]
# exporters: [otlphttp/traces,debug/traces]
metrics:
receivers: [otlp,prometheus/collector]
processors: [batch]
exporters: [otlphttp/metrics]
# exporters: [otlphttp/metrics,debug/metrics]
logs:
receivers: [otlp]
processors: [batch]
exporters: [otlphttp/logs]
# exporters: [otlphttp/logs,debug/logs]
ports:
metrics:
enabled: true
# presets:
# logsCollection:
# enabled: true
ingress:
enabled: false
annotations:
cert-manager.io/cluster-issuer: letsencrypt-production
nginx.ingress.kubernetes.io/ssl-redirect: "true"
atlantis.oceanbox.io/expose: internal
ingressClassName: nginx
hosts:
- host: opentelemetry-collector.adm.oceanbox.io
paths:
- path: /
pathType: Prefix
port: 4318
tls:
- secretName: collector-tls
hosts:
- opentelemetry-collector.adm.oceanbox.io
@@ -22,9 +22,9 @@ spec:
namespace: oceanbox
server: '{{ cluster }}'
source:
repoURL: https://gitlab.com/oceanbox/charts.git
repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: HEAD
path: manifests/osm-tile-server
path: values/osm-tile-server
plugin:
name: kustomize-helm-with-rewrite
parameters:
@@ -13,11 +13,11 @@ spec:
hostname: petimeter.srv.oceanbox.io
autoSync: false
prune: true
- cluster: https://staging-vcluster.staging-vcluster
env: staging
hostname: petimeter.beta.oceanbox.io
autoSync: true
prune: true
# - cluster: https://staging-vcluster.staging-vcluster
# env: staging
# hostname: petimeter.beta.oceanbox.io
# autoSync: true
# prune: true
template:
metadata:
name: '{{ .env }}-petimeter'
@@ -29,7 +29,7 @@ spec:
sources:
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: main
path: manifests/petimeter
path: values/petimeter
plugin:
name: kustomize-helm-with-rewrite
parameters:
@@ -39,7 +39,7 @@ spec:
string: '{{ .hostname }}'
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: main
path: manifests/petimeter/manifests
path: values/petimeter/manifests
templatePatch: |
{{- if .autoSync }}
spec:
+66
View File
@@ -0,0 +1,66 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: prod-atlantis
namespace: argocd
annotations:
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
destination:
namespace: prod-atlantis
server: https://kubernetes.default.svc
project: atlantis
sources:
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: nixidy
ref: values
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: nixidy
path: values/atlantis
plugin:
name: kustomize-helm-with-rewrite
parameters:
- name: env
string: prod
- name: hostname
string: maps.oceanbox.io
- repoURL: https://charts.bitnami.com/bitnami
targetRevision: 20.1.7
chart: redis
helm:
valueFiles:
- $values/values/atlantis/prod/redis.yaml
ignoreDifferences:
- kind: Secret
name: azure-keyvault
jqPathExpressions:
- '.data'
- '.metadata.labels'
- '.metadata.annotations'
- kind: Secret
name: prod-atlantis-rabbitmq
jqPathExpressions:
- '.data'
- '.metadata.labels'
- '.metadata.annotations'
- kind: Secret
name: prod-archmeister-replication
jqPathExpressions:
- '.data'
- '.metadata.labels'
- '.metadata.annotations'
- kind: Secret
name: prod-archmeister-ca
jqPathExpressions:
- '.data'
- '.metadata.labels'
- '.metadata.annotations'
syncPolicy:
syncOptions:
- CreateNamespace=true
- ApplyOutOfSyncOnly=true
# automated:
# prune: true
# selfHeal: false
+38
View File
@@ -0,0 +1,38 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: prod-keycloak
namespace: argocd
annotations:
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: aux
destination:
server: https://kubernetes.default.svc
namespace: keycloak
syncPolicy:
managedNamespaceMetadata:
labels:
component: aux
syncOptions:
- CreateNamespace=true
- ApplyOutOfSyncOnly=true
automated:
prune: true
selfHeal: true
sources:
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: nixidy
path: values/keycloak/prod
- repoURL: https://charts.bitnami.com/bitnami
targetRevision: 24.0.2
chart: keycloak
helm:
valueFiles:
- $values/values/keycloak/values-prod.yaml
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: nixidy
ref: values
+39
View File
@@ -0,0 +1,39 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: prod-openfga
namespace: argocd
annotations:
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
destination:
namespace: openfga
server: https://kubernetes.default.svc
project: aux
# ignoreDifferences:
# - group: apps
# kind: StatefulSet
# jsonPointers:
# - /spec/persistentVolumeClaimRetentionPolicy
syncPolicy:
managedNamespaceMetadata:
labels:
component: aux
syncOptions:
- CreateNamespace=true
- ApplyOutOfSyncOnly=true
automated:
prune: true
selfHeal: true
sources:
- repoURL: https://openfga.github.io/helm-charts
targetRevision: 0.2.19
chart: openfga
helm:
valueFiles:
- $values/values/openfga/values-prod.yaml
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: nixidy
ref: values
+54
View File
@@ -0,0 +1,54 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: prod-sorcerer
namespace: argocd
annotations:
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
destination:
namespace: prod-sorcerer
server: https://10.255.241.99:4443
project: atlantis
sources:
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: nixidy
ref: values
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: nixidy
path: values/sorcerer
plugin:
name: kustomize-helm-with-rewrite
parameters:
- name: env
string: prod
- name: hostname
string: sorcerer.data.oceanbox.io
- repoURL: https://charts.bitnami.com/bitnami
targetRevision: 20.1.7
chart: redis
helm:
valueFiles:
- $values/values/sorcerer/prod/redis.yaml
ignoreDifferences:
- kind: Secret
name: azure-keyvault
jqPathExpressions:
- '.data'
- '.metadata.labels'
- '.metadata.annotations'
- kind: Secret
name: prod-atlantis-rabbitmq
jqPathExpressions:
- '.data'
- '.metadata.labels'
- '.metadata.annotations'
syncPolicy:
syncOptions:
- CreateNamespace=true
- ApplyOutOfSyncOnly=true
# automated:
# prune: true
# selfHeal: false
+39
View File
@@ -0,0 +1,39 @@
{ lib, config, ... }:
let
cfg = config.apps.rabbitmq;
env = config.apps.env;
values = lib.apps.appValues {
inherit env;
base = ../values/rabbitmq;
extraValues = {};
};
in
{
options.apps.rabbitmq = lib.apps.appOptions {
enable = lib.mkEnableOption "RabbitMQ";
revision = lib.mkOption {
type = lib.types.str;
default = "12.9.0";
description = "RabbitMQ chart version";
};
hostname = lib.mkOption {
type = lib.types.str;
description = "RabbitMQ hostname";
default = "rabbitmq.${env}.oceanbox.io";
};
};
config = lib.apps.appConfig cfg "${env}-rabbitmq" {
namespace = "rabbitmq";
helm.releases.rabbitmq = {
inherit values;
chart = lib.helm.downloadHelmChart {
repo = "https://charts.bitnami.com/bitnami";
chart = "rabbitmq";
version = cfg.revision;
chartHash = "";
};
transformer = rs: builtins.map (x: kustomize x) rs;
};
};
}
@@ -27,8 +27,8 @@ spec:
chart: rabbitmq
helm:
valueFiles:
- $values/manifests/rabbitmq/values-{{ env }}.yaml
- $values/values/rabbitmq/values-{{ env }}.yaml
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: main
path: manifests/rabbitmq/{{ env }}
path: values/rabbitmq/{{ env }}
ref: values
+34
View File
@@ -0,0 +1,34 @@
{ lib, config, ... }:
let
cfg = config.apps.redis;
env = config.apps.env;
values = lib.apps.appValues {
inherit env;
base = ../values/redis;
extraValues = {};
};
in
{
options.apps.redis = lib.apps.appOptions {
enable = lib.mkEnableOption "Redis";
revision = lib.mkOption {
type = lib.types.str;
default = "19.5.2";
description = "Redis chart version";
};
};
config = lib.apps.appConfig cfg "${env}-redis" {
namespace = "redis";
helm.releases.redis = {
inherit values;
chart = lib.helm.downloadHelmChart {
repo = "https://charts.bitnami.com/bitnami";
chart = "redis";
version = cfg.revision;
chartHash = "";
};
transformer = rs: builtins.map (x: kustomize x) rs;
};
};
}
+39
View File
@@ -0,0 +1,39 @@
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: redis
namespace: argocd
spec:
generators:
- list:
elements:
- cluster: https://kubernetes.default.svc
env: prod
- cluster: https://kubernetes.default.svc
env: staging
template:
metadata:
name: '{{ env }}-redis'
spec:
project: aux
destination:
server: https://kubernetes.default.svc
namespace: redis
sources:
- repoURL: https://charts.bitnami.com/bitnami
targetRevision: 19.5.2
chart: redis
helm:
valueFiles:
- $values/values/redis/values-{{ env }}.yaml
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: HEAD
ref: values
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: main
path: values/redis/{{ env }}
ignoreDifferences:
- group: apps
kind: StatefulSet
jqPathExpressions:
- '.spec.template.spec.containers[].resources.limits.cpu'
+1 -1
View File
@@ -14,7 +14,7 @@ spec:
chart: seq
helm:
valueFiles:
- $values/manifests/seq/values.yaml
- $values/values/seq/values.yaml
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: main
ref: values
@@ -13,11 +13,11 @@ spec:
hostname: sorcerer.data.oceanbox.io
autoSync: false
prune: true
- cluster: https://10.255.241.99:4443
env: staging
hostname: sorcerer.ekman.oceanbox.io
autoSync: true
prune: true
# - cluster: https://10.255.241.99:4443
# env: staging
# hostname: sorcerer.ekman.oceanbox.io
# autoSync: true
# prune: true
template:
metadata:
name: '{{ .env }}-sorcerer'
@@ -29,7 +29,7 @@ spec:
sources:
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: main
path: manifests/sorcerer
path: values/sorcerer
plugin:
name: kustomize-helm-with-rewrite
parameters:
+66
View File
@@ -0,0 +1,66 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: staging-atlantis
namespace: argocd
annotations:
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
destination:
namespace: staging-atlantis
server: https://kubernetes.default.svc
project: atlantis
sources:
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: nixidy
ref: values
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: nixidy
path: values/atlantis
plugin:
name: kustomize-helm-with-rewrite
parameters:
- name: env
string: staging
- name: hostname
string: atlantis.beta.oceanbox.io
- repoURL: https://charts.bitnami.com/bitnami
targetRevision: 20.1.7
chart: redis
helm:
valueFiles:
- $values/values/atlantis/staging/redis.yaml
ignoreDifferences:
- kind: Secret
name: azure-keyvault
jqPathExpressions:
- '.data'
- '.metadata.labels'
- '.metadata.annotations'
- kind: Secret
name: staging-atlantis-rabbitmq
jqPathExpressions:
- '.data'
- '.metadata.labels'
- '.metadata.annotations'
- kind: Secret
name: prod-archmeister-replication
jqPathExpressions:
- '.data'
- '.metadata.labels'
- '.metadata.annotations'
- kind: Secret
name: prod-archmeister-ca
jqPathExpressions:
- '.data'
- '.metadata.labels'
- '.metadata.annotations'
syncPolicy:
syncOptions:
- CreateNamespace=true
- ApplyOutOfSyncOnly=true
automated:
prune: true
selfHeal: false
+39
View File
@@ -0,0 +1,39 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: staging-openfga
namespace: argocd
annotations:
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
destination:
namespace: openfga
server: https://kubernetes.default.svc
project: aux
# ignoreDifferences:
# - group: apps
# kind: StatefulSet
# jsonPointers:
# - /spec/persistentVolumeClaimRetentionPolicy
syncPolicy:
managedNamespaceMetadata:
labels:
component: aux
syncOptions:
- CreateNamespace=true
- ApplyOutOfSyncOnly=true
automated:
prune: true
selfHeal: true
sources:
- repoURL: https://openfga.github.io/helm-charts
targetRevision: 0.2.19
chart: openfga
helm:
valueFiles:
- $values/values/openfga/values-staging.yaml
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: nixidy
ref: values
+54
View File
@@ -0,0 +1,54 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: staging-sorcerer
namespace: argocd
annotations:
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
destination:
namespace: staging-sorcerer
server: https://10.255.241.99:4443
project: atlantis
sources:
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: nixidy
ref: values
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: nixidy
path: values/sorcerer
plugin:
name: kustomize-helm-with-rewrite
parameters:
- name: env
string: staging
- name: hostname
string: sorcerer.ekman.oceanbox.io
- repoURL: https://charts.bitnami.com/bitnami
targetRevision: 20.1.7
chart: redis
helm:
valueFiles:
- $values/values/sorcerer/staging/redis.yaml
ignoreDifferences:
- kind: Secret
name: azure-keyvault
jqPathExpressions:
- '.data'
- '.metadata.labels'
- '.metadata.annotations'
- kind: Secret
name: prod-atlantis-rabbitmq
jqPathExpressions:
- '.data'
- '.metadata.labels'
- '.metadata.annotations'
syncPolicy:
syncOptions:
- CreateNamespace=true
- ApplyOutOfSyncOnly=true
# automated:
# prune: true
# selfHeal: false
+124
View File
@@ -0,0 +1,124 @@
{ lib, config, ... }:
let
cfg = config.apps.tempo;
env = config.apps.env;
values = lib.apps.appValues {
inherit env;
extraValues = {
tempo = {
storage = {
trace = {
backend = "s3";
s3 = {
bucket = cfg.s3.bucket;
endpoint = cfg.s3.endpoint;
access_key = "\${S3SECRET}";
secret_key = "\${S3KEY}";
insecure = true;
};
local = {
path = "/var/tempo/traces";
};
wal = {
path = "/var/tempo/wal";
};
};
};
metricsGenerator = {
enabled = true;
remoteWriteUrl = "http://prom-prometheus.prometheus:9090/api/v1/write";
};
extraEnv = [
{
name = "S3KEY";
valueFrom.secretKeyRef = {
name = cfg.secret.name;
key = cfg.secret.accessKey;
};
}
{
name = "S3SECRET";
valueFrom.secretKeyRef = {
name = cfg.secret.name;
key = cfg.secret.secretKey;
};
}
];
};
tempoQuery = {
ingress = {
enabled = true;
ingressClassName = "nginx";
annotations = {
"cert-manager.io/cluster-issuer" = "letsencrypt-staging";
"nginx.ingress.kubernetes.io/ssl-redirect" = "true";
"atlantis.oceanbox.io/expose" = "internal";
};
path = "/";
pathType = "Prefix";
hosts = [ "query.tempo.adm.oceanbox.io" ];
tls = [{
secretName = "tempo-query-tls";
hosts = [ "query.tempo.adm.oceanbox.io" ];
}];
};
};
};
};
in
{
options.apps.tempo = lib.apps.appOptions {
revision = lib.mkOption {
type = lib.types.str;
default = "1.10.3";
description = "Tempo chart version";
};
s3 = {
bucket = lib.mkOption {
type = lib.types.str;
default = "tempo-traces";
description = "S3 bucket for traces";
};
endpoint = lib.mkOption {
type = lib.types.str;
default = "http://10.255.241.30:30080";
description = "S3 endpoint";
};
};
secret = {
name = lib.mkOption {
type = lib.types.str;
default = "tempo-s3";
description = "Name of the S3 credentials secret";
};
accessKey = lib.mkOption {
type = lib.types.str;
default = "AWS_ACCESS_KEY_ID";
description = "Access key field in secret";
};
secretKey = lib.mkOption {
type = lib.types.str;
default = "AWS_ACCESS_KEY_SECRET";
description = "Secret key field in secret";
};
};
};
config = lib.apps.appConfig cfg "tempo" {
namespace = "argocd";
helm.releases.tempo = {
inherit values;
chart = lib.helm.downloadHelmChart {
repo = "https://grafana.github.io/helm-charts";
chart = "tempo";
version = cfg.revision;
};
};
annotations = {
"argocd.argoproj.io/sync-options" = "SkipDryRunOnMissingResource=true";
};
};
}
+76
View File
@@ -0,0 +1,76 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: tempo
namespace: argocd
annotations:
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
destination:
namespace: tempo
server: 'https://kubernetes.default.svc'
project: aux
syncPolicy:
# managedNamespaceMetadata:
# labels:
# component: aux
syncOptions:
- CreateNamespace=true
- ApplyOutOfSyncOnly=true
automated:
prune: true
selfHeal: true
sources:
- repoURL: 'https://grafana.github.io/helm-charts'
targetRevision: 1.10.3
chart: tempo
helm:
values: |
tempo:
storage:
trace:
backend: s3
s3:
bucket: tempo-traces
endpoint: 10.255.241.30:30080
access_key: ${S3KEY}
secret_key: ${S3SECRET}
forcepathstyle: true
insecure: true
local:
path: /var/tempo/traces
wal:
path: /var/tempo/wal
metricsGenerator:
enabled: true
remoteWriteUrl: "http://prom-prometheus.prometheus:9090/api/v1/write"
extraArgs: { config.expand-env=true }
extraEnv:
- name: S3KEY
valueFrom:
secretKeyRef:
name: tempo-s3
key: AWS_ACCESS_KEY_ID
- name: S3SECRET
valueFrom:
secretKeyRef:
name: tempo-s3
key: AWS_ACCESS_KEY_SECRET
tempoQuery:
ingress:
enabled: true
ingressClassName: nginx
annotations:
cert-manager.io/cluster-issuer: letsencrypt-staging
nginx.ingress.kubernetes.io/ssl-redirect: "true"
atlantis.oceanbox.io/expose: internal
path: /
pathType: Prefix
hosts:
- query.tempo.adm.oceanbox.io
tls:
- secretName: tempo-query-tls
hosts:
- query.tempo.adm.oceanbox.io
+39
View File
@@ -0,0 +1,39 @@
{ lib, config, ... }:
let
cfg = config.apps.wordpress;
env = config.apps.env;
values = lib.apps.appValues {
inherit env;
base = ../values/wordpress;
extraValues = {};
};
in
{
options.apps.wordpress = lib.apps.appOptions {
enable = lib.mkEnableOption "WordPress";
revision = lib.mkOption {
type = lib.types.str;
default = "19.2.2";
description = "WordPress chart version";
};
hostname = lib.mkOption {
type = lib.types.str;
description = "WordPress hostname";
default = "www.${env}.oceanbox.io";
};
};
config = lib.apps.appConfig cfg "www-oceanbox" {
namespace = "www-oceanbox";
helm.releases.wordpress = {
inherit values;
chart = lib.helm.downloadHelmChart {
repo = "https://charts.bitnami.com/bitnami";
chart = "wordpress";
version = cfg.revision;
chartHash = "";
};
transformer = rs: builtins.map (x: kustomize x) rs;
};
};
}
+14
View File
@@ -0,0 +1,14 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: yolo-dl
namespace: argocd
spec:
project: aux
destination:
server: https://10.255.241.99:4443
namespace: oceanbox
sources:
- repoURL: https://gitlab.com/oceanbox/manifests.git
targetRevision: main
path: charts/yolo-dl
-16
View File
@@ -1,16 +0,0 @@
apiVersion: v1
kind: Secret
metadata:
annotations:
managed-by: argocd.argoproj.io
labels:
argocd.argoproj.io/secret-type: cluster
name: cluster-staging-vcluster
namespace: argocd
stringData:
config: |
{"bearerToken":"eyJhbGciOiJSUzI1NiIsImtpZCI6InhKNmNNemw4V01jR0cxUHJ4ajE3bTdQRDlKd1ZyQUQ0cDFPcXRuVDBFbWsifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi10b2tlbiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJhZG1pbiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImUyNjQ2MDgzLTNjMDMtNDc0Ni1iMGIxLWViOGRmMzY3NTNiMiIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLXN5c3RlbTphZG1pbiJ9.hXQzh4mus2yPwXz-EyowgSpOKgOk7uDU8z-dH-sZJ-UgzxQFOxABfkjD4Kb4JYlXrr_zkMO7n_zkaDOl3iFDCDS2Pury7hsIlJNKETYk-_llH0RYI9DYzAB5PkeOyuKhmRq8eklynq5ObPtk7WVuj3Bp-64uSqfX-WvxqoE0dfh0erSVcU7BwwjRdeDnO01xzv5zXXAYkOmk6e5DGOLBdUMD8kDZE0_NEa-MKCVkl78sc2mCsOMOUhzXoCduvc92hfnoFEfoTKe7xHwLeUim4HvVfD9czXOpRtHKXgEsk0UGtj0xg7D70uftUIxpr4a8rbWceM4eyGtXpjPUm1mh1Q","tlsClientConfig":{"insecure":true}}
name: staging-vcluster
server: https://staging-vcluster.staging-vcluster
type: Opaque
+14
View File
@@ -0,0 +1,14 @@
apiVersion: v1
stringData:
config: |
{"bearerToken":"","tlsClientConfig":{"insecure":true}}
name: ekman
server: https://10.255.241.99:4443
kind: Secret
metadata:
labels:
argocd.argoproj.io/secret-type: cluster
name: cluster-10.255.241.99-4046803085
namespace: argocd
type: Opaque
@@ -4,4 +4,4 @@ RUN mkdir -p /home/argocd/cmp-server/config/
COPY plugin.yaml /home/argocd/cmp-server/config/
WORKDIR /plugin
COPY init.sh get-values.sh generate.sh ./
COPY init-helm-repos.sh init.sh get-values.sh generate.sh ./
@@ -1,23 +1,24 @@
#!/bin/sh
export HOME=/tmp
export HOME=/helm-working-dir
env > /tmp/$ARGOCD_APP_NAME.env
echo "$ARGOCD_APP_PARAMETERS" | jq '.[] | select(.name == "helm-parameters") | .map' | yq -P -oy > parameters.yaml
cp parameters.yaml /tmp/$ARGOCD_APP_NAME-parameters.yaml
if [ -d chart ]; then
CHART=chart
elif [ -f chart -a "$PARAM_CHART" = "." ]; then
CHART=$(cat chart)
elif [ -n "$PARAM_CHART" ]; then
if [ -n "$PARAM_CHART" -a "$PARAM_CHART" != "." ]; then
CHART=$PARAM_CHART
elif [ -d chart ]; then
CHART=chart
elif [ -f chart ]; then
CHART=$(cat chart)
else
CHART="."
fi
[ -f chart/values.yaml ] && VALUES="-f chart/values.yaml"
[ -f values-chart.yaml ] && VALUES="$VALUES -f values-chart.yaml"
[ -f values.yaml ] && VALUES="$VALUES -f values.yaml"
[ -f values-$PARAM_ENV.yaml ] && VALUES="$VALUES -f values-$PARAM_ENV.yaml"
VALUES="$VALUES -f parameters.yaml"
@@ -2,6 +2,8 @@
if [ -f values.yaml ]; then
VALUES="values.yaml"
elif [ -f values-chart.yaml ]; then
VALUES="values-chart.yaml"
elif [ -f chart/values.yaml ]; then
VALUES="chart/values.yaml"
else
@@ -1,12 +1,15 @@
#!/bin/sh
export HOME=/tmp
export HOME=/helm-working-dir
helm repo add --username argocd-helm --password "$OCEANBOX_HELM_ACCESS_TOKEN" oceanbox \
https://gitlab.com/api/v4/projects/54396343/packages/helm/stable
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add cerbos https://download.cerbos.dev/helm-charts
helm repo add dapr https://dapr.github.io/helm-charts/
helm repo add ncsa https://opensource.ncsa.illinois.edu/charts
helm repo add dex https://charts.dexidp.io
helm repo add openfga https://openfga.github.io/helm-charts
helm repo update
@@ -0,0 +1,12 @@
#!/bin/sh
export HOME=/helm-working-dir
helm repo update oceanbox
if [ -n "$PARAM_CHART" -a "$PARAM_CHART" != "." ]; then
helm show values $PARAM_CHART > values-chart.yaml
elif [ -f chart ]; then
CHART=$(cat chart)
helm show values $CHART > values-chart.yaml
fi
+16
View File
@@ -0,0 +1,16 @@
apiVersion: v1
kind: Secret
metadata:
annotations:
managed-by: argocd.argoproj.io
labels:
argocd.argoproj.io/secret-type: cluster
name: cluster-staging-vcluster
namespace: argocd
stringData:
config: |
{"bearerToken":"","tlsClientConfig":{"insecure":true}}
name: staging-vcluster
server: https://staging-vcluster.staging-vcluster
type: Opaque
+2 -3
View File
@@ -12,8 +12,7 @@ description: Archive management for Atlantis
type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: v6.19.5
version: v6.20.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v6.19.5
appVersion: v6.20.0
+2 -2
View File
@@ -84,8 +84,8 @@ spec:
emptyDir: {}
{{- end }}
- name: appsettings
secret:
secretName: {{ template "Archmeister.fullname" . }}-appsettings
configMap:
name: {{ template "Archmeister.fullname" . }}-appsettings
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
+12 -1
View File
@@ -5,12 +5,23 @@
replicaCount: 1
image:
repository: registry.gitlab.com/oceanbox/oceanbox.dataagent
tag: v6.19.5
tag: v6.20.0
pullPolicy: IfNotPresent
init:
enabled: false
image: ubuntu:rolling
command: ["/bin/sh", "-c", "true"]
env:
- name: LOG_LEVEL
value: "3"
- name: APP_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: APP_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
imagePullSecrets:
- name: gitlab-pull-secret
nameOverride: ""
+2 -14
View File
@@ -1,18 +1,6 @@
apiVersion: v2
name: atlantis
description: Atlantis map and simulation service
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: v2.78.15
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v2.78.15
version: v2.87.1
appVersion: v2.87.1
+34 -6
View File
@@ -2,14 +2,15 @@
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: {{ include "Atlantis.fullname" . }}
name: {{ include "Atlantis.fullname" . }}-db
namespace: {{ .Release.Namespace }}
annotations:
linkerd.io/inject: disabled
labels:
{{- include "Atlantis.labels" . | nindent 4 }}
spec:
instances: {{ .Values.cluster.instances | default "2" }}
instances: {{ .Values.cluster.instances | default "1" }}
imageName: ghcr.io/cloudnative-pg/postgis:15-3.3
# Example of rolling update strategy:
# - unsupervised: automated update of the primary once all
# replicas have been upgraded (default)
@@ -18,9 +19,36 @@ spec:
primaryUpdateStrategy: unsupervised
backup:
retentionPolicy: {{ .Values.cluster.backupRetention | default "60d" }}
storage:
size: {{ .Values.cluster.size | default "5Gi" }}
{{- with .Values.cluster.bootstrap }}
bootstrap:
{{- if .enabled }}
pg_basebackup:
source: archmaester
externalClusters:
- name: archmaester
connectionParameters:
host: {{ .source.db }}-rw.{{ .source.namespace }}
user: streaming_replica
sslmode: verify-full
sslKey:
name: {{ .source.db }}-replication
key: tls.key
sslCert:
name: {{ .source.db }}-replication
key: tls.crt
sslRootCert:
name: {{ .source.db }}-ca
key: ca.crt
{{- else }}
initdb:
postInitTemplateSQL:
- CREATE EXTENSION postgis;
- CREATE EXTENSION postgis_topology;
- CREATE EXTENSION fuzzystrmatch;
- CREATE EXTENSION postgis_tiger_geocoder;
- ALTER USER app WITH SUPERUSER;
{{- end }}
{{- end }}
{{- end }}
+3 -2
View File
@@ -2,6 +2,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "Atlantis.fullname" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "Atlantis.labels" . | nindent 4 }}
spec:
@@ -83,8 +84,8 @@ spec:
emptyDir: {}
{{- end }}
- name: appsettings
secret:
secretName: {{ template "Atlantis.fullname" . }}-appsettings
configMap:
name: {{ template "Atlantis.fullname" . }}-appsettings
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
+1
View File
@@ -3,6 +3,7 @@ apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: {{ include "Atlantis.fullname" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "Atlantis.labels" . | nindent 4 }}
spec:
+3 -2
View File
@@ -16,6 +16,7 @@ apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: {{ $fullName }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "Atlantis.labels" . | nindent 4 }}
{{- with .Values.ingress.annotations }}
@@ -53,8 +54,8 @@ spec:
port:
number: {{ $svcPort }}
{{- else }}
serviceName: {{ $fullName }}
servicePort: {{ $svcPort }}
serviceName: {{ .serviceName | default $fullName }}
servicePort: {{ .servicePort | default $svcPort }}
{{- end }}
{{- end }}
{{- end }}
@@ -0,0 +1,62 @@
{{- if .Values.ingress.enabled -}}
{{- $fullName := include "Atlantis.fullname" . -}}
{{- $svcPort := .Values.service.port -}}
{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
{{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }}
{{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}}
{{- end }}
{{- end }}
{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1
{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1beta1
{{- else -}}
apiVersion: extensions/v1beta1
{{- end }}
kind: Ingress
metadata:
name: {{ $fullName }}-internal
labels:
{{- include "Atlantis.labels" . | nindent 4 }}
{{- with .Values.ingress.annotations }}
annotations:
atlantis.oceanbox.io/expose: internal
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
ingressClassName: {{ .Values.ingress.className }}
{{- end }}
{{- if .Values.ingress.tls }}
tls:
{{- range .Values.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .Values.ingress.hosts }}
- host: {{ .host | quote }}
http:
paths:
{{- range .internal }}
- path: {{ .path }}
{{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
pathType: {{ .pathType }}
{{- end }}
backend:
{{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
service:
name: {{ $fullName }}
port:
number: {{ $svcPort }}
{{- else }}
serviceName: {{ $fullName }}
servicePort: {{ $svcPort }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
+1
View File
@@ -3,6 +3,7 @@ kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: {{ template "Atlantis.fullname" . }}
namespace: {{ .Release.Namespace }}
{{- with .Values.persistence.annotations }}
annotations:
{{ toYaml . | indent 4 }}
+38
View File
@@ -0,0 +1,38 @@
{{- if not .Values.cluster.enabled }}
apiVersion: v1
kind: Secret
metadata:
annotations:
kyverno/clone: "true"
name: {{ include "Atlantis.fullname" . }}-db-superuser
namespace: {{ .Release.Namespace }}
type: kubernetes.io/basic-auth
data:
username:
password:
{{- else }}
{{- if .Values.cluster.bootstrap.enabled }}
apiVersion: v1
kind: Secret
metadata:
annotations:
kyverno/clone: "true"
name: {{ .Values.cluster.bootstrap.source.db }}-replication
type: kubernetes.io/tls
data:
tls.crt: ""
tls.key: ""
---
apiVersion: v1
kind: Secret
type: Opaque
metadata:
annotations:
kyverno/clone: "true"
name: {{ .Values.cluster.bootstrap.source.db }}-ca
namespace: {{ .Release.Namespace }}
data:
ca.crt: ""
ca.key: ""
{{- end }}
{{- end }}
+1
View File
@@ -2,6 +2,7 @@ apiVersion: v1
kind: Service
metadata:
name: {{ include "Atlantis.fullname" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "Atlantis.labels" . | nindent 4 }}
spec:
@@ -3,6 +3,7 @@ apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ include "Atlantis.serviceAccountName" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "Atlantis.labels" . | nindent 4 }}
{{- with .Values.serviceAccount.annotations }}
@@ -0,0 +1,20 @@
{{- if .Values.serviceMonitor.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ include "Atlantis.fullname" . }}
namespace: {{ .Release.Namespace }}
spec:
endpoints:
- honorLabels: false
path: /metrics
port: http
jobLabel: {{ .Values.serviceMonitor.label | default (include "Atlantis.fullname" .) }}
namespaceSelector:
matchNames:
- {{ .Release.Namespace }}
selector:
matchLabels:
app.kubernetes.io/instance: {{ include "Atlantis.fullname" . }}
app.kubernetes.io/name: atlantis
{{- end }}
+43 -4
View File
@@ -3,21 +3,36 @@
# Declare variables to be passed into your templates.
replicaCount: 1
image:
repository: registry.gitlab.com/oceanbox/atlantis
tag: v2.78.15
tag: v2.87.1
pullPolicy: IfNotPresent
init:
enabled: false
image: ubuntu:rolling
command: ["/bin/sh", "-c", "true"]
env:
- name: LOG_LEVEL
value: "3"
- name: APP_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: APP_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
imagePullSecrets:
- name: gitlab-pull-secret
nameOverride: ""
fullnameOverride: ""
serviceAccount:
create: true
# Annotations to add to the service account
@@ -25,9 +40,12 @@ serviceAccount:
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
podAnnotations: {}
podSecurityContext:
fsGroup: 2000
securityContext:
capabilities:
drop:
@@ -35,11 +53,13 @@ securityContext:
readOnlyRootFilesystem: false
runAsNonRoot: true
runAsUser: 1000
service:
type: ClusterIP
port: 8085
ingress:
enabled: true
enabled: false
className: "nginx"
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "true"
@@ -49,21 +69,36 @@ ingress:
paths:
- path: /
pathType: ImplementationSpecific
- path: /events
pathType: ImplementationSpecific
serviceName: main-ingress-nginx-defaultbackend.ingress-nginx
servicePort: 80
internal:
- path: /internal
pathType: ImplementationSpecific
tls:
- hosts:
- atlantis.srv.oceanbox.io
secretName: atlantis-tls
persistence:
enabled: false
size: 1G
storageClass: ""
accessMode: ReadWriteOnce
cluster:
enabled: false
instances: 2
enabled: true
instances: 1
backupEnabled: true
backupRetention: 60d
size: 5Gi
bootstrap:
enabled: true
source:
db: prod-archmeister
namespace: atlantis
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
@@ -82,6 +117,10 @@ autoscaling:
maxReplicas: 100
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
serviceMonitor:
enabled: true
nodeSelector: {}
tolerations: []
affinity: {}
+2 -2
View File
@@ -12,7 +12,7 @@ description: A Helm chart for Kubernetes
type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: v2.6.4
version: v2.7.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v2.6.4
appVersion: v2.7.0
+2 -2
View File
@@ -81,8 +81,8 @@ spec:
emptyDir: {}
{{- end }}
- name: appsettings
secret:
secretName: {{ template "Hipster.fullname" . }}-appsettings
configMap:
name: {{ template "Hipster.fullname" . }}-appsettings
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
+12 -1
View File
@@ -5,12 +5,23 @@
replicaCount: 1
image:
repository: registry.gitlab.com/oceanbox/hipster
tag: v2.6.4
tag: v2.7.0
pullPolicy: IfNotPresent
init:
enabled: false
image: ubuntu:rolling
command: ["/bin/sh", "-c", "true"]
env:
- name: LOG_LEVEL
value: "3"
- name: APP_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: APP_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
imagePullSecrets:
- name: gitlab-pull-secret
nameOverride: ""
+2 -2
View File
@@ -12,7 +12,7 @@ description: A Helm chart for Kubernetes
type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: v1.9.8
version: v1.9.9
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1.9.8
appVersion: v1.9.9
@@ -1,19 +0,0 @@
- op: replace
path: /spec/template/spec/containers/0/livenessProbe/httpGet/path
value: /healthz
- op: replace
path: /spec/template/spec/containers/0/readinessProbe/httpGet/path
value: /healthz
- op: add
path: /spec/template/spec/containers/0/volumeMounts/-
value:
name: acl
mountPath: /app/acl.json
subPath: acl.json
readOnly: true
- op: add
path: /spec/template/spec/volumes/-
value:
name: acl
configMap:
name: petimeter-acl
-16
View File
@@ -1,16 +0,0 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: oceanbox
patches:
- target:
version: v1
group: apps
kind: Deployment
name: petimeter
path: deployment_patch.yaml
# configMapGenerator:
# - name: petimeter-acl
# files:
# - acl.json
resources:
- _manifest.yaml
+2 -2
View File
@@ -84,8 +84,8 @@ spec:
emptyDir: {}
{{- end }}
- name: appsettings
secret:
secretName: {{ template "Petimeter.fullname" . }}-appsettings
configMap:
name: {{ template "Petimeter.fullname" . }}-appsettings
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
+12 -1
View File
@@ -5,12 +5,23 @@
replicaCount: 1
image:
repository: registry.gitlab.com/oceanbox/petimeter
tag: v1.9.8
tag: v1.9.9
pullPolicy: IfNotPresent
init:
enabled: false
image: ubuntu:rolling
command: ["/bin/sh", "-c", "true"]
env:
- name: LOG_LEVEL
value: "3"
- name: APP_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: APP_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
imagePullSecrets:
- name: gitlab-pull-secret
nameOverride: ""
+2 -14
View File
@@ -1,18 +1,6 @@
apiVersion: v2
name: sorcerer
description: A Helm chart for Kubernetes
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: v4.7.7
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v4.7.7
version: v4.9.0
appVersion: v4.9.0
+3 -4
View File
@@ -38,8 +38,7 @@ spec:
containerPort: {{ .Values.service.port }}
protocol: TCP
env:
- name: LOG_LEVEL
value: "3"
{{- toYaml .Values.env | nindent 12 }}
livenessProbe:
httpGet:
path: /
@@ -84,8 +83,8 @@ spec:
emptyDir: {}
{{- end }}
- name: appsettings
secret:
secretName: {{ template "Sorcerer.fullname" . }}-appsettings
configMap:
name: {{ template "Sorcerer.fullname" . }}-appsettings
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
@@ -0,0 +1,62 @@
{{- if .Values.ingress.enabled -}}
{{- $fullName := include "Sorcerer.fullname" . -}}
{{- $svcPort := .Values.service.port -}}
{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
{{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }}
{{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}}
{{- end }}
{{- end }}
{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1
{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1beta1
{{- else -}}
apiVersion: extensions/v1beta1
{{- end }}
kind: Ingress
metadata:
name: {{ $fullName }}-internal
labels:
{{- include "Sorcerer.labels" . | nindent 4 }}
{{- with .Values.ingress.annotations }}
annotations:
atlantis.oceanbox.io/expose: internal
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
ingressClassName: {{ .Values.ingress.className }}
{{- end }}
{{- if .Values.ingress.tls }}
tls:
{{- range .Values.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .Values.ingress.hosts }}
- host: {{ .host | quote }}
http:
paths:
{{- range .internal }}
- path: {{ .path }}
{{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
pathType: {{ .pathType }}
{{- end }}
backend:
{{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
service:
name: {{ $fullName }}
port:
number: {{ $svcPort }}
{{- else }}
serviceName: {{ $fullName }}
servicePort: {{ $svcPort }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
+32 -1
View File
@@ -3,18 +3,36 @@
# Declare variables to be passed into your templates.
replicaCount: 1
image:
repository: registry.gitlab.com/oceanbox/sorcerer
tag: v4.7.7
tag: v4.9.0
pullPolicy: IfNotPresent
init:
enabled: false
image: ubuntu:rolling
command: ["/bin/sh", "-c", "true"]
env:
- name: LOG_LEVEL
value: "3"
- name: APP_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: APP_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
imagePullSecrets:
- name: gitlab-pull-secret
nameOverride: ""
fullnameOverride: ""
serviceAccount:
create: true
# Annotations to add to the service account
@@ -22,9 +40,12 @@ serviceAccount:
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
podAnnotations: {}
podSecurityContext:
fsGroup: 2000
securityContext:
capabilities:
drop:
@@ -32,9 +53,11 @@ securityContext:
readOnlyRootFilesystem: false
runAsNonRoot: true
runAsUser: 1000
service:
type: ClusterIP
port: 8085
ingress:
enabled: true
className: "nginx"
@@ -46,6 +69,9 @@ ingress:
paths:
- path: /
pathType: ImplementationSpecific
internal:
- path: /internal
pathType: ImplementationSpecific
tls:
- hosts:
- sorcerer.srv.oceanbox.io
@@ -62,6 +88,7 @@ cluster:
backupEnabled: true
backupRetention: 60d
size: 5Gi
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
@@ -80,6 +107,10 @@ autoscaling:
maxReplicas: 100
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
serviceMonitor:
enabled: true
nodeSelector: {}
tolerations: []
affinity: {}
@@ -6,9 +6,9 @@ metadata:
spec:
egress:
- toFQDNs:
- matchName: api.github.com
- matchName: dapr.github.io
- matchName: gitlab.com
- matchName: analytics.loft.rocks
# - matchName: gitlab.com
# - matchName: api.github.com
endpointSelector:
matchLabels: {}
+2 -2
View File
@@ -24,7 +24,7 @@ spec:
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: staging-archmeister
name: {{ $name }}-archmaester
namespace: {{ .Release.Namespace }}
annotations:
linkerd.io/inject: disabled
@@ -54,7 +54,7 @@ spec:
externalClusters:
- name: prod-archmeister
connectionParameters:
host: prod-archmeister-rw.atlantis.svc
host: prod-archmeister-rw.atlantis
user: streaming_replica
sslmode: verify-full
sslKey:
-14
View File
@@ -1,14 +0,0 @@
apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
name: jaeger
namespace: {{ .Release.Namespace }}
spec:
strategy: allInOne
ingress:
enabled: false
allInOne:
image: jaegertracing/all-in-one:1.22
options:
query:
base-path: /jaeger
@@ -1,49 +0,0 @@
{{- $fullname := include "vCluster.fullname" . -}}
{{- $name := include "vCluster.releaseName" . -}}
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
annotations:
kyverno.io/kyverno-version: 1.7.0
policies.kyverno.io/description: Allow egress to vcluster kube-apiserver
policies.kyverno.io/minversion: 1.7.0
policies.kyverno.io/subject: Namespace, NetworkPolicy
policies.kyverno.io/title: Generate NetworkPolicy to Existing Namespaces
name: allow-{{ $name }}-vcluster-apiserver
namespace: {{ .Release.Namespace }}
spec:
background: true
generateExisting: true
rules:
- name: allow-{{ $name }}-vcluster-apiserver
generate:
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
name: allow-{{ $name }}-vcluster-apiserver-access
namespace: {{ printf "{{request.object.metadata.name}}" | quote }}
synchronize: true
data:
spec:
description: Allow egress to vcluster kube-apiserver
egress:
- toEndpoints:
- matchLabels:
app: vcluster
toPorts:
- ports:
- port: "443"
protocol: TCP
endpointSelector: {}
match:
any:
- resources:
kinds:
- Namespace
names:
- {{ $fullname }}
- resources:
kinds:
- Namespace
selector:
matchLabels:
vcluster.loft.sh/vcluster-name: {{ $fullname }}
@@ -1,66 +0,0 @@
{{- $name := include "vCluster.releaseName" . -}}
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: "sync-{{ $name }}-vcluster-secrets"
spec:
background: true
generateExisting: true
rules:
- name: sync-rabbitmq-secrets
generate:
apiVersion: v1
kind: Secret
name: staging-rabbitmq
namespace: {{ printf "{{request.object.metadata.name}}" | quote }}
synchronize: false
clone:
namespace: rabbitmq
name: staging-rabbitmq
match:
resources:
kinds:
- Namespace
names:
- "vcluster-009dba7e-*"
selector:
matchLabels:
vcluster.loft.sh/vcluster-namespace: '{{ .Release.Namespace }}'
- name: sync-redis-secrets
generate:
apiVersion: v1
kind: Secret
name: staging-redis
namespace: {{ printf "{{request.object.metadata.name}}" | quote }}
synchronize: false
clone:
namespace: redis
name: staging-redis
match:
resources:
kinds:
- Namespace
names:
- "vcluster-009dba7e-*"
selector:
matchLabels:
vcluster.loft.sh/vcluster-namespace: '{{ .Release.Namespace }}'
- name: sync-archmeister-app-secret
generate:
apiVersion: v1
kind: Secret
name: staging-archmeister-app
namespace: {{ printf "{{request.object.metadata.name}}" | quote }}
synchronize: false
clone:
namespace: '{{ .Release.Namespace }}'
name: staging-archmeister-superuser
match:
resources:
kinds:
- Namespace
names:
- "vcluster-009dba7e-*"
selector:
matchLabels:
vcluster.loft.sh/vcluster-namespace: '{{ .Release.Namespace }}'
-13
View File
@@ -11,16 +11,3 @@ subjects:
- kind: ServiceAccount
namespace: {{ $fullname }}
name: {{ $fullname }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: vcluster-jaegers
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: vcluster-jaegers
subjects:
- kind: ServiceAccount
namespace: {{ $fullname }}
name: {{ $fullname }}
+17 -27
View File
@@ -16,7 +16,7 @@ spec:
namespace: {{ .Release.Namespace }}
source:
repoURL: https://charts.loft.sh
targetRevision: 0.19.5
targetRevision: 0.20.1
chart: vcluster
helm:
values: |-
@@ -63,14 +63,14 @@ spec:
mapServices:
fromHost:
- from: "redis/{{ .Values.environment }}-redis-master"
to: "redis/{{ .Values.environment }}-redis-master"
- from: "rabbitmq/{{ .Values.environment }}-rabbitmq"
to: "rabbitmq/{{ .Values.environment }}-rabbitmq"
- from: "{{ .Release.Namespace }}/staging-archmeister-rw"
to: "atlantis/staging-archmeister-rw"
- from: "{{ .Release.Namespace }}/jaeger-collector"
to: "atlantis/jaeger-collector"
- from: "{{ .Release.Namespace }}/{{ $name }}-archmaester-rw"
to: "atlantis/{{ $name }}-archmaester-rw"
- from: "idp/{{ .Values.environment }}-openfga"
to: "idp/{{ .Values.environment }}-openfga"
- from: "otel/opentelemetry-collector"
to: "otel/opentelemetry-collector"
- from: "idp/{{ .Values.environment }}-cerbos"
to: "idp/{{ .Values.environment }}-cerbos"
sync:
@@ -94,31 +94,14 @@ spec:
- apiGroups: [ "cilium.io" ]
resources: [ "ciliumnetworkpolicies" ]
verbs: [ "get", "list", "watch", "create", "patch" ]
# - apiGroups: [ "jaegertracing.io" ]
# resources: [ "jaegers" ]
# verbs: [ "get", "list", "watch", "create", "patch" ]
config: |-
version: v1beta1
import:
- kind: Cluster
apiVersion: postgresql.cnpg.io/v1
- kind: Secret
apiVersion: v1
# - kind: Component
# apiVersion: dapr.io/v1alpha1
# - kind: Configuration
# apiVersion: dapr.io/v1alpha1
# - kind: Subscription
# apiVersion: dapr.io/v1alpha1
# - kind: Jaeger
# apiVersion: jaegertracing.io/v1
# - kind: CiliumNetworkPolicy
# apiVersion: cilium.io/v2
export:
- kind: CiliumNetworkPolicy
apiVersion: cilium.io/v2
# - kind: Jaeger
# apiVersion: jaegertracing.io/v1
- kind: Cluster
apiVersion: postgresql.cnpg.io/v1
init:
manifests: |-
---
@@ -161,6 +144,13 @@ spec:
annotations:
kubernetes.io/service-account.name: admin
type: kubernetes.io/service-account-token
---
apiVersion: v1
kind: Namespace
metadata:
labels:
kubernetes.io/metadata.name: atlantis
name: atlantis
# The contents of manifests-template will be templated using helm
# this allows you to use helm values inside, e.g.: {{ .Release.Name }}
@@ -172,7 +162,7 @@ spec:
helm:
- chart:
name: dapr
version: 1.13.3
version: 1.14.0
repo: https://dapr.github.io/helm-charts/
release:
name: dapr
+49
View File
@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: yolo-dl
name: yolo-dl
namespace: oceanbox
spec:
replicas: 1
selector:
matchLabels:
app: yolo-dl
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: yolo-dl
spec:
containers:
- command:
- /bin/sh
- -c
- httpd -p 8000 -f
image: busybox:latest
imagePullPolicy: IfNotPresent
name: yolo-dl
ports:
- containerPort: 8000
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /data
name: data
workingDir: /data
dnsPolicy: ClusterFirst
restartPolicy: Always
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: data
persistentVolumeClaim:
claimName: yolo-dl-data
@@ -1,7 +1,7 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-prod-ceph-archives
name: pv-yolo-dl
spec:
accessModes:
- ReadWriteMany
@@ -16,22 +16,7 @@ spec:
fsName: data
clusterID: rook-ceph
staticVolume: "true"
rootPath: /archives
volumeHandle: pv-prod-ceph-archives
rootPath: /ssd/dl
volumeHandle: pv-yolo-dl
persistentVolumeReclaimPolicy: Retain
volumeMode: Filesystem
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: prod-ceph-archives
namespace: sorcerer
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
storageClassName: ""
volumeMode: Filesystem
volumeName: pv-prod-ceph-archives
+14
View File
@@ -0,0 +1,14 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: yolo-dl-data
namespace: oceanbox
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
storageClassName: ""
volumeMode: Filesystem
volumeName: pv-yolo-dl
+33
View File
@@ -0,0 +1,33 @@
let
sources = import ./nix;
system = builtins.currentSystem;
pkgs = import sources.nixpkgs {
inherit system;
config = { };
overlays = [ ];
};
nixpkgs = sources.nixpkgs;
nixhelm = sources.nixhelm;
nixidy = import sources.nixidy { inherit nixpkgs; };
kube = pkgs.callPackage "${sources.nix-kube-gen}/lib/default.nix" { inherit pkgs; };
in
nixidy.lib.mkEnvs {
libOverlay = self: super: {
apps = import ./modules/lib.nix { inherit pkgs kube; };
};
modules = [
(
{ lib, ... }:
{
nixidy.charts = lib.helm.mkChartAttrs "${nixhelm}/charts";
}
)
./modules
./apps
./policies
];
envs = {
prod.modules = [ ./envs/prod.nix ];
staging.modules = [ ./envs/staging.nix ];
};
}
+13
View File
@@ -0,0 +1,13 @@
_:
{
config = {
apps = {
env = "prod";
autoSync = false;
prune = false;
atlantis.enable = true;
openfga.enable = true;
};
};
}
+17
View File
@@ -0,0 +1,17 @@
_:
{
config = {
apps = {
env = "staging";
autoSync = true;
prune = true;
atlantis = {
enable = true;
autoSync = true;
prune = false;
};
openfga.enable = true;
};
};
}
Generated
+666
View File
@@ -0,0 +1,666 @@
{
"nodes": {
"cargo2nix": {
"inputs": {
"flake-compat": "flake-compat_3",
"flake-utils": "flake-utils_5",
"nixpkgs": "nixpkgs_3",
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1699033427,
"narHash": "sha256-OVtd5IPbb4NvHibN+QvMrMxq7aZN5GFoINZSAXKjUdA=",
"owner": "cargo2nix",
"repo": "cargo2nix",
"rev": "c6f33051f412352f293e738cc8da6fd4c457080f",
"type": "github"
},
"original": {
"owner": "cargo2nix",
"ref": "release-0.11.0",
"repo": "cargo2nix",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_3": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1726560853,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"id": "flake-utils",
"type": "indirect"
}
},
"flake-utils_3": {
"inputs": {
"systems": "systems_3"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_4": {
"inputs": {
"systems": "systems_5"
},
"locked": {
"lastModified": 1701680307,
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_5": {
"inputs": {
"systems": "systems_7"
},
"locked": {
"lastModified": 1694529238,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"haumea": {
"inputs": {
"nixpkgs": [
"nixhelm",
"nixpkgs"
]
},
"locked": {
"lastModified": 1685133229,
"narHash": "sha256-FePm/Gi9PBSNwiDFq3N+DWdfxFq0UKsVVTJS3cQPn94=",
"owner": "nix-community",
"repo": "haumea",
"rev": "34dd58385092a23018748b50f9b23de6266dffc2",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "v0.2.2",
"repo": "haumea",
"type": "github"
}
},
"kubenix": {
"inputs": {
"flake-compat": "flake-compat",
"nixpkgs": [
"nixidy",
"nixpkgs"
],
"systems": "systems_6",
"treefmt": "treefmt"
},
"locked": {
"lastModified": 1718110643,
"narHash": "sha256-KrEOCx/bpN++sySOEL5EO5AhYsqRZZk+CXacueUeSl4=",
"owner": "hall",
"repo": "kubenix",
"rev": "a04066c45526c6d8410ba998134f692ff991b4f3",
"type": "github"
},
"original": {
"owner": "hall",
"repo": "kubenix",
"type": "github"
}
},
"nix-github-actions": {
"inputs": {
"nixpkgs": [
"nixhelm",
"poetry2nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1703863825,
"narHash": "sha256-rXwqjtwiGKJheXB43ybM8NwWB8rO2dSRrEqes0S7F5Y=",
"owner": "nix-community",
"repo": "nix-github-actions",
"rev": "5163432afc817cf8bd1f031418d1869e4c9d5547",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-github-actions",
"type": "github"
}
},
"nix-kube-generators": {
"locked": {
"lastModified": 1708155396,
"narHash": "sha256-A/BIeJjiRS7sBYP6tFJa/WHDPHe7DGTCkSEKXttYeAQ=",
"owner": "farcaller",
"repo": "nix-kube-generators",
"rev": "14dbd5e5b40615937900f71d9a9851b59b4d9a88",
"type": "github"
},
"original": {
"owner": "farcaller",
"repo": "nix-kube-generators",
"type": "github"
}
},
"nix-kube-generators_2": {
"locked": {
"lastModified": 1708155396,
"narHash": "sha256-A/BIeJjiRS7sBYP6tFJa/WHDPHe7DGTCkSEKXttYeAQ=",
"owner": "farcaller",
"repo": "nix-kube-generators",
"rev": "14dbd5e5b40615937900f71d9a9851b59b4d9a88",
"type": "github"
},
"original": {
"owner": "farcaller",
"repo": "nix-kube-generators",
"type": "github"
}
},
"nix-kube-generators_3": {
"locked": {
"lastModified": 1708155396,
"narHash": "sha256-A/BIeJjiRS7sBYP6tFJa/WHDPHe7DGTCkSEKXttYeAQ=",
"owner": "farcaller",
"repo": "nix-kube-generators",
"rev": "14dbd5e5b40615937900f71d9a9851b59b4d9a88",
"type": "github"
},
"original": {
"owner": "farcaller",
"repo": "nix-kube-generators",
"type": "github"
}
},
"nixhelm": {
"inputs": {
"flake-utils": "flake-utils_2",
"haumea": "haumea",
"nix-kube-generators": "nix-kube-generators_2",
"nixpkgs": [
"nixpkgs"
],
"poetry2nix": "poetry2nix"
},
"locked": {
"lastModified": 1728868745,
"narHash": "sha256-ZuaxkAtUL1visOmVMxgHk3j+H8/bMmm82tJfE1s35VY=",
"owner": "farcaller",
"repo": "nixhelm",
"rev": "f901d2ba3ce1bd0086d50efdcce3cc76bce04d80",
"type": "github"
},
"original": {
"owner": "farcaller",
"repo": "nixhelm",
"type": "github"
}
},
"nixidy": {
"inputs": {
"flake-utils": "flake-utils_4",
"kubenix": "kubenix",
"nix-kube-generators": "nix-kube-generators_3",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1728815994,
"narHash": "sha256-uF6HAoDMAX0cZbKH27k/0UpIteQMhyLkP1rYKUfj5ys=",
"owner": "arnarg",
"repo": "nixidy",
"rev": "6e20193c95a0aaca444289d7c69f4eb329d25234",
"type": "github"
},
"original": {
"owner": "arnarg",
"ref": "HEAD",
"repo": "nixidy",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1702151865,
"narHash": "sha256-9VAt19t6yQa7pHZLDbil/QctAgVsA66DLnzdRGqDisg=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "666fc80e7b2afb570462423cb0e1cf1a3a34fedd",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1720386169,
"narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "194846768975b7ad2c4988bdb82572c00222c0d7",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1728492678,
"narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1697382362,
"narHash": "sha256-PvFjWFmSYOF6TjNZ/WjOeqa+sgaWm+83Fz37vEuATHA=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "ad9a253a0d34f313707f9c25fb8c95c65b1c8882",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "release-23.05",
"repo": "nixpkgs",
"type": "github"
}
},
"poetry2nix": {
"inputs": {
"flake-utils": "flake-utils_3",
"nix-github-actions": "nix-github-actions",
"nixpkgs": [
"nixhelm",
"nixpkgs"
],
"systems": "systems_4",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1718285706,
"narHash": "sha256-DScsBM+kZvxOva7QegfdtleebMXh30XPxDQr/1IGKYo=",
"owner": "nix-community",
"repo": "poetry2nix",
"rev": "a5be1bbbe0af0266147a88e0ec43b18c722f2bb9",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "poetry2nix",
"type": "github"
}
},
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat_2",
"gitignore": "gitignore",
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1728778939,
"narHash": "sha256-WybK5E3hpGxtCYtBwpRj1E9JoiVxe+8kX83snTNaFHE=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "ff68f91754be6f3427e4986d7949e6273659be1d",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nix-kube-generators": "nix-kube-generators",
"nixhelm": "nixhelm",
"nixidy": "nixidy",
"nixpkgs": "nixpkgs_2",
"pre-commit-hooks": "pre-commit-hooks",
"yaml2nix": "yaml2nix"
}
},
"rust-overlay": {
"inputs": {
"flake-utils": [
"yaml2nix",
"cargo2nix",
"flake-utils"
],
"nixpkgs": [
"yaml2nix",
"cargo2nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1697336027,
"narHash": "sha256-ctmmw7j4liyfSh63v9rdFZeIoNYCkCvgqvtEOB7KhX8=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "e494404d36a41247987eeb1bfc2f1ca903e97764",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_4": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"id": "systems",
"type": "indirect"
}
},
"systems_5": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_6": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"id": "systems",
"type": "indirect"
}
},
"systems_7": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"treefmt": {
"inputs": {
"nixpkgs": [
"nixidy",
"kubenix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1688026376,
"narHash": "sha256-qJmkr9BWDpqblk4E9/rCsAEl39y2n4Ycw6KRopvpUcY=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "df3f32b0cc253dfc7009b7317e8f0e7ccd70b1cf",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nixhelm",
"poetry2nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1717850719,
"narHash": "sha256-npYqVg+Wk4oxnWrnVG7416fpfrlRhp/lQ6wQ4DHI8YE=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "4fc1c45a5f50169f9f29f6a98a438fb910b834ed",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"yaml2nix": {
"inputs": {
"cargo2nix": "cargo2nix",
"flake-utils": [
"flake-utils"
],
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1726132715,
"narHash": "sha256-DkHWWpvBco2yodyOk40LjTNcoaJ1bFKf0JY9OwWgy5M=",
"owner": "euank",
"repo": "yaml2nix",
"rev": "3a6df359da40ee49cb9ed597c2400342b76f2083",
"type": "github"
},
"original": {
"owner": "euank",
"repo": "yaml2nix",
"type": "github"
}
}
},
"root": "root",
"version": 7
}
+148
View File
@@ -0,0 +1,148 @@
{
description = "My ArgoCD configuration with nixidy.";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
nixidy = {
url = "github:juselius/nixidy?ref=HEAD";
# url = "github:juselius/nixidy?ref=special-args";
# url = "/home/jonas/src/OceanBox/nixidy";
# inputs.nixpkgs.follows = "nixpkgs";
};
nixhelm = {
url = "github:farcaller/nixhelm";
inputs.nixpkgs.follows = "nixpkgs";
};
pre-commit-hooks = {
url = "github:cachix/pre-commit-hooks.nix";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-kube-generators.url = "github:farcaller/nix-kube-generators";
yaml2nix = {
url = "github:euank/yaml2nix";
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-utils.follows = "flake-utils";
};
};
outputs =
{
self,
nixpkgs,
flake-utils,
nixidy,
nixhelm,
yaml2nix,
pre-commit-hooks,
nix-kube-generators,
}:
(flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = import nixpkgs { inherit system; };
kube = nix-kube-generators.lib { inherit pkgs; };
lib = {
apps = import ./modules/lib.nix { inherit pkgs kube;};
};
in
{
nixidyEnvs = nixidy.lib.mkEnvs {
inherit pkgs;
extraSpecialArgs = { inherit lib; };
charts = nixhelm.chartsDerivations.${system};
modules = [
./modules
./apps
./policies
];
envs = {
prod.modules = [ ./envs/prod.nix ];
staging.modules = [ ./envs/staging.nix ];
};
};
checks = {
pre-commit-check = pre-commit-hooks.lib.${system}.run {
src = ./.;
hooks = {
nixfmt-rfc-style.enable = false;
deadnix.enable = false;
statix.enable = false;
};
};
};
packages = {
nixidy = nixidy.packages.${system}.default;
generators = {
cilium = nixidy.packages.${system}.generators.fromCRD {
name = "cilium";
src = pkgs.fetchFromGitHub {
owner = "cilium";
repo = "cilium";
rev = "v1.16.0";
hash = "sha256-LJrNGHF52hdKCuVwjvGifqsH+8hxkf/A3LZNpCHeR7E=";
};
crds = [
"pkg/k8s/apis/cilium.io/client/crds/v2/ciliumnetworkpolicies.yaml"
"pkg/k8s/apis/cilium.io/client/crds/v2/ciliumclusterwidenetworkpolicies.yaml"
];
};
kyverno = nixidy.packages.${system}.generators.fromCRD {
name = "kyverno";
src = pkgs.fetchFromGitHub {
owner = "kyverno";
repo = "kyverno";
rev = "v1.12.6";
hash = "sha256-FwVB1okxhWTzWlZljGEEH9KuSsJl9GmwnX7bn4iDx/M=";
};
crds = [
"config/crds/kyverno/kyverno.io_cleanuppolicies.yaml"
"config/crds/kyverno/kyverno.io_clustercleanuppolicies.yaml"
"config/crds/kyverno/kyverno.io_clusterpolicies.yaml"
"config/crds/kyverno/kyverno.io_globalcontextentries.yaml"
"config/crds/kyverno/kyverno.io_policies.yaml"
"config/crds/kyverno/kyverno.io_policyexceptions.yaml"
"config/crds/kyverno/kyverno.io_updaterequests.yaml"
];
};
};
};
apps = {
gen-crd = {
type = "app";
program =
(pkgs.writeShellScript "generate-modules" ''
set -eo pipefail
echo "generate cilium"
cat ${self.packages.${system}.generators.cilium} > modules/cilium-crd.nix
echo "generate kyverno"
cat ${self.packages.${system}.generators.kyverno} > modules/kyverno-crd.nix
'').outPath;
};
};
devShells.default = pkgs.mkShellNoCC {
inherit (self.checks.${system}.pre-commit-check) shellHook;
nativeBuildInputs = with pkgs; [
self.checks.${system}.pre-commit-check.enabledPackages
nixidy.packages.${system}.default
yaml2nix.packages.${system}.default
nixd
nixfmt-rfc-style
just
fzf
];
NIXD_FLAGS = "--inlay-hints";
};
}
));
}
+44
View File
@@ -0,0 +1,44 @@
let
sources = import ./nix;
system = builtins.currentSystem;
pkgs = import sources.nixpkgs {
inherit system;
config = { };
overlays = [ ];
};
nixpkgs = sources.nixpkgs;
nixidy = import sources.nixidy { inherit nixpkgs; };
in
{
cilium = nixidy.generators.fromCRD {
name = "cilium";
src = pkgs.fetchFromGitHub {
owner = "cilium";
repo = "cilium";
rev = "v1.16.0";
hash = "sha256-LJrNGHF52hdKCuVwjvGifqsH+8hxkf/A3LZNpCHeR7E=";
};
crds = [
"pkg/k8s/apis/cilium.io/client/crds/v2/ciliumnetworkpolicies.yaml"
"pkg/k8s/apis/cilium.io/client/crds/v2/ciliumclusterwidenetworkpolicies.yaml"
];
};
kyverno = nixidy.generators.fromCRD {
name = "kyverno";
src = pkgs.fetchFromGitHub {
owner = "kyverno";
repo = "kyverno";
rev = "v1.12.6";
hash = "sha256-FwVB1okxhWTzWlZljGEEH9KuSsJl9GmwnX7bn4iDx/M=";
};
crds = [
"config/crds/kyverno/kyverno.io_cleanuppolicies.yaml"
"config/crds/kyverno/kyverno.io_clustercleanuppolicies.yaml"
"config/crds/kyverno/kyverno.io_clusterpolicies.yaml"
"config/crds/kyverno/kyverno.io_globalcontextentries.yaml"
"config/crds/kyverno/kyverno.io_policies.yaml"
"config/crds/kyverno/kyverno.io_policyexceptions.yaml"
"config/crds/kyverno/kyverno.io_updaterequests.yaml"
];
};
}

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