How do I upgrade Quod-AI?

  1. Pull the latest helm chart, update values file if there is any new values

  2. Run

bash on-prem/upgrade.sh

How do I backup up the cluster before uninstalling?

This is automatically done when run helm uninstall quod-ai --namespace quod-ai

How do I restore the cluster while installing?

EXTRA="--set backup.restoreOnInstall=true" bash on-prem/install.sh

How do I configure the nginx ingress?

The ingress sit behind an AWS load balancer and help to route the traffic to the correct services https://aws.amazon.com/blogs/opensource/network-load-balancer-nginx-ingress-controller-eks/

How we are supposed to create these DNS, where they would point and what is their usage?

After you installed the chart, an nginx ingress will be created to point all requests to corresponding Quod AI services. The nginx ingress URL will be something that look like this


Then you will need to update your DNS to map the domain in the values file to the above url, eg

We are using name based virtual hosting so you just need to map above domain to the LoadBalancer URL of the nginx ingress.

How do I use ingress generated url instead of domain name?

If your ingress generates a URL for a specific service, eg http://internal-k8s-applicat-fowebing-8a23d2421b-11581221.eu-west-1.elb.amazonaws.com/ . You will need to add those domain into the on-prem-secret-values files (with out http:// and / suffix , eg:

domain: i[nternal-k8s-applicat-fowebing-8a23d2421b-11581221.eu-west-1.elb.amazonaws.com](<http://internal-k8s-applicat-fowebing-8a23d2421b-11581221.eu-west-1.elb.amazonaws.com/>)

Ingress must accept SSL use because we don't support non SSL using.

How do I configure the nginx ingress (changing Load Balancer, etc.)?

In the values.yaml section you can configure the nginx ingress to use another AWS load balancer (NLB, ALB), default to use classic load balancer

# Use for public endpoint repo webhook, if gitlab server is on the the same internal network, can be covert into internal ingress ingress-nginx: controller: ingressClass: ingress-nginx # service: # annotations: # service.beta.kubernetes.io/aws-load-balancer-internal: "true" # service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "600" rbac: create: true

My chart keep trying to download kibana/phpmyadmin problem

You can disable kibana/phpmyadmin by setting in on-prem-values.yaml

kibana: enable: false pma: enable: false

How do I use my own image repositories?

  1. Reupload all listed images in the above to your repositories

  2. Replace image values in corresponding values file with new images

How do I monitor if all deployments are successful?

Use an external monitor app like k8lens. Then verify if all the pods in namespace quod-ai are green.

My repo-webhook deployment fails while all other deployments are green

Run bash on-prem/upgrade.sh so it can try to resolve any leftover issues. Repo-webhook deployment is only started when all the migration jobs are done.

How to query all downloaded images on cluster after install?

kubectl get pods --all-namespaces -o jsonpath="{..image}" |\\ tr -s '[[:space:]]' '\\n' |\\ sort |\\ uniq -c

What size of repositories do you support?

The on premise version is modified to work on small instances (16gb ram) so you should be submitting repo with less than 10,000 commits and less than 2000 files just for testing purpose. We are actively working to address this memory constraint.

Is it possible to disable SSL certificate? Can I use HTTP instead of HTTPs?

No, it's not possible at the moment.

Are the 5 static IPs absolutely required?

No they aren't required.

What are the minimum hardware requirements for a dev install?

  • 1 CPU node pool with 4 cores 16 GB ram 50GB disk

  • 1 GPU pool with 4 cores 16 GB ram 50GB disk with taints
    [nvidia.com/gpu:](<http://nvidia.com/gpu:>) "present:NoSchedule"

Cluster should have node auto scaler enabled.

Here is an EKS cluster configuration, you can refer to it for your K8S cluster.

How do I map the IP addresses to the domain?

  1. Query for the ingress IP: sh on-prem/map-domain.sh This will return 1 IP address.

  2. Create a mapping on your DNS manager (Amazon Route 53, Cloudflare, etc.) to the IP address in step 1.

    1. webhook-quodai.mycompany.com

    2. fo-quodai.mycompany.com

  3. For testing purposes, you can create the mapping your /etc/hosts file (experimental)

Did this answer your question?