@@ -852,13 +852,15 @@ func TestValidateImageStreamWithWhitelister(t *testing.T) {
852
852
853
853
func TestValidateImageStreamUpdateWithWhitelister (t * testing.T ) {
854
854
for _ , tc := range []struct {
855
- name string
856
- whitelist * serverapi.AllowedRegistries
857
- oldSpecTags map [string ]imageapi.TagReference
858
- oldStatusTags map [string ]imageapi.TagEventList
859
- newSpecTags map [string ]imageapi.TagReference
860
- newStatusTags map [string ]imageapi.TagEventList
861
- expected field.ErrorList
855
+ name string
856
+ whitelist * serverapi.AllowedRegistries
857
+ oldDockerImageRepository string
858
+ newDockerImageRepository string
859
+ oldSpecTags map [string ]imageapi.TagReference
860
+ oldStatusTags map [string ]imageapi.TagEventList
861
+ newSpecTags map [string ]imageapi.TagReference
862
+ newStatusTags map [string ]imageapi.TagEventList
863
+ expected field.ErrorList
862
864
}{
863
865
{
864
866
name : "no old referencess" ,
@@ -977,6 +979,30 @@ func TestValidateImageStreamUpdateWithWhitelister(t *testing.T) {
977
979
},
978
980
},
979
981
},
982
+
983
+ {
984
+ name : "allow whitelisted dockerImageRepository" ,
985
+ whitelist : mkAllowed (false , "docker.io" ),
986
+ oldDockerImageRepository : "example.com/my/app" ,
987
+ newDockerImageRepository : "docker.io/my/newapp" ,
988
+ },
989
+
990
+ {
991
+ name : "forbid not whitelisted dockerImageRepository" ,
992
+ whitelist : mkAllowed (false , "docker.io" ),
993
+ oldDockerImageRepository : "docker.io/my/app" ,
994
+ newDockerImageRepository : "example.com/my/newapp" ,
995
+ expected : field.ErrorList {
996
+ field .Forbidden (field .NewPath ("spec" , "dockerImageRepository" ),
997
+ `registry "example.com" not allowed by whitelist { "docker.io:443" }` )},
998
+ },
999
+
1000
+ {
1001
+ name : "permit no change to not whitelisted dockerImageRepository" ,
1002
+ whitelist : mkAllowed (false , "docker.io" ),
1003
+ oldDockerImageRepository : "example.com/my/newapp" ,
1004
+ newDockerImageRepository : "example.com/my/newapp" ,
1005
+ },
980
1006
} {
981
1007
t .Run (tc .name , func (t * testing.T ) {
982
1008
whitelister := mkWhitelister (t , tc .whitelist )
@@ -988,6 +1014,7 @@ func TestValidateImageStreamUpdateWithWhitelister(t *testing.T) {
988
1014
oldStream := imageapi.ImageStream {
989
1015
ObjectMeta : objMeta ,
990
1016
Spec : imageapi.ImageStreamSpec {
1017
+ DockerImageRepository : tc .oldDockerImageRepository ,
991
1018
Tags : tc .oldSpecTags ,
992
1019
},
993
1020
Status : imageapi.ImageStreamStatus {
@@ -997,6 +1024,7 @@ func TestValidateImageStreamUpdateWithWhitelister(t *testing.T) {
997
1024
newStream := imageapi.ImageStream {
998
1025
ObjectMeta : objMeta ,
999
1026
Spec : imageapi.ImageStreamSpec {
1027
+ DockerImageRepository : tc .newDockerImageRepository ,
1000
1028
Tags : tc .newSpecTags ,
1001
1029
},
1002
1030
Status : imageapi.ImageStreamStatus {
0 commit comments