Bonny.Config (bonny v0.4.4) View Source

Operator configuration interface

Link to this section Summary

Functions

Kubernetes APIVersion used. Defaults to apiextensions.k8s.io/v1

K8s.Cluster name used for this operator. Defaults to :default

List of all controller modules to watch.

Kubernetes API Group of this operator

Labels to apply to all operator resources.

The name of the operator.

The namespace to watch for Namespaced CRDs.

Kubernetes service account name to run operator as.

Link to this section Functions

Specs

api_version() :: binary()

Kubernetes APIVersion used. Defaults to apiextensions.k8s.io/v1

Specs

cluster_name() :: atom()

K8s.Cluster name used for this operator. Defaults to :default

Specs

controllers() :: [atom()]

List of all controller modules to watch.

This must be set in config.exs:

config :bonny, controllers: [MyController1, MyController2]

Specs

group() :: binary()

Kubernetes API Group of this operator

Specs

labels() :: map()

Labels to apply to all operator resources.

Note: These are only applied to the resoures that compose the operator itself, not the resources created by the operator.

This can be set in config.exs:

config :bonny, labels: %{foo: "bar", quz: "baz"}

Specs

name() :: binary()

The name of the operator.

Name must consist of only lowercase letters and hyphens.

Defaults to hyphenated mix project app name. E.g.: :hello_operator becomes hello-operator

Specs

namespace() :: binary()

The namespace to watch for Namespaced CRDs.

Defaults to default

This can be set via environment variable:

BONNY_POD_NAMESPACE=prod # specific namespace
# or
BONNY_POD_NAMESPACE=__ALL__ # all namespaces
iex -S mix

Or via config.exs:

config :bonny, namespace: "mynamespace" # specific namespace
# or
config :bonny; namespace: :all # all namespaces

Configuration via environment variable always takes precedence over config.exs.

Bonny sets BONNY_POD_NAMESPACE on all Kubernetes deployments to the namespace the operator is deployed in.

Specs

service_account() :: binary()

Kubernetes service account name to run operator as.

Note: if a kube config file is provided, this service account will still be created and assigned to pods, but the config file auth will be used when making requests to the Kube API.

Name must consist of only lowercase letters and hyphens.

Defaults to hyphenated mix project app name. E.g.: :hello_operator becomes hello-operator