warmer validate and copy registry mirror to registry map (#3140)
This commit is contained in:
parent
c3131238c4
commit
423d20cee2
|
|
@ -21,6 +21,7 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"regexp"
|
"regexp"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/GoogleContainerTools/kaniko/pkg/cache"
|
"github.com/GoogleContainerTools/kaniko/pkg/cache"
|
||||||
|
|
@ -28,6 +29,7 @@ import (
|
||||||
"github.com/GoogleContainerTools/kaniko/pkg/logging"
|
"github.com/GoogleContainerTools/kaniko/pkg/logging"
|
||||||
"github.com/GoogleContainerTools/kaniko/pkg/util"
|
"github.com/GoogleContainerTools/kaniko/pkg/util"
|
||||||
"github.com/containerd/containerd/platforms"
|
"github.com/containerd/containerd/platforms"
|
||||||
|
"github.com/google/go-containerregistry/pkg/name"
|
||||||
v1 "github.com/google/go-containerregistry/pkg/v1"
|
v1 "github.com/google/go-containerregistry/pkg/v1"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
|
|
@ -57,6 +59,24 @@ var RootCmd = &cobra.Command{
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Allow setting --registry-maps using an environment variable.
|
||||||
|
// some users use warmer with --regisry-mirror before v1.21.0
|
||||||
|
// TODO may need all executors validation in here
|
||||||
|
|
||||||
|
if val, ok := os.LookupEnv("KANIKO_REGISTRY_MAP"); ok {
|
||||||
|
opts.RegistryMaps.Set(val)
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, target := range opts.RegistryMirrors {
|
||||||
|
opts.RegistryMaps.Set(fmt.Sprintf("%s=%s", name.DefaultRegistry, target))
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(opts.RegistryMaps) > 0 {
|
||||||
|
for src, dsts := range opts.RegistryMaps {
|
||||||
|
logrus.Debugf("registry-map remaps %s to %s.", src, strings.Join(dsts, ", "))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if len(opts.Images) == 0 && opts.DockerfilePath == "" {
|
if len(opts.Images) == 0 && opts.DockerfilePath == "" {
|
||||||
return errors.New("You must select at least one image to cache or a dockerfilepath to parse")
|
return errors.New("You must select at least one image to cache or a dockerfilepath to parse")
|
||||||
}
|
}
|
||||||
|
|
@ -97,6 +117,8 @@ func addKanikoOptionsFlags() {
|
||||||
RootCmd.PersistentFlags().VarP(&opts.RegistriesCertificates, "registry-certificate", "", "Use the provided certificate for TLS communication with the given registry. Expected format is 'my.registry.url=/path/to/the/server/certificate'.")
|
RootCmd.PersistentFlags().VarP(&opts.RegistriesCertificates, "registry-certificate", "", "Use the provided certificate for TLS communication with the given registry. Expected format is 'my.registry.url=/path/to/the/server/certificate'.")
|
||||||
opts.RegistriesClientCertificates = make(map[string]string)
|
opts.RegistriesClientCertificates = make(map[string]string)
|
||||||
RootCmd.PersistentFlags().VarP(&opts.RegistriesClientCertificates, "registry-client-cert", "", "Use the provided client certificate for mutual TLS (mTLS) communication with the given registry. Expected format is 'my.registry.url=/path/to/client/cert,/path/to/client/key'.")
|
RootCmd.PersistentFlags().VarP(&opts.RegistriesClientCertificates, "registry-client-cert", "", "Use the provided client certificate for mutual TLS (mTLS) communication with the given registry. Expected format is 'my.registry.url=/path/to/client/cert,/path/to/client/key'.")
|
||||||
|
opts.RegistryMaps = make(map[string][]string)
|
||||||
|
RootCmd.PersistentFlags().VarP(&opts.RegistryMaps, "registry-map", "", "Registry map of mirror to use as pull-through cache instead. Expected format is 'orignal.registry=new.registry;other-original.registry=other-remap.registry'")
|
||||||
RootCmd.PersistentFlags().VarP(&opts.RegistryMirrors, "registry-mirror", "", "Registry mirror to use as pull-through cache instead of docker.io. Set it repeatedly for multiple mirrors.")
|
RootCmd.PersistentFlags().VarP(&opts.RegistryMirrors, "registry-mirror", "", "Registry mirror to use as pull-through cache instead of docker.io. Set it repeatedly for multiple mirrors.")
|
||||||
RootCmd.PersistentFlags().BoolVarP(&opts.SkipDefaultRegistryFallback, "skip-default-registry-fallback", "", false, "If an image is not found on any mirrors (defined with registry-mirror) do not fallback to the default registry. If registry-mirror is not defined, this flag is ignored.")
|
RootCmd.PersistentFlags().BoolVarP(&opts.SkipDefaultRegistryFallback, "skip-default-registry-fallback", "", false, "If an image is not found on any mirrors (defined with registry-mirror) do not fallback to the default registry. If registry-mirror is not defined, this flag is ignored.")
|
||||||
RootCmd.PersistentFlags().StringVarP(&opts.CustomPlatform, "customPlatform", "", "", "Specify the build platform if different from the current host")
|
RootCmd.PersistentFlags().StringVarP(&opts.CustomPlatform, "customPlatform", "", "", "Specify the build platform if different from the current host")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue