Available with limitations in: CE, BE, SE, SE+, EE, CSE Lite (1.73), CSE Pro (1.73)
The module lifecycle stage: General Availability
The module has requirements for installation
Requirements
To the Deckhouse version: 1.72 and above.
Parameters
Schema version: 1
-
-
integersettings.diskSizeGigabytesThe size of the disk for storage or PVC when specifying the storageClass parameters. For HA configurations, automatic increase and decrease of the disk size is supported. For one-node Stronghold configurations, only increase of the PVC size is supported. Make sure the specified value is sufficient for storing Stronghold data. The extended-monitoring module automatically monitors the percentage of used disk space.
Default:
1 -
booleansettings.enableAuditLog
Enables audit log (EE only feature).
Available only when
management.modeisAutomatic.Example:
enableAuditLog: true -
booleansettings.enableUserInterfaceEnables User Interface.
Default:
trueExample:
enableUserInterface: false -
objectsettings.gatewayAPIGateway
Reference to the Gateway object (from the Gateway API) used for Stronghold.
An optional parameter. By default, the
modules.gatewayAPIGatewayglobal value is used.Example:
name: public namespace: d8-alb-
stringsettings.gatewayAPIGateway.name
Required value
Name of the Gateway object. -
stringsettings.gatewayAPIGateway.namespace
Required value
Namespace of the Gateway object.
-
-
objectsettings.https
What certificate type to use with Stronghold.
This parameter completely overrides the
global.modules.httpssettings.Examples:
customCertificate: secretName: stronghold-tls mode: CustomCertificatecertManager: clusterIssuerName: letsencrypt mode: CertManager-
objectsettings.https.certManager
-
stringsettings.https.certManager.clusterIssuerName
What ClusterIssuer to use for Stronghold.
Currently,
letsencrypt,letsencrypt-staging,selfsignedare available. Also, you can define your own.Default:
letsencrypt
-
-
objectsettings.https.customCertificate
Default:
{}-
stringsettings.https.customCertificate.secretName
The name of the secret in the
d8-systemnamespace to use with Stronghold.This secret must have the kubernetes.io/tls format.
Default:
false
-
-
stringsettings.https.mode
The HTTPS usage mode:
CertManager— Stronghold will use HTTPS and get a certificate from the clusterissuer defined in thecertManager.clusterIssuerNameparameter.CustomCertificate— Stronghold will use HTTPS using the certificate from thed8-systemnamespace.
Default:
CertManagerAllowed values:
CertManager,CustomCertificate
-
-
objectsettings.ingress
-
stringsettings.ingress.class
The class of the Ingress controller used for Stronghold.
Deprecated. Use
settings.ingressClassinstead.Pattern:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$Example:
class: public
-
-
stringsettings.ingressClass
The class of the Ingress controller used for Stronghold.
An optional parameter. By default, the
modules.ingressClassglobal value is used.Pattern:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$Example:
ingressClass: public -
stringsettings.inlet
The way the connection to Stronghold is implemented.
The following inlet types are supported:
Ingress— access via ingress-nginx controller.GatewayAPI— access via Application Load Balancer.LoadBalancer— access via a service of theLoadBalancertype.NodePort— access via nodes’ ports using a service of theNodePorttype.None— no standard inlet. Use when external access is not required, or traffic ingress is organized in another way.
When
LoadBalancer,NodePort, orNoneis used,https.modemust be set toCustomCertificate.Default:
IngressAllowed values:
Ingress,GatewayAPI,LoadBalancer,NodePort,None -
stringsettings.license
Stronghold EE License key.
Leave empty to use Stronghold CE.
Default:
‘’ -
objectsettings.loadBalancerParameters of the
LoadBalancerinlet.-
objectsettings.loadBalancer.annotations
Annotations to assign to the service for flexible configuration of the load balancer.
The module does not take into account the specifics of setting annotations in different clouds. If annotations for provisioning a load balancer are only applied when creating a service, disable and re-enable the module to update such parameters.
-
integersettings.loadBalancer.clusterPortPort for secure mTLS connections used for inter-cluster communication.
Default:
8201Allowed values:
1 <= X <= 65535 -
integersettings.loadBalancer.httpsPortExternal port for secure HTTPS connections exposed by the provisioned
LoadBalancerservice.Default:
443Allowed values:
1 <= X <= 65535 -
stringsettings.loadBalancer.loadBalancerClass
Class of the load balancer for incoming network requests.
The value is passed to the
spec.loadBalancerClassfield of the provisionedLoadBalancerservice. -
array of stringssettings.loadBalancer.sourceRanges
List of IP addresses in the CIDR format that are allowed accessing the load balancer.
Caution. A cloud provider may not support this option or ignore it.
Providers supporting this option: AWS, Azure, GCP. Providers ignoring this option: Yandex Cloud.
For other cloud providers, behavior may vary depending on the cloud implementation specifics. Test this option before using it in a production environment.
-
stringsettings.loadBalancer.sourceRanges.Element of the array
Pattern:
^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$
-
-
-
objectsettings.management
Default:
{}-
array of objectssettings.management.administrators
A list of users and groups that can access Stronghold as administrators. Other authenticated users will access Stronghold with default policy.
Available only when
management.modeisAutomatic.Example:
administrators: - name: admins type: Group - name: security type: Group - name: manager@mycompany.tld type: User-
stringsettings.management.administrators.name
-
stringsettings.management.administrators.type
Allowed values:
Group,User
-
-
stringsettings.management.mode
Stronghold management mode:
Automatic— enables Stronghold auto-init and auto-unseal. The root token is stored in thestronghold-keysSecret. Dex and Kubernetes integrations are configured automatically. Pods are restarted automatically when the configuration changes.Manual— automatic initialization is disabled. Dex and Kubernetes integrations are not configured.
Default:
AutomaticAllowed values:
Automatic,ManualExamples:
mode: Automaticmode: Manual
-
-
objectsettings.nodePortParameters of the
NodePortinlet.-
integersettings.nodePort.clusterPort
Port for secure mTLS connections used for inter-cluster communication via
NodePort.Must be within the range set by the kube-apiserver
--service-node-port-rangeargument (default is 30000-32767).Allowed values:
30000 <= X <= 32767Example:
clusterPort: 30201 -
integersettings.nodePort.httpsPort
Port for secure HTTPS connections via
NodePort.Must be within the range set by the kube-apiserver
--service-node-port-rangeargument (default is 30000-32767).Allowed values:
30000 <= X <= 32767Example:
httpsPort: 30200
-
-
objectsettings.nodeSelectorThe same as the Pods’
spec.nodeSelectorparameter in Kubernetes. If the parameter is omitted orfalse, Stronghold will be placed on control-plane nodes.Example:
node-role.kubernetes.io/stronghold: '' -
array of objectssettings.pluginsList of plugins to load into Stronghold. Each plugin is verified by SHA256 checksum.
Example:
plugins: - ignoreFailure: false name: vault-plugin-secrets-github sha256: 72cb1f2775ee2abf12ffb725e469d0377fe7bbb93cd7aaa6921c141eddecab87 url: https://github.com/martinbaillie/vault-plugin-secrets-github/releases/download/v2.3.2/vault-plugin-secrets-github-linux-amd64-
stringsettings.plugins.caPEM-encoded CA certificate(s) used to verify the HTTPS server for this plugin’s URL. If set, only this CA is trusted (not system CAs).
-
booleansettings.plugins.ignoreFailureIf true, failure to download or verify this plugin does not block Stronghold startup, but the plugin functionality will not be available.
Default:
false -
booleansettings.plugins.insecureSkipVerifyIf true, TLS server certificate is not verified for this plugin’s URL.
Default:
false -
stringsettings.plugins.nameFilename of the plugin binary after download.
-
stringsettings.plugins.sha256SHA256 checksum of the file. Download is rejected if the checksum does not match. This will block Stronghold startup unless ignoreFailure is set.
Pattern:
^[a-fA-F0-9]{64}$ -
stringsettings.plugins.urlURL to download the plugin binary (http or https, domain, path and filename). If the file is unavailable, this will block Stronghold startup unless ignoreFailure is set.
Pattern:
^https?://[a-zA-Z0-9][-a-zA-Z0-9.]*[a-zA-Z0-9](/[^/]+)*/[^/.]+$
-
-
objectsettings.publishCluster
Parameters for publishing the cluster.
Cluster publishing allows organizing Performance and DR Replication between different Stronghold clusters. For details, see Replication (Performance and DR). Available only in the EE edition.
When publishing is enabled for the
IngressorGatewayAPIinlet types, you must specify theclusterIDsyou want to publish. You can publish only a Performance Replication cluster, only a DR Replication cluster, or both clusters at the same time. The identifier of the corresponding group can be viewed via the Stronghold API or in the UI on the replication page.When the
Ingressinlet is used, cluster publishing requires an ingressClass with the controller typeLoadBalancerWithSSLPassthroughorHostPortWithSSLPassthrough.-
array of stringssettings.publishCluster.clusterIDs
IDs of the clusters for which the Stronghold cluster is published.
Required when cluster publishing is enabled with the
IngressorGatewayAPIinlet. Must not be specified for theNodePortandLoadBalancerinlets.Example:
clusterIDs: - 89f7566d-ed2b-02c9-4616-f07e87d3799d-
stringsettings.publishCluster.clusterIDs.Element of the array
Pattern:
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
-
-
booleansettings.publishCluster.enabledEnables cluster publishing.
Default:
false
-
-
stringsettings.storageClass
The name of StorageClass that will be used.
By default Stronghold keeps data in local storage on master nodes.
If you change this parameter, a gradual data transfer will be performed to the new StorageClass if using a HA Stronghold configuration.
For one-node Stronghold configurations, this parameter is only considered when the module is first started.
If you need to change the StorageClass in a one-node Stronghold configuration, you can do this through backup/restore and disabling/enabling the module. In this case, don’t forget to save the unseal keys as described in the documentation.
When changing this parameter, make sure the value specified in
diskSizeGigabytesis sufficient for storing Stronghold data.Default:
‘’Examples:
storageClass: ssdstorageClass: ceph-rbd -
array of objectssettings.tolerationsThe same as the Pods’
spec.tolerationsparameter in Kubernetes. If the parameter is omitted orfalse,tolerationswill be determined automatically.-
stringsettings.tolerations.effect
-
stringsettings.tolerations.key
-
stringsettings.tolerations.operator
-
integersettings.tolerations.tolerationSeconds
-
settings.tolerations.value
-
-