# Forgejo Images
- 1: Konflux: https://konflux.apps.kfluxfedorap01.toli.p1.openshiftapps.com/application-pipeline/workspaces/fedora-infra-tenant/applications/forgejo
- 2: Forgejo upstream: https://codeberg.org/forgejo/forgejo
- 3: Fedora forgejo fork: https://codeberg.org/fedora/forgejo
- 4: Mirror in github: https://github.com/fedora-infra/forgejo-oci-images/
- 5: Fedora forgejo image: https://codeberg.org/fedora/oci-image-definitions
- 6: Forgejo helm chart: https://code.forgejo.org/forgejo-helm/forgejo-helm/
- 7: Fedora fork of forgejo helm-chart: https://codeberg.org/fedora/forgejo-helm
- 8: Fedora Codeberg namespace: https://codeberg.org/fedora
- 9: Install helm https://helm.sh/docs/intro/install/
- 10: Support for helm charts on openshift: https://www.redhat.com/en/blog/quay-oci-artifact-support-for-helm-charts
- 11: Helm install: https://helm.sh/docs/helm/helm_install/
The image definition in [5] is:
- hooked into building in konflux https://konflux.apps.kfluxfedorap01.toli.p1.openshiftapps.com/application-pipeline/workspaces/fedora-infra-tenant/applications/forgejo-oci-images
- in our konflux workspace, we have 2 images being built.
- the first is the upstream code [2] dockerfile.rootless in the code, built using the alpine image
- the second [5] is the fork of the upstream code, built using the fedora rawhide base image. This is using the dockerfile contained in [3]
Both images running on Fedora rawhide.
Image of fedora/forgejo: quay.io/konflux-fedora/fedora-infra-tenant/forgejo-oci-images@sha256:4f29a06ab8ad2d2a86025a8176e1088a583306597813a14447d34f8dbfb7a439
Image of forgejo/forgejov10: quay.io/konflux-fedora/fedora-infra-tenant/forgejo-oci-images-upstream@sha256:615a861ac69b63c663e5fe9be9b72c0cf73778c49130c2c5870e8ea46296836f
### Update a helm chart dependency list
```
helm dependency update
Saving 5 charts
Downloading common from repo oci://ghcr.io/visualon/bitnamicharts
Pulled: ghcr.io/visualon/bitnamicharts/common:2.30.0
Digest: sha256:99803abd7b4ed72c154bb08a2728ff94aafd68c4e4d89b0a734476e513036552
Downloading postgresql from repo oci://ghcr.io/visualon/bitnamicharts
Pulled: ghcr.io/visualon/bitnamicharts/postgresql:16.4.14
Digest: sha256:74f18137496ba9360fc410af9c9868307ebf3889a41b521bf385f246532d0bd9
Downloading postgresql-ha from repo oci://ghcr.io/visualon/bitnamicharts
Pulled: ghcr.io/visualon/bitnamicharts/postgresql-ha:15.2.3
Digest: sha256:bed2d63a493ca77fc6be03e461707d3967dfeb9faa1b56aa1c399335f3fc841c
Downloading redis-cluster from repo oci://ghcr.io/visualon/bitnamicharts
Pulled: ghcr.io/visualon/bitnamicharts/redis-cluster:11.4.3
Digest: sha256:70d89cdb5aa7448c81f0899e91bb76bb71087b06f22655ff7dd23f01d84ceacf
Downloading redis from repo oci://ghcr.io/visualon/bitnamicharts
Pulled: ghcr.io/visualon/bitnamicharts/redis:20.8.0
Digest: sha256:fa1696bfeca8f231c2f42ea485c9455e4e222320a5ba25f461fc65913c14d8a3
Deleting outdated charts
```
### Bundle up a helm chart into a tar.gz file
```
helm package .
Successfully packaged chart and saved it to: /home/dkirwan/repos/codeberg/forgejo-helm/forgejo-0.0.0.tgz
```
If the version is coming out as 0.0.0 or whatever you can update the version inside the Chart.yaml:
```
version: 0.0.0
appVersion: 10.0.1
```
Version should technically match the appversion inside the Chart.yaml not sure why that isn't the case. Updated and then:
### Install helm chart
```
helm install -f forgejo-values.yaml forgejo-dev forgejo-11.0.3.tgz
```
### Clean up the PVCs during an uninstall
```
for i in $(oc get pvc | grep -v NAME | cut -d " " -f1); do oc delete pvc $i; done
```
### Uninstall helm chart
```
helm uninstall forgejo-dev
```
### Build the forgejo-helm helm charts image
Build the image we need to unblock deployment do the following:
```
- install helm utility [9]
- git clone of [7]
- cd forgejo-helm
- helm dependency update
- helm package .
- helm registry login <QUAY_HOSTNAME>
- helm push /home/dkirwan/repos/codeberg/forgejo-helm/forgejo-10.0.0.tgz oci:/quay.io/fedora/forgejo-helm:v11.0.0
```
- we need to understand how our konflux is currently pushing images to quay.io... theres going to be some creds added somewhere..
- we need to get an automated user authorised to push our built images to quay.io
- check to see if there is a tekton helm workflow
- we need to come up with a proper location to store the image in the quay.io/fedora organisation. im presuming it will just be quay.io/fedora/forgejo-helm
- As it turns out you dont need to build a helm chart image after all, as I can do it directly via ansible and helm.
- use the forked fedora/forgejo repo
- use a branch on there `fedora`
- in this branch we make any changes that fedora needs to make to forgejo
- that includes the dockerfile
- this oci-image-defintions repo needs to be in github, but the dockerfile doesn't need to be in its own repo, so basically just clone/sync the contents of the fedora/forgejo repo on fedora branch there.
- going forward any changes to the dockerfile just makle them in fedora/forgejo repo like any other fedora changes made to forgejo.
- do we really need/want to use fedora as the base for postgresql? why are we building that also..
codeberg actions - forgejo upstream
https://codeberg.org/fedora/forgejo-helm/src/branch/main/.forgejo
=> to our forgejo fork
read docs on forgejo actions => start it with renovate
actions fails because they're not configured well => https://codeberg.org/fedora/forgejo/actions
We want to have postgres and redis images.. do we really need them to be built on fedora? seems like a lot of work.. would it not make more sense to deploy using a supported method that RH supports? eg postgres operator, redis operator? (if they exist)
https://operatorhub.io/operator/postgresql
https://operatorhub.io/operator/redis-enterprise