Adding containers in Custom Resource Definition for deployment Pod

11/25/2019

I have a sample Deployment.yaml which has containers in it

kind: Pod
metadata:
    generateName: test-pod-
spec:
  containers:
  - name: test-pod
    image: test/mypod:v5.16
    env:
    - name: testenv
      valueFrom:
        configMapKeyRef:
          name: kubernetes-config
          key: type
    volumeMounts:
    - name: test-vol
      mountPath: "/test/vol"
      readOnly: true

This creates the pod with random name test-pod-vdffg

Now i want to do this Pod generation using Custom resource definition So I created below CRD

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: testconfigs.demo.k8s.com
  namespace: testns
spec:
  group: demo.k8s.com
  versions:
    - name: v1
      served: true
      storage: true
  scope: Namespaced
  names:
    plural: testpodconfigs
    singular: testpodconfig
    kind: TestPodConfig

And a custom resource like this

apiVersion: demo.k8s.com/v1
kind: TestPodConfig
metadata:
  generateName: test-pod-
  namespace: testns
spec:
  image: test/mypod:v5.16
  env:
  - name: testenv
    valueFrom:
      configMapKeyRef:
        name: kubernetes-config
        key: type

Here I am not sure whether the image property will add the container to PodSpec or not as it is a simple string. Also how can i add the Volumes and environment variables using client-go program.

-- PREETI BANSAL
kubernetes
kubernetes-custom-resources

0 Answers