Jason Waldrip
Jason Waldrip

Reputation: 5148

Reusable Pod Templates

Is it possible in Kubernetes to create a pod template and reuse it later when specifying a pod within a deployment? For example:

Say I have pod template...

apiVersion: v1
kind: PodTemplate
metadata:
  name: my-pod-template
template:
  metadata:
    labels:
      app: "my-app"
  spec:
    containers:
      - name: my-app
        image: jwaldrip/my-app:latest

Could I then use it in a deployment as so?

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app-deployment
spec:
  template:
    metadata:
      name: my-pod-template

This would be super helpful when deploying something like Jobs, where I want to own the creation of a job with the given template.

Upvotes: 3

Views: 1490

Answers (1)

Jonah Benton
Jonah Benton

Reputation: 3708

There is not.

Specifically in the case of Pods, there are PodPresets:

https://kubernetes.io/docs/tasks/inject-data-application/podpreset/

But those don't apply to other objects.

One way to enforce the shape or attributes of arbitrary objects is to establish tooling that correctly creates those objects, then create credentials for that tooling, and use RBAC to only allow those credentials to create those objects.

https://kubernetes.io/docs/admin/authorization/rbac/

Another way would be to create an Admission Controller to watch the attempted creation of the desired objects, and verify/reject those that don't meet the criteria:

https://kubernetes.io/docs/admin/admission-controllers/

Upvotes: 1

Related Questions