The rhtap-cli
is designed as a sophisticated installer for Kubernetes Helm Charts, addressing the complexity of managing interdependent resources in Kubernetes environments. Unlike Kubernetes, which orchestrates resources individually without acknowledging their interdependencies, rhtap-cli
enhances the deployment process by considering these relationships, thereby improving the user experience.
This CLI leverages a config.yaml
file to sequence Helm Chart deployments meticulously. It ensures the integrity of each deployment phase by executing a comprehensive test suite before proceeding to the next Chart installation. This methodical approach guarantees that each phase is successfully completed, enhancing reliability and stability.
Helm, serving as the foundation of rhtap-cli
, provides a detailed blueprint of resources within Kubernetes. This allows for thorough inspection and troubleshooting of deployment issues, offering users detailed documentation and tips for resolution. By integrating with Helm Charts, rhtap-cli
not only adheres to industry standards but also opens the door to more sophisticated features, further enriching the deployment experience.
The rhtap-cli
is designed to be user-friendly, providing a seamless installation process for users of all skill levels.
The config.yaml
file is structured to outline key components essential for the setup:
---
rhtapCLI:
namespace: rhtap
features: {}
dependencies: {}
The attributes of the rhtapCLI
object are as follows:
.namespace
: Specifies the default namespace used by the installer, set to rhtap. This namespace acts as the primary operational area for the installation process..features
: Defines the features to be deployed by the installer. Each feature is identified by a unique name and a set of properties..dependencies
: Specifies the dependencies rolled out by the installer in the specific order defined in the configuration file.
Defines the features the installer will deploy. Each feature is defined by a unique name and a set of properties. For instance, the following snippet defines a featureName
block:
---
rhtapCLI:
features:
featureName:
enabled: true
namespace: namespace
properties:
key: value
With the following attributes:
enabled
: A boolean value to toggle the unique featurenamespace
: The namespace in which the feature will be deployedproperties
: A set of key-value pairs to define the feature's properties
This data can be leveraged for templating using the values.yaml.tpl
file.
rhtapCLI:
dependencies:
- chart: path/to/chart/directory
namespace: namespace
enabled: true
The following functions are available for use in the values.yaml.tpl
file:
{{ .Installer.Features.*.Enabled }}
: Returns the boolean value of the feature'senabled
field.{{ .Installer.Features.*.Namespace }}
: Returns the namespace in which the feature will be deployed.{{ .Installer.Features.*.Properties.*}}
: Returns a dictionary of key-value pairs for the feature's properties.
Helper function to inspect the target cluster's Ingress configuration.
{{- $ingressDomain := required "OpenShift ingress domain" .OpenShift.Ingress.Domain -}}
---
developerHub:
ingressDomain: {{ $ingressDomain }}
Please refer to the CONTRIBUTING.md file for more information on contributing to this project.
Follow the below steps to deploy RHTAP on Openshift cluster.
-
Clone the repository. Run the command
make
from the rhtap-cli directory. This will create abin
directory. -
Edit the
config.yaml
file for select or deselect the components from installation.
For instance: change the lines as below to disable installation of components ACS and Quay .
# ...
redHatAdvancedClusterSecurity:
enabled: false
redHatQuay:
enabled: false
-
Run the command
rhtap-cli
to display help text that shows all the supported commands and options. -
Run the command
rhtap-cli integration
to provide integrations to external components. The command below lists the options supported:
rhtap-cli integration --help
- Finally run the below command to proceed with RHTAP deployment.
rhtap-cli deploy