The module is not enabled by default in any bundles.
The module will be left disabled unless cni-cilium is used regardless of ciliumHubbleEnabled: parameter.
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
- authobject
Options related to authentication or authorization in the Hubble web UI.
- auth.allowedUserGroupsarray of strings
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.
- auth.externalAuthenticationobject
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.
- auth.externalAuthentication.authSignInURLstring
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 - auth.externalAuthentication.authURLstring
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
- auth.externalAuthentication.authSignInURLstring
- auth.whitelistSourceRangesarray of strings
An array if CIDRs that are allowed to authenticate in Hubble web UI.
Example:
whitelistSourceRanges: - 1.1.1.1/32
- auth.allowedUserGroupsarray of strings
- debugLoggingboolean
Enabled debug logging for Cilium Hubble component.
Default:
false - httpsobject
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- https.certManagerobject
Parameters for certmanager.
- https.certManager.clusterIssuerNamestring
What ClusterIssuer to use for getting an SSL certificate (currently,
letsencrypt,letsencrypt-staging,selfsignedare available; also, you can define your own).Default:
"letsencrypt"Examples:
clusterIssuerName: letsencryptclusterIssuerName: letsencrypt-stagingclusterIssuerName: selfsigned
- https.certManager.clusterIssuerNamestring
- https.customCertificateobject
Parameters for custom certificate usage.
- https.customCertificate.secretNamestring
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.
- https.customCertificate.secretNamestring
- https.modestring
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:
"CertManager"Allowed values:
Disabled,CertManager,CustomCertificate,OnlyInURI
- https.certManagerobject
- ingressClassstring
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])?)*$ - nodeSelectorobject
The same as the
spec.nodeSelectorpod parameter in Kubernetes.If the parameter is omitted or
false, it will be determined automatically. - tolerationsarray of objects
The same as
spec.tolerationsfor the Kubernetes Pod.If the parameter is omitted or
false, it will be determined automatically.- tolerations.effectstring
- tolerations.keystring
- tolerations.operatorstring
- tolerations.tolerationSecondsinteger
- tolerations.valuestring
Authentication
user-authn module provides authentication by default. Also, externalAuthentication can be configured (see below). If these options are disabled, the module will use basic auth with the auto-generated password.
Use kubectl to see password:
kubectl -n d8-system exec deploy/deckhouse -- deckhouse-controller module values cilium-hubble -o json | jq '.ciliumHubble.internal.auth.password'
Delete the Secret to re-generate password:
kubectl -n d8-cni-cilium delete secret/hubble-basic-auth
Note! The
auth.passwordparameter is deprecated.