The Release Kubernetes plugin allows Release to work with resources on a Kubernetes host. It includes the following task types:
- Kubernetes: Create resource
- Kubernetes: Wait
- Kubernetes: Remove resource
In the release flow editor, Kubernetes tasks have a blue border.
- Create a new Kubernetes resource
- Remove a Kubernetes resource
- Wait for a created resource to be in a running state
The requirements for the Kubernetes plugin are as follows:
- Must have
kubectlinstalled, which has the corresponding
kubeconfigfile that is used to authenticate to the relevant K8 cluster
- Must have SSH access
- API endpoint (The URL for RESTful interface provided by the API Server)
- TLS certificate for the master node
Any of the following authentication types are needed:
- EKS/GKE based authentication
- X.509 certificate based authentication
- Username/Password based authentication
- Must have the Release Remoting plugin installed
Set up a Kubernetes server
To set up a connection to a Unix server running Kubernetes:
- In Release, from the navigation pane, go to Configuration> Connections and click Add Unix Host.
- In the Address box, enter the IP address or host name of the remote machine running the Kubernetes server.
- In the Port box, enter the SSH port of the remote machine.
- In the Username and Password boxes, specify the user name and password of the SSH user that Release should use when connecting to the remote machine.
In the Sudo Username box, enter the user name of the
sudouser on the remote machine (for example,
Create Resource task type
The Kubernetes: Create Resource task type creates a resource in Kubernetes. It requires you to specify a configuration in JSON or YAML format. You can specify the configuration:
- By providing JSON or YAML in the task
- By providing a URL to a JSON or YAML file
You can enter the JSON or YAML configuration as plain text in the Configuration file box:
Or provide a URL for the configuration file in the Url box. If the URL is secure, you must also provide credentials in the Username and Password boxes.
Wait task type
You can use the Kubernetes: Wait task type to add a task that will execute a command on the Kubernetes server to determine whether the created resource is in a running state. For example, a typical wait command is:
kubectl describe pods/<name_of_the_pod>
In the Pattern box, you can specify a regular expression that should match the output of the specified command. When the output matches the regular expression, the wait step succeeds and the release moves to the next task.
Remove Resource task type
The Kubernetes: Remove Resource task type destroys a resource in Kubernetes. It requires you to specify a configuration in JSON or YAML format. As in the Create Resource task type, you can enter the JSON or YAML in the task or provide a URL to a configuration file.
Auto Discovery of Kubernetes Connections
You can auto discover the Kuberntes connections using the Kubeconfig file. A new connection section is introduced in Digital.ai Release for Kubernetes cluster similar to Kubernetes host.
Enter the Kubeconfig file path in the Local Kubeconfig field and the Context drop-down list will list the Clusters from the Kubernetes host to which it is connected.