
This controller operates on the Network
resource in the extensions.gardener.cloud/v1alpha1
API group. It manages those objects that are requesting cilium Networking configuration (.spec.type=cilium
):
apiVersion: extensions.gardener.cloud/v1alpha1
kind: Network
metadata:
name: cilium-network
namespace: shoot--foo--bar
spec:
type: cilium
podCIDR: 10.244.0.0/16
serviceCIDR: 10.96.0.0/24
providerConfig:
apiVersion: cilium.networking.extensions.gardener.cloud/v1alpha1
kind: NetworkConfig
# hubble:
# enabled: true
# ui: true
# metrics:
# - "dns"
# - "drop"
# - "tcp"
# - "flow"
# - "port-distribution"
# - "icmp"
# - "http"
# store: kubernetes
# psp: true
Please find a concrete example in the example
folder. All the cilium
specific configuration
should be configured in the providerConfig
section. If additional configuration is required, it should be added to
the networking-cilium
chart in controllers/networking-cilium/charts/internal/cilium/values.yaml
and corresponding code
parts should be adapted (for example in controllers/networking-cilium/pkg/charts/utils.go
).
Once the network resource is applied, the networking-cilium
controller would then create all the necessary managed-resources
which should be picked
up by the gardener-resource-manager which will then apply all the
network extensions resources to the shoot cluster.
Finally after successful reconciliation an output similar to the one below should be expected.
status:
lastOperation:
description: Successfully reconciled network
lastUpdateTime: "..."
progress: 100
state: Succeeded
type: Reconcile
observedGeneration: 1
How to start using or developing this extension controller locally
You can run the controller locally on your machine by executing make start
. Please make sure to have the kubeconfig
pointed to the cluster you want to connect to.
Static code checks and tests can be executed by running VERIFY=true make all
. We are using Go modules for Golang package dependency management and Ginkgo/Gomega for testing.
Feedback and Support
Feedback and contributions are always welcome. Please report bugs or suggestions as GitHub issues or join our Slack channel #gardener (please invite yourself to the Kubernetes workspace here).
Learn more!
Please find further resources about out project here: