Configuring platform settings#

Global configurations:
  • The Authentication Center client URL

  • The internal database

  • Optional NFS server volume mounts

  • HTTPS certificate settings

  • Resource profiles

  • The Kubernetes cluster

  • Any users, groups, or roles with Admin authorization

  • The git commit file size limit (Anaconda recommends keeping files under 50MB)

Per-Service configurations:
  • The authentication server used to secure access

  • The deployment server used to deploy apps

  • The workspace server used to run sessions

  • The storage server used to store and version projects

  • The local repository server used for channels and packages

  • The S3 endpoint and Git server used to store object and data

  • The local documentation server URL and platform UI configuration

  • System metrics from Prometheus

  • Alert management

  • Grafana dashboard visualizations

Setting platform configurations using the Helm chart#

This is the preferred and recommended method for updating platform configurations.

Anaconda’s Kubernetes Helm chart encapsulates application definitions, dependencies, and configurations into a single values.yaml file. This file contains both global and per-service settings for the platform. For more information about how Workbench uses Helm and to view the default Helm chart template, see Helm chart.

To make configuration changes to the platform:

  1. Connect to your instance of Workbench.

  2. Save your current configurations using the extract_config.sh script by running the following command:

    # Replace <NAMESPACE> with the namespace Workbench is installed in
    NAMESPACE=<NAMESPACE> ./extract_config.sh
    

    Note

    The extract_config.sh script creates multiple files and saves them in the directory where the script was run. You need the helm_values.yaml file.

  3. Verify that the information captured in helm_values.yaml file contains your current cluster configuration settings.

  4. Update the helm_values.yaml file to include or alter your cluster configurations, then save your changes.

  5. Perform a Helm upgrade by running the following command:

    helm upgrade --values ./helm_values.yaml anaconda-enterprise ./Anaconda-Enterprise/
    

Setting platform configurations using the config map#

Workbench platform settings can also be managed by the anaconda-enterprise-anaconda-platform.yml config map, though this is no longer the recommended method for platform configuration updates.

  1. Connect to your instance of Workbench.

  2. Create a backup of your current configmap file, then edit your configurations by running the following commands:

    Run the commands from anywhere you have kubectl access to the cluster:

    # Replace <NAMESPACE> with your Workbench cluster namespace
    kubectl get cm -n <NAMESPACE> anaconda-enterprise-anaconda-platform.yml -o=jsonpath={.data."anaconda-platform\.yml"} > anaconda-platform.yml
    kubectl delete cm -n <NAMESPACE> anaconda-enterprise-anaconda-platform.yml
    kubectl create cm -n <NAMESPACE> anaconda-enterprise-anaconda-platform.yml --from-file anaconda-platform.yml
    

    Run the following commands in an interactive shell on the master node:

    # Replace <NAMESPACE> with your Workbench cluster namespace
    sudo gravity enter
    kubectl get cm -n <NAMESPACE> anaconda-enterprise-anaconda-platform.yml -o=jsonpath={.data."anaconda-platform\.yml"} > anaconda-platform.yml
    kubectl delete cm -n <NAMESPACE> anaconda-enterprise-anaconda-platform.yml
    kubectl create cm -n <NAMESPACE> anaconda-enterprise-anaconda-platform.yml --from-file anaconda-platform.yml
    
  3. Make your changes to the file, then save it.

  4. Restart all pods using the following command:

    # Replace <NAMESPACE> with your Workbench cluster namespace
    kubectl delete -n <NAMESPACE> --wait=false $(kubectl get pods -o name|grep ap-)
    

Tip

If something goes wrong with your configuration updates, you can restore your previous configurations by re-running the following commands:

# Replace <NAMESPACE> with your Workbench cluster namespace
kubectl delete cm -n <NAMESPACE> anaconda-enterprise-anaconda-platform.yml
kubectl create cm -n <NAMESPACE> anaconda-enterprise-anaconda-platform.yml --from-file anaconda-platform.yml