Available in editions: CE, BE, SE, SE+, EE
The module is not enabled by default in any bundles.
If the cni-cilium module is disabled, the ciliumHubbleEnabled: parameter will not affect the enabling of the cilium-hubble module.
Conversions
The module is configured using the ModuleConfig resource, the schema of which contains a version number. When you apply an old version of the ModuleConfig schema in a cluster, automatic transformations are performed. To manually update the ModuleConfig schema version, the following steps must be completed sequentially for each version :
- Updates from version 1 to 2:
Conversion description is missing.
Settings
The module is configured using the ModuleConfig custom resource named cilium-hubble (learn more about setting up Deckhouse…).
Example of the ModuleConfig/cilium-hubble resource for configuring the module:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: cilium-hubble
spec:
version: 2
enabled: true
settings: # <-- Module parameters from the "Parameters" section below.
Parameters
Schema version: 2
- objectsettings
- objectsettings.auth
Options related to authentication or authorization in the Hubble web UI.
- array of stringssettings.auth.allowedUserEmails
An array of emails of users that can access module’s public web interfaces.
This parameter is used if the
user-authnmodule is enabled or theexternalAuthenticationparameter is set. - array of stringssettings.auth.allowedUserGroups
An array of user groups that can access Hubble web UI.
This parameter is used if the
user-authnmodule is enabled or theexternalAuthenticationparameter is set.Caution! Note that you must add those groups to the appropriate field in the DexProvider config if this module is used together with the user-authn one.
- objectsettings.auth.externalAuthentication
Parameters to enable external authentication based on the NGINX Ingress external-auth mechanism that uses the Nginx auth_request module.
External authentication is enabled automatically if the user-authn module is enabled.
- stringsettings.auth.externalAuthentication.authSignInURL
The URL to redirect the user for authentication (if the authentication service returned a non-200 HTTP response code).
Example:
authSignInURL: https://example.com/dex/sign_in - stringsettings.auth.externalAuthentication.authURL
The URL of the authentication service. If the user is authenticated, the service should return an HTTP 200 response code.
Example:
authURL: https://example.com/dex/auth
- array of stringssettings.auth.whitelistSourceRanges
An array if CIDRs that are allowed to authenticate in Hubble web UI.
Example:
whitelistSourceRanges: - 1.1.1.1/32
- booleansettings.debugLogging
Enabled debug logging for Cilium Hubble component.
Default:
false - objectsettings.https
What certificate type to use.
This parameter completely overrides the
global.modules.httpssettings.Examples:
https: mode: Disabledhttps: mode: OnlyInURIhttps: mode: CustomCertificate customCertificate: secretName: foobarhttps: mode: CertManager certManager: clusterIssuerName: letsencrypt- objectsettings.https.certManager
Parameters for certmanager.
- stringsettings.https.certManager.clusterIssuerName
What ClusterIssuer to use for getting an SSL certificate (currently,
letsencrypt,letsencrypt-staging,selfsignedare available; also, you can define your own).Default:
letsencryptExamples:
clusterIssuerName: letsencryptclusterIssuerName: letsencrypt-stagingclusterIssuerName: selfsigned
- objectsettings.https.customCertificate
Parameters for custom certificate usage.
- stringsettings.https.customCertificate.secretName
The name of the secret in the
d8-systemnamespace to use with the Hubble web UI.This secret must have the kubernetes.io/tls format.
- stringsettings.https.mode
The HTTPS usage mode:
CertManager— the web UI is accessed over HTTPS using a certificate obtained from a clusterIssuer specified in thecertManager.clusterIssuerNameparameter;CustomCertificate— the web UI is accessed over HTTPS using a certificate from thed8-systemnamespace;Disabled— in this mode, the documentation web UI can only be accessed over HTTP;OnlyInURI— the documentation web UI will work over HTTP (thinking that there is an external HTTPS load balancer in front of it that terminates HTTPS traffic). All the links in theuser-authnwill be generated using the HTTPS scheme. Load balancer should provide a redirect from HTTP to HTTPS.
Default:
CertManagerAllowed values:
Disabled,CertManager,CustomCertificate,OnlyInURI
- stringsettings.ingressClass
The class of the Ingress controller used for Hubble.
Optional. 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])?)*$ - objectsettings.nodeSelector
The same as the
spec.nodeSelectorpod parameter in Kubernetes.If the parameter is omitted or
false, it will be determined automatically. - array of objectssettings.tolerations
The same as
spec.tolerationsfor the Kubernetes Pod.If the parameter is omitted or
false, it will be determined automatically.- stringsettings.tolerations.effect
- stringsettings.tolerations.key
- stringsettings.tolerations.operator
- integersettings.tolerations.tolerationSeconds
- stringsettings.tolerations.value
Authentication
user-authn module provides authentication by default. Also, externalAuthentication can be configured. If these options are disabled, the module will use basic auth with the auto-generated password.
To view the generated password, run the command:
d8 k -n d8-system exec svc/deckhouse-leader -c deckhouse -- deckhouse-controller module values cilium-hubble -o json | jq '.ciliumHubble.internal.auth.password'
To generate a new password, delete the Secret:
d8 k -n d8-cni-cilium delete secret/hubble-basic-auth
The auth.password parameter is deprecated.