Caproni development setup for GKG and AR
x-posting the slack message:
>Hey folks! I've got something that I'd like for the two of you two collaborate on. As an extension of Nailia's research spike on some of the requirements for GKG and @lucus.li's research on the Artifact Registry I'd like to see a couple of things:
>
> please identify any gaps in either of these analyses to uncover any additional dependencies that each component might have
once you've got an idea of their dependencies (thinking of things like NATS, Siphon, etc) build some very quick proofs of concept by packaging them via Helm for k8s deployment. the idea here is that we'd like for something that runs in Caproni and could scale into a testing environment
> michele [1:29 AM]
Adding AR to the list, as they have Postgres as a requirement and looking at Cloud Native PG could be a great starting point. Even exploring the current available operators for these if they are availabe is an option. Whatever allows us to have a PoC in a short time to let's say run: PG, Clickhouse and NATS in Caproni. Doesn't have to be production scale, enough to develop and test.
>
> if you need to pick something PG and ClickHouse, if it has to be one only clickhouse
## Acceptance Criteria
Caproni is intended to be a **local development tool**. This PoC must demonstrate that all required dependencies for GKG and AR can be deployed and consumed locally via Helm on Kubernetes.
### In Scope
- [x] Verify if there is any gaps in https://gitlab.com/gitlab-com/gl-infra/software-delivery/operate/team-tasks/-/work_items/35+ and https://gitlab.com/gitlab-com/gl-infra/software-delivery/operate/team-tasks/-/work_items/43+
- [x] Deploy all dependencies with **Caproni**
- [x] For GKG Knowledge Graph:
- [x] ClickHouse
- [x] NATS.io
- [x] For AR Artifact Registry:
- [x] PostgreSQL (multiple logical/physical databases)
- [x] Redis / Valkey
- [x] S3-compatible object storage (Garage)
- [x] If service exposure needed, a generic Ingress (specifically Traefik for caproni) or Gateway API should work.
- [x] All deployed components are **ready to be consumed** by GKG, AR, or a generic Kubernetes workload (i.e., services are reachable, configured, and healthy)
### Out of Scope
- Shipping the external components to public (e.g., publishing Helm charts externally)
- Integrating and deploying GKG or AR themselves (only their dependencies are in scope)
epic