Deploying HTCondor on demand

Templating an HTCondor k8s cluster: Helm

Helm helps managing Kubernetes applications through a standard templating. The latest version of Helm is maintained by the CNCF - in collaboration with Microsoft, Google, Bitnami and the Helm contributor community. For this hands on we will use the v2 though, since DODAS is currently in the midle of the migration from v2 to v3.

Helm motivation

On HelmHub you can find by yourselves the motivation of adopting a widely adopted template format.

Helm uses a packaging format called charts. A chart is a collection of files that describe a related set of Kubernetes resources. A single chart might be used to deploy something simple, like a memcached pod, or something complex, like a full web app stack with HTTP servers, databases, caches, and so on.

Chart folder tree

Charts are created as files laid out in a particular directory tree, then they can be packaged into versioned archives to be deployed.

wordpress/
  Chart.yaml          # A YAML file containing information about the chart
  LICENSE             # OPTIONAL: A plain text file containing the license for the chart
  README.md           # OPTIONAL: A human-readable README file
  values.yaml         # The default configuration values for this chart
  templates/          # A directory of templates that, when combined with values,
                      # will generate valid Kubernetes manifest files.
  templates/NOTES.txt # OPTIONAL: A plain text file containing short usage notes

Values

HELM values

Templates

Test the deployment

To get the compiled K8s manifest from HELM:

helm template mychart -x templates/deployment.yaml

Live HandsOn:

  • configure condor client
  • condor_status -any

EXTRA

If you delete the current Helm deployment:

$ helm list
NAME    REVISION    UPDATED                     STATUS      CHART                       APP VERSION NAMESPACE
condor  1           Wed Nov 27 12:26:18 2019    DEPLOYED    helm-chart_htcondor-0.1.0   1.0         default  
$ helm delete condor

Then you can try by hand:

helm install --name mycondor helm-chart_htcondor/ --values /etc/condor_values.yml