OpenShift Downward API Operations: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 24: Line 24:
         <font color=teal>env:</font>
         <font color=teal>env:</font>
           - <font color=teal>name: POD_NAME</font>
           - <font color=teal>name: POD_NAME</font>
             <font color=teal>'''valueFrom:'''</font>
             <font color=teal>valueFrom:</font>
               <font color=teal>'''fieldRef:'''</font>
               <font color=teal>fieldRef:</font>
                 <font color=teal>'''fieldPath: metadata.name'''</font>
                 <font color=teal>fieldPath: metadata.name</font>
           - <font color=teal>'''name: POD_NAMESPACE'''</font>
           - <font color=teal>name: POD_NAMESPACE</font>
             <font color=teal>'''valueFrom:'''</font>
             <font color=teal>valueFrom:</font>
               <font color=teal>'''fieldRef:'''</font>
               <font color=teal>fieldRef:</font>
                 <font color=teal>'''fieldPath: metadata.namespace'''</font>
                 <font color=teal>fieldPath: metadata.namespace</font>


The deployment configuration will produce a pod that contains the following environment properties in its environment:
The deployment configuration will produce a pod that contains the following environment properties in its environment:


  POD_NAME=something-cm34t
  POD_NAME=printenv-3-cm34t
  POD_NAMESPACE=lab4
  POD_NAMESPACE=lab4


Line 55: Line 55:
       containers:
       containers:
       - name: printenv
       - name: printenv
         <font color=teal>'''volumeMounts:'''</font>
         <font color=teal>volumeMounts:</font>
          - <font color=teal>'''name: downward-api-volume'''</font>
        - <font color=teal>name: downward-api-volume</font>
            <font color=teal>'''mountPath: /downward-info'''</font>
          <font color=teal>mountPath: /downward-info</font>
            readOnly: false
          readOnly: false
       ...
       ...
       volumes:
       volumes:
        - <font color=teal>'''name: downward-api-volume'''</font>
      - <font color=teal>name: downward-api-volume</font>
            <font color=teal>'''metadata:'''</font>
        <font color=teal>metadata:</font>
              <font color=teal>'''items:'''</font>
            <font color=teal>items:</font>
                - <font color=teal>'''name: "pod-name"'''</font>
            - <font color=teal>name: "pod-name"</font>
                  <font color=teal>'''fieldRef:'''</font>
              <font color=teal>fieldRef:</font>
                    <font color=teal>'''fieldPath: metadata.name'''</font>
                <font color=teal>fieldPath: metadata.name</font>
                - <font color=teal>'''name: "pod-namespace"'''</font>
            - <font color=teal>name: "pod-namespace"'''</font>
                  <font color=teal>'''fieldRef:'''</font>
              <font color=teal>fieldRef:</font>
                    <font color=teal>'''fieldPath: metadata.namespace'''</font>
                <font color=teal>fieldPath: metadata.namespace</font>
                - <font color=teal>'''name: "pod-label"'''</font>
            - <font color=teal>name: "pod-label"</font>
                  <font color=teal>'''fieldRef:'''</font>
              <font color=teal>fieldRef:</font>
                    <font color=teal>'''fieldPath: metadata.labels'''</font>
                <font color=teal>fieldPath: metadata.labels</font>
                - <font color=teal>'''name: "pod-annotations"'''</font>
            - <font color=teal>name: "pod-annotations"</font>
                  <font color=teal>'''fieldRef:'''</font>
              <font color=teal>fieldRef:</font>
                    <font color=teal>'''fieldPath: metadata.annotations'''</font>
                <font color=teal>fieldPath: metadata.annotations</font>




The deployment configuration will produce a pod that contains the following environment properties in its environment:
The deployment configuration will produce a pod will mount a /downward-info volume, which contains four files:
 
pod-name:
 
printenv-3-tm5m4
 
pod-namespace:
 
lab4
 
pod-label:
 
app="printenv"
deployment="printenv-3"
deploymentconfig="printenv"


POD_NAME=something-cm34t
pod-annotations:
POD_NAMESPACE=lab4


This can be verifying by [[oc rsh]] into the pod and executing "printenv".
kubernetes.io/config.seen="2017-11-22T20:53:05.131680613-08:00"
kubernetes.io/config.source="api"
kubernetes.io/created-by="{\"kind\":\"SerializedReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"ReplicationController\",\"namespace\":\"lab4\",\"name\":\"printenv-3\",\"uid\":\"2dc22525-d00a-11e7-947c-525400360e56\",\"apiVersion\":\"v1\",\"resourceVersion\":\"517382\"}}\n"
openshift.io/deployment-config.latest-version="3"
openshift.io/deployment-config.name="printenv"
openshift.io/deployment.name="printenv-3"
openshift.io/generated-by="OpenShiftNewApp"
openshift.io/scc="restricted"

Latest revision as of 04:56, 23 November 2017

Internal

Overview

Expose OpenShift Information to Pod via Environment Variables

Edit the deployment configuration for the pod we want to expose data to:

oc edit dc/<dc-name>

Add the following environment entires:

...
spec:
  ...
  template:
    ...
    spec:
      containers:
      - name: printenv
        env:
          - name: POD_NAME
            valueFrom:
              fieldRef:
                fieldPath: metadata.name
          - name: POD_NAMESPACE
            valueFrom:
              fieldRef:
                fieldPath: metadata.namespace

The deployment configuration will produce a pod that contains the following environment properties in its environment:

POD_NAME=printenv-3-cm34t
POD_NAMESPACE=lab4

This can be verifying by oc rsh into the pod and executing "printenv".

Expose OpenShift Information to Pod via Volumes

Edit the deployment configuration for the pod we want to expose data to:

oc edit dc/<dc-name>

Add the following environment entires:

...
spec:
  ...
  template:
    ...
    spec:
      containers:
      - name: printenv
        volumeMounts:
        - name: downward-api-volume
          mountPath: /downward-info
          readOnly: false
      ...
      volumes:
      - name: downward-api-volume
        metadata:
           items:
           - name: "pod-name"
             fieldRef:
               fieldPath: metadata.name
           - name: "pod-namespace"
             fieldRef:
               fieldPath: metadata.namespace
           - name: "pod-label"
             fieldRef:
               fieldPath: metadata.labels
           - name: "pod-annotations"
             fieldRef:
               fieldPath: metadata.annotations


The deployment configuration will produce a pod will mount a /downward-info volume, which contains four files:

pod-name:

printenv-3-tm5m4

pod-namespace:

lab4

pod-label:

app="printenv"
deployment="printenv-3"
deploymentconfig="printenv"

pod-annotations:

kubernetes.io/config.seen="2017-11-22T20:53:05.131680613-08:00"
kubernetes.io/config.source="api"
kubernetes.io/created-by="{\"kind\":\"SerializedReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"ReplicationController\",\"namespace\":\"lab4\",\"name\":\"printenv-3\",\"uid\":\"2dc22525-d00a-11e7-947c-525400360e56\",\"apiVersion\":\"v1\",\"resourceVersion\":\"517382\"}}\n"
openshift.io/deployment-config.latest-version="3"
openshift.io/deployment-config.name="printenv"
openshift.io/deployment.name="printenv-3"
openshift.io/generated-by="OpenShiftNewApp"
openshift.io/scc="restricted"