k8s/helm/forgejo/install.sh

39 lines
1 KiB
Bash
Raw Normal View History

2024-03-09 01:43:10 +00:00
#!/bin/bash
CHART_VERSION=4.0.1
NAMESPACE=forgejo
VAULT_AUTH_NAMESPACE="k8s-teapot"
helm repo add forgejo oci://codeberg.org/forgejo-contrib/forgejo
helm repo update
kubectl create ns forgejo
kubectl create serviceaccount -n ${NAMESPACE} forgejo
kubectl apply -n ${NAMESPACE} -f external-secrets.yaml
cat << EOH > forgejo.hcl
path "kv/data/git" {
capabilities = ["read"]
}
EOH
vault policy write forgejo forgejo.hcl
rm forgejo.hcl
HOST_IP=$(ip addr show eth0 | grep -Po 'inet \K[\d.]+')
TOKEN="$(kubectl get secret serviceaccounttoken -n forgejo -o go-template='{{ .data.token }}' | base64 -d)"
vault write auth/${VAULT_AUTH_NAMESPACE}/role/fogejo \
bound_service_account_names=forgejo \
bound_service_account_namespaces=forgejo \
policies=forgejo \
ttl=24h
vault write auth/${VAULT_AUTH_NAMESPACE}/login role=forgejo jwt=${TOKEN} iss=https://${HOST_IP}:6443
helm upgrade --install \
forgejo \
forgejo/forgejo \
-f values.yaml \
-n ${NAMESPACE} \
--version ${CHART_VERSION} \
--cleanup-on-fail