Cert Exporter
cert-exporter¶
Note: Pay attention to the specifics of deploy with cert-exporter
. For more information, refer to
the Deploy with cert-exporter section.
Field | Description | Scheme |
---|---|---|
install | Allows to enable or disable deploy cert-exporter. | bool |
name | A name of the microservice to deploy with. This name is used as the name of the microservice deployment and in labels. | string |
setupSecurityContext | Allows to create PodSecurityPolicy or SecurityContextConstraints. | bool |
setupGrafanaDashboard | Allows to create Grafana dashboard for cert-exporter. | bool |
setupAlertingRules | Allows to create Prometheus alerting rules for cert-exporter. | bool |
additionalHostPathVolumes | Allows to mount additional directories or files from the host file system to container. Should be used when the exporter needs to collect information from files from non-default paths. | list[object] |
additionalHostPathVolumes[N].volumeName | Name of volume, must be unique. Reserved names (shouldn't be used): kube, openshift-origin, openshift-etcd, kubelet-pki, root-kube-config. | string |
additionalHostPathVolumes[N].volumePath | Path to the directory or file on the host system. The same path is used in the container. | string |
certsInFiles | Settings for parsing certificates from host file system. | object |
certsInFiles.enabled | Enables parsing certificates from host file system. If true, the part of the exporter will be deployed as a DaemonSet. | bool |
certsInFiles.defaultCerts | Allows to check internal certificates from default paths which is default for Kubernetes or Openshift clusters. | bool |
certsInFiles.includeCerts | Allows to check certificates with custom regex. | string |
certsInFiles.excludeCerts | Allows to check only certificates that NOT match regex. | string |
certsInKubeconfig | Settings for parsing certificates from Kubeconfig files on the host file system. | object |
certsInKubeconfig.enabled | Enables parsing certificates from Kubeconfig. If true, the part of the exporter will be deployed as a DaemonSet. | bool |
certsInKubeconfig.defaultCerts | Allows to check Kubeconfig files from default paths on Kubernetes or Openshift clusters. | bool |
certsInKubeconfig.includeCerts | Allows to check Kubeconfig files with custom regex. | string |
certsInKubeconfig.excludeCerts | Allows to check only Kubeconfig files that NOT match regex. | string |
certsInSecrets | Settings for parsing certificates from Kubernetes secrets. | object |
certsInSecrets.enabled | Enables parsing certificates from Kubernetes secrets. If true, the part of the exporter will be deployed as a Deployment. | bool |
certsInSecrets.includeCerts | Allows to check fields in the secrets with keys that match regex. | string |
certsInSecrets.excludeCerts | Allows to check only fields in the secrets with keys NOT match regex. | string |
certsInSecrets.annotationSelector | Allows to match secrets by annotation. | string |
certsInSecrets.labelSelector | Allows to match secrets by label. | string |
certsInSecrets.namespaces | Allows to find secrets in the selected namespaces. Kubernetes comma-delimited list of namespaces to search for secrets. Empty string specifies that the exporter checks all available namespaces. | string |
certsInSecrets.types | Allows to select only specific secret type. An empty list specifies that the exporter checks all available secrets. | list[string] |
certsInSecrets.kubeconfigPath | Allows to specify path to kubeconfig file for getting access to secrets via kubectl. Only required if out-of-cluster installation. | string |
pollingPeriod | Periodic interval in which to check certs. Format: time.Duration from GoLang | string |
image | A Docker image to deploy the cert-exporter. | string |
serviceMonitor | Service monitor for pulling metrics. | object |
serviceMonitor.install | Allows to install serviceMonitor. | bool |
serviceMonitor.interval | Allow change metrics scrape interval. | string |
servicePort | Port for cert-exporter service. | int |
daemonset | Pod-specific settings for cert-exporter as a daemonset. Works if collecting from files and/or kubeconfig is enabled. | object |
daemonset.resources | The resources that describe the compute resource requests and limits for single pods. Affects daemonset pods. | v1.ResourceRequirements |
daemonset.extraArgs | Additional arguments for cert-exporter containers from daemonset. | list[string] |
daemonset.securityContext | SecurityContext holds pod-level security attributes.Default for Kubernetes, securityContext:{ runAsUser: 2000, fsGroup: 2000 } . |
*v1.PodSecurityContext |
daemonset.tolerations | Tolerations allow the pods to schedule onto nodes with matching taints. | []v1.Toleration |
daemonset.nodeSelector | Defines which nodes the pods are scheduled on. Specified just as map[string]string. For example: \"type: compute\" | map[string]string |
daemonset.affinity | If specified, the pod's scheduling constraints | *v1.Affinity |
daemonset.annotations | Map of string keys and values stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. Specified just as map[string]string. For example: "annotations-key: annotation-value" | map[string]string |
daemonset.labels | Map of string keys and values that can be used to organize and categorize (scope and select) objects. Specified just as map[string]string. For example: "label-key: label-value" | map[string]string |
daemonset.priorityClassName | PriorityClassName assigned to the Pods to prevent them from evicting. | string |
deployment | Settings for parsing certificates from Kubernetes secrets. | object |
deployment.resources | The resources that describe the compute resource requests and limits for single pods. Affects deployment pods. | v1.ResourceRequirements |
deployment.extraArgs | Additional arguments for cert-exporter containers from deployment. | list[string] |
deployment.securityContext | SecurityContext holds pod-level security attributes. Default for Kubernetes, securityContext:{ runAsUser: 2000, fsGroup: 2000 } . |
*v1.PodSecurityContext |
deployment.tolerations | Tolerations allow the pods to schedule onto nodes with matching taints. | []v1.Toleration |
deployment.nodeSelector | Defines which nodes the pods are scheduled on. Specified just as map[string]string. For example: \"type: compute\" | map[string]string |
deployment.affinity | If specified, the pod's scheduling constraints | *v1.Affinity |
deployment.annotations | Map of string keys and values stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. Specified just as map[string]string. For example: "annotations-key: annotation-value" | map[string]string |
deployment.labels | Map of string keys and values that can be used to organize and categorize (scope and select) objects. Specified just as map[string]string. For example: "label-key: label-value" | map[string]string |
deployment.priorityClassName | PriorityClassName assigned to the Pods to prevent them from evicting. | string |
Example of standard installation without root rights:
certExporter:
...
install: true
name: cert-exporter
setupSecurityContext: true
setupGrafanaDashboard: true
setupAlertingRules: true
additionalHostPathVolumes: []
certsInFiles:
enabled: true
defaultCerts: true
certsInKubeconfig:
enabled: false
certsInSecrets:
enabled: true
pollingPeriod: 1h0m0s
image: joeelliott/cert-exporter:v2.7.0
serviceMonitor:
install: true
interval: 30s
servicePort: 9219
daemonset:
resources:
limits:
cpu: 20m
memory: 50Mi
requests:
cpu: 10m
memory: 25Mi
extraArgs: []
securityContext:
runAsUser: "0"
fsGroup: "0"
tolerations:
- operator: "Exists"
nodeSelector:
node-role.kubernetes.io/worker: worker
affinity: {}
labels:
label.key: label-value
annotations:
annotation.key: annotation-value
priorityClassName: priority-class
deployment:
resources:
limits:
cpu: 20m
memory: 150Mi
requests:
cpu: 10m
memory: 50Mi
extraArgs: []
securityContext:
runAsUser: 2000
fsGroup: 2000
tolerations: []
nodeSelector:
node-role.kubernetes.io/worker: worker
affinity: {}
labels:
label.key: label-value
annotations:
annotation.key: annotation-value
priorityClassName: priority-class
Example of installation with root rights:
certExporter:
...
install: true
name: cert-exporter
setupSecurityContext: true
setupGrafanaDashboard: true
setupAlertingRules: true
certsInFiles:
enabled: true
defaultCerts: true
certsInKubeconfig:
enabled: true
defaultCerts: true
certsInSecrets:
enabled: true
kubeconfigPath: "/root/.kube/config"
pollingPeriod: 1h0m0s
image: joeelliott/cert-exporter:v2.7.0
securityContext:
runAsUser: "0"
Example of installation with non-default paths of files:
certExporter:
...
additionalHostPathVolumes:
- volumeName: unique-volume-name-1
volumePath: /path/to/certificates
- volumeName: unique-volume-name-2
volumePath: /path/to/kubeconfig
certsInFiles:
enabled: true
defaultCerts: true
includeCerts: "/path/to/certificates/*.{crt,cert}"
certsInKubeconfig:
enabled: true
defaultCerts: false
includeCerts: "/path/to/kubeconfig/**/*.conf"
certsInSecrets:
enabled: true
kubeconfigPath: "/path/to/kubeconfig/config"
...
Example of installation with specifying parameters for parsing secrets:
certExporter:
...
certsInSecrets:
enabled: true
includeCerts: "*.crt"
excludeCerts: "do-not-check.crt"
annotationSelector: "some-annotation"
labelSelector: "some-label"
namespaces: "monitoring, namespace_1"
types:
- "Opaque"
- "kubernetes.io/tls"
kubeconfigPath: "/root/.kube/config"
...
deployment:
extraArgs:
- '--secrets-include-glob=*.cer'
- '--secrets-include-glob=*.pem'
...