This page is under regular updates. Please check back later for more content.
Manifest Cheatsheet

Manifest cheatsheet

Find the basic manifest file for each object (what I have learned so far) in kubernetes.

Pod Manifest

pod.yml
kind: Pod
apiVersion: v1
metadata:
  name: my-pod
spec:
    containers:
      - name: c00
        image: httpd
        ports:
          - containerPort: 80

ReplicaController

replicacontroller.yml
apiVersion: v1
kind: ReplicationController
metadata:
  name: my-replicaController
spec:
  replicas: 5
  selector:
    myname: xander
  template:
    metadata:
      name: rc-pod
      labels:
        myname: xander
    spec:
      containers:
        - name: c00
          image: httpd
          ports:
            - containerPort: 80

ReplicaSet

replicaset.yml
kind: ReplicaSet
apiVersion: apps/v1
metadata:
  name: replicaSet
spec:
  replicas: 2
  selector:
    matchExpressions:
      - key: myname
        operator: In
        values: [xander, billa, kubernetes]
      - key: env
        operator: NotIn
        values: [prod, dev]
  template:
    metadata:
      name: container0
      labels:
        myname: xander
    spec:
      containers:
        - name: c00
          image: httpd
          ports:
            containerPort: 80

Deployment

deployment.yml
kind: Deployment
apiVersion: apps/v1
metadata:
  name: my-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      name: xander
  template:
    metadata:
      name: container0
      labels:
        name: xander
    spec:
      containers:
        - name: c00
          image: ubuntu
          command: [
              # Use a list for the command
              "/bin/bash",
              "-c",
              "while true; do echo Hello-from-ubuntu; sleep 5 ; done",
            ]

Service

service.yml
kind: Service
apiVersion: v1
metadata:
  name: my-service
spec:
  ports:
    - port: 80
      targetPort: 80
  selector:
    name: xander
  type: NodePort

Volume

volume.yml
kind: Pod
apiVersion: v1
metadata:
  name: my-volume
spec:
  containers:
    - name: c2
      image: centos
      command: ["/bin/bash", "-c", "sleep 10000"]
      volumeMounts:
        - name: xchange
          mountPath: "/tmp/data"
  volumes:                                                   
    - name: xchange
      emptyDir: {}

Persistent Volume

pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: myebsvol
spec:
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Delete
  awsElasticBlockStore:
    volumeID: <YOUR_EBS_VOLUME_ID> #vol-094d8143b2ad46204
    fsType: ext4

Persistent Volume Claim

pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: myebsvolclaim
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi