/cnat

Example Kubernetes controller: the cloud native at command

Primary LanguageGoApache License 2.0Apache-2.0

cnat

The cnat (cloud native at) command extends Kubernetes to run a command at a certain point in time in the future, akin to the Linux at command.

Let's say you want to execute echo YAY at 2am on 3rd July 2019. Here's what you would do (given the cnat CRD has been registered and the according operator is running):

$ cat runat.yaml
apiVersion: cnat.programming-kubernetes.info/v1alpha1
kind: At
metadata:
  name: example-at
spec:
  schedule: "2019-07-03T02:00:00Z"
  command: "echo YAY"


$ kubectl apply -f runat.yaml
cnat.programming-kubernetes.info/example-at created

$ kubectl get at
NAME               AGE
example-at         20s

$ kubectl logs example-at-pod
YAY

Note that the execution time (schedule) is given in UTC.

In order to use the cnat custom resource, you have to run the respective custom controller, implemented here in three different ways: