
As a precursor to: * Enabling Plugins * So that I can get GitHub credentials from Vault via [this plugin](https://github.com/martinbaillie/vault-plugin-secrets-github) * So that I can use [this history-syncing plugin](https://gitea.scubbo.org/scubbo/commit-report-sync) without needing to refresh tokens, including in _this_ repo. * At which point I want to [use LetsEncrypt to provide certs for Traefik Ingresses](https://adamtheautomator.com/letsencrypt-with-k3s-kubernetes/#Ensuring_Seamless_Certificate_Renewals_with_a_ClusterIssuer) * So that I can use Keycloak, which [demands an http scheme](https://github.com/keycloak/keycloak/issues/30977#issuecomment-2208679081). What a deep rabbit-hole I am in! :)
Collection of Helm charts, primarily for use in my own homelab (though, if you want to use them, you're welcome to!)
Usage
Package and upload
# Package a chart ready to be uploaded
$ helm package charts/<path>
# Do the upload
$ curl --user <username>:<password> -X POST --upload-file ./<package>.tgz https://hostname.of.gitea/api/packages/<user>/helm/api/charts
# Don't forget to delete the `.tgz`!
Installation
Bootstrap with kubectl apply -f main-manifest.yaml
TODO: App-of-apps to manage whole-cluster configuration in a more programmatic way.
Initial bootstrap
Note that you need to have manually connected the source Repository in ArgoCD before installing the App-of-apps.
TODO - when we have a better secrets management system, export Gitea user password so that it can be used by ArgoCD to initialize that repository directly (https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#repositories)
Jsonnet
As of 2024, I started using Jsonnet to define apps in a less repetitious way.
To check the output before submitting, use jsonnet -J app-of-apps app-of-apps/<filename>.jsonnet
Other links
- General documentation on repositories
- Gitea's own documentation
- Helm charts via Argo, broader application syntax
- Don't be caught out by Argo's behaviour of only accepting Applications in its own namespace!
- See here for examples of how to call the Argo UI