kubernetes generate\create resource configuration

8/12/2019

i was looking for a strightforward way to create kubernetes resources templates (such as pod, deployment, service, etc.), though i couldn't find any good tool that does it. the tools i came across, are no longer maintained and some have stiff learning curve (such as kustomize).

some time ago, kubectl have introduced the generator and it can be used as follow to produce the resource configuration. for instance:

$ kubectl run helloworld --image=helloworld \
    --dry-run --output=yaml --generator=run-pod/v1
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: helloworld
  name: helloworld
spec:
  containers:
  - image: helloworld
    name: helloworld
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}

but kubectl generator should not be used, since most if it was deprecated. one might issue kubectl get on all the resources, to commit them in a source control and use it to restore the kubernetes cluster, though that implies that the kubernetes resources were created already, where my interest is generating these resource configuration in the first place.

please recommend about your favorite tool for generating\creating kubernetes resources or explain what is the best practice to handle my use case.

-- Mr.
kubernetes

1 Answer

8/12/2019

Create yaml files and use git to version them is the new best practice. However this approach can be automatized with GitOps approach and flagger. Another way is to create helm chart and customize with template feature.

You should definitely run away from generating from command line either way. You should have source of truth and cli generation will not give you that.

-- Akın Özer
Source: StackOverflow