How to Install Wallaroo Enterprise on Linux

Organizations can install Wallaroo Enterprise in a single Linux virtual machine or bare-metal Linux system. The following instructions are targeted at Linux Ubuntu 20.04 distribution.

Installation Flow

A typical installation of Wallaroo Enterprise follows this flow:

  • Create Environment: Create the environment to install Wallaroo that meets the system prerequisites.
  • Install Wallaroo: Install Wallaroo into the target environment.
  • Configure DNS: Configure DNS services and the Wallaroo instance for your organization’s use.

Prerequisites

Before starting the bare Linux installation, the following conditions must be met:

  • Have a Wallaroo Enterprise license file. For more information, you can request a demonstration.
  • A Linux bare-metal system or virtual machine with at least 16 cores and 64 GB RAM with Ubuntu 20.04 installed. A total of 625 GB of storage will be allocated for the entire cluster based on 5 users with up to four pipelines with five steps per pipeline, with 50 GB allocated per node, including 50 GB specifically for the Jupyter Hub service. Enterprise users who deploy additional pipelines will require an additional 50 GB of storage per lab node deployed.
  • Disable memory swapping by removing it from /etc/fstab.
  • An account with sudo access for root level commands.
  • DNS services for integrating your Wallaroo Enterprise instance. See the DNS Integration Guide for the instructions on configuring Wallaroo Enterprise with your DNS services.

Note that if Wallaroo is being installed into a cloud environment such as Google Cloud Platform, Microsoft Azure, Amazon Web Services, etc, then additional considerations such as networking, DNS, certificates, and other considerations must be accounted for.

Installation

These steps require the installation of Kubernetes, Kots, and Wallaroo Enterprise.

The process includes these major steps:

  • Install Kubernetes
  • Install Kots Version
  • Copy the Kubernetes Context To Your Local System (Optional)
  • Install Wallaroo Enterprise
  • Connect to Your Wallaroo Enterprise Instance

Install Kubernetes

To install Kubernetes on the target system, log into the Linux system and perform the following steps:

  1. Verify that the Ubuntu distribution is up to date, and reboot if necessary after updating.

    sudo apt update
    sudo apt upgrade
    
  2. Install curl:

    sudo apt install curl
    
  3. Start the Kubernetes installation with the following script:

    curl https://kurl.sh/9398a3a | sudo bash
    
    1. If prompted with This application is incompatible with memory swapping enabled. Disable swap to continue? (Y/n), reply Y.
  4. Create the local .kube configation directory:

    mkdir -p $HOME/.kube
    
  5. Copy the kubernetes server configuration to the logged in user’s home directory:

    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
    chmod u+w $HOME/.kube/config
    
  6. Update the user’s .bashrc with the KUBECONFIG settings:

    echo 'export KUBECONFIG=$HOME/.kube/config' >> ~/.bashrc
    
  7. Log out, and log back in as the same user. Verify the installation was successful with the following:

    kubectl get nodes
    

    It should return results similar to the following:

    NAME     STATUS   ROLES                  AGE     VERSION
    wallux   Ready    control-plane,master   6m26s   v1.23.6
    

Install Kots

Install kots with the following process.

  1. Run the following script and provide your password for the sudo based commands when prompted.

    curl https://kots.io/install/1.81.0 | bash
    
  2. Verify kots was installed with the following command:

    kubectl kots version
    

    It should return results similar to the following:

    Replicated KOTS 1.81.0
    

Copy the Kubernetes Context To Your Local System

The following process will copy the Kubernetes context to your local system. This assumes that kubectl and kots are installed on the local system.

  1. Retrieve the contents of $KUBECONFIG in the example this is $HOME/.kube/config. For example, the cat command will display the following:

    cat $KUBECONFIG
    
    apiVersion: v1
    clusters:
    - cluster:
        certificate-authority-data: {Your certificate data here}
        server: https://{IP Address of your Linux system}:6443
    name: kubernetes
    contexts:
    - context:
        cluster: kubernetes
        user: kubernetes-admin
    name: kubernetes-admin@kubernetes
    current-context: kubernetes-admin@kubernetes
    kind: Config
    preferences: {}
    users:
    - name: kubernetes-admin
    user:
        client-certificate-data: {Your client-certificate data}
        client-key-data: {Your client key data}
    
  2. If this will be the only Kubernetes environment that you’ll be interacting with, copy the contents into your local $KUBECONFIG file.

  3. If there are multiple Kubernetes environments, import the cluster, context and user section into the relative sections of your file. For example, the following $KUBECONFIG settings would be updated to include the new Kubernetes environment:

    Old configuration:

    apiVersion: v1
    clusters:
    - cluster:
        certificate-authority-data: {Cluster authority data}}
        server: https://104.197.45.170
    name: my-old-cluster
    - cluster:
        certificate-authority-data: {Your certificate data here}
        server: https://{IP Address of your Linux system}:6443
    name: kubernetes
    contexts:
    - context:
        cluster: my-old-cluster
        user: my-old-user
    name: my-old-context
    current-context: my-old-context
    kind: Config
    preferences: {}
    users:
    - name: my-old-user
    user:
        client-certificate-data: {old certificate data}
        client-key-data: {old key data}
    

    New configuration:

    apiVersion: v1
    clusters:
    - cluster:
        certificate-authority-data: {Cluster authority data}}
        server: https://104.197.45.170
    name: my-old-cluster
    contexts:
    - context:
        cluster: my-old-cluster
        user: my-old-user
    name: my-old-context
    - context:
        cluster: kubernetes
        user: kubernetes-admin
    name: kubernetes-admin@kubernetes
    current-context: my-old-context
    kind: Config
    preferences: {}
    users:
    - name: my-old-user
    user:
        client-certificate-data: {old certificate data}
        client-key-data: {old key data}
    - name: kubernetes-admin
    user:
        client-certificate-data: {Your client-certificate data}
        client-key-data: {Your client key data}
    
  4. To change to the new Kubernetes context so kubectl and kots commands default to that context, use the kubectl config use-context command. For example:

    kubectl config use-context kubernetes-admin@kubernetes
    

Install Wallaroo Enterprise

Wallaroo Enterprise can be installed either through an interactive process or through the command line through the following commands. In either case, the hardware prerequisites as detailed in the Wallaroo Local System Prerequisites Guide must be met.

Interactive Installation

To install Wallaroo Enterprise through an interactive web interface into the namespace wallaroo, use the following kots command:

kubectl kots install wallaroo/ea -n wallaroo

Automated Installation

To automatically install Wallaroo into the namespace wallaroo, specify the administrative password and the license file during the installation as follows:

kubectl kots install wallaroo/ea -n wallaroo --license-file {License File} --shared-password {My Admin Password}

For example, for the license file myWallaroolicense.yaml and the password snugglebunnies, the command would be as follows:

kubectl kots install wallaroo/ea -n wallaroo --license-file myWallaroolicense.yaml --shared-password snugglebunnies

Configuration

Once installed, Wallaroo will continue to run until terminated. Wallaroo is configured using the Wallaroo Administrative Dashboard, launched during the installation process detailed above.

To relaunch the Wallaroo Administrative Dashboard and make changes or updates, use the following command:

kubectl-kots admin-console --namespace wallaroo

DNS Services

Wallaroo Enterprise requires integration into your organizations DNS services, and is completed in the next step.

Install Wallaroo

With the environment prepared, Wallaroo can now be installed.

Step Status
Setup Environment COMPLETED!
Install Wallaroo Enterprise
NEXT STEP!
COMPLETED!
Integrate Wallaroo with DNS Services Update Wallaroo post-install