I saw that there is an object named PodTemplate which have little documentation.
It is mentioned:
Pod templates are pod specifications which are included in other objects, such as Replication Controllers, Jobs, and DaemonSets.
But I am not sure how to mention it on Replication Controllers, Jobs or DaemonSets.
I created a PodTemplate like this:
kubectl apply -f - <<EOF
apiVersion: v1
kind: PodTemplate
metadata:
name: pod-test
namespace: default
template:
metadata:
name: pod-template
spec:
containers:
- name: container
image: alpine
command: ["/bin/sh"]
args: ["-c", "sleep 100"]
EOFI want to use it in a DaemonSet, how can I do it ?
Here is an example for DaemonSet YAML:
kubectl apply -f - <<EOF
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: pod-by-daemonset
namespace: default
spec:
selector:
matchLabels:
name: selector
template:
metadata:
labels:
name: selector
spec:
containers: # I don't want to specify it, I want to use the template.
- name: container
image: alpine
EOFInterestingly the page for DaemonSet gives an example of creating a DaemonSet and says that
the .spec.template is a pod template. It has exactly the same schema as a Pod, except it is nested and does not have an apiVersion or kind.
So the intention is to inline the Pod schema in the DaemonSet.
However, there does seem to have been a plan to be able to reference a PodTemplate by the form:
TemplateRef:
Name: <templatename>What seems to have happened from the trail on github is that this way of referencing a predefined PodTemplate was added but not finished and then removed. You can give it a try but it looks to me like only the inline spec is supported.