Custodian Kubernetes Support

Cloud Custodian can run policies directly inside your cluster, reporting on resources that violate those policies, or blocking them altogether.

Running the server

c7n-kube can be run and installed via poetry. poetry install && poetry run c7n-kube.

name default description
--host 127.0.0.1 (optional) The host that the server should listen on.
--port 8800 (optional) The port the server will listen on.
--policy-dir Path to the policy directory.
--on-exception warn Action to take on an internal exception. One of: warn, deny.
--cert Path to the certificate.
--ca-cert Path to the CA's certificate.
--cert-key Path to the certificate's key.

Generate a MutatingWebhookConfiguration

After the server is running, you’ll need to configure and install the MutatingWebhookConfiguration manually. To generate a webhook configuration, you can run poetry run c7n-kube --generate --endpoint $ENDPOINT_URL --policy-dir $DIR, and it will generate an appropriate configuration for you, based on your policies.

Note: some modification of the webhook configuration may be required. See the documentation on webhooks for more configuration.

Development

You can use skaffold to assist with testing and debugging this controller. Run skaffold dev in this folder to deploy the local container into a local kubernetes cluster. It will automatically redeploy it as files change.