Add-Ons
All cluster blueprints are comprised of one or more software addons. Cluster admins can assemble one or more addons to create a cluster blueprint. Good candidates for "addons" are software components that are meant to be cluster wide services or operate invisibly in the background. Some examples are listed below.
- Service Mesh (Istio, Linkerd etc)
- Ingress Controllers (Nginx etc)
- Security Products (StackRox, Twistlock, Sysdig etc)
- Cluster Monitoring
- Log Collection
- Backup and Restore
Project Scoping¶
Addons are NOT "Org wide" resources and are scoped to a Project to guarantee a "hard" isolation boundary. All clusters in a given project can use/leverage blueprints based on the addons in the Project.
RBAC¶
The lifecycle of addons is managed by users with an "infrastructure administrator" role
Important
You can manage the lifecycle of addons using the Rafay Console or RCTL CLI or REST APIs. It is strongly recommended to automate this by integrating RCTL with your existing CI system based automation pipeline.
Package Types¶
Addons can be in either "Helm charts" or "k8s YAML" formats.
k8s YAML¶
Regular, well structured k8s YAML format is supported
Helm Versions¶
Although Rafay supports both Helm 2 and 3, users are strongly advised to use Helm 3.
Support for Helm 2 in workloads is deprecated and is only meant to be used for legacy charts that are incompatible with Helm 3. Read more about Helm 2 End of Life.
With Helm 3, the Rafay Controller acts like a Helm 3 client (currently v3.3.4). As a result, it does not have to parse and break down the chart down to its atomic k8s resources.
Create Addon¶
Addons can be created in a specific project via multiple mechanisms
- Using the Rafay Console
- Using the RCTL CLI
- Programmatically using the REST API
Important
With RCTL, the lifecycle management of addons can be quickly and fully automated by embedding RCTL into a pipeline.
- Navigate to your Project in your Org
- Select Infrastructure and click on addons
Step 1: New Addon¶
- Click on create addon
- Select "Bring Your Own" for type
- Provide a name, select package type (YAML or Helm 3), the namespace where this has to be deployed on the cluster
In the example below, we are creating an addon for "kubeless" which is packaged as a yaml file. We want to deploy this into a separate namespace called "kubeless".
Step 2: New Version¶
Multiple versions/updates of the addon may be required during the life of an addon. Versions of addons can be managed.
In our example, for the newly created "kubeless" addon, since no versions are available, the user will be prompted to "create" a new version.
- Click on New Version
- Provide the payload (k8s yaml or Helm chart + values.yaml) for the addon and Save.
View Addon Details¶
To view details of an existing addon, click on the addon
In the example below, for the "kubeless" addon, we can see that there are two versions and the latest version is v1.0.7
View All AddOns¶
To view all addons in a Project,
- Click on Infrastructure -> Addons
- This will display the entire list of configured addons and associated metadata
An illustrative example is shown below.
Delete Addon¶
If an addon is not required anymore, the admin may wish to delete it from the Project. In the view all addons page, click on the "Delete" icon to delete an existing addon.
Important
An error message will be displayed if the addon is in use with a cluster blueprint.
Debug Addons¶
Infrastructure admins can view the status of each addon using the cluster dashboard on the Rafay Console. In addition, they also have access to a secure, RBAC controlled, zero trust KubeCTL channel to the remote cluster to perform deep diagnostics.
Zero Trust KubeCTL¶
Click on "KubeCTL" to launch a browser based Zero Trust KubeCTL shell. Alternatively, admins can also download the kubeconfig file and perform the same operations remotely using a KubeCTL CLI.
Note the KubeCTL operations this user can perform is access controlled and secured using the configured ROLE. All actions performed by the user are audited for compliance.
Status By Addon¶
Infrastructure admins can view details about the k8s resources for a given addon on a cluster.
Click on the status link for "Blueprint Sync". This will display a detailed status of each addon in the blueprint on the cluster.
In the example below, you can view the details of all the k8s resources for our "apache-helm3" workload.
k8s Resources for Addon¶
- Click on the Cluster Dashboard
- Click on Resources
- Select "Workload" for "View By"
- Select name of "addon"
In the example below, you can view the k8s resources for the Helm 3 based "datadog" addon operational on this cluster.
By Helm Release¶
- Click on the Cluster Dashboard
- Click on Resources
- Select "Helm Releases" for "View By"
In the example below, you can view the details of the "datadog" Helm 3 based addon operational on this cluster.