Control Plane Requirements:

For helm based installation, check for requirements in the cloud provider page:

Installation steps

  1. Create truefoundry namespace

    kubectl create ns truefoundry
    
  2. The helm charts to use for the three cloud providers are as follows -

  3. Add the truefoundry helm repo

      helm repo add argocd https://argoproj.github.io/argo-helm
      helm repo add truefoundry https://truefoundry.github.io/infra-charts/
      helm repo update truefoundry argocd
    
  4. Install ArgoCD if not already installed

      helm install argocd argo/argo-cd \
       --namespace argocd \
       --create-namespace \
       --version 7.8.26 \
       --set server.extraArgs[0]="--insecure" \
       --set server.extraArgs[1]="--application-namespaces=*" \
       --set controller.extraArgs[0]="--application-namespaces=*" \
       --set applicationSet.enabled=false \
       --set notifications.enabled=false \
       --set dex.enabled=false
    

    Check the ArgoCD docs for more details

  5. Create a file called values.yaml and fill in the values with content given by Truefoundry team

     tenantName: "" # Given by Truefoundry team
     controlPlaneURL: "https://domain" # Given by Truefoundry team
     clusterName: ""
    
     truefoundry:
       enabled: true
       devMode:
         enabled: false # Set to true if you want to test the control plane in dev mode
       # Virtual service to create
       virtualservice:
         enabled: false
         hosts: ["domain"]
         gateways: ["istio-system/tfy-wildcard"]
       database:
         host: ""
         name: ""
         username: ""
         password: ""
       tfyApiKey: "" # Given by Truefoundry team
       truefoundryImagePullConfigJSON: "" # Given by truefoundry team
     tfyAgent:
       enabled: false # kept false as this is used only in compute plane
    
  6. Apply the helm chart with the values.yaml. Replace the chart_name with the correct one from step 3

    helm install inframold truefoundry/<chart_name> -f values.yaml --namespace truefoundry --create-namespace
    
  7. Point the domain to the Load balancer IP of the control plane. Check here on how to add a certificate for TLS.

    kubectl get svc -n istio-system
    

Test the installation

  1. Check if the pods are running in the truefoundry namespace

    kubectl get pods -n truefoundry
    
  2. Access the control plane dashboard via https://domain or if via port-forward if dev mode is enabled

    kubectl port-forward svc/truefoundry-truefoundry-frontend-app -n truefoundry 5000:5000