Bug 2038930

Summary: oc set data --dry-run=server makes persistent changes to configmaps and secrets
Product: OpenShift Container Platform Reporter: Maciej Szulik <maszulik>
Component: ocAssignee: Maciej Szulik <maszulik>
Status: CLOSED ERRATA QA Contact: zhou ying <yinzhou>
Severity: high Docs Contact:
Priority: high    
Version: 4.9CC: aos-bugs, mfojtik, mmarkand, yinzhou
Target Milestone: ---   
Target Release: 4.9.z   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Cause: --dry-run flag wasn't properly used for several oc set sub commands. Consequence: --dry-run=server was performing updates to resources. Fix: Properly wire --dry-run flag such that commands send that information to the server. Result: oc set sub commands are working as expected.
Story Points: ---
Clone Of: 2035393
: 2038931 (view as bug list) Environment:
Last Closed: 2022-01-31 18:23:01 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: 2035393    
Bug Blocks: 2038931    

Comment 1 zhou ying 2022-01-20 15:00:57 UTC
Tested with build oc with fixed pr: 

[root@localhost oc]# oc create configmap my-config --from-literal=key1=abc
configmap/my-config created
[root@localhost oc]# oc get cm my-config -o yaml 
apiVersion: v1
data:
  key1: abc
kind: ConfigMap
metadata:
  creationTimestamp: "2022-01-20T14:57:15Z"
  name: my-config
  namespace: testoc
  resourceVersion: "381715"
  uid: 66835470-242c-4613-bf02-5db9791783e7
[root@localhost oc]# ./oc set data cm/myconfig --from-literal=name=def --dry-run=server
Error from server (NotFound): configmaps "myconfig" not found
[root@localhost oc]# ./oc set data cm/my-config --from-literal=name=def --dry-run=server
configmap/my-config data updated (server dry run)
[root@localhost oc]# oc get cm my-config -o yaml 
apiVersion: v1
data:
  key1: abc
kind: ConfigMap
metadata:
  creationTimestamp: "2022-01-20T14:57:15Z"
  name: my-config
  namespace: testoc
  resourceVersion: "381715"
  uid: 66835470-242c-4613-bf02-5db9791783e7

[root@localhost oc]# oc create secret generic my-secret --from-literal=key1=supersecret
secret/my-secret created
[root@localhost oc]# oc get secret my-secret -o yaml 
apiVersion: v1
data:
  key1: c3VwZXJzZWNyZXQ=
kind: Secret
metadata:
  creationTimestamp: "2022-01-20T14:59:30Z"
  name: my-secret
  namespace: testoc
  resourceVersion: "382698"
  uid: 9e5a8717-571b-49c4-8982-437c2119c016
type: Opaque
[root@localhost oc]# ./oc  set data secret/my-secret --from-literal=key1=testset  --dry-run='server' 
secret/my-secret data updated (server dry run)
[root@localhost oc]# oc get secret my-secret -o yaml 
apiVersion: v1
data:
  key1: c3VwZXJzZWNyZXQ=
kind: Secret
metadata:
  creationTimestamp: "2022-01-20T14:59:30Z"
  name: my-secret
  namespace: testoc
  resourceVersion: "382698"
  uid: 9e5a8717-571b-49c4-8982-437c2119c016
type: Opaque

Can't reproduce the issue now.

Comment 6 errata-xmlrpc 2022-01-31 18:23:01 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (OpenShift Container Platform 4.9.18 bug fix update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2022:0279