# Default values for edgedelta. # Use either apiKey or secretApiKey.value but NOT both to provide API Key to Agent apiKey: "" secretApiKey: name: "ed-api-key" key: "ed-api-key" value: "" enable: false # set true when creating template from charts # Predefined environment variables # See: https://docs.edgedelta.com/installation/environment-variables storePort: "" dataPort: "" profilerPort: "" promPort: "" httpProxy: "" httpsProxy: "" noProxy: "" edBackendDisabled: "" edTagOverride: "" edSuppressionMode: "" edSkipConfDownload: "" edWorkflows: "" edWorkflowPrefixes: "" edDisableLeaderElection: "" edTraceFiles: "" edAggregatorTraceFiles: "" edSkipTlsVerify: "" edConfigContent: "" goMemLimit: "" edEnableControllerDiscovery: true # skipping adding common labels for helm charts into direct helm to k8s yaml file creation. skipCommonLabels: false # custom tags are comma separated key:val pairs. these are going to be attached to all outgoing data from agent to configured destination(s). edCustomTags: "" # Persisting Cursor props constraints persistingCursorProps: enabled: true hostMountPath: "/var/lib/edgedelta" containerMountPath: "/var/lib/edgedelta" # Docker container properties dockerContainerProps: hostPath: "/var/lib/docker/containers" # Volume props will be used for mounting certain volume(s) to the given path(s) for the agent # volumeProps: # volumeMounts: # - mountPath: /var/lib/kubelet # name: varlibkubelet # readOnly: true # volumes: # - hostPath: # path: /var/lib/kubelet # type: "" # name: varlibkubelet # Aggregator agent mode properties # Agents are deployed as daemonset. an extra aggregator agent is deployed to collect/aggregate metrics aggregatorProps: enabled: false port: 9191 # serviceDNSSuffix is "svc.cluster.local" by default. It's used to construct endpoint for aggregator agent service so that processor agents can communicate with aggregator. # Final endpoint looks like this: http://ed-aggregator-svc.my-namespace.svc.cluster.local:9191 serviceDNSSuffix: "svc.cluster.local" enabledDataTypes: metric: true cluster_pattern_and_sample: false topk: false # aggregator can leverage persistent volume to persist internal source related information to recover quickly after restarts/upgrades. # aggregator doesn't necessarily need a persistent volume. It will reconcile overall state after a restart from other agents by returning them an error and forcing them to share source information usePersistentVolume: false # storageClassName is used if usePersistentVolume=true # If your k8s cluster has specific storage classes you can set storageClassName accordingly. storageClassName: "" goMemLimit: "" resources: limits: cpu: 2000m memory: 2048Mi requests: cpu: 200m memory: 256Mi # HttpRecorder is a frontend layer which can consume logs with both http and tcp protocols # It is deployed as a sidecar for each ED agent. It dumps the incoming logs to filesystem (persisted via PVC) and agents grab from there. httpRecorderProps: enabled: false image: gcr.io/edgedelta/httprecorder:latest port: 8080 # Enable ingress if the k8s cluster already has nginx + cert-manager installed # Without ingress enabled you can directly send logs within cluster using http://ed-httprecorder-svc.{namespace}.svc.cluster.local:8080 ingress: enabled: false host: "" class: nginx annotations: kubernetes.io/ingress.class: nginx cert-manager.io/cluster-issuer: letsencrypt # Custom labels: # labels: # sample-label-key: sample-label-value # Custom environment variables: # envs: # - name: sample-var # value: sample-value # Custom secret environment variables: # Use only lowercase alphabetic and - characters in secretKeyRef name and key fields, otherwise helm deploys the release but throws an obscure error about DNS-1123 subdomain format # secrets: # - name: sampleSecretVar # secretKeyRef: # name: sample-k8-secret-name # key: sample-k8s-secret-subkey # Create secrets with below command: # kubectl create secret generic sample-k8-secret-name --namespace=edgedelta --from-literal=sample-k8s-secret-subkey="SECRET_VALUE" # Configure the deployment type deployment: # Can be either Deployment or DaemonSet kind: DaemonSet # Number of pods of the deployment (only applies when kind == Deployment) replicas: 1 # Resource constraints annotations: {} resources: limits: cpu: 2000m memory: 2048Mi requests: cpu: 200m memory: 256Mi tolerations: {} nodeSelector: {} priorityClassName: "" updateStrategy: type: RollingUpdate rollingUpdate: maxUnavailable: 1 # ports will define which extra ports should be exposed in order to send data to agents ports: [] # example configuration can be found below: # ports: # - name: port-1 # protocol: TCP # port: 80 # exposeInHost: true # It will expose port in host, only valid for DaemonSet deployment kind # - name: port-2 # protocol: UDP # port: 5000 # exposeInHost: false # Helm overrides image: name: gcr.io/edgedelta/agent # Overrides the image tag whose default is the chart appVersion. tag: "" # Overrides full image (with url and version/tag) if not empty # example: gcr.io/edgedelta/agent@sha256:0180ff40f52528d7462200c40fae8aff3bdb83289ac19ce823a3fcb1c40c9ad9 fullPath: "" imagePullSecrets: [] nameOverride: "" fullnameOverride: "" # Manage NetworkPolicy networkPolicy: # networkPolicy.create -- If true, create NetworkPolicy for DaemonSet enabled: false # networkPolicy.type -- Type of the network policy to use. # Can be: # * cilium for cilium.io/v2/CiliumNetworkPolicy type: cilium cilium: # networkPolicy.cilium.dnsSelector -- Cilium selector of the DNS server entity # @default -- kube-dns in namespace kube-system dnsSelector: toEndpoints: - matchLabels: "k8s:io.kubernetes.pod.namespace": kube-system "k8s:k8s-app": kube-dns # networkPolicy.cilium.customEndpoints -- Custom endpoint addresses for egress traffic # # customEndpoints: # toFQDNs: # - matchName: "api.edgedelta.com" # - matchPattern: "*.s3.us-east-1.amazonaws.com" # toCIDR: # - 192.168.1.0/24 # toServices: # - k8sService: # namespace: default # serviceName: customservice # toPorts: # - ports: # - port: "443" # protocol: TCP # enable service monitor to scrape prometheus metrics from agents serviceMonitor: enabled: false # namespace: monitoring # scrapeTimeout: 10s # jobLabel: edgedelta # selector: # release: prom-kube-stack # agent troubleshooter is to verify health of agent after deployment # command to run the troubleshooter is displayed as the output of # helm install command # it is also used (in separate mode) for collecting log and status data # from namespace when a restart occurs agentTroubleshooter: image: gcr.io/edgedelta/agent-troubleshooter:latest symptomCollector: enabled: false checkInterval: "" # can be a golang time string, ex: 30s, 1m reportInterval: "" # can be a golang time string, ex: 30s, 1m loggingLevel: "info" # can be "debug", "info", "error" or "warn" logLineCount: 1000 resources: limits: cpu: 200m memory: 200Mi requests: cpu: 100m memory: 100Mi instructionURL: "https://app.edgedelta.com" agentUpdater: enabled: false image: gcr.io/edgedelta/agent-updater:latest baseURL: https://api.edgedelta.com/v1 latestTagEndpoint: /versioning/latest metadataEndpoint: /agent_updater/metadata logUploader: enabled: true presignedUploadURLEndpoint: /agent_updater/self_logs_upload_link tracerProps: enabled: true port: 9595 compactorProps: enabled: true port: 9199 usePVC: true storageClass: "" diskSize: 30Gi replicas: 1 serviceDNSSuffix: svc.cluster.local traceFiles: "" podManagementPolicy: "OrderedReady" updateStrategy: type: RollingUpdate goMemLimit: "" resources: limits: cpu: 2000m memory: 2000Mi requests: cpu: 200m memory: 300Mi rollUpProps: enabled: true port: 9200 replicas: 2 serviceDNSSuffix: svc.cluster.local podManagementPolicy: "OrderedReady" updateStrategy: type: RollingUpdate goMemLimit: "900MiB" resources: limits: cpu: 1000m memory: 1Gi requests: cpu: 200m memory: 256Mi