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
710d9049
Commit
710d9049
authored
Feb 02, 2017
by
ymqytw
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add apply cmd tests for TPR
parent
ad7ffd79
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
261 additions
and
26 deletions
+261
-26
test-cmd-util.sh
hack/make-rules/test-cmd-util.sh
+136
-26
bar.yaml
hack/testdata/TPR/bar.yaml
+8
-0
foo-added-subfield.yaml
hack/testdata/TPR/foo-added-subfield.yaml
+11
-0
foo-deleted-subfield.yaml
hack/testdata/TPR/foo-deleted-subfield.yaml
+10
-0
foo-updated-subfield.yaml
hack/testdata/TPR/foo-updated-subfield.yaml
+11
-0
foo.yaml
hack/testdata/TPR/foo.yaml
+11
-0
multi-tpr-list-added-field.yaml
hack/testdata/TPR/multi-tpr-list-added-field.yaml
+19
-0
multi-tpr-list-deleted-field.yaml
hack/testdata/TPR/multi-tpr-list-deleted-field.yaml
+17
-0
multi-tpr-list-updated-field.yaml
hack/testdata/TPR/multi-tpr-list-updated-field.yaml
+19
-0
multi-tpr-list.yaml
hack/testdata/TPR/multi-tpr-list.yaml
+19
-0
No files found.
hack/make-rules/test-cmd-util.sh
View file @
710d9049
...
...
@@ -1259,17 +1259,7 @@ __EOF__
kube::test::get_object_assert bars
"{{range.items}}{{
$id_field
}}:{{end}}"
''
# Test that we can create a new resource of type Foo
kubectl
"
${
kube_flags
[@]
}
"
create
-f
-
"
${
kube_flags
[@]
}
"
<<
__EOF__
{
"kind": "Foo",
"apiVersion": "company.com/v1",
"metadata": {
"name": "test"
},
"some-field": "field1",
"other-field": "field2"
}
__EOF__
kubectl
"
${
kube_flags
[@]
}
"
create
-f
hack/testdata/TPR/foo.yaml
"
${
kube_flags
[@]
}
"
# Test that we can list this new third party resource
kube::test::get_object_assert foos
"{{range.items}}{{
$id_field
}}:{{end}}"
'test:'
...
...
@@ -1291,10 +1281,10 @@ __EOF__
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
-f
ield}"
--allow-missing-template-keys
=
false
kubectl
"
${
kube_flags
[@]
}
"
get foos/test
-o
"jsonpath={.some
-f
ield}"
--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
kubectl
"
${
kube_flags
[@]
}
"
get foos
-o
"jsonpath={.items[*].some
F
ield}"
--allow-missing-template-keys
=
false
kubectl
"
${
kube_flags
[@]
}
"
get foos/test
-o
"jsonpath={.some
F
ield}"
--allow-missing-template-keys
=
false
kubectl
"
${
kube_flags
[@]
}
"
get foos
-o
"go-template={{range .items}}{{
.someField
}}{{end}}"
--allow-missing-template-keys
=
false
kubectl
"
${
kube_flags
[@]
}
"
get foos/test
-o
"go-template={{
.someField
}}"
--allow-missing-template-keys
=
false
# Test patching
kube::log::status
"Testing ThirdPartyResource patching"
...
...
@@ -1348,17 +1338,7 @@ __EOF__
kube::test::get_object_assert foos
"{{range.items}}{{
$id_field
}}:{{end}}"
''
# Test that we can create a new resource of type Bar
kubectl
"
${
kube_flags
[@]
}
"
create
-f
-
"
${
kube_flags
[@]
}
"
<<
__EOF__
{
"kind": "Bar",
"apiVersion": "company.com/v1",
"metadata": {
"name": "test"
},
"some-field": "field1",
"other-field": "field2"
}
__EOF__
kubectl
"
${
kube_flags
[@]
}
"
create
-f
hack/testdata/TPR/bar.yaml
"
${
kube_flags
[@]
}
"
# Test that we can list this new third party resource
kube::test::get_object_assert bars
"{{range.items}}{{
$id_field
}}:{{end}}"
'test:'
...
...
@@ -1369,6 +1349,136 @@ __EOF__
# Make sure it's gone
kube::test::get_object_assert bars
"{{range.items}}{{
$id_field
}}:{{end}}"
''
# Test that we can create single item via apply
kubectl
"
${
kube_flags
[@]
}
"
apply
-f
hack/testdata/TPR/foo.yaml
# Test that we have create a foo named test
kube::test::get_object_assert foos
"{{range.items}}{{
$id_field
}}:{{end}}"
'test:'
# Test that the field has the expected value
kube::test::get_object_assert foos/test
'{{.someField}}'
'field1'
# Test that apply an empty patch doesn't change fields
kubectl
"
${
kube_flags
[@]
}
"
apply
-f
hack/testdata/TPR/foo.yaml
# Test that the field has the same value after re-apply
kube::test::get_object_assert foos/test
'{{.someField}}'
'field1'
# Test that apply has updated the subfield
kube::test::get_object_assert foos/test
'{{.nestedField.someSubfield}}'
'subfield1'
# Update a subfield and then apply the change
kubectl
"
${
kube_flags
[@]
}
"
apply
-f
hack/testdata/TPR/foo-updated-subfield.yaml
# Test that apply has updated the subfield
kube::test::get_object_assert foos/test
'{{.nestedField.someSubfield}}'
'modifiedSubfield'
# Test that the field has the expected value
kube::test::get_object_assert foos/test
'{{.nestedField.otherSubfield}}'
'subfield2'
# Delete a subfield and then apply the change
kubectl
"
${
kube_flags
[@]
}
"
apply
-f
hack/testdata/TPR/foo-deleted-subfield.yaml
# Test that apply has deleted the field
kube::test::get_object_assert foos/test
'{{.nestedField.otherSubfield}}'
'<no value>'
# Test that the field does not exist
kube::test::get_object_assert foos/test
'{{.nestedField.newSubfield}}'
'<no value>'
# Add a field and then apply the change
kubectl
"
${
kube_flags
[@]
}
"
apply
-f
hack/testdata/TPR/foo-added-subfield.yaml
# Test that apply has added the field
kube::test::get_object_assert foos/test
'{{.nestedField.newSubfield}}'
'subfield3'
# Delete the resource
kubectl
"
${
kube_flags
[@]
}
"
delete
-f
hack/testdata/TPR/foo.yaml
# Make sure it's gone
kube::test::get_object_assert foos
"{{range.items}}{{
$id_field
}}:{{end}}"
''
# Test that we can create list via apply
kubectl
"
${
kube_flags
[@]
}
"
apply
-f
hack/testdata/TPR/multi-tpr-list.yaml
# Test that we have create a foo and a bar from a list
kube::test::get_object_assert foos
"{{range.items}}{{
$id_field
}}:{{end}}"
'test-list:'
kube::test::get_object_assert bars
"{{range.items}}{{
$id_field
}}:{{end}}"
'test-list:'
# Test that the field has the expected value
kube::test::get_object_assert foos/test-list
'{{.someField}}'
'field1'
kube::test::get_object_assert bars/test-list
'{{.someField}}'
'field1'
# Test that re-apply an list doesn't change anything
kubectl
"
${
kube_flags
[@]
}
"
apply
-f
hack/testdata/TPR/multi-tpr-list.yaml
# Test that the field has the same value after re-apply
kube::test::get_object_assert foos/test-list
'{{.someField}}'
'field1'
kube::test::get_object_assert bars/test-list
'{{.someField}}'
'field1'
# Test that the fields have the expected value
kube::test::get_object_assert foos/test-list
'{{.someField}}'
'field1'
kube::test::get_object_assert bars/test-list
'{{.someField}}'
'field1'
# Update fields and then apply the change
kubectl
"
${
kube_flags
[@]
}
"
apply
-f
hack/testdata/TPR/multi-tpr-list-updated-field.yaml
# Test that apply has updated the fields
kube::test::get_object_assert foos/test-list
'{{.someField}}'
'modifiedField'
kube::test::get_object_assert bars/test-list
'{{.someField}}'
'modifiedField'
# Test that the field has the expected value
kube::test::get_object_assert foos/test-list
'{{.otherField}}'
'field2'
kube::test::get_object_assert bars/test-list
'{{.otherField}}'
'field2'
# Delete fields and then apply the change
kubectl
"
${
kube_flags
[@]
}
"
apply
-f
hack/testdata/TPR/multi-tpr-list-deleted-field.yaml
# Test that apply has deleted the fields
kube::test::get_object_assert foos/test-list
'{{.otherField}}'
'<no value>'
kube::test::get_object_assert bars/test-list
'{{.otherField}}'
'<no value>'
# Test that the fields does not exist
kube::test::get_object_assert foos/test-list
'{{.newField}}'
'<no value>'
kube::test::get_object_assert bars/test-list
'{{.newField}}'
'<no value>'
# Add a field and then apply the change
kubectl
"
${
kube_flags
[@]
}
"
apply
-f
hack/testdata/TPR/multi-tpr-list-added-field.yaml
# Test that apply has added the field
kube::test::get_object_assert foos/test-list
'{{.newField}}'
'field3'
kube::test::get_object_assert bars/test-list
'{{.newField}}'
'field3'
# Delete the resource
kubectl
"
${
kube_flags
[@]
}
"
delete
-f
hack/testdata/TPR/multi-tpr-list.yaml
# Make sure it's gone
kube::test::get_object_assert foos
"{{range.items}}{{
$id_field
}}:{{end}}"
''
kube::test::get_object_assert bars
"{{range.items}}{{
$id_field
}}:{{end}}"
''
## kubectl apply --prune
# Test that no foo or bar exist
kube::test::get_object_assert foos
"{{range.items}}{{
$id_field
}}:{{end}}"
''
kube::test::get_object_assert bars
"{{range.items}}{{
$id_field
}}:{{end}}"
''
# apply --prune on foo.yaml that has foo/test
kubectl apply
--prune
-l
pruneGroup
=
true
-f
hack/testdata/TPR/foo.yaml
"
${
kube_flags
[@]
}
"
--prune-whitelist
=
company.com/v1/Foo
--prune-whitelist
=
company.com/v1/Bar
# check right tprs exist
kube::test::get_object_assert foos
"{{range.items}}{{
$id_field
}}:{{end}}"
'test:'
kube::test::get_object_assert bars
"{{range.items}}{{
$id_field
}}:{{end}}"
''
# apply --prune on bar.yaml that has bar/test
kubectl apply
--prune
-l
pruneGroup
=
true
-f
hack/testdata/TPR/bar.yaml
"
${
kube_flags
[@]
}
"
--prune-whitelist
=
company.com/v1/Foo
--prune-whitelist
=
company.com/v1/Bar
# check right tprs exist
kube::test::get_object_assert foos
"{{range.items}}{{
$id_field
}}:{{end}}"
''
kube::test::get_object_assert bars
"{{range.items}}{{
$id_field
}}:{{end}}"
'test:'
# Delete the resource
kubectl
"
${
kube_flags
[@]
}
"
delete
-f
hack/testdata/TPR/bar.yaml
# Make sure it's gone
kube::test::get_object_assert foos
"{{range.items}}{{
$id_field
}}:{{end}}"
''
kube::test::get_object_assert bars
"{{range.items}}{{
$id_field
}}:{{end}}"
''
# teardown
kubectl delete thirdpartyresources foo.company.com
"
${
kube_flags
[@]
}
"
kubectl delete thirdpartyresources bar.company.com
"
${
kube_flags
[@]
}
"
...
...
hack/testdata/TPR/bar.yaml
0 → 100644
View file @
710d9049
kind
:
Bar
apiVersion
:
company.com/v1
metadata
:
name
:
test
labels
:
pruneGroup
:
"
true"
someField
:
field1
otherField
:
field2
hack/testdata/TPR/foo-added-subfield.yaml
0 → 100644
View file @
710d9049
kind
:
Foo
apiVersion
:
company.com/v1
metadata
:
name
:
test
labels
:
pruneGroup
:
"
true"
someField
:
field1
otherField
:
field2
nestedField
:
someSubfield
:
modifiedSubfield
newSubfield
:
subfield3
hack/testdata/TPR/foo-deleted-subfield.yaml
0 → 100644
View file @
710d9049
kind
:
Foo
apiVersion
:
company.com/v1
metadata
:
name
:
test
labels
:
pruneGroup
:
"
true"
someField
:
field1
otherField
:
field2
nestedField
:
someSubfield
:
modifiedSubfield
hack/testdata/TPR/foo-updated-subfield.yaml
0 → 100644
View file @
710d9049
kind
:
Foo
apiVersion
:
company.com/v1
metadata
:
name
:
test
labels
:
pruneGroup
:
"
true"
someField
:
field1
otherField
:
field2
nestedField
:
someSubfield
:
modifiedSubfield
otherSubfield
:
subfield2
hack/testdata/TPR/foo.yaml
0 → 100644
View file @
710d9049
kind
:
Foo
apiVersion
:
company.com/v1
metadata
:
name
:
test
labels
:
pruneGroup
:
"
true"
someField
:
field1
otherField
:
field2
nestedField
:
someSubfield
:
subfield1
otherSubfield
:
subfield2
hack/testdata/TPR/multi-tpr-list-added-field.yaml
0 → 100644
View file @
710d9049
apiVersion
:
v1
kind
:
List
items
:
-
kind
:
Foo
apiVersion
:
company.com/v1
metadata
:
name
:
test-list
labels
:
pruneGroup
:
"
true"
someField
:
modifiedField
newField
:
field3
-
kind
:
Bar
apiVersion
:
company.com/v1
metadata
:
name
:
test-list
labels
:
pruneGroup
:
"
true"
someField
:
modifiedField
newField
:
field3
hack/testdata/TPR/multi-tpr-list-deleted-field.yaml
0 → 100644
View file @
710d9049
apiVersion
:
v1
kind
:
List
items
:
-
kind
:
Foo
apiVersion
:
company.com/v1
metadata
:
name
:
test-list
labels
:
pruneGroup
:
"
true"
someField
:
modifiedField
-
kind
:
Bar
apiVersion
:
company.com/v1
metadata
:
name
:
test-list
labels
:
pruneGroup
:
"
true"
someField
:
modifiedField
hack/testdata/TPR/multi-tpr-list-updated-field.yaml
0 → 100644
View file @
710d9049
apiVersion
:
v1
kind
:
List
items
:
-
kind
:
Foo
apiVersion
:
company.com/v1
metadata
:
name
:
test-list
labels
:
pruneGroup
:
"
true"
someField
:
modifiedField
otherField
:
field2
-
kind
:
Bar
apiVersion
:
company.com/v1
metadata
:
name
:
test-list
labels
:
pruneGroup
:
"
true"
someField
:
modifiedField
otherField
:
field2
hack/testdata/TPR/multi-tpr-list.yaml
0 → 100644
View file @
710d9049
apiVersion
:
v1
kind
:
List
items
:
-
kind
:
Foo
apiVersion
:
company.com/v1
metadata
:
name
:
test-list
labels
:
pruneGroup
:
"
true"
someField
:
field1
otherField
:
field2
-
kind
:
Bar
apiVersion
:
company.com/v1
metadata
:
name
:
test-list
labels
:
pruneGroup
:
"
true"
someField
:
field1
otherField
:
field2
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