WARNING: The CRD/API has yet to be defined. Everything as of this moment is considered experimental.
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.
The Humio Operator expects a running Zookeeper and Kafka. There are many ways to run Zookeeper and Kafka but generally a good choice is the Banzai Cloud Kafka Operator. They also recommend using Pravega's Zookeeper Operator. If you are running in AWS, we generally recommend the MSK service.
See charts/humio-operator/README.md.
See instructions at docs/README.md and examples of custom resources at examples/.
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.
To run a e2e test locally using kind, execute:
make run-e2e-tests-local-kindTo stop the kind cluster again, execute:
hack/stop-kind.shWe use crc 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:
- Download the
crcbinary, make it executable and ensure it is in$PATH. - Populate a file named
.crc-pull-secret.txtin the root of the repository with your pull secret forcrc.
To run a e2e test locally using crc, execute:
make run-e2e-tests-local-crcTo stop the crc cluster again, execute:
hack/stop-crc.sh- Container image: Bump the version defined in version/version.go.
- Helm chart: Bump the version defined in charts/humio-operator/Chart.yaml.