• Kubernetes Submit Queue's avatar
    Merge pull request #66698 from WanLinghao/token_projected_improve · e38efdcc
    Kubernetes Submit Queue authored
    Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.
    
    refuse serviceaccount projection volume request when pod has no servceaccount bounded
    
    **What this PR does / why we need it**:
    Currently, if user starts a cluster with ServiceAccount admission plugin disabled, then creates a Pod 
    like this:
    ```
    kind: Pod 
    apiVersion: v1
    metadata:
      labels:
        run: nginx
      name: busybox2
    spec:
          containers:
          - image: gcr.io/google-containers/nginx
            name: nginx
            volumeMounts:
            - mountPath: /var/run/secrets/tokens
              name: token
          - image: ubuntu
            name: ttt 
            volumeMounts:
            - mountPath: /var/run/secrets/tokens
              name: token
            command: [ "/bin/bash", "-c", "--" ]
            args: [ "while true; do sleep 30; done;" ]
          volumes:
          - name: token
            projected:
              sources:
              - serviceAccountToken:
                  path: tokenPath
                  expirationSeconds: 6000
                  audience: gakki-audiences
    ```
    The pod creation will fail with error info like:
    Events:
    ```
      Type     Reason       Age               From                Message
      ----     ------       ----              ----                -------
      Normal   Scheduled    23s               default-scheduler   Successfully assigned office/busybox2 to 127.0.0.1
      Warning  FailedMount  8s (x6 over 23s)  kubelet, 127.0.0.1  MountVolume.SetUp failed for volume "token" : failed to fetch token: resource name may not be empty
    ```
    We should refuse the projection request earlier. This patch fix this.
    
    
    **Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
    Fixes #
    
    **Special notes for your reviewer**:
    
    **Release note**:
    
    ```release-note
    NONE
    ```
    e38efdcc
Name
Last commit
Last update
.github Loading commit data...
Godeps Loading commit data...
api Loading commit data...
build Loading commit data...
cluster Loading commit data...
cmd Loading commit data...
docs Loading commit data...
hack Loading commit data...
logo Loading commit data...
pkg Loading commit data...
plugin Loading commit data...
staging Loading commit data...
test Loading commit data...
third_party Loading commit data...
translations Loading commit data...
vendor Loading commit data...
.bazelrc Loading commit data...
.generated_files Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.kazelcfg.json Loading commit data...
BUILD.bazel Loading commit data...
CHANGELOG-1.10.md Loading commit data...
CHANGELOG-1.11.md Loading commit data...
CHANGELOG-1.12.md Loading commit data...
CHANGELOG-1.2.md Loading commit data...
CHANGELOG-1.3.md Loading commit data...
CHANGELOG-1.4.md Loading commit data...
CHANGELOG-1.5.md Loading commit data...
CHANGELOG-1.6.md Loading commit data...
CHANGELOG-1.7.md Loading commit data...
CHANGELOG-1.8.md Loading commit data...
CHANGELOG-1.9.md Loading commit data...
CHANGELOG.md Loading commit data...
CONTRIBUTING.md Loading commit data...
LICENSE Loading commit data...
Makefile Loading commit data...
Makefile.generated_files Loading commit data...
OWNERS Loading commit data...
OWNERS_ALIASES Loading commit data...
README.md Loading commit data...
SECURITY_CONTACTS Loading commit data...
SUPPORT.md Loading commit data...
WORKSPACE Loading commit data...
code-of-conduct.md Loading commit data...