How to use environment variables in init container args in kubernetes/openshift?












2















This is an excerpt of my deployment config:



...
spec:
containers:
- env:
- name: GIT_USERNAME
valueFrom:
secretKeyRef:
key: username
name: git
- name: GIT_PASSWORD
valueFrom:
secretKeyRef:
key: password
name: git
initContainers:
- args:
- clone
- '--single-branch'
- '--'
- 'https://$(GIT_USERNAME):$(GIT_PASSWORD)@someurl.com/something.git'
- '/testing/'
image: alpine/git
imagePullPolicy: Always
name: init-clone-repo
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /testing
name: test-volume
volumes:
- emptyDir: {}
name: test-volume
...


The initContainer fails, because $(GIT_USERNAME) and $(GIT_PASSWORD) are used as is and not expanded. I have tried $GIT_USERNAME, ${GIT_USERNAME} and I am pretty much out of ideas.



How do I correctly use environment variables in args for init containers?










share|improve this question



























    2















    This is an excerpt of my deployment config:



    ...
    spec:
    containers:
    - env:
    - name: GIT_USERNAME
    valueFrom:
    secretKeyRef:
    key: username
    name: git
    - name: GIT_PASSWORD
    valueFrom:
    secretKeyRef:
    key: password
    name: git
    initContainers:
    - args:
    - clone
    - '--single-branch'
    - '--'
    - 'https://$(GIT_USERNAME):$(GIT_PASSWORD)@someurl.com/something.git'
    - '/testing/'
    image: alpine/git
    imagePullPolicy: Always
    name: init-clone-repo
    resources: {}
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /testing
    name: test-volume
    volumes:
    - emptyDir: {}
    name: test-volume
    ...


    The initContainer fails, because $(GIT_USERNAME) and $(GIT_PASSWORD) are used as is and not expanded. I have tried $GIT_USERNAME, ${GIT_USERNAME} and I am pretty much out of ideas.



    How do I correctly use environment variables in args for init containers?










    share|improve this question

























      2












      2








      2








      This is an excerpt of my deployment config:



      ...
      spec:
      containers:
      - env:
      - name: GIT_USERNAME
      valueFrom:
      secretKeyRef:
      key: username
      name: git
      - name: GIT_PASSWORD
      valueFrom:
      secretKeyRef:
      key: password
      name: git
      initContainers:
      - args:
      - clone
      - '--single-branch'
      - '--'
      - 'https://$(GIT_USERNAME):$(GIT_PASSWORD)@someurl.com/something.git'
      - '/testing/'
      image: alpine/git
      imagePullPolicy: Always
      name: init-clone-repo
      resources: {}
      terminationMessagePath: /dev/termination-log
      terminationMessagePolicy: File
      volumeMounts:
      - mountPath: /testing
      name: test-volume
      volumes:
      - emptyDir: {}
      name: test-volume
      ...


      The initContainer fails, because $(GIT_USERNAME) and $(GIT_PASSWORD) are used as is and not expanded. I have tried $GIT_USERNAME, ${GIT_USERNAME} and I am pretty much out of ideas.



      How do I correctly use environment variables in args for init containers?










      share|improve this question














      This is an excerpt of my deployment config:



      ...
      spec:
      containers:
      - env:
      - name: GIT_USERNAME
      valueFrom:
      secretKeyRef:
      key: username
      name: git
      - name: GIT_PASSWORD
      valueFrom:
      secretKeyRef:
      key: password
      name: git
      initContainers:
      - args:
      - clone
      - '--single-branch'
      - '--'
      - 'https://$(GIT_USERNAME):$(GIT_PASSWORD)@someurl.com/something.git'
      - '/testing/'
      image: alpine/git
      imagePullPolicy: Always
      name: init-clone-repo
      resources: {}
      terminationMessagePath: /dev/termination-log
      terminationMessagePolicy: File
      volumeMounts:
      - mountPath: /testing
      name: test-volume
      volumes:
      - emptyDir: {}
      name: test-volume
      ...


      The initContainer fails, because $(GIT_USERNAME) and $(GIT_PASSWORD) are used as is and not expanded. I have tried $GIT_USERNAME, ${GIT_USERNAME} and I am pretty much out of ideas.



      How do I correctly use environment variables in args for init containers?







      git docker kubernetes containers openshift






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 13 '18 at 6:49









      wedererwederer

      122111




      122111
























          1 Answer
          1






          active

          oldest

          votes


















          2














          Add environment variable in the init container.



          spec:
          initContainers:
          - args:
          - clone
          - '--single-branch'
          - '--'
          - 'https://$(GIT_USERNAME):$(GIT_PASSWORD)@someurl.com/something.git'
          - '/testing/'
          image: alpine/git
          imagePullPolicy: Always
          name: init-clone-repo
          env:
          - name: GIT_USERNAME
          valueFrom:
          secretKeyRef:
          key: username
          name: git
          - name: GIT_PASSWORD
          valueFrom:
          secretKeyRef:
          key: password
          name: git
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          volumeMounts:
          - mountPath: /testing
          name: test-volume
          volumes:
          - emptyDir: {}
          name: test-volume





          share|improve this answer


























          • Yes, that was it. Thank you!

            – wederer
            Nov 13 '18 at 9:15











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53275332%2fhow-to-use-environment-variables-in-init-container-args-in-kubernetes-openshift%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          2














          Add environment variable in the init container.



          spec:
          initContainers:
          - args:
          - clone
          - '--single-branch'
          - '--'
          - 'https://$(GIT_USERNAME):$(GIT_PASSWORD)@someurl.com/something.git'
          - '/testing/'
          image: alpine/git
          imagePullPolicy: Always
          name: init-clone-repo
          env:
          - name: GIT_USERNAME
          valueFrom:
          secretKeyRef:
          key: username
          name: git
          - name: GIT_PASSWORD
          valueFrom:
          secretKeyRef:
          key: password
          name: git
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          volumeMounts:
          - mountPath: /testing
          name: test-volume
          volumes:
          - emptyDir: {}
          name: test-volume





          share|improve this answer


























          • Yes, that was it. Thank you!

            – wederer
            Nov 13 '18 at 9:15
















          2














          Add environment variable in the init container.



          spec:
          initContainers:
          - args:
          - clone
          - '--single-branch'
          - '--'
          - 'https://$(GIT_USERNAME):$(GIT_PASSWORD)@someurl.com/something.git'
          - '/testing/'
          image: alpine/git
          imagePullPolicy: Always
          name: init-clone-repo
          env:
          - name: GIT_USERNAME
          valueFrom:
          secretKeyRef:
          key: username
          name: git
          - name: GIT_PASSWORD
          valueFrom:
          secretKeyRef:
          key: password
          name: git
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          volumeMounts:
          - mountPath: /testing
          name: test-volume
          volumes:
          - emptyDir: {}
          name: test-volume





          share|improve this answer


























          • Yes, that was it. Thank you!

            – wederer
            Nov 13 '18 at 9:15














          2












          2








          2







          Add environment variable in the init container.



          spec:
          initContainers:
          - args:
          - clone
          - '--single-branch'
          - '--'
          - 'https://$(GIT_USERNAME):$(GIT_PASSWORD)@someurl.com/something.git'
          - '/testing/'
          image: alpine/git
          imagePullPolicy: Always
          name: init-clone-repo
          env:
          - name: GIT_USERNAME
          valueFrom:
          secretKeyRef:
          key: username
          name: git
          - name: GIT_PASSWORD
          valueFrom:
          secretKeyRef:
          key: password
          name: git
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          volumeMounts:
          - mountPath: /testing
          name: test-volume
          volumes:
          - emptyDir: {}
          name: test-volume





          share|improve this answer















          Add environment variable in the init container.



          spec:
          initContainers:
          - args:
          - clone
          - '--single-branch'
          - '--'
          - 'https://$(GIT_USERNAME):$(GIT_PASSWORD)@someurl.com/something.git'
          - '/testing/'
          image: alpine/git
          imagePullPolicy: Always
          name: init-clone-repo
          env:
          - name: GIT_USERNAME
          valueFrom:
          secretKeyRef:
          key: username
          name: git
          - name: GIT_PASSWORD
          valueFrom:
          secretKeyRef:
          key: password
          name: git
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          volumeMounts:
          - mountPath: /testing
          name: test-volume
          volumes:
          - emptyDir: {}
          name: test-volume






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Nov 13 '18 at 8:05

























          answered Nov 13 '18 at 7:24









          nightfury1204nightfury1204

          1,58148




          1,58148













          • Yes, that was it. Thank you!

            – wederer
            Nov 13 '18 at 9:15



















          • Yes, that was it. Thank you!

            – wederer
            Nov 13 '18 at 9:15

















          Yes, that was it. Thank you!

          – wederer
          Nov 13 '18 at 9:15





          Yes, that was it. Thank you!

          – wederer
          Nov 13 '18 at 9:15


















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53275332%2fhow-to-use-environment-variables-in-init-container-args-in-kubernetes-openshift%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Full-time equivalent

          Bicuculline

          さくらももこ