This controller operates on the OperatingSystemConfig
resource in the extensions.gardener.cloud/v1alpha1
API group. It manages those objects that are requesting Garden Linux OS configuration (.spec.type=gardenlinux
):
---
apiVersion: extensions.gardener.cloud/v1alpha1
kind: OperatingSystemConfig
metadata:
name: pool-01-original
namespace: default
spec:
type: gardenlinux
units:
...
files:
...
Please find a concrete example in the example
folder.
After reconciliation the resulting data will be stored in a secret within the same namespace (as the config itself might contain confidential data). The name of the secret will be written into the resource's .status
field:
...
status:
...
cloudConfig:
secretRef:
name: osc-result-pool-01-original
namespace: default
command: /usr/bin/env bash <path>
units:
- docker-monitor.service
- kubelet-monitor.service
- kubelet.service
The secret has one data key cloud_config
that stores the generation.
An example for a ControllerRegistration
resource that can be used to register this controller to Gardener can be found here.
This controller is based on revision b5ba8164 of gardener-extension-os-ubuntu-alicloud. Its implementation is using the oscommon
library for operating system configuration controllers.
Please find more information regarding the extensibility concepts and a detailed proposal here.
You can run the controller locally on your machine by executing make start
. Please make sure to have the kubeconfig to the cluster you want to connect to ready in the ./dev/kubeconfig
file.
Static code checks and tests can be executed by running make verify
. 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: