Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
17168aaa
Unverified
Commit
17168aaa
authored
Jan 25, 2017
by
Jordan Liggitt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Test generic operations with thirdpartyresources
parent
408a978f
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
67 additions
and
0 deletions
+67
-0
test-cmd-util.sh
hack/make-rules/test-cmd-util.sh
+67
-0
No files found.
hack/make-rules/test-cmd-util.sh
View file @
17168aaa
...
@@ -1202,6 +1202,73 @@ __EOF__
...
@@ -1202,6 +1202,73 @@ __EOF__
# Test that we can list this new third party resource
# Test that we can list this new third party resource
kube::test::get_object_assert foos
"{{range.items}}{{
$id_field
}}:{{end}}"
'test:'
kube::test::get_object_assert foos
"{{range.items}}{{
$id_field
}}:{{end}}"
'test:'
# Test alternate forms
kube::test::get_object_assert foo
"{{range.items}}{{
$id_field
}}:{{end}}"
'test:'
kube::test::get_object_assert foos.company.com
"{{range.items}}{{
$id_field
}}:{{end}}"
'test:'
kube::test::get_object_assert foos.v1.company.com
"{{range.items}}{{
$id_field
}}:{{end}}"
'test:'
# Test all printers, with lists and individual items
kube::log::status
"Testing ThirdPartyResource printing"
kubectl
"
${
kube_flags
[@]
}
"
get foos
kubectl
"
${
kube_flags
[@]
}
"
get foos/test
kubectl
"
${
kube_flags
[@]
}
"
get foos
-o
name
kubectl
"
${
kube_flags
[@]
}
"
get foos/test
-o
name
kubectl
"
${
kube_flags
[@]
}
"
get foos
-o
wide
kubectl
"
${
kube_flags
[@]
}
"
get foos/test
-o
wide
kubectl
"
${
kube_flags
[@]
}
"
get foos
-o
json
kubectl
"
${
kube_flags
[@]
}
"
get foos/test
-o
json
kubectl
"
${
kube_flags
[@]
}
"
get foos
-o
yaml
kubectl
"
${
kube_flags
[@]
}
"
get foos/test
-o
yaml
kubectl
"
${
kube_flags
[@]
}
"
get foos
-o
"jsonpath={.items[*].some-field}"
--allow-missing-template-keys
=
false
kubectl
"
${
kube_flags
[@]
}
"
get foos/test
-o
"jsonpath={.some-field}"
--allow-missing-template-keys
=
false
kubectl
"
${
kube_flags
[@]
}
"
get foos
-o
"go-template={{range .items}}{{index .
\"
some-field
\"
}}{{end}}"
--allow-missing-template-keys
=
false
kubectl
"
${
kube_flags
[@]
}
"
get foos/test
-o
"go-template={{index .
\"
some-field
\"
}}"
--allow-missing-template-keys
=
false
# Test patching
kube::log::status
"Testing ThirdPartyResource patching"
kubectl
"
${
kube_flags
[@]
}
"
patch foos/test
-p
'{"patched":"value1"}'
--type
=
merge
kube::test::get_object_assert foos/test
"{{.patched}}"
'value1'
kubectl
"
${
kube_flags
[@]
}
"
patch foos/test
-p
'{"patched":"value2"}'
--type
=
merge
--record
kube::test::get_object_assert foos/test
"{{.patched}}"
'value2'
kubectl
"
${
kube_flags
[@]
}
"
patch foos/test
-p
'{"patched":null}'
--type
=
merge
--record
kube::test::get_object_assert foos/test
"{{.patched}}"
'<no value>'
# Get local version
TPR_RESOURCE_FILE
=
"
${
KUBE_TEMP
}
/tpr-foos-test.json"
kubectl
"
${
kube_flags
[@]
}
"
get foos/test
-o
json
>
"
${
TPR_RESOURCE_FILE
}
"
# cannot apply strategic patch locally
TPR_PATCH_ERROR_FILE
=
"
${
KUBE_TEMP
}
/tpr-foos-test-error"
!
kubectl
"
${
kube_flags
[@]
}
"
patch
--local
-f
"
${
TPR_RESOURCE_FILE
}
"
-p
'{"patched":"value3"}'
2>
"
${
TPR_PATCH_ERROR_FILE
}
"
if
grep
-q
"try --type merge"
"
${
TPR_PATCH_ERROR_FILE
}
"
;
then
kube::log::status
"
\"
kubectl patch --local
\"
returns error as expected for ThirdPartyResource:
$(
cat
${
TPR_PATCH_ERROR_FILE
})
"
else
kube::log::status
"
\"
kubectl patch --local
\"
returns unexpected error or non-error:
$(
cat
${
TPR_PATCH_ERROR_FILE
})
"
exit
1
fi
# can apply merge patch locally
kubectl
"
${
kube_flags
[@]
}
"
patch
--local
-f
"
${
TPR_RESOURCE_FILE
}
"
-p
'{"patched":"value3"}'
--type
=
merge
-o
json
# can apply merge patch remotely
kubectl
"
${
kube_flags
[@]
}
"
patch
--record
-f
"
${
TPR_RESOURCE_FILE
}
"
-p
'{"patched":"value3"}'
--type
=
merge
-o
json
kube::test::get_object_assert foos/test
"{{.patched}}"
'value3'
rm
"
${
TPR_RESOURCE_FILE
}
"
rm
"
${
TPR_PATCH_ERROR_FILE
}
"
# Test labeling
kube::log::status
"Testing ThirdPartyResource labeling"
kubectl
"
${
kube_flags
[@]
}
"
label foos
--all
listlabel
=
true
kubectl
"
${
kube_flags
[@]
}
"
label foo/test
itemlabel
=
true
# Test annotating
kube::log::status
"Testing ThirdPartyResource annotating"
kubectl
"
${
kube_flags
[@]
}
"
annotate foos
--all
listannotation
=
true
kubectl
"
${
kube_flags
[@]
}
"
annotate foo/test
itemannotation
=
true
# Test describing
kube::log::status
"Testing ThirdPartyResource describing"
kubectl
"
${
kube_flags
[@]
}
"
describe foos
kubectl
"
${
kube_flags
[@]
}
"
describe foos/test
kubectl
"
${
kube_flags
[@]
}
"
describe foos |
grep
listlabel
=
true
kubectl
"
${
kube_flags
[@]
}
"
describe foos |
grep
itemlabel
=
true
# Delete the resource
# Delete the resource
kubectl
"
${
kube_flags
[@]
}
"
delete foos
test
kubectl
"
${
kube_flags
[@]
}
"
delete foos
test
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment