The Humio operator is a Kubernetes operator to automate provisioning, management, autoscaling and operations of Humio clusters deployed to Kubernetes.
- 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.
See the Installation Guide. There is also a step-by-step Quick Start guide that walks through creating a cluster on AWS.
See instructions and examples in the Humio Operator Resources section of the docs.
Tests can be run by executing:
make testWe 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_LICENSEmust be populated with a valid Humio license.
To run a E2E tests locally using kind, execute:
make run-e2e-tests-local-kindThe 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-testsIn order to publish new release of the different components, we have the following procedures we can follow:
- Operator container image: Bump the version defined in VERSION.
- Helm chart: Bump the version defined in charts/humio-operator/Chart.yaml.
Note: For now, we only release one component at a time due to how our workflows in GitHub Actions.