# 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