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
# store: kubernetes
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
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 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).
Please find further resources about out project here: