2017-07-26 06:46:57 +00:00
|
|
|
/*
|
|
|
|
Copyright 2017 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"
|
|
|
|
"runtime"
|
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
2018-08-07 06:41:39 +00:00
|
|
|
dockerLibraryRegistry = "docker.io/library"
|
|
|
|
e2eRegistry = "gcr.io/kubernetes-e2e-test-images"
|
|
|
|
gcRegistry = "k8s.gcr.io"
|
|
|
|
PrivateRegistry = "gcr.io/k8s-authenticated-test"
|
|
|
|
sampleRegistry = "gcr.io/google-samples"
|
2017-07-26 06:46:57 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
type ImageConfig struct {
|
|
|
|
registry string
|
|
|
|
name string
|
|
|
|
version string
|
2017-12-01 19:01:47 +00:00
|
|
|
hasArch bool
|
2017-07-26 06:46:57 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (i *ImageConfig) SetRegistry(registry string) {
|
|
|
|
i.registry = registry
|
|
|
|
}
|
|
|
|
|
|
|
|
func (i *ImageConfig) SetName(name string) {
|
|
|
|
i.name = name
|
|
|
|
}
|
|
|
|
|
|
|
|
func (i *ImageConfig) SetVersion(version string) {
|
|
|
|
i.version = version
|
|
|
|
}
|
|
|
|
|
|
|
|
var (
|
2018-07-31 23:20:44 +00:00
|
|
|
AdmissionWebhook = ImageConfig{e2eRegistry, "webhook", "1.12v2", false}
|
2018-07-25 11:43:58 +00:00
|
|
|
APIServer = ImageConfig{e2eRegistry, "sample-apiserver", "1.0", false}
|
2018-08-06 19:22:58 +00:00
|
|
|
AppArmorLoader = ImageConfig{e2eRegistry, "apparmor-loader", "1.0", false}
|
2018-08-07 06:41:39 +00:00
|
|
|
BusyBox = ImageConfig{dockerLibraryRegistry, "busybox", "1.29", false}
|
2018-08-06 20:54:04 +00:00
|
|
|
CheckMetadataConcealment = ImageConfig{e2eRegistry, "metadata-concealment", "1.0", false}
|
2018-07-25 11:43:58 +00:00
|
|
|
CudaVectorAdd = ImageConfig{e2eRegistry, "cuda-vector-add", "1.0", false}
|
|
|
|
Dnsutils = ImageConfig{e2eRegistry, "dnsutils", "1.1", false}
|
2018-08-06 20:54:04 +00:00
|
|
|
EchoServer = ImageConfig{e2eRegistry, "echoserver", "2.1", false}
|
2018-07-25 11:43:58 +00:00
|
|
|
EntrypointTester = ImageConfig{e2eRegistry, "entrypoint-tester", "1.0", false}
|
|
|
|
Fakegitserver = ImageConfig{e2eRegistry, "fakegitserver", "1.0", false}
|
2018-08-02 23:08:52 +00:00
|
|
|
GBFrontend = ImageConfig{sampleRegistry, "gb-frontend", "v6", false}
|
|
|
|
GBRedisSlave = ImageConfig{sampleRegistry, "gb-redisslave", "v3", false}
|
2018-07-25 11:43:58 +00:00
|
|
|
Hostexec = ImageConfig{e2eRegistry, "hostexec", "1.1", false}
|
|
|
|
IpcUtils = ImageConfig{e2eRegistry, "ipc-utils", "1.0", false}
|
|
|
|
Iperf = ImageConfig{e2eRegistry, "iperf", "1.0", false}
|
|
|
|
JessieDnsutils = ImageConfig{e2eRegistry, "jessie-dnsutils", "1.0", false}
|
|
|
|
Kitten = ImageConfig{e2eRegistry, "kitten", "1.0", false}
|
|
|
|
Liveness = ImageConfig{e2eRegistry, "liveness", "1.0", false}
|
|
|
|
LogsGenerator = ImageConfig{e2eRegistry, "logs-generator", "1.0", false}
|
|
|
|
Mounttest = ImageConfig{e2eRegistry, "mounttest", "1.0", false}
|
|
|
|
MounttestUser = ImageConfig{e2eRegistry, "mounttest-user", "1.0", false}
|
|
|
|
Nautilus = ImageConfig{e2eRegistry, "nautilus", "1.0", false}
|
|
|
|
Net = ImageConfig{e2eRegistry, "net", "1.0", false}
|
|
|
|
Netexec = ImageConfig{e2eRegistry, "netexec", "1.0", false}
|
|
|
|
Nettest = ImageConfig{e2eRegistry, "nettest", "1.0", false}
|
2018-08-07 06:41:39 +00:00
|
|
|
Nginx = ImageConfig{dockerLibraryRegistry, "nginx", "1.14-alpine", false}
|
|
|
|
NginxNew = ImageConfig{dockerLibraryRegistry, "nginx", "1.15-alpine", false}
|
2018-07-25 11:43:58 +00:00
|
|
|
Nonewprivs = ImageConfig{e2eRegistry, "nonewprivs", "1.0", false}
|
|
|
|
NoSnatTest = ImageConfig{e2eRegistry, "no-snat-test", "1.0", false}
|
|
|
|
NoSnatTestProxy = ImageConfig{e2eRegistry, "no-snat-test-proxy", "1.0", false}
|
2017-12-21 15:37:12 +00:00
|
|
|
// When these values are updated, also update cmd/kubelet/app/options/container_runtime.go
|
2018-01-09 06:42:02 +00:00
|
|
|
Pause = ImageConfig{gcRegistry, "pause", "3.1", false}
|
2018-07-25 11:43:58 +00:00
|
|
|
Porter = ImageConfig{e2eRegistry, "porter", "1.0", false}
|
|
|
|
PortForwardTester = ImageConfig{e2eRegistry, "port-forward-tester", "1.0", false}
|
|
|
|
Redis = ImageConfig{e2eRegistry, "redis", "1.0", false}
|
|
|
|
ResourceConsumer = ImageConfig{e2eRegistry, "resource-consumer", "1.3", false}
|
|
|
|
ResourceController = ImageConfig{e2eRegistry, "resource-consumer/controller", "1.0", false}
|
|
|
|
ServeHostname = ImageConfig{e2eRegistry, "serve-hostname", "1.1", false}
|
|
|
|
TestWebserver = ImageConfig{e2eRegistry, "test-webserver", "1.0", false}
|
2018-08-05 05:47:49 +00:00
|
|
|
VolumeNFSServer = ImageConfig{e2eRegistry, "volume/nfs", "1.0", false}
|
|
|
|
VolumeISCSIServer = ImageConfig{e2eRegistry, "volume/iscsi", "1.0", false}
|
|
|
|
VolumeGlusterServer = ImageConfig{e2eRegistry, "volume/gluster", "1.0", false}
|
|
|
|
VolumeRBDServer = ImageConfig{e2eRegistry, "volume/rbd", "1.0", false}
|
2017-07-26 06:46:57 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
func GetE2EImage(image ImageConfig) string {
|
2017-12-01 19:01:47 +00:00
|
|
|
return GetE2EImageWithArch(image, runtime.GOARCH)
|
|
|
|
}
|
|
|
|
|
|
|
|
func GetE2EImageWithArch(image ImageConfig, arch string) string {
|
|
|
|
if image.hasArch {
|
|
|
|
return fmt.Sprintf("%s/%s-%s:%s", image.registry, image.name, arch, image.version)
|
|
|
|
} else {
|
|
|
|
return fmt.Sprintf("%s/%s:%s", image.registry, image.name, image.version)
|
|
|
|
}
|
2017-07-26 06:46:57 +00:00
|
|
|
}
|
2018-01-31 07:06:32 +00:00
|
|
|
|
2018-01-09 06:42:02 +00:00
|
|
|
// GetPauseImageName returns the pause image name with proper version
|
|
|
|
func GetPauseImageName() string {
|
2018-01-31 07:06:32 +00:00
|
|
|
return GetE2EImage(Pause)
|
|
|
|
}
|