Use the Kubernetes destination task to deploy application components to your Kubernetes cluster. It’s important to note that a deployment pipeline can have only one Kubernetes destination task. Before you add the Kubernetes destination, make sure you've created a Kubernetes connection.

  

Click the Deploy tab. Clickto create a new deployment pipeline or click Edit on an existing pipeline.

 

Add a Kubernetes destination task or click and existing Kubernetes task. Complete the following steps to configure your setup. When you’re done, click Save to close the modal.  

 

Add a Persistent Volume

Managing Persistent Volume Claims in ShuttleOps is a simple way to setup shared data mounts among your pods.  Persistent volumes allow you to persist pod data and storage after the pod is deleted.  To add a Persistent Volume, click on Add New in the Resources section, then click Persistent Volume.  When you're done, click Save to continue.


Note: Once setup, the configured Persistent Volume can be referenced from the container configuration section - see below for details.

Configure the Persistent Volume

Name  Specify a name for the persistent volume.

Storage Class  Select a storage class that has been preconfigured in the Kubernetes cluster.

Match Labels  Add a match label to filter the set of volumes.  This step is optional.

Storage Access Mode  Specify the mode of storage access for this persistent volume.  This field defaults to ReadWriteOnce.

Storage Size  Specify a storage size for the persistent volume using Mi for megabytes, Gi for gigabytes or Ti for terrabytes, for example, 10Gi would be an acceptable input for 10 gigabytes of persistent volume storage.

  

Add a Configuration Map

Use the ConfigMap section to store configuration for use within your deployment pipeline. These fields accept key-value pairs as their values. Clickin the Add ConfigMap section to add a new configuration map or click Edit on an existing one. When you’re done, click Save to close the modal.  

 

The window will update to display the first few entries.

 

Add Ingress

Ingress exposes HTTP and HTTPS routes from outside the cluster to services within the cluster. Traffic routing is controlled by rules defined on the Ingress resource.  To add an Ingress rule, click on Add New in the Resources section, then click Ingress.  When you're done, click Save to continue.

Configure the Ingress

General Section

Class Name  Specify a class name of the controller to use.

Name  Specify a name for this Ingress instance.

Annotations  Where necessary, specify the key value pairs required by your Ingress controller.

Hosts Section

Host Name  Specify a name for the host that traffic routed from.

Path  Specify the path of the host, the name of the service and the access port for the service.

   

Pod Template

Use the Pod Template section to specify a Kubernetes deployment. ShuttleOps provides default values where appropriate. Clickin the Add New Pod Template section to create a new Pod template or click Edit on an existing one. When you’re done, click Save to close the modal.  

 

Configure the Pod

General Settings

Images  Select the images to deploy.  All images will be deployed to the same pod.

Name  Set a name for the pod.

Namespace  Specify the Namespace for the deployment.

Replicas  Specify the number of replicas.

Strategy  Select between Rolling or Recreate deployment strategies.

  

Advanced Settings

Rolling Update Max Unavailable  Set the maximum number of unavailable pods during the deployment update. This can be an absolute number or percentage of the replicas count; the default is 25%.

Rolling Update Max Surge  Set the maximum of pods that can be created over the desired number of pods. This can be an absolute number or a percentage of the replicas count; the default is 25%.

Terminal Grace Period (Seconds)  Enter a terminal server grace period.

Node Selector (Key)  Enter the node selector key.

Node Selector (Value)  Enter a node selector value.

 

Configure the Service

Name  Provide a name for the service.

Type  Select a Service Type.  Select between ClusterIP, NodePort or LoadBalancer types.  The default is ClusterIP.

Ports  Where needed, add a Service Port. If no Service Port is added, then no Service will be created.

 

When you’re done, click Save to close the modal.

 

Manage the Container Configuration

ShuttleOps lets your easily manage your general and advanced container configurations from the Pod Settings modal.  To access the container configuration section, click on the image name on the left.  Enter your container configurations and when you're done, click Save to continue.

General Section

Image  Displays the name of the image.

Container Name  Specify a container name.

Image Pull Policy  Set a rule for how the image is pulled from the container registry.

Config Map Key Refs  Add a key reference specified in the config map that will be used for this container.

Volumes  Add a claim to a preconfigured persistent volume to mount to this container.