Advanced Installation
The HiveMQ Platform Operator and the HiveMQ Platform can be installed without Helm. Use the Kubernetes command line tool kubectl to deploy the respective manifest files for the HiveMQ Platform Operator and the HiveMQ Platform.
HiveMQ provides up-to-date manifest files for this purpose in the HiveMQ Helm chart repository. You can download the manifest files and customize them for your deployment as needed.
It is also possible to generate the default deployment manifest files with Helm with the following commands:
helm template hivemq/hivemq-platform-operator > operator-manifests.yaml
helm template hivemq/hivemq-platform > platform-manifests.yaml
Install HiveMQ Platform Operator with kubectl
The following procedure outlines how to use our default manifest files to deploy the HiveMQ Platform Operator with the Kubernetes command line tool kubectl.
-
Install the HiveMQPlatform custom resource definition (CRD):
kubectl apply -f https://raw.githubusercontent.com/hivemq/helm-charts/master/charts/hivemq-platform-operator/crds/hivemq-platforms.hivemq.com-v1.yml
-
Download or clone the public Helm chart repository with the manifest files:
git clone https://github.com/hivemq/helm-charts.git
-
Install the HiveMQ Platform Operator from files in the manifests/hivemq-platform-operator directory:
kubectl apply -f ./manifests/hivemq-platform-operator -n default
The manifest files use a default namespace because the required ServiceAccount relies on a specific namespace. Customize the manifests to use your desired namespace.
HiveMQ Platform Operator Configuration
All HiveMQ Platform Operator configuration options can be set via system properties or environment variables. To customize the configuration, update the environment variable section of your deployment manifest file.
Property name / Environment variable | Type | Description |
---|---|---|
|
|
The time the operator waits for informers to complete cache synchronization at startup before timing out. The timeout duration follows the ISO-8601 format. The default setting is |
|
|
The maximum number of reconciliation requests dispatched concurrently to controllers. The default setting is |
|
|
The maximum number of concurrent workflow processing requests. The default setting is |
|
|
Enables the operator to create the HiveMQ Platform CustomResourceDefinition in the Kubernetes cluster during operator startup. The default setting is |
|
|
Enables the operator to wait for the HiveMQ Platform CustomResourceDefinition to become ready once installed. The default setting is |
|
|
Specifies how long the operator waits for the HiveMQ Platform CustomResourceDefinition to become ready once installed. The timeout duration follows the ISO-8601 format. The default setting is |
|
|
Configures the HTTP port for the operator. The default setting is |
|
|
Configures the HTTPS port for the operator. The default setting is |
|
|
An optional keystore that holds the certificate information. |
|
|
An optional parameter to specify the type of the keystore file. If not given, the type is automatically detected based on the file name. |
|
|
A parameter to specify the password of the keystore. |
|
|
A parameter to specify the password of the private key in the keystore. |
|
|
An optional trust store that holds the certificate information of the trusted certificates. |
|
|
A parameter to specify the password of the trust store file. |
|
|
The image pull secret the operator configures for the HiveMQ Platform Operator Init container. |
|
|
Optional parameter to customize the URL for the HiveMQ Platform Init App update. |
|
|
The Docker image for the HiveMQ Platform Operator Init container. The default setting is the |
|
|
The CPU resource requests and limits the operator configures for the HiveMQ Platform Operator Init container. The default setting is |
|
|
The ephemeral resource requests and limits the operator configures for the HiveMQ Platform Operator Init container. The default setting is |
|
|
The memory resource requests and limits the operator configures for the HiveMQ Platform Operator Init container. The default setting is |
|
|
Logs the configuration values at operator startup. Sensitive values are redacted. The log information is useful for debugging the configuration of system properties and environment variables. The default setting is |
|
|
Configures the log level. Possible values are: The default setting is |
|
|
An optional comma-separated list of namespaces the operator manages. If this property is left empty or set to The default setting is |
|
|
The name of the operator release. For example, the Helm release name. This value is used to determine the operator service name. The service name is used in the URL for the HiveMQ Platform Init App update. |
|
|
An optional comma-separated list of label selectors that HiveMQ Platform resources must match to be managed by the operator. |
|
|
Specifies whether a ServiceAccount for HiveMQ Platform pods is created for all managed platforms. The default setting is |
|
|
The ServiceAccount name that is used for all HiveMQ Platforms pods. This overrides the default name |
|
|
Specifies whether the RBAC permissions for the ServiceAccount for HiveMQ Platform pods are created for all managed platforms. The default setting is |
|
|
Specifies whether the RBAC permissions for the ServiceAccount for all HiveMQ Platform pods are validated. The default setting is |
|
|
Specifies whether the ServiceAccount for HiveMQ Platform pods is validated. The default setting is |
|
|
Configures whether certificate validation is skipped for all managed custom resources. These settings are used for all operator-related HTTP clients. For example, to download custom extensions and extension customizations. The default setting is |
|
|
Configures whether hostname verification is skipped for all managed custom resources. These settings are used for all operator-related HTTP clients. For example, to download custom extensions and extension customizations. The default setting is |
|
|
Specifies whether changes to StatefulSet template metadata trigger a rolling restart. When set to The default setting is |
|
|
The time in seconds the operator waits for reconciliation threads to terminate before shutting down. The default setting is |
Install HiveMQ Platform with kubectl
The following procedure outlines how to use the default HiveMQ platform manifest files to deploy a HiveMQ platform with the Kubernetes command line tool kubectl.
-
To install the HiveMQ platform from files in the manifests/hivemq-platform directory, enter:
kubectl apply -f ./manifests/hivemq-platform -n default
-
To test whether your HiveMQ platform is available via services for MQTT connections, see Test Your HiveMQ Platform.
You can customize the HiveMQ platform manifest files to match your business needs. This includes changing the StatefulSet, Service objects, and the HiveMQ configuration. Be sure to align changes across all objects. For example port definitions have to be changed across all three objects. Specifically, your HiveMQ listener configuration must match your StatefulSet configuration and Service configuration.