Create helpers for iterating containers in a pod

This commit is contained in:
Lee Verberne
2019-06-14 15:20:16 +00:00
parent 4683054ff6
commit ee821e2a04
15 changed files with 467 additions and 271 deletions

View File

@@ -17,9 +17,71 @@ limitations under the License.
package pods
import (
"reflect"
"testing"
"k8s.io/apimachinery/pkg/util/validation/field"
api "k8s.io/kubernetes/pkg/apis/core"
)
func TestVisitContainersWithPath(t *testing.T) {
testCases := []struct {
description string
haveSpec *api.PodSpec
wantNames []string
}{
{
"empty podspec",
&api.PodSpec{},
[]string{},
},
{
"regular containers",
&api.PodSpec{
Containers: []api.Container{
{Name: "c1"},
{Name: "c2"},
},
},
[]string{"spec.containers[0]", "spec.containers[1]"},
},
{
"init containers",
&api.PodSpec{
InitContainers: []api.Container{
{Name: "i1"},
{Name: "i2"},
},
},
[]string{"spec.initContainers[0]", "spec.initContainers[1]"},
},
{
"regular and init containers",
&api.PodSpec{
Containers: []api.Container{
{Name: "c1"},
{Name: "c2"},
},
InitContainers: []api.Container{
{Name: "i1"},
{Name: "i2"},
},
},
[]string{"spec.initContainers[0]", "spec.initContainers[1]", "spec.containers[0]", "spec.containers[1]"},
},
}
for _, tc := range testCases {
gotNames := []string{}
VisitContainersWithPath(tc.haveSpec, func(c *api.Container, p *field.Path) {
gotNames = append(gotNames, p.String())
})
if !reflect.DeepEqual(gotNames, tc.wantNames) {
t.Errorf("VisitContainersWithPath() for test case %q visited containers %q, wanted to visit %q", tc.description, gotNames, tc.wantNames)
}
}
}
func TestConvertDownwardAPIFieldLabel(t *testing.T) {
testCases := []struct {
version string