Skip to content

humio/humio-operator

Repository files navigation

Humio-Operator

Build Status Go Report Card

The Humio operator is a Kubernetes operator to automate provisioning, management, autoscaling and operations of Humio clusters deployed to Kubernetes.

Terminology

  • CRD: Short for Custom Resource Definition. This is a way to extend the API of Kubernetes to allow new types of objects with clearly defined properties.
  • CR: Custom Resource. Where CRD is the definition of the objects and their available properties, a CR is a specific instance of such an object.
  • Controller and Operator: These are common terms within the Kubernetes ecosystem and they are implementations that take a defined desired state (e.g. from a CR of our HumioCluster CRD), and ensure the current state matches it. They typically includes what is called a reconciliation loop to help continuously ensuring the health of the system.
  • Reconciliation loop: This is a term used for describing the loop running within controllers/operators to keep ensuring current state matches the desired state.

Installation

See the Installation Guide. There is also a step-by-step Quick Start guide that walks through creating a cluster on AWS.

Running a Humio Cluster

See instructions and examples in the Humio Operator Resources section of the docs.

Development

Unit Testing

Tests can be run by executing:

make test

E2E Testing (Kubernetes)

We use kind for local testing.

Note that for running zookeeper and kafka locally, we currently rely on the cp-helm-charts and that that repository is cloned into a directory ~/git/humio-cp-helm-charts.

Prerequisites:

  • The environment variable HUMIO_E2E_LICENSE must be populated with a valid Humio license.

To run a E2E tests locally using kind, execute:

make run-e2e-tests-local-kind

Telemetry Testing

The operator includes telemetry collection functionality that gathers usage and cluster information. For detailed telemetry testing instructions, see the Telemetry Testing Guide.

Note: Telemetry tests are included in the main E2E test suite and will run automatically with make run-e2e-tests-local-kind.

Quick start for telemetry testing:

# Set required license
export HUMIO_E2E_LICENSE="your-license-here"

# Run all E2E tests (includes telemetry tests)
make run-e2e-tests-local-kind

# Interactive testing (creates persistent test cluster)
./hack/run-telemetry-test-cluster.sh

# Automated telemetry-only integration tests
./hack/run-telemetry-integration-using-kind.sh

# Unit tests for telemetry controller only
make run-telemetry-tests

Publishing new releases

In order to publish new release of the different components, we have the following procedures we can follow:

Note: For now, we only release one component at a time due to how our workflows in GitHub Actions.

License

Apache License 2.0

About

Kubernetes Operator for Humio

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 32

Languages