Bug 1776496

Summary: `oc edit clusterresourcequota` cannot work
Product: OpenShift Container Platform Reporter: Maciej Szulik <maszulik>
Component: ocAssignee: Maciej Szulik <maszulik>
Status: CLOSED WONTFIX QA Contact: zhou ying <yinzhou>
Severity: medium Docs Contact:
Priority: high    
Version: 4.1.zCC: aos-bugs, jokerman, mfojtik, wkulhane, xxia, yinzhou
Target Milestone: ---   
Target Release: 4.1.z   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1776495 Environment:
Last Closed: 2020-01-20 18:16:34 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1776100, 1776493, 1776495    
Bug Blocks:    

Description Maciej Szulik 2019-11-25 19:38:58 UTC
+++ This bug was initially created as a clone of Bug #1776495 +++

+++ This bug was initially created as a clone of Bug #1776493 +++

+++ This bug was initially created as a clone of Bug #1776100 +++

Description of problem:
`oc edit clusterresourcequota` cannot work

Version-Release number of selected component (if applicable):
oc version -o yaml
clientVersion:
  buildDate: "2019-11-22T12:21:19Z"
  gitCommit: 9d412f42b3e753fd78eacd2ea7417a42fc02318d
  gitVersion: v4.3.0
...
openshiftVersion: 4.3.0-0.nightly-2019-11-24-183610
serverVersion:
  buildDate: "2019-11-22T14:41:49Z"
  gitVersion: v1.16.2
...

How reproducible:
Always

Steps to Reproduce:
1. cat > clusterresourcequota.yaml << EOF
kind: ClusterResourceQuota
apiVersion: quota.openshift.io/v1
metadata:
  name: loadbalancer-quota
spec:
  selector:
    annotations: null
    labels:
      matchExpressions:
      - key: managed.openshift.io/service-lb-quota-exempt-test
        operator: Exists
  quota:
    hard:
      services.loadbalancers: 8
EOF

oc create -f clusterresourcequota.yaml

2. oc edit clusterresourcequota loadbalancer-quota # add below annotation, then save
...
metadata:
  annotations:
    test: test1234
...

Actual results:
2. It fails with:
error: clusterresourcequotas.quota.openshift.io "loadbalancer-quota" could not be patched: the body of the request was in an unknown format - accepted media types inc
lude: application/json-patch+json, application/merge-patch+json, application/apply-patch+yaml

Check more logs, found it uses below Content-Type:
oc edit --loglevel 7 clusterresourcequota loadbalancer-quota
...
PATCH https://...:6443/apis/quota.openshift.io/v1/clusterresourcequotas/loadbalancer-quota
Request Headers:
    Content-Type: application/strategic-merge-patch+json
...

Expected results:
2. Should succeed.

--- Additional comment from Maciej Szulik on 2019-11-25 20:23:44 CET ---