mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-11-04 07:49:35 +00:00 
			
		
		
		
	Return error if registry is missing otherwise the log message could be overlooked by a developer
		
			
				
	
	
		
			130 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			130 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
/*
 | 
						|
Copyright 2019 The Kubernetes Authors.
 | 
						|
 | 
						|
Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
you may not use this file except in compliance with the License.
 | 
						|
You may obtain a copy of the License at
 | 
						|
 | 
						|
    http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
 | 
						|
Unless required by applicable law or agreed to in writing, software
 | 
						|
distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
See the License for the specific language governing permissions and
 | 
						|
limitations under the License.
 | 
						|
*/
 | 
						|
 | 
						|
package image
 | 
						|
 | 
						|
import (
 | 
						|
	"fmt"
 | 
						|
	"testing"
 | 
						|
)
 | 
						|
 | 
						|
type result struct {
 | 
						|
	result string
 | 
						|
	err    error
 | 
						|
}
 | 
						|
 | 
						|
var registryTests = []struct {
 | 
						|
	in  string
 | 
						|
	out result
 | 
						|
}{
 | 
						|
	{
 | 
						|
		"docker.io/library/test:123",
 | 
						|
		result{
 | 
						|
			result: "test.io/library/test:123",
 | 
						|
			err:    nil,
 | 
						|
		},
 | 
						|
	},
 | 
						|
	{
 | 
						|
		"docker.io/library/test",
 | 
						|
		result{
 | 
						|
			result: "test.io/library/test",
 | 
						|
			err:    nil,
 | 
						|
		},
 | 
						|
	},
 | 
						|
	{
 | 
						|
		"test",
 | 
						|
		result{
 | 
						|
			result: "test.io/library/test",
 | 
						|
			err:    nil,
 | 
						|
		},
 | 
						|
	},
 | 
						|
	{
 | 
						|
		"gcr.io/kubernetes-e2e-test-images/test:123",
 | 
						|
		result{
 | 
						|
			result: "test.io/kubernetes-e2e-test-images/test:123",
 | 
						|
			err:    nil,
 | 
						|
		},
 | 
						|
	},
 | 
						|
	{
 | 
						|
		"k8s.gcr.io/test:123",
 | 
						|
		result{
 | 
						|
			result: "test.io/test:123",
 | 
						|
			err:    nil,
 | 
						|
		},
 | 
						|
	},
 | 
						|
	{
 | 
						|
		"gcr.io/k8s-authenticated-test/test:123",
 | 
						|
		result{
 | 
						|
			result: "test.io/k8s-authenticated-test/test:123",
 | 
						|
			err:    nil,
 | 
						|
		},
 | 
						|
	},
 | 
						|
	{
 | 
						|
		"gcr.io/gke-release/test:latest",
 | 
						|
		result{
 | 
						|
			result: "test.io/gke-release/test:latest",
 | 
						|
			err:    nil,
 | 
						|
		},
 | 
						|
	},
 | 
						|
	{
 | 
						|
		"gcr.io/google-samples/test:latest",
 | 
						|
		result{
 | 
						|
			result: "test.io/google-samples/test:latest",
 | 
						|
			err:    nil,
 | 
						|
		},
 | 
						|
	},
 | 
						|
	{
 | 
						|
		"quay.io/k8scsi/test:latest",
 | 
						|
		result{
 | 
						|
			result: "test.io/k8scsi/test:latest",
 | 
						|
			err:    nil,
 | 
						|
		},
 | 
						|
	},
 | 
						|
	{
 | 
						|
		"unknwon.io/google-samples/test:latest",
 | 
						|
		result{
 | 
						|
			result: "",
 | 
						|
			err:    fmt.Errorf("Registry: unknwon.io/google-samples is missing in test/utils/image/manifest.go, please add the registry, otherwise the test will fail on air-gapped clusters"),
 | 
						|
		},
 | 
						|
	},
 | 
						|
}
 | 
						|
 | 
						|
// ToDo Add Benchmark
 | 
						|
func TestReplaceRegistryInImageURL(t *testing.T) {
 | 
						|
	// Set custom registries
 | 
						|
	dockerLibraryRegistry = "test.io/library"
 | 
						|
	e2eRegistry = "test.io/kubernetes-e2e-test-images"
 | 
						|
	gcRegistry = "test.io"
 | 
						|
	gcrReleaseRegistry = "test.io/gke-release"
 | 
						|
	PrivateRegistry = "test.io/k8s-authenticated-test"
 | 
						|
	sampleRegistry = "test.io/google-samples"
 | 
						|
	quayK8sCSI = "test.io/k8scsi"
 | 
						|
 | 
						|
	for _, tt := range registryTests {
 | 
						|
		t.Run(tt.in, func(t *testing.T) {
 | 
						|
			s, err := ReplaceRegistryInImageURL(tt.in)
 | 
						|
 | 
						|
			if err != nil && err.Error() != tt.out.err.Error() {
 | 
						|
				t.Errorf("got %q, want %q", err, tt.out.err)
 | 
						|
			}
 | 
						|
 | 
						|
			if s != tt.out.result {
 | 
						|
				t.Errorf("got %q, want %q", s, tt.out.result)
 | 
						|
			}
 | 
						|
		})
 | 
						|
	}
 | 
						|
}
 |