• Kubernetes Submit Queue's avatar
    Merge pull request #60741 from zlabjp/optional-subjects · 55f17933
    Kubernetes Submit Queue authored
    Automatic merge from submit-queue (batch tested with PRs 60890, 63244, 60741, 63254). 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>.
    
    Indicate clusterrolebinding, rolebinding subjects are optional fields
    
    **What this PR does / why we need it**: With this PR, clusterrolebinding and rolebinding subjects are marked optional instead of required. Currently we cannot create clusterrolebinding and rolebinding with subjects are empty using `kubectl create/apply/replace -f`.
    
    ```
    $ kubectl create rolebinding test --clusterrole view
    rolebinding "test" created
    $ kubectl get rolebinding test -o yaml
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      creationTimestamp: 2018-03-02T06:58:16Z
      name: test
      namespace: default
      resourceVersion: "5606612"
      selfLink: /apis/rbac.authorization.k8s.io/v1/namespaces/default/rolebindings/test
      uid: 155c5c29-1de7-11e8-9f6f-fa163ec89f2a
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: view
    subjects: null
    $ kubectl get rolebinding test -o yaml | kubectl replace -f -
    error: error validating "STDIN": error validating data: ValidationError(RoleBinding): missing required field "subjects" in io.k8s.api.rbac.v1.RoleBinding; if you choose to ignore these errors, turn validation off with --validate=false
    ```
    
    **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**: This is a same issue with https://github.com/kubernetes/kubernetes/issues/59403. /cc @liggitt 
    
    **Release note**:
    
    ```release-note
    NONE
    ```
    55f17933
Name
Last commit
Last update
..
BUILD Loading commit data...
admissionregistration.k8s.io.json Loading commit data...
admissionregistration.k8s.io_v1alpha1.json Loading commit data...
admissionregistration.k8s.io_v1beta1.json Loading commit data...
api.json Loading commit data...
apis.json Loading commit data...
apps.json Loading commit data...
apps_v1.json Loading commit data...
apps_v1alpha1.json Loading commit data...
apps_v1beta1.json Loading commit data...
apps_v1beta2.json Loading commit data...
authentication.k8s.io.json Loading commit data...
authentication.k8s.io_v1.json Loading commit data...
authentication.k8s.io_v1beta1.json Loading commit data...
authorization.k8s.io.json Loading commit data...
authorization.k8s.io_v1.json Loading commit data...
authorization.k8s.io_v1beta1.json Loading commit data...
autoscaling.json Loading commit data...
autoscaling_v1.json Loading commit data...
autoscaling_v2beta1.json Loading commit data...
batch.json Loading commit data...
batch_v1.json Loading commit data...
batch_v1beta1.json Loading commit data...
batch_v2alpha1.json Loading commit data...
certificates.k8s.io.json Loading commit data...
certificates.k8s.io_v1beta1.json Loading commit data...
events.k8s.io.json Loading commit data...
events.k8s.io_v1beta1.json Loading commit data...
extensions.json Loading commit data...
extensions_v1beta1.json Loading commit data...
logs.json Loading commit data...
networking.k8s.io.json Loading commit data...
networking.k8s.io_v1.json Loading commit data...
policy.json Loading commit data...
policy_v1alpha1.json Loading commit data...
policy_v1beta1.json Loading commit data...
rbac.authorization.k8s.io.json Loading commit data...
rbac.authorization.k8s.io_v1.json Loading commit data...
rbac.authorization.k8s.io_v1alpha1.json Loading commit data...
rbac.authorization.k8s.io_v1beta1.json Loading commit data...
resourceListing.json Loading commit data...
scheduling.k8s.io.json Loading commit data...
scheduling.k8s.io_v1alpha1.json Loading commit data...
settings.k8s.io.json Loading commit data...
settings.k8s.io_v1alpha1.json Loading commit data...
storage.authorization.k8s.io_v1beta1.json Loading commit data...
storage.k8s.io.json Loading commit data...
storage.k8s.io_v1.json Loading commit data...
storage.k8s.io_v1alpha1.json Loading commit data...
storage.k8s.io_v1beta1.json Loading commit data...
v1.json Loading commit data...
version.json Loading commit data...