This guide provides cluster administrators with the process to install the Alauda DevOps Pipelines Operator on a Kubernetes cluster.
Prerequisites:
cluster-admin
privileges.kubectl
CLI.You can install the Alauda DevOps Pipelines Operator by using the Operators listed in the Marketplace or OperatorHub. When you install the Alauda DevOps Pipelines Operator, the required Custom Resources (CRs) are automatically installed alongside the Operator.
The Operator provides the following Custom Resource Definitions (CRDs) to manage the Tekton components: tektonconfigs.operator.tekton.dev
, tektonpipelines.operator.tekton.dev
, tektontriggers.operator.tekton.dev
, tektonhubs.operator.tekton.dev
, and more.
If Tekton Pipelines is already installed on your cluster, the existing installation will be seamlessly upgraded by the Operator.
The Alauda DevOps Pipelines Operator provides the option to select which components to install by specifying a preset configuration in the TektonConfig
Custom Resource (CR). The TektonConfig
CR is automatically installed when the Operator is installed. Supported presets include:
TektonConfig
CR. This preset installs all Tekton components, including Tekton Pipelines, Tekton Triggers.Steps
In the Web console, navigate to Marketplace or OperatorHub.
Use the Filter by keyword box to search for Alauda DevOps Pipelines Operator
in the directory. Click on the Alauda DevOps Pipelines Operator title.
Read the Operator overview on the Alauda DevOps Pipelines Operator page. Click Install.
On the Install Operator page:
tekton-operator
namespace, allowing the Operator to monitor and be available in all namespaces in the cluster.Manual
approval strategy, OLM will create update requests. As the cluster administrator, you must manually approve the OLM update requests to upgrade the Operator to a new version.Click Install. You will see the Operator on the Installed Operators page.
Verify that the Status is set to Succeeded to confirm the successful installation of the Alauda DevOps Pipelines Operator.
Verify that all components of the Alauda DevOps Pipelines Operator have been successfully installed. Log in to the cluster in a terminal and run the following command:
Example Output
If the READY
condition is True
, it indicates that the Operator and its components have been successfully installed.
Additionally, check the versions of the components by running the following command:
Example Output
You can install the Alauda DevOps Pipelines Operator from the OperatorHub using the Command Line Interface (CLI).
Steps
Subscription
object YAML file to subscribe a namespace to the Alauda DevOps Pipelines Operator, for example, sub.yaml
:Example Subscription
YAML
latest
channel allows for the installation of the latest stable version of the Alauda DevOps Pipelines Operator.CatalogSource
object providing the Operator.CatalogSource
object. This may vary depending on your cluster configuration.Create the Subscription
object by running the following command:
The subscription will install the Alauda DevOps Pipelines Operator in the tekton-operator
namespace. The Operator will automatically install Tekton components in the default target namespace tekton-pipelines
.
Cluster administrators can uninstall the Alauda DevOps Pipelines Operator by performing the following steps:
TektonConfig
CR.operator.tekton.dev
group if needed.Simply uninstalling the Operator will not remove the Alauda DevOps Pipelines components created by default during the installation of the Operator.
First, delete the TektonConfig
CR and any other Tekton component CRs if they exist.
Steps
TektonConfig
CRD.TektonConfig
CRD to display the detailed page.Options
menu of the displayed instance.You can uninstall the Alauda DevOps Pipelines Operator using the Web console.
Steps
If you want to completely remove all traces of the Tekton Operator, you can delete the Custom Resource Definitions (CRDs) for the operator.tekton.dev
group.
Steps
operator.tekton.dev
.In Alauda DevOps Pipelines, you can customize the following configurations using the TektonConfig
Custom Resource (CR):
The Alauda DevOps Pipelines Operator must be installed.
You can modify the fields under the .spec.pipeline.performance
parameter in the TektonConfig
Custom Resource (CR) to change the high availability (HA) support and performance configuration of the Tekton Pipelines controller.
Example of TektonConfig
Performance Fields
All fields are optional. When set, the Alauda DevOps Pipelines Operator includes most fields as parameters in the tekton-pipelines-controller
deployment under the tekton-pipelines-controller
container. The Operator also updates the bucket
field in the config-leader-election
ConfigMap under the tekton-pipelines
namespace.
If no values are specified, the Operator does not update these fields and applies the default values of the Tekton Pipelines controller.
If you modify or remove any performance fields, the Operator will update the tekton-pipelines-controller deployment and the config-leader-election ConfigMap (if the bucket field has changed) and recreate the tekton-pipelines-controller pod.
High availability (HA) mode is applicable to the Tekton Pipelines controller; it creates and launches pods based on pipeline runs and task runs definitions. Without HA mode, a single pod performs these operations, which may lead to high loads and significant delays.
In HA mode, Tekton Pipelines uses several pods (replicas) to perform these operations. Initially, Tekton Pipelines distributes each controller operation among the buckets. Each replica selects operations from one or more buckets. If two replicas can select the same operation simultaneously, the controller internally decides who will execute that operation.
HA mode does not affect tasks that run after the pod is created.
Name | Description |
---|---|
disable-ha | Enables or disables high availability (HA) mode. HA mode is enabled by default. |
buckets | The number of buckets for processing controller operations in HA mode. The maximum value is 10. |
replicas | The number of pods created to handle controller operations in HA mode. This value should be set to the same or lower number as the bucket value. |
threads-per-controller | The number of threads (workers) to be used when processing the work queue of the Tekton Pipelines controller. |
kube-api-qps | The maximum queries per second (QPS) from the REST client to the cluster master. |
kube-api-burst | Maximum burst for throttling. |
statefulset-ordinals | Enables StatefulSet Ordinals mode for the Tekton Pipelines Controller. |
You can customize the Tekton Pipelines control plane by editing the configuration fields in the TektonConfig
Custom Resource (CR). The Alauda DevOps Pipelines Operator automatically includes default values for the configuration fields so you can use the Tekton Pipelines control plane.
Process
tektonconfigs.operator.tekton.dev
Custom Resource Definition (CRD).TektonConfig
CR.TektonConfig
YAML file according to your requirements.Example of TektonConfig
CR with Default Values
The following feature flags can be configured in the TektonConfig
CR to control different behaviors of Tekton Pipelines:
disable-affinity-assistant
(Default: false
)disable-creds-init
(Default: false
)enable-api-fields
(Default: stable
)enable-custom-tasks
(Default: true
)await-sidecar-readiness
(Default: true
)running-in-environment-with-injected-sidecars
(Default: true
)require-git-ssh-secret-known-hosts
(Default: false
)enable-provenance-in-status
(Default: true
)For detailed descriptions of each option, please refer to the Tekton Operator documentation.
You can change the default service account for Tekton Pipelines by editing the default-service-account
field in the .spec.pipeline
specification. The default service account name is pipeline
.
Example
You can set labels and annotations for the tekton-pipelines
namespace where the Operator installs Tekton Pipelines components.
Specify labels and annotations by adding them in the .spec.targetNamespaceMetadata
specification of the TektonConfig
Custom Resource (CR).
Example of Setting Labels and Annotations for the tekton-pipelines
Namespace
After successfully installing the Alauda DevOps Pipelines Operator: