A Journey in Learning

Installing Kubeflow: Kustomize and KfDEF

Kustomize

This section reviews a tool called Kustomize that allows easy modifications to configurations, this section can be skipped.

Kustomize is a program that will be utilized to modify kubeflow’s installation and can be used to configure certain parameters surrounding Authentication and Authorization. Kustomize utilizes a manifest file that is provided by kubeflow. This manifest file contains all the necessary configuration files to deploy this service across multiple platforms. The manifest folder utilized for this installation can be found here, download the entire release.

Kustomize may be required for advanced customization of an installation, however its suggested to utilize kustomize version 3.2.3. The following installation process has been tested on a local DGX cluster

Run the following command, copy and paste the entire block:

$
curl --silent --location --remote-name \
"https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v3.2.3/kustomize_kustomize.v3.2.3_linux_amd64" && \
chmod a+x kustomize_kustomize.v3.2.3_linux_amd64 && \
sudo mv kustomize_kustomize.v3.2.3_linux_amd64 /usr/local/bin/kustomize

Check installation through a version check, run the command: $ kustomize version, See a sample output below:

Version: {Version:kustomize/v3.2.3 GitCommit:f8412aa3d39f32151525aff97a351288f5a7470b BuildDate:2019-10-08T23:30:25Z GoOs:linux GoArch:amd64}

KFDEF

This section reviews stack template files called KfDef configurations, this relates to kustomize and can be skipped.

The local Kubeflow Manifest folder contains KFDEF files located inside \manifests-1.2.0\kfdef These KFDEF files are the bases of how Kubeflow will deploy services into different applications.

Application kustomization

Kustomize works by assigning a base configuration for each application that is deployed. This base configuration is referenced when making new configuration changes. For example below, A KFdef file will list dex as one of the programs to be installed. Dex is a OpenID Connect program for authentication. This installation script will refer to specific locations within the manifest that hold yaml configuration templates to deploy the services in a kubernetes environment. These Yaml configuration files will refer to a parameters file for configuration. Users can modify the params file to change configuration settings and utilize kustomize and kubectl commands to patch changes directly into a working system.