Git Product home page Git Product logo

helm-charts's Introduction

Cribl Logo

Cribl Helm Charts

This is a Helm repository for charts published by Cribl, Inc.

We now have a really fast way to deploy an entire distributed Cribl Stream environment to a Kubernetes cluster, using the workergroup and leader Helm charts.

Prerequisites

Helm version 3 is required to use these charts.

To install Helm on (e.g.) a Mac, using Homebrew:

brew install helm

Instructions for other operating systems can be found here: https://helm.sh/docs/intro/install/

Deploying

If you haven't done so already, create a namespace. Our documentation example uses cribl-stream.

kubectl create namespace cribl-stream

Add the Cribl Helm repo.

helm repo add cribl https://criblio.github.io/helm-charts/

The following example creates a distributed deployment with two auto-scaled worker groups:

  • pcilogs
  • system-metrics

In addition, the example:

  • Uses an auth token of ABCDEF01-1234-5678-ABCD-ABCDEF012345
  • Sets an admin password
  • Installs our license

For Workers to communicate with the Leader node, both Worker Group deployments reference the Service (ls-leader-internal) created by deployment of the Leader Helm chart.

helm install ls-leader cribl/logstream-leader \
  --set "config.groups={pcilogs,system-metrics}" \
  --set config.token="ABCDEF01-1234-5678-ABCD-ABCDEF012345" \
  --set config.adminPassword="<admin password>" \
  --set config.license="<license key>" \
  -n cribl-stream

helm install ls-wg-pci cribl/logstream-workergroup \
  --set config.host="ls-leader-internal" \
  --set config.tag="pcilogs" \
  --set config.token="ABCDEF01-1234-5678-ABCD-ABCDEF012345" \
  -n cribl-stream

helm install ls-wg-system-metrics cribl/logstream-workergroup \
  --set config.host="ls-leader-internal" \
  --set config.tag="system-metrics" \
  --set config.token="ABCDEF01-1234-5678-ABCD-ABCDEF012345" \
  -n cribl-stream

Running Distributed on a Free License

To run a distributed instance without specifying a license in your install, go into Cribl Stream's user interface and accept the Free license. The Free license allows only one Worker Group.

You can configure the Leader as Distributed, by specifying the config.groups option. If you don't specify it, the default configuration is Single Instance mode. You can later manually reconfigure it as Distributed via Cribl Stream's UI.

Upgrading

Upgrading Cribl Stream to new bits is easy. Update the repo, and then upgrade each chart version. The example below updates to the current version, but you can append --version X.Y.Z if you want to specify a particular version.

helm repo update
helm upgrade ls-leader cribl/logstream-leader -n cribl-stream
helm upgrade ls-wg-pci cribl/logstream-workergroup -n cribl-stream
helm upgrade ls-wg-system-metrics cribl/logstream-workergroup -n cribl-stream

Support

Our community supports all items in the Cribl Helm repository โ€“ Please join our Slack Community!

helm-charts's People

Contributors

atopian avatar bdalpe avatar bieron avatar coccyx avatar criblio-ci avatar eddie-cribl avatar elauqsap avatar kenmoini avatar maliha-writes avatar manelpb avatar michalbiesek avatar njparisi avatar pdugas avatar ricksalsa avatar rlang-cribl avatar seanvaleo avatar sp3nx0r avatar stevelitras avatar yanicksimon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

helm-charts's Issues

logstream-master config.groups throws warning

When installing the charts for logstream-master, the following warning is thrown when specifying any group overrides:

coalesce.go:200: warning: cannot overwrite table with non table for groups (map[])

config.groups needs to be changed from and object to array {} -> []

Document known problems/workarounds

The following issues need to be documented in the repo:

  1. Running a distributed deployment with a free license - need to note the caveats of only using one group and how to do it (there is a UI portion that needs to happen).
  2. Issues with persisitent storage on master - specifically EKS issue due to EBS availability zone aware k8s scheduling.

Default Proc Limits equivalent with default k8s limits

The default of -2 for worker process can cause a problem on k8s (due to the pod seeing the CPUs allocated to the node, unrelated to the requests/limits setup. Have the default setup in LogStream equal the default request/limit values.

Add stabilizationWindowSeconds for HPA

Noticing in deployments that workers will scale out on a commit/deploy because the CPU spikes for a few seconds. We should add a stabilizationWindowSeconds setting for scale up and down for the HPA configs.

Support for custom labels

I would like to have support for having custom labels to the Kubernetes resources and have it pass via the values.yaml.

I think we can probably add the custom lables support here, something like --

{{- if .Values.labels}}
{{ toYaml .Values.labels }}
{{- end }}

logstream-workergroup/template/hpa.yaml naming constraints - lowercase RFC 1123

For logstream-workergroup/template/hpa.yaml
metadata: {{- if .Values.config.group }} name: {{ include "logstream-workergroup.fullname" . }}-{{ .Values.config.group }} {{- else if .Values.config.tag }} name: {{ include "logstream-workergroup.fullname" . }}-{{ .Values.config.tag }} {{- end }}
Maybe we can use something other than values.config.group as its causing some issues with the hpa naming constraints.
Some of the group names in our org were setup by a different team and they contain underscores.
ERROR:
Error: UPGRADE FAILED: failed to create resource: HorizontalPodAutoscaler.autoscaling "foo-usc1-logstream-workergroup-cloud_foo_us-central-1" is invalid: metadata.name: Invalid value: "foo-usc1-logstream-workergroup-cloud_foo_us-central-1": a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')

Workergroup: extraSecretMounts Support

Add Support for extraSecretMounts in workergroup chart config. Allow externally created secrets to be mounted within the cribl containers in the pods.

Add HEC port 8088

HEC is a commonly used protocol and would be nice to have port 8088 added to the default ports for worker group chart

Support TLS

We currently do not support using TLS to connect to the leader.

Master: Support for extraVolumeMounts

Add Support for extraVolumeMounts in workergroup chart config. Allow externally created volume claims, or host mount or empty dir mounts to be mounted within the cribl containers in the pods.

Remove docker-sock from Edge

Edge knows to look in /hostfs mount for the Docker sock, so this is redundant/unnecessary in current releases.

Master: Support for extraInitContainers

Add Support for extraInitContainers in master chart config. This would likely be used for any pre-run initialization of persistent storage beyond what is done by default.

Master: extraSecretMounts Support

Add Support for extraSecretMounts in master chart config. Allow externally created secrets to be mounted within the cribl containers in the pods.

4.1.0-TC44 - Admin Role Missing After Upgrading

Installed build 4.0.4 via Helm and set a password using config.adminPassword

helm install ls-leader cribl/logstream-leader \
  --set "config.groups={wg1,wg2}" \
  --set config.token="criblmaster" \
  --set config.adminPassword="password" \
  --set config.license="<jwt license>" \
  -n cribl-stream

Updated the tags in the Releases helm chart and changed the tag to 4.1.0-TC44 and upgraded my instance and notice that the Role is now blank.

Screenshot 2023-03-07 at 5 40 11 PM (1)

Screenshot 2023-03-07 at 5 40 17 PM (1)

With the new Data Subscription role, something went wrong because the Admin user's "Admin" role changed to "User".

You have to be careful here and manually add Admin role back to prevent losing all access.

Support privileged mode

@sbeamish points out that the worker group chart does not support privileged mode which will prevent Edge from reading the host logs in K8s.

Add support for loadBalancerIP in services

Multiple customers have requested support for having fixed/static IP addresses for the load balancers in all of the services. This will implement the loadBalancerIP service parameter, but this is dependent upon the Kubernetes environment supporting that capability (many don't).

Workergroup: Support for extraVolumeMounts

Add Support for extraVolumeMounts in workergroup chart config. Allow externally created volume claims, or host mount or empty dir mounts to be mounted within the cribl containers in the pods.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.