mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 13:37:30 +00:00
Merge pull request #54820 from sjevs/test/issue-54645-kubectl-apply-view-last-applied
Automatic merge from submit-queue (batch tested with PRs 54774, 54820, 52192, 54827). 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>. Added a test for proper `%s` handling when display last applied confi… **What this PR does / why we need it**: Added missing tests which checks proper handling of `%s` in arguments for command `kubectl apply view-last-applied` **Which issue this PR fixes** #54645 **Special notes for your reviewer**: Added a test case to cover specific issue described. It fails on version `v1.7.3`..`v1.7.9` and passes since `v1.8.0`. P.S. Not sure if there is already a lower level test which covers this case in the k8s test suite. I would recommend to add this test, so the issue would not reoccur. **Release note**: ```release-note NONE ```
This commit is contained in:
commit
a7a0a63f16
@ -61,15 +61,17 @@ func validateApplyArgs(cmd *cobra.Command, args []string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
filenameRC = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc.yaml"
|
filenameRC = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc.yaml"
|
||||||
filenameRCNoAnnotation = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc-no-annotation.yaml"
|
filenameRCArgs = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc-args.yaml"
|
||||||
filenameRCLASTAPPLIED = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc-lastapplied.yaml"
|
filenameRCLastAppliedArgs = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc-lastapplied-args.yaml"
|
||||||
filenameSVC = "../../../test/fixtures/pkg/kubectl/cmd/apply/service.yaml"
|
filenameRCNoAnnotation = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc-no-annotation.yaml"
|
||||||
filenameRCSVC = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc-service.yaml"
|
filenameRCLASTAPPLIED = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc-lastapplied.yaml"
|
||||||
filenameNoExistRC = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc-noexist.yaml"
|
filenameSVC = "../../../test/fixtures/pkg/kubectl/cmd/apply/service.yaml"
|
||||||
filenameRCPatchTest = "../../../test/fixtures/pkg/kubectl/cmd/apply/patch.json"
|
filenameRCSVC = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc-service.yaml"
|
||||||
dirName = "../../../test/fixtures/pkg/kubectl/cmd/apply/testdir"
|
filenameNoExistRC = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc-noexist.yaml"
|
||||||
filenameRCJSON = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc.json"
|
filenameRCPatchTest = "../../../test/fixtures/pkg/kubectl/cmd/apply/patch.json"
|
||||||
|
dirName = "../../../test/fixtures/pkg/kubectl/cmd/apply/testdir"
|
||||||
|
filenameRCJSON = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc.json"
|
||||||
|
|
||||||
filenameWidgetClientside = "../../../test/fixtures/pkg/kubectl/cmd/apply/widget-clientside.yaml"
|
filenameWidgetClientside = "../../../test/fixtures/pkg/kubectl/cmd/apply/widget-clientside.yaml"
|
||||||
filenameWidgetServerside = "../../../test/fixtures/pkg/kubectl/cmd/apply/widget-serverside.yaml"
|
filenameWidgetServerside = "../../../test/fixtures/pkg/kubectl/cmd/apply/widget-serverside.yaml"
|
||||||
@ -227,6 +229,7 @@ func walkMapPath(t *testing.T, start map[string]interface{}, path []string) map[
|
|||||||
|
|
||||||
func TestRunApplyViewLastApplied(t *testing.T) {
|
func TestRunApplyViewLastApplied(t *testing.T) {
|
||||||
_, rcBytesWithConfig := readReplicationController(t, filenameRCLASTAPPLIED)
|
_, rcBytesWithConfig := readReplicationController(t, filenameRCLASTAPPLIED)
|
||||||
|
_, rcBytesWithArgs := readReplicationController(t, filenameRCLastAppliedArgs)
|
||||||
nameRC, rcBytes := readReplicationController(t, filenameRC)
|
nameRC, rcBytes := readReplicationController(t, filenameRC)
|
||||||
pathRC := "/namespaces/test/replicationcontrollers/" + nameRC
|
pathRC := "/namespaces/test/replicationcontrollers/" + nameRC
|
||||||
|
|
||||||
@ -245,6 +248,16 @@ func TestRunApplyViewLastApplied(t *testing.T) {
|
|||||||
args: []string{},
|
args: []string{},
|
||||||
respBytes: rcBytesWithConfig,
|
respBytes: rcBytesWithConfig,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "test with file include `%s` in arguments",
|
||||||
|
filePath: filenameRCArgs,
|
||||||
|
outputFormat: "",
|
||||||
|
expectedErr: "",
|
||||||
|
expectedOut: "args: -random_flag=%s@domain.com\n",
|
||||||
|
selector: "",
|
||||||
|
args: []string{},
|
||||||
|
respBytes: rcBytesWithArgs,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "view with file json format",
|
name: "view with file json format",
|
||||||
filePath: filenameRC,
|
filePath: filenameRC,
|
||||||
|
20
test/fixtures/pkg/kubectl/cmd/apply/rc-args.yaml
vendored
Normal file
20
test/fixtures/pkg/kubectl/cmd/apply/rc-args.yaml
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ReplicationController
|
||||||
|
metadata:
|
||||||
|
name: test-rc
|
||||||
|
labels:
|
||||||
|
name: test-rc
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
name: test-rc
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: test-rc
|
||||||
|
image: nginx
|
||||||
|
args:
|
||||||
|
- -random_flag=%s@domain.com
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
23
test/fixtures/pkg/kubectl/cmd/apply/rc-lastapplied-args.yaml
vendored
Normal file
23
test/fixtures/pkg/kubectl/cmd/apply/rc-lastapplied-args.yaml
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ReplicationController
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
kubectl.kubernetes.io/last-applied-configuration: |
|
||||||
|
{"args":"-random_flag=%s@domain.com"}
|
||||||
|
name: test-rc
|
||||||
|
labels:
|
||||||
|
name: test-rc
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
name: test-rc
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: test-rc
|
||||||
|
image: nginx
|
||||||
|
args:
|
||||||
|
- -random_flag=%s@domain.com
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
Loading…
Reference in New Issue
Block a user