Gerrit review minikube

Deploy gerrit on kubernetes

Download git repository with helm charts

git clone https://gerrit.googlesource.com/k8s-gerrit
cd k8s-gerrit

Create namespace

kubectl create ns gerrit-operator

Update helm dependencies

helm dependency build helm-charts/gerrit-operator/

Install k8s operator

helm -n gerrit-operator install gerrit-operator helm-charts/gerrit-operator/

Install NFS

kubectl create ns nfs
helm repo add nfs-ganesha-server-and-external-provisioner \
  https://kubernetes-sigs.github.io/nfs-ganesha-server-and-external-provisioner/
helm upgrade \
  --install nfs \
  nfs-ganesha-server-and-external-provisioner/nfs-server-provisioner \
  -n nfs

Create gerrit namespace and sample secrets

kubectl create ns gerrit
kubectl apply -f Documentation/examples/gerrit.secret.yaml

Create single gerrit cluster

kubectl apply -f Documentation/examples/1-gerritcluster.yaml

Create gerrit-ingress.yaml file to generate an ingress to the Web UI.

Host IP is the output of minikube ip command

cat << EOF > gerrit-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: gerrit-ingress
spec:
  rules:
    - host: "gerrit.$(minikube ip).nip.io"
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: gerrit-service
                port:
                  number: 80
EOF

Create the ingress

 kubectl apply -f gerrit-ingress.yaml -n gerrit

Create IngressRouteTcp to allow git through SSH

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRouteTCP
metadata:
  labels:
    app: gerrit-service
  name: gerrit-service
  namespace: gerrit
spec:
  entryPoints:
  - gerrit-service
  routes:
  - match: HostSNI(`*`)
    services:
    - name: gerrit-service
      namespace: gerrit
      port: 29418

Last updated