• Documentation
  • Tutorials
  • Blogs
  • Product

What's on this Page

  • Download the images and chart
    • Store the Step Docker images to your private Docker repository
    • Install Helm
    • Download the Helm Chart
  • Customize the default Step values
    • Update the Image parameters
    • Update the Common parameters
    • Configure the license
  • Deploy the Step Helm Chart
  • Access Step
  • Step
  • Set up Step
  • Installation
  • Install in Kubernetes
Categories: ADMIN GUIDE
This article references one of our previous releases, click here to go to our latest version instead.

Install in Kubernetes

This page aims to guide you through the process of installing Step in a Kubernetes environment using the official Helm chart and Docker images of Step.

The Docker images and Helm charts are part of Step Enterprise and are only accessible to customers having access to the enterprise registry.

As the Step Docker images are not published in a public Docker repository, this page will also explain how to download them and to store them into your company’s private repository.

Download the images and chart

Store the Step Docker images to your private Docker repository

If you haven’t already access to the enterprise registry of Step, follow the page Access enterprise artifacts to request your access.

Once you have access, login to the docker registry of Step:

docker login docker.exense.ch -u YOUR_USERNAME -p YOUR_PASSWORD

Then, pull the images using the below commands (mind the version tag):

docker pull docker.exense.ch/step-enterprise/controller:3.25.2-java-17
docker pull docker.exense.ch/step-enterprise/agent:3.25.2-java-17
docker pull docker.exense.ch/step-enterprise/agent:3.25.2-dotnet-8

Once done, ensure that you tag and push them to your company private Docker repository : the tag must follow below pattern to work with the Helm Chart (below example for the Step EE Controller version 3.25.2): YOUR_COMPANY_PRIVATE_REPO/step-enterprise/controller:3.25.2-java-17

For instance:

docker tag docker.exense.ch/step-enterprise/controller:3.25.2-java-17 YOUR_COMPANY_PRIVATE_REPO/step-enterprise/controller:3.25.2-java-17
docker push YOUR_COMPANY_PRIVATE_REPO/step-enterprise/controller:3.25.2-java-17

Repeat the same process for other required Step Docker images before you continue.

Install Helm

Install the latest stable version of Helm. For information on installing Helm, refer to the official documentation available at https://helm.sh/docs/intro/install/.

Download the Helm Chart

The Helm Charts can be downloaded from the “step-chart” folder present on Step Enterprise FTP (refer to Access enterprise artifacts for accessing it). Using a single command, below example could be used (password will be asked by the prompt):

curl -u YOUR_USERNAME --output step-1.0.0.tgz https://ftps.exense.ch/step-chart/step-1.0.0.tgz

Customize the default Step values

The Chart comes with a default values file at the Chart root (step.values.yaml). You will have to customize it prior to your first deployment. In that guide, we will cover the mandatory values to be updated before being able to deploy Step to your Kubernetes cluster.

Refer to the Helm Values page for all details about the customizable values.

Below example assumes that you have stored the Chart locally and made a copy of the default step.values.yaml file.

Update the Image parameters

Image parameters needs to be updated to specify your company Docker image repository, as well as the image pull secrets to be used:

image:
  repository: "YOUR_COMPANY_PRIVATE_REPO"
  pullPolicy: Always

imagePullSecrets:
- name: YOUR_COMPANY_PRIVATE_REPO_PULL_SECRET

Update the Common parameters

Common parameters need to be updated to specify the Step version you want to use:

commons:
  version: 3.25.2

Override agent images

Note that it is possible to override the images used by the Agents as per below:

agent:
  pools:
  - name: "example"
    image: "myCompanyRepo.myCustomImagePath:myCustomTag"
...

Configure the license

Enterprise customers receive following licenses files:

  • a step-enterprise.licenseconfig.json file
  • a licenses.json file

The content of this files have to be Base64 encoded and added to the Controller licenses field, respectively:

controller:
  licenseconfig: "Output of command: cat step-enterprise.licenseconfig.json | base64 -w0"
  licenses: "Output of cat licenses.json | base64 -w0"

It is also possible to mount the license via a Secret created by your administrator. To do so, follow the example under the Chart configuration samples

Deploy the Step Helm Chart

Create a Kubernetes namespace if necessary:

kubectl create namespace step

Deploy Step with Helm and your values file:

helm --namespace step install -f step.values.yaml step step-1.0.0.tgz

To verify the deployment status, run the following command and verify that deployed appears in the STATUS column:

helm --namespace step list

You should see an output similar to the following:

NAME       NAMESPACE        REVISION        UPDATED                                         STATUS          CHART                   APP VERSION
step       step             1              2024-08-07 01:46:20.801760069 +0200 CEST         deployed        step-1.0.0              3.25.0     

To check the overall status of all the objects in the namespace, run the following command:

kubectl --namespace step get all

Access Step

Using an Ingress rule

Notes: Get in touch with your Kubernetes cluster administrator to know which ingressClassName are available in your cluster.

The Controller UI can also be reached by creating an Ingress rule : this is managed via the values file under the ingress section, see below example:

ingress:
  ## See https://kubernetes.io/docs/concepts/services-networking/ingress/
  enabled: true
  ## Fully qualified URL under which the Controller UI will be reachable
  host: step.your-domain.ch
  ## Domain only
  domain: your-domain.ch
  ## Ingress class name to be used
  ingressClassName: yourIngressClassName
  ## Additional annotations to be added to the Ingress rule
  annotations: {}

You can now navigate to http://step.your-domain.ch in your browser to access the Step Controller UI.

Using port forwarding

For debugging reasons you might want to set up port forwarding to directly access the controller service. Run the following port forwarding command to direct the Step Controller service to listen locally to the port 8080 :

kubectl --namespace step port-forward svc/enterprise-controller 8080

You can now navigate to http://localhost:8080 in your browser to access the Step Controller UI.

See Also

  • Agent Provisioning configuration
  • Agent configuration
  • Chart configuration samples
  • Creating your own Step Agent images
  • Helm Values
  • Home
  • Whats new?
  • Set up
    • Requirements
    • Download
    • Installation
      • Install from archive
      • Install in Kubernetes
        • Chart configuration samples
        • Creating your own Step Agent images
        • Helm Values
    • Configuration
  • Administration
  • SaaS guide
  • User guide
  • Developer guide
  • DevOps
  • Plugins
  • Libraries
Step Logo
    • Documentation
    • Tutorials
    • Blogs
    • Product
    • Home
    • Whats new?
    • Set up
      • Requirements
      • Download
      • Installation
        • Install from archive
        • Install in Kubernetes
          • Chart configuration samples
          • Creating your own Step Agent images
          • Helm Values
      • Configuration
    • Administration
    • SaaS guide
    • User guide
    • Developer guide
    • DevOps
    • Plugins
    • Libraries