Install YaK on Rancher Desktop

YaK may be locally installed using Rancher Desktop (for testing or development purpose from a workstation for example). We do not recommend using this setup for production.

Prereq: Install Rancher desktop

https://docs.rancherdesktop.io/getting-started/installation

Install YaK

1. Go to Cluster Dashboard

2. Create your own yak namespace

  • Go to Cluster/Namespace:

  • Create new namespace:

We usually simply use "yak4all" as namespace, but feel free to be creative 😄

3. Add repository

Now from your terminal:

helm repo add yak https://gitlab.com/api/v4/projects/63133284/packages/helm/stable && helm repo update

4. Create your "yak.values.yaml" file

global:
  hostname: <your_hostname>.<your_domain>
  admin_credentials:    
    password: "ABCdef1234@" #default password to be changed to your need

yak-postgres:
  postgresPassword: "" # Randomly generated if not set
  persistence:
    size: 20Gi
    storageClassName: "<your_storage_class>" # Uses default if empty

yak-graphile:
  # Archive storage stores the component types archives at import time
  persistence: &archives_storage
    size: 20Gi
    storageClassName: "<your_storage_class>" # Uses default if empty
  # If using a multi-node cluster, uncomment these 2 lines:
    #accessModes:
     # - ReadWriteMany

  # If you want to expose the rest API at https://hostname/data/graphql and have the postgraphile UI at https://yak.my-domain.local/data/graphiql
  ingress:
    enabled: true
    className: "<your_ingress_class>" # Uses default if empty
    tls:
     - secretName: yak-tls-secret
       hosts:
       - <your_hostname>.<your_domain>

yak-runner:
  image:
    pullPolicy: Always
  persistence:
  # Runner shares the archives storage with graphile
    graphile: *archives_storage
    components:
      enabled: true
      storageClassName: "<your_storage_class>" # Uses default if empty
      size: 8Gi
    sshconfig:
      enabled: true
      storageClassName: "<your_storage_class>" # Uses default if empty
      size: 1Gi

yak-ui:
  # Mandatory if you want to access the UI through ingress
  ingress:
    enabled: true
    className: "<your_ingress_class>" # Uses default if empty
    tls:
     - secretName: yak-tls-secret
       hosts:
       - <your_hostname>.<your_domain>
  • Replace "<your_hostname>.<your_domain>" in the yaml file with your actual hostname

    • ex : yak.my-domain.com

  • Replace "<your_storage_class>"in the yaml file with your actual storage class name

    • It will use the default storage class if left empty

    • You can list your storage classes using kubectl get sc if needed.

  • Replace "<your_ingress_class>" in the yaml file with your actual ingress class name

  • Save the file as "yak.values.yaml"

5. Create your TLS secret

Optionally, for testing purpose, you can generate a self signed certificate with the following command.

openssl req -x509 -newkey rsa:2048 -keyout <key-filepath>.key -out <cert-filepath>.pem -days 365 -nodes

For the Ingress TLS configuration, use your certificate and create the following Kubernetes secret.

kubectl create secret tls yak-tls-secret -n <namespace> --cert=<cert-filepath>.pem --key=<key-filepath>.key

6. Install YaK

helm install yak yak/yak -f yak.values.yaml -n <namespace>

7. Check that YaK is properly deployed

  • Go to Workload/Pods, you should see 4 running pods:

8. Connect to the YaK with https

  • https://<your_hostname>.<your_domain>

  • Default credentials :

    • Login: admin

    • Password: ABCdef1234@

If using Rancher Desktop for a local installation of your YaK (on a laptop and for testing purpose for example), you may need to update your hosts file (/etc/hosts) and add this line:

127.0.0.1    <your_hostname>.<your_domain>

Last updated