You can get POD_NAME and POD_NAMESPACE passing them as environment variables via fieldRef.
apiVersion: v1 kind: Pod metadata: name: test-env spec: containers: - name: test-container image: my-test-image:latest env: - name: MY_NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName - name: MY_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: MY_POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: MY_POD_IP valueFrom: fieldRef: fieldPath: status.podIP - name: MY_POD_SERVICE_ACCOUNT valueFrom: fieldRef: fieldPath: spec.serviceAccountName - name: REFERENCE_EXAMPLE value: "/$(MY_NODE_NAME)/$(MY_POD_NAMESPACE)/$(MY_POD_NAME)/data.log" restartPolicy: Never
EDIT: Added example env REFERENCE_EXAMPLE to show how to reference variables. Thanks to this answer for pointing out the $() interpolation.
You can reference supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP as mentioned in the documentation here.
However, CLUSTERNAME is not a standard property available. According to this PR #22043, the CLUSTERNAME should be injected to the .metadata field if using GCE.
Otherwise, you'll have to specific the CLUSTERNAME manually in the .metadata field and then use fieldRef to inject it as an environment variable.