From 15afe63056d3acc2ae8690f1517b611a8e71eb25 Mon Sep 17 00:00:00 2001 From: Vadim Rutkovsky Date: Thu, 5 Mar 2020 21:34:16 +0100 Subject: [PATCH 1/9] pkg/asset/ignition: create functions which create or modify Ignition This file would contain functions which create or change Ignition files, importing a version of github.com/coreos/ignition --- pkg/asset/ignition/ignition_v2.go | 363 ++++++++++++++++++++++++++++++ 1 file changed, 363 insertions(+) create mode 100644 pkg/asset/ignition/ignition_v2.go diff --git a/pkg/asset/ignition/ignition_v2.go b/pkg/asset/ignition/ignition_v2.go new file mode 100644 index 00000000000..5bf8119d420 --- /dev/null +++ b/pkg/asset/ignition/ignition_v2.go @@ -0,0 +1,363 @@ +// +build !okd + +package ignition + +import ( + "encoding/base64" + "encoding/json" + "encoding/pem" + "fmt" + "path/filepath" + + "github.com/coreos/ignition/config/util" + igntypes2 "github.com/coreos/ignition/config/v2_4/types" + "github.com/pkg/errors" + + mcfgv1 "github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + "github.com/openshift/installer/pkg/asset/openshiftinstall" + + "github.com/openshift/installer/pkg/asset" + "github.com/vincent-petithory/dataurl" +) + +// Config is ignition v2 Config +type Config igntypes2.Config + +// Dropin in an abstraction over igntypes2.SystemdDropin +type Dropin struct { + Name string + Contents string +} + +// FilesFromAsset creates ignition files for each of the files in the specified +// asset. +func FilesFromAsset(pathPrefix string, username string, mode int, asset asset.WritableAsset) []igntypes2.File { + var files []igntypes2.File + for _, f := range asset.Files() { + files = append(files, FileFromBytes(filepath.Join(pathPrefix, f.Filename), username, mode, f.Data)) + } + return files +} + +// FileFromString creates an ignition-config file with the given contents. +func FileFromString(path string, username string, mode int, contents string) igntypes2.File { + return FileFromBytes(path, username, mode, []byte(contents)) +} + +// FileFromBytes creates an ignition-config file with the given contents. +func FileFromBytes(path string, username string, mode int, contents []byte) igntypes2.File { + return igntypes2.File{ + Node: igntypes2.Node{ + Filesystem: "root", + Path: path, + User: &igntypes2.NodeUser{ + Name: username, + }, + }, + FileEmbedded1: igntypes2.FileEmbedded1{ + Mode: &mode, + Contents: igntypes2.FileContents{ + Source: dataurl.EncodeBytes(contents), + }, + }, + } +} + +// PointerIgnitionConfig generates a config which references the remote config +// served by the machine config server. +func PointerIgnitionConfig(url string, rootCA []byte) *Config { + return &Config{ + Ignition: igntypes2.Ignition{ + Version: igntypes2.MaxVersion.String(), + Config: igntypes2.IgnitionConfig{ + Append: []igntypes2.ConfigReference{{ + Source: url, + }}, + }, + Security: igntypes2.Security{ + TLS: igntypes2.TLS{ + CertificateAuthorities: []igntypes2.CaReference{{ + Source: dataurl.EncodeBytes(rootCA), + }}, + }, + }, + }, + } +} + +// ForAuthorizedKeys creates the MachineConfig to set the authorized key for `core` user. +func ForAuthorizedKeys(key string, role string) *mcfgv1.MachineConfig { + return &mcfgv1.MachineConfig{ + TypeMeta: metav1.TypeMeta{ + APIVersion: mcfgv1.SchemeGroupVersion.String(), + Kind: "MachineConfig", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: fmt.Sprintf("99-%s-ssh", role), + Labels: map[string]string{ + "machineconfiguration.openshift.io/role": role, + }, + }, + Spec: mcfgv1.MachineConfigSpec{ + Config: igntypes2.Config{ + Ignition: igntypes2.Ignition{ + Version: igntypes2.MaxVersion.String(), + }, + Passwd: igntypes2.Passwd{ + Users: []igntypes2.PasswdUser{{ + Name: "core", SSHAuthorizedKeys: []igntypes2.SSHAuthorizedKey{igntypes2.SSHAuthorizedKey(key)}, + }}, + }, + }, + }, + } +} + +// ForFIPSEnabled creates the MachineConfig to enable FIPS. +// See also https://github.com/openshift/machine-config-operator/pull/889 +func ForFIPSEnabled(role string) *mcfgv1.MachineConfig { + return &mcfgv1.MachineConfig{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "machineconfiguration.openshift.io/v1", + Kind: "MachineConfig", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: fmt.Sprintf("99-%s-fips", role), + Labels: map[string]string{ + "machineconfiguration.openshift.io/role": role, + }, + }, + Spec: mcfgv1.MachineConfigSpec{ + Config: igntypes2.Config{ + Ignition: igntypes2.Ignition{ + Version: igntypes2.MaxVersion.String(), + }, + }, + FIPS: true, + }, + } +} + +// ForHyperthreadingDisabled creates the MachineConfig to disable hyperthreading. +// RHCOS ships with pivot.service that uses the `/etc/pivot/kernel-args` to override the kernel arguments for hosts. +func ForHyperthreadingDisabled(role string) *mcfgv1.MachineConfig { + return &mcfgv1.MachineConfig{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "machineconfiguration.openshift.io/v1", + Kind: "MachineConfig", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: fmt.Sprintf("99-%s-disable-hyperthreading", role), + Labels: map[string]string{ + "machineconfiguration.openshift.io/role": role, + }, + }, + Spec: mcfgv1.MachineConfigSpec{ + Config: igntypes2.Config{ + Ignition: igntypes2.Ignition{ + Version: igntypes2.MaxVersion.String(), + }, + Storage: igntypes2.Storage{ + Files: []igntypes2.File{ + FileFromString("/etc/pivot/kernel-args", "root", 0600, "ADD nosmt"), + }, + }, + }, + }, + } +} + +// InjectInstallInfo adds information about the installer and its invoker as a +// ConfigMap to the provided bootstrap Ignition config. +func InjectInstallInfo(bootstrap []byte) (string, error) { + config := &igntypes2.Config{} + if err := json.Unmarshal(bootstrap, &config); err != nil { + return "", errors.Wrap(err, "failed to unmarshal bootstrap Ignition config") + } + + cm, err := openshiftinstall.CreateInstallConfigMap("openshift-install") + if err != nil { + return "", errors.Wrap(err, "failed to generate openshift-install config") + } + + config.Storage.Files = append(config.Storage.Files, FileFromString("/opt/openshift/manifests/openshift-install.yaml", "root", 0644, cm)) + + ign, err := json.Marshal(config) + if err != nil { + return "", errors.Wrap(err, "failed to marshal bootstrap Ignition config") + } + + return string(ign), nil +} + +// GenerateMinimalConfig returns a minimal ignition v2 config +func GenerateMinimalConfig() *Config { + return &Config{ + Ignition: igntypes2.Ignition{ + Version: igntypes2.MaxVersion.String(), + }, + } +} + +// AddSSHKey returns a minimal ignition v2 config +func (c *Config) AddSSHKey(sshKey string) { + c.Passwd.Users = append( + c.Passwd.Users, + igntypes2.PasswdUser{Name: "core", SSHAuthorizedKeys: []igntypes2.SSHAuthorizedKey{igntypes2.SSHAuthorizedKey(sshKey)}}, + ) +} + +// AddSystemdUnit appends contents in Ignition config +func (c *Config) AddSystemdUnit(name string, contents string, enabled bool) { + unit := igntypes2.Unit{ + Name: name, + Contents: contents, + } + if enabled { + unit.Enabled = util.BoolToPtr(true) + } + c.Systemd.Units = append(c.Systemd.Units, unit) +} + +// AddSystemdDropins appends systemd dropins in the config +func (c *Config) AddSystemdDropins(name string, children []Dropin, enabled bool) { + dropins := []igntypes2.SystemdDropin{} + for _, childInfo := range children { + + dropins = append(dropins, igntypes2.SystemdDropin{ + Name: childInfo.Name, + Contents: childInfo.Contents, + }) + } + unit := igntypes2.Unit{ + Name: name, + Dropins: dropins, + } + if enabled { + unit.Enabled = util.BoolToPtr(true) + } + c.Systemd.Units = append(c.Systemd.Units, unit) +} + +// ReplaceOrAppend is a function which ensures duplicate files are not added in the file list +func (c *Config) ReplaceOrAppend(file igntypes2.File) { + for i, f := range c.Storage.Files { + if f.Node.Path == file.Node.Path { + c.Storage.Files[i] = file + return + } + } + c.Storage.Files = append(c.Storage.Files, file) +} + +// To allow Ignition to download its config on the bootstrap machine from a location secured by a +// self-signed certificate, we have to provide it a valid custom ca bundle. +// To do so we generate a small ignition config that contains just Security section with the bundle +// and later append it to the main ignition config. +// We can't do it directly in Terraform, because Ignition provider suppors only 2.1 version, but +// Security section was added in 2.2 only. + +// GenerateIgnitionShim is used to generate an ignition file that contains a user ca bundle +// in its Security section. +func GenerateIgnitionShim(userCA string, clusterID string, bootstrapConfigURL string, tokenID string) (string, error) { + fileMode := 420 + + // Hostname Config + contents := fmt.Sprintf("%s-bootstrap", clusterID) + + hostnameConfigFile := igntypes2.File{ + Node: igntypes2.Node{ + Filesystem: "root", + Path: "/etc/hostname", + }, + FileEmbedded1: igntypes2.FileEmbedded1{ + Mode: &fileMode, + Contents: igntypes2.FileContents{ + Source: dataurl.EncodeBytes([]byte(contents)), + }, + }, + } + + // Openstack Ca Cert file + openstackCAFile := igntypes2.File{ + Node: igntypes2.Node{ + Filesystem: "root", + Path: "/opt/openshift/tls/cloud-ca-cert.pem", + }, + FileEmbedded1: igntypes2.FileEmbedded1{ + Mode: &fileMode, + Contents: igntypes2.FileContents{ + Source: dataurl.EncodeBytes([]byte(userCA)), + }, + }, + } + + security := igntypes2.Security{} + if userCA != "" { + carefs := []igntypes2.CaReference{} + rest := []byte(userCA) + + for { + var block *pem.Block + block, rest = pem.Decode(rest) + if block == nil { + return "", fmt.Errorf("unable to parse certificate, please check the cacert section of clouds.yaml") + } + + carefs = append(carefs, igntypes2.CaReference{Source: dataurl.EncodeBytes(pem.EncodeToMemory(block))}) + + if len(rest) == 0 { + break + } + } + + security = igntypes2.Security{ + TLS: igntypes2.TLS{ + CertificateAuthorities: carefs, + }, + } + } + + headers := []igntypes2.HTTPHeader{ + { + Name: "X-Auth-Token", + Value: tokenID, + }, + } + + ign := igntypes2.Config{ + Ignition: igntypes2.Ignition{ + Version: igntypes2.MaxVersion.String(), + Security: security, + Config: igntypes2.IgnitionConfig{ + Append: []igntypes2.ConfigReference{ + { + Source: bootstrapConfigURL, + HTTPHeaders: headers, + }, + }, + }, + }, + Storage: igntypes2.Storage{ + Files: []igntypes2.File{ + hostnameConfigFile, + openstackCAFile, + }, + }, + } + + data, err := json.Marshal(ign) + if err != nil { + return "", err + } + + // Check the size of the base64-rendered ignition shim isn't to big for nova + // https://docs.openstack.org/nova/latest/user/metadata.html#user-data + if len(base64.StdEncoding.EncodeToString(data)) > 65535 { + return "", fmt.Errorf("rendered bootstrap ignition shim exceeds the 64KB limit for nova user data -- try reducing the size of your CA cert bundle") + } + + return string(data), nil +} From 6817ba9c37409d3b345dc78759af9c7876980fab Mon Sep 17 00:00:00 2001 From: Vadim Rutkovsky Date: Thu, 5 Mar 2020 21:35:06 +0100 Subject: [PATCH 2/9] pkg/asset/cluster: use InjectInstallInfo from pkg/asset/ignition --- pkg/asset/cluster/tfvars.go | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/pkg/asset/cluster/tfvars.go b/pkg/asset/cluster/tfvars.go index 2837062df54..a9d4fe96f68 100644 --- a/pkg/asset/cluster/tfvars.go +++ b/pkg/asset/cluster/tfvars.go @@ -2,13 +2,11 @@ package cluster import ( "context" - "encoding/json" "fmt" "io/ioutil" "os" "strings" - igntypes "github.com/coreos/ignition/config/v2_2/types" gcpprovider "github.com/openshift/cluster-api-provider-gcp/pkg/apis/gcpprovider/v1beta1" libvirtprovider "github.com/openshift/cluster-api-provider-libvirt/pkg/apis/libvirtproviderconfig/v1beta1" ovirtprovider "github.com/openshift/cluster-api-provider-ovirt/pkg/apis/ovirtprovider/v1beta1" @@ -29,7 +27,6 @@ import ( openstackconfig "github.com/openshift/installer/pkg/asset/installconfig/openstack" ovirtconfig "github.com/openshift/installer/pkg/asset/installconfig/ovirt" "github.com/openshift/installer/pkg/asset/machines" - "github.com/openshift/installer/pkg/asset/openshiftinstall" "github.com/openshift/installer/pkg/asset/rhcos" "github.com/openshift/installer/pkg/tfvars" awstfvars "github.com/openshift/installer/pkg/tfvars/aws" @@ -112,7 +109,7 @@ func (t *TerraformVariables) Generate(parents asset.Parents) error { } masterIgn := string(masterIgnAsset.Files()[0].Data) - bootstrapIgn, err := injectInstallInfo(bootstrapIgnAsset.Files()[0].Data) + bootstrapIgn, err := ignition.InjectInstallInfo(bootstrapIgnAsset.Files()[0].Data) if err != nil { return errors.Wrap(err, "unable to inject installation info") } @@ -539,26 +536,3 @@ func (t *TerraformVariables) Load(f asset.FileFetcher) (found bool, err error) { return true, nil } - -// injectInstallInfo adds information about the installer and its invoker as a -// ConfigMap to the provided bootstrap Ignition config. -func injectInstallInfo(bootstrap []byte) (string, error) { - config := &igntypes.Config{} - if err := json.Unmarshal(bootstrap, &config); err != nil { - return "", errors.Wrap(err, "failed to unmarshal bootstrap Ignition config") - } - - cm, err := openshiftinstall.CreateInstallConfigMap("openshift-install") - if err != nil { - return "", errors.Wrap(err, "failed to generate openshift-install config") - } - - config.Storage.Files = append(config.Storage.Files, ignition.FileFromString("/opt/openshift/manifests/openshift-install.yaml", "root", 0644, cm)) - - ign, err := json.Marshal(config) - if err != nil { - return "", errors.Wrap(err, "failed to marshal bootstrap Ignition config") - } - - return string(ign), nil -} From 1df56ea6bd942ac17abe51455cb63fccf3d8bd9b Mon Sep 17 00:00:00 2001 From: Vadim Rutkovsky Date: Thu, 5 Mar 2020 21:38:40 +0100 Subject: [PATCH 3/9] pkg/tfvars/openstack: use GenerateIgnitionShim from ignition pkg --- pkg/tfvars/openstack/bootstrap_ignition.go | 115 --------------------- pkg/tfvars/openstack/openstack.go | 3 +- 2 files changed, 2 insertions(+), 116 deletions(-) diff --git a/pkg/tfvars/openstack/bootstrap_ignition.go b/pkg/tfvars/openstack/bootstrap_ignition.go index 2d05e43c728..73f4d35b0d2 100644 --- a/pkg/tfvars/openstack/bootstrap_ignition.go +++ b/pkg/tfvars/openstack/bootstrap_ignition.go @@ -1,18 +1,13 @@ package openstack import ( - "encoding/base64" - "encoding/json" - "encoding/pem" "fmt" "strings" - ignition "github.com/coreos/ignition/config/v2_4/types" "github.com/gophercloud/gophercloud/openstack/imageservice/v2/imagedata" "github.com/gophercloud/gophercloud/openstack/imageservice/v2/images" "github.com/gophercloud/utils/openstack/clientconfig" "github.com/sirupsen/logrus" - "github.com/vincent-petithory/dataurl" ) // Starting from OpenShift 4.4 we store bootstrap Ignition configs in Glance. @@ -54,116 +49,6 @@ func uploadBootstrapConfig(cloud string, bootstrapIgn string, clusterID string) return img.File, nil } -// To allow Ignition to download its config on the bootstrap machine from a location secured by a -// self-signed certificate, we have to provide it a valid custom ca bundle. -// To do so we generate a small ignition config that contains just Security section with the bundle -// and later append it to the main ignition config. -// We can't do it directly in Terraform, because Ignition provider suppors only 2.1 version, but -// Security section was added in 2.2 only. - -// generateIgnitionShim is used to generate an ignition file that contains a user ca bundle -// in its Security section. -func generateIgnitionShim(userCA string, clusterID string, bootstrapConfigURL string, tokenID string) (string, error) { - fileMode := 420 - - // Hostname Config - contents := fmt.Sprintf("%s-bootstrap", clusterID) - - hostnameConfigFile := ignition.File{ - Node: ignition.Node{ - Filesystem: "root", - Path: "/etc/hostname", - }, - FileEmbedded1: ignition.FileEmbedded1{ - Mode: &fileMode, - Contents: ignition.FileContents{ - Source: dataurl.EncodeBytes([]byte(contents)), - }, - }, - } - - // Openstack Ca Cert file - openstackCAFile := ignition.File{ - Node: ignition.Node{ - Filesystem: "root", - Path: "/opt/openshift/tls/cloud-ca-cert.pem", - }, - FileEmbedded1: ignition.FileEmbedded1{ - Mode: &fileMode, - Contents: ignition.FileContents{ - Source: dataurl.EncodeBytes([]byte(userCA)), - }, - }, - } - - security := ignition.Security{} - if userCA != "" { - carefs := []ignition.CaReference{} - rest := []byte(userCA) - - for { - var block *pem.Block - block, rest = pem.Decode(rest) - if block == nil { - return "", fmt.Errorf("unable to parse certificate, please check the cacert section of clouds.yaml") - } - - carefs = append(carefs, ignition.CaReference{Source: dataurl.EncodeBytes(pem.EncodeToMemory(block))}) - - if len(rest) == 0 { - break - } - } - - security = ignition.Security{ - TLS: ignition.TLS{ - CertificateAuthorities: carefs, - }, - } - } - - headers := []ignition.HTTPHeader{ - { - Name: "X-Auth-Token", - Value: tokenID, - }, - } - - ign := ignition.Config{ - Ignition: ignition.Ignition{ - Version: ignition.MaxVersion.String(), - Security: security, - Config: ignition.IgnitionConfig{ - Append: []ignition.ConfigReference{ - { - Source: bootstrapConfigURL, - HTTPHeaders: headers, - }, - }, - }, - }, - Storage: ignition.Storage{ - Files: []ignition.File{ - hostnameConfigFile, - openstackCAFile, - }, - }, - } - - data, err := json.Marshal(ign) - if err != nil { - return "", err - } - - // Check the size of the base64-rendered ignition shim isn't to big for nova - // https://docs.openstack.org/nova/latest/user/metadata.html#user-data - if len(base64.StdEncoding.EncodeToString(data)) > 65535 { - return "", fmt.Errorf("rendered bootstrap ignition shim exceeds the 64KB limit for nova user data -- try reducing the size of your CA cert bundle") - } - - return string(data), nil -} - // getAuthToken fetches valid OpenStack authentication token ID func getAuthToken(cloud string) (string, error) { opts := &clientconfig.ClientOpts{ diff --git a/pkg/tfvars/openstack/openstack.go b/pkg/tfvars/openstack/openstack.go index 375a76792c4..d5e74322929 100644 --- a/pkg/tfvars/openstack/openstack.go +++ b/pkg/tfvars/openstack/openstack.go @@ -14,6 +14,7 @@ import ( "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/attributestags" "github.com/gophercloud/gophercloud/openstack/networking/v2/subnets" "github.com/gophercloud/utils/openstack/clientconfig" + "github.com/openshift/installer/pkg/asset/ignition" "github.com/openshift/installer/pkg/rhcos" "github.com/openshift/installer/pkg/tfvars/internal/cache" types_openstack "github.com/openshift/installer/pkg/types/openstack" @@ -118,7 +119,7 @@ func TFVars(masterConfig *v1alpha1.OpenstackProviderSpec, cloud string, external } bootstrapConfigURL := fmt.Sprintf("%s%s", glancePublicURL, configLocation) - userCAIgnition, err := generateIgnitionShim(userCA, infraID, bootstrapConfigURL, tokenID) + userCAIgnition, err := ignition.GenerateIgnitionShim(userCA, infraID, bootstrapConfigURL, tokenID) if err != nil { return nil, err } From 7816887ff6a094c6175c0b536d77626e2119037f Mon Sep 17 00:00:00 2001 From: Vadim Rutkovsky Date: Thu, 5 Mar 2020 21:42:10 +0100 Subject: [PATCH 4/9] pkg/asset/ignition/machine: use PointerIgnitionConfig from ignition pkg --- pkg/asset/ignition/machine/master.go | 9 ++++---- pkg/asset/ignition/machine/node.go | 31 +++++----------------------- pkg/asset/ignition/machine/worker.go | 9 ++++---- 3 files changed, 15 insertions(+), 34 deletions(-) diff --git a/pkg/asset/ignition/machine/master.go b/pkg/asset/ignition/machine/master.go index bf7e860ef36..2dc19ae2028 100644 --- a/pkg/asset/ignition/machine/master.go +++ b/pkg/asset/ignition/machine/master.go @@ -4,10 +4,10 @@ import ( "encoding/json" "os" - igntypes "github.com/coreos/ignition/config/v2_2/types" "github.com/pkg/errors" "github.com/openshift/installer/pkg/asset" + "github.com/openshift/installer/pkg/asset/ignition" "github.com/openshift/installer/pkg/asset/installconfig" "github.com/openshift/installer/pkg/asset/tls" ) @@ -18,7 +18,7 @@ const ( // Master is an asset that generates the ignition config for master nodes. type Master struct { - Config *igntypes.Config + Config *ignition.Config File *asset.File } @@ -38,7 +38,8 @@ func (a *Master) Generate(dependencies asset.Parents) error { rootCA := &tls.RootCA{} dependencies.Get(installConfig, rootCA) - a.Config = pointerIgnitionConfig(installConfig.Config, rootCA.Cert(), "master") + url := buildPointerURL(installConfig.Config, "master") + a.Config = ignition.PointerIgnitionConfig(url.String(), rootCA.Cert()) data, err := json.Marshal(a.Config) if err != nil { @@ -75,7 +76,7 @@ func (a *Master) Load(f asset.FileFetcher) (found bool, err error) { return false, err } - config := &igntypes.Config{} + config := &ignition.Config{} if err := json.Unmarshal(file.Data, config); err != nil { return false, errors.Wrapf(err, "failed to unmarshal %s", masterIgnFilename) } diff --git a/pkg/asset/ignition/machine/node.go b/pkg/asset/ignition/machine/node.go index 8f500bc7e94..a55410aa436 100644 --- a/pkg/asset/ignition/machine/node.go +++ b/pkg/asset/ignition/machine/node.go @@ -5,9 +5,6 @@ import ( "net" "net/url" - ignition "github.com/coreos/ignition/config/v2_2/types" - "github.com/vincent-petithory/dataurl" - "github.com/openshift/installer/pkg/types" baremetaltypes "github.com/openshift/installer/pkg/types/baremetal" openstacktypes "github.com/openshift/installer/pkg/types/openstack" @@ -17,7 +14,7 @@ import ( // pointerIgnitionConfig generates a config which references the remote config // served by the machine config server. -func pointerIgnitionConfig(installConfig *types.InstallConfig, rootCA []byte, role string) *ignition.Config { +func buildPointerURL(installConfig *types.InstallConfig, role string) *url.URL { var ignitionHost string // Default platform independent ignitionHost ignitionHost = fmt.Sprintf("api-int.%s:22623", installConfig.ClusterDomain()) @@ -36,27 +33,9 @@ func pointerIgnitionConfig(installConfig *types.InstallConfig, rootCA []byte, ro ignitionHost = net.JoinHostPort(installConfig.VSphere.APIVIP, "22623") } } - return &ignition.Config{ - Ignition: ignition.Ignition{ - Version: ignition.MaxVersion.String(), - Config: ignition.IgnitionConfig{ - Append: []ignition.ConfigReference{{ - Source: func() *url.URL { - return &url.URL{ - Scheme: "https", - Host: ignitionHost, - Path: fmt.Sprintf("/config/%s", role), - } - }().String(), - }}, - }, - Security: ignition.Security{ - TLS: ignition.TLS{ - CertificateAuthorities: []ignition.CaReference{{ - Source: dataurl.EncodeBytes(rootCA), - }}, - }, - }, - }, + return &url.URL{ + Scheme: "https", + Host: ignitionHost, + Path: fmt.Sprintf("/config/%s", role), } } diff --git a/pkg/asset/ignition/machine/worker.go b/pkg/asset/ignition/machine/worker.go index e47f28fdcc5..60b993c292d 100644 --- a/pkg/asset/ignition/machine/worker.go +++ b/pkg/asset/ignition/machine/worker.go @@ -4,10 +4,10 @@ import ( "encoding/json" "os" - igntypes "github.com/coreos/ignition/config/v2_2/types" "github.com/pkg/errors" "github.com/openshift/installer/pkg/asset" + "github.com/openshift/installer/pkg/asset/ignition" "github.com/openshift/installer/pkg/asset/installconfig" "github.com/openshift/installer/pkg/asset/tls" ) @@ -18,7 +18,7 @@ const ( // Worker is an asset that generates the ignition config for worker nodes. type Worker struct { - Config *igntypes.Config + Config *ignition.Config File *asset.File } @@ -38,7 +38,8 @@ func (a *Worker) Generate(dependencies asset.Parents) error { rootCA := &tls.RootCA{} dependencies.Get(installConfig, rootCA) - a.Config = pointerIgnitionConfig(installConfig.Config, rootCA.Cert(), "worker") + url := buildPointerURL(installConfig.Config, "worker") + a.Config = ignition.PointerIgnitionConfig(url.String(), rootCA.Cert()) data, err := json.Marshal(a.Config) if err != nil { @@ -75,7 +76,7 @@ func (a *Worker) Load(f asset.FileFetcher) (found bool, err error) { return false, err } - config := &igntypes.Config{} + config := &ignition.Config{} if err := json.Unmarshal(file.Data, config); err != nil { return false, errors.Wrapf(err, "failed to unmarshal %s", workerIgnFilename) } From 7c81361fa6c35104b99c4afd1027b091aee884af Mon Sep 17 00:00:00 2001 From: Vadim Rutkovsky Date: Thu, 5 Mar 2020 21:43:38 +0100 Subject: [PATCH 5/9] pkg/assets/ignition/bootstrap: use functions from ignition pkg --- pkg/asset/ignition/bootstrap/bootstrap.go | 63 +++++------------------ pkg/asset/ignition/ignition_v2.go | 4 +- 2 files changed, 16 insertions(+), 51 deletions(-) diff --git a/pkg/asset/ignition/bootstrap/bootstrap.go b/pkg/asset/ignition/bootstrap/bootstrap.go index ffc95bb0f49..3c259e78d17 100644 --- a/pkg/asset/ignition/bootstrap/bootstrap.go +++ b/pkg/asset/ignition/bootstrap/bootstrap.go @@ -13,8 +13,6 @@ import ( "text/template" "github.com/containers/image/pkg/sysregistriesv2" - "github.com/coreos/ignition/config/util" - igntypes "github.com/coreos/ignition/config/v2_2/types" configv1 "github.com/openshift/api/config/v1" "github.com/pkg/errors" "github.com/sirupsen/logrus" @@ -66,7 +64,7 @@ type platformTemplateData struct { // Bootstrap is an asset that generates the ignition config for bootstrap nodes. type Bootstrap struct { - Config *igntypes.Config + Config *ignition.Config File *asset.File } @@ -145,11 +143,7 @@ func (a *Bootstrap) Generate(dependencies asset.Parents) error { return errors.Wrap(err, "failed to get bootstrap templates") } - a.Config = &igntypes.Config{ - Ignition: igntypes.Ignition{ - Version: igntypes.MaxVersion.String(), - }, - } + a.Config = ignition.GenerateMinimalConfig() err = a.addStorageFiles("/", "bootstrap/files", templateData) if err != nil { @@ -184,13 +178,7 @@ func (a *Bootstrap) Generate(dependencies asset.Parents) error { a.addParentFiles(dependencies) - a.Config.Passwd.Users = append( - a.Config.Passwd.Users, - igntypes.PasswdUser{Name: "core", SSHAuthorizedKeys: []igntypes.SSHAuthorizedKey{ - igntypes.SSHAuthorizedKey(installConfig.Config.SSHKey), - igntypes.SSHAuthorizedKey(string(bootstrapSSHKeyPair.Public())), - }}, - ) + a.Config.AddSSHKey(installConfig.Config.SSHKey, string(bootstrapSSHKeyPair.Public())) data, err := json.Marshal(a.Config) if err != nil { @@ -318,7 +306,7 @@ func (a *Bootstrap) addStorageFiles(base string, uri string, templateData *boots ign.Append = appendToFile // Replace files that already exist in the slice with ones added later, otherwise append them - a.Config.Storage.Files = replaceOrAppend(a.Config.Storage.Files, ign) + a.Config.ReplaceOrAppend(ign) return nil } @@ -375,7 +363,7 @@ func (a *Bootstrap) addSystemdUnits(uri string, templateData *bootstrapTemplateD return err } - dropins := []igntypes.SystemdDropin{} + dropins := []ignition.Dropin{} for _, childInfo := range children { file, err := data.Assets.Open(path.Join(dir, childInfo.Name())) if err != nil { @@ -388,35 +376,23 @@ func (a *Bootstrap) addSystemdUnits(uri string, templateData *bootstrapTemplateD return err } - dropins = append(dropins, igntypes.SystemdDropin{ + dropins = append(dropins, ignition.Dropin{ Name: childName, Contents: string(contents), }) } name := strings.TrimSuffix(childInfo.Name(), ".d") - unit := igntypes.Unit{ - Name: name, - Dropins: dropins, - } - if _, ok := enabled[name]; ok { - unit.Enabled = util.BoolToPtr(true) - } - a.Config.Systemd.Units = append(a.Config.Systemd.Units, unit) + _, unitEnabled := enabled[name] + a.Config.AddSystemdDropins(name, dropins, unitEnabled) } else { name, contents, err := readFile(childInfo.Name(), file, templateData) if err != nil { return err } - unit := igntypes.Unit{ - Name: name, - Contents: string(contents), - } - if _, ok := enabled[name]; ok { - unit.Enabled = util.BoolToPtr(true) - } - a.Config.Systemd.Units = append(a.Config.Systemd.Units, unit) + _, unitEnabled := enabled[name] + a.Config.AddSystemdUnit(name, string(contents), unitEnabled) } } @@ -459,7 +435,7 @@ func (a *Bootstrap) addParentFiles(dependencies asset.Parents) { // Replace files that already exist in the slice with ones added later, otherwise append them for _, file := range ignition.FilesFromAsset(rootDir, "root", 0644, asset) { - a.Config.Storage.Files = replaceOrAppend(a.Config.Storage.Files, file) + a.Config.ReplaceOrAppend(file) } } @@ -512,24 +488,13 @@ func (a *Bootstrap) addParentFiles(dependencies asset.Parents) { // Replace files that already exist in the slice with ones added later, otherwise append them for _, file := range ignition.FilesFromAsset(rootDir, "root", 0600, asset) { - a.Config.Storage.Files = replaceOrAppend(a.Config.Storage.Files, file) + a.Config.ReplaceOrAppend(file) } } rootCA := &tls.RootCA{} dependencies.Get(rootCA) - a.Config.Storage.Files = replaceOrAppend(a.Config.Storage.Files, ignition.FileFromBytes(filepath.Join(rootDir, rootCA.CertFile().Filename), "root", 0644, rootCA.Cert())) -} - -func replaceOrAppend(files []igntypes.File, file igntypes.File) []igntypes.File { - for i, f := range files { - if f.Node.Path == file.Node.Path { - files[i] = file - return files - } - } - files = append(files, file) - return files + a.Config.ReplaceOrAppend(ignition.FileFromBytes(filepath.Join(rootDir, rootCA.CertFile().Filename), "root", 0644, rootCA.Cert())) } func applyTemplateData(template *template.Template, templateData interface{}) string { @@ -550,7 +515,7 @@ func (a *Bootstrap) Load(f asset.FileFetcher) (found bool, err error) { return false, err } - config := &igntypes.Config{} + config := &ignition.Config{} if err := json.Unmarshal(file.Data, config); err != nil { return false, errors.Wrapf(err, "failed to unmarshal %s", bootstrapIgnFilename) } diff --git a/pkg/asset/ignition/ignition_v2.go b/pkg/asset/ignition/ignition_v2.go index 5bf8119d420..c89d2db6da8 100644 --- a/pkg/asset/ignition/ignition_v2.go +++ b/pkg/asset/ignition/ignition_v2.go @@ -202,10 +202,10 @@ func GenerateMinimalConfig() *Config { } // AddSSHKey returns a minimal ignition v2 config -func (c *Config) AddSSHKey(sshKey string) { +func (c *Config) AddSSHKey(sshKey, bootstrapSSHKeyPair string) { c.Passwd.Users = append( c.Passwd.Users, - igntypes2.PasswdUser{Name: "core", SSHAuthorizedKeys: []igntypes2.SSHAuthorizedKey{igntypes2.SSHAuthorizedKey(sshKey)}}, + igntypes2.PasswdUser{Name: "core", SSHAuthorizedKeys: []igntypes2.SSHAuthorizedKey{igntypes2.SSHAuthorizedKey(sshKey), igntypes2.SSHAuthorizedKey(bootstrapSSHKeyPair)}}, ) } From 28ebe9cc34598b78f69a882872771ca1082c12a8 Mon Sep 17 00:00:00 2001 From: Vadim Rutkovsky Date: Thu, 5 Mar 2020 21:45:00 +0100 Subject: [PATCH 6/9] pkg/asset/machines: use functions in ignition pkg to generate additional MachineConfigs. Functions from pkg/asset/ignition/node.go are no longer used, so it is removed. `runtime.Extension` is used to be compatible with different Ignition versions --- pkg/asset/ignition/ignition_v2.go | 58 ++++++++++++------- pkg/asset/ignition/node.go | 44 -------------- .../machines/machineconfig/authorizedkeys.go | 37 ------------ pkg/asset/machines/machineconfig/fips.go | 34 ----------- .../machines/machineconfig/hyperthreading.go | 40 ------------- pkg/asset/machines/master.go | 7 ++- pkg/asset/machines/master_test.go | 12 ++-- pkg/asset/machines/worker.go | 7 ++- pkg/asset/machines/worker_test.go | 12 ++-- 9 files changed, 61 insertions(+), 190 deletions(-) delete mode 100644 pkg/asset/ignition/node.go delete mode 100644 pkg/asset/machines/machineconfig/authorizedkeys.go delete mode 100644 pkg/asset/machines/machineconfig/fips.go delete mode 100644 pkg/asset/machines/machineconfig/hyperthreading.go diff --git a/pkg/asset/ignition/ignition_v2.go b/pkg/asset/ignition/ignition_v2.go index c89d2db6da8..b74dce550dc 100644 --- a/pkg/asset/ignition/ignition_v2.go +++ b/pkg/asset/ignition/ignition_v2.go @@ -15,6 +15,7 @@ import ( mcfgv1 "github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" "github.com/openshift/installer/pkg/asset/openshiftinstall" @@ -87,6 +88,15 @@ func PointerIgnitionConfig(url string, rootCA []byte) *Config { } } +// MarshalOrDie returns a marshalled interface or panics +func MarshalOrDie(input interface{}) []byte { + bytes, err := json.Marshal(input) + if err != nil { + panic(err) + } + return bytes +} + // ForAuthorizedKeys creates the MachineConfig to set the authorized key for `core` user. func ForAuthorizedKeys(key string, role string) *mcfgv1.MachineConfig { return &mcfgv1.MachineConfig{ @@ -101,15 +111,17 @@ func ForAuthorizedKeys(key string, role string) *mcfgv1.MachineConfig { }, }, Spec: mcfgv1.MachineConfigSpec{ - Config: igntypes2.Config{ - Ignition: igntypes2.Ignition{ - Version: igntypes2.MaxVersion.String(), - }, - Passwd: igntypes2.Passwd{ - Users: []igntypes2.PasswdUser{{ - Name: "core", SSHAuthorizedKeys: []igntypes2.SSHAuthorizedKey{igntypes2.SSHAuthorizedKey(key)}, - }}, - }, + Config: runtime.RawExtension{ + Raw: MarshalOrDie(&igntypes2.Config{ + Ignition: igntypes2.Ignition{ + Version: igntypes2.MaxVersion.String(), + }, + Passwd: igntypes2.Passwd{ + Users: []igntypes2.PasswdUser{{ + Name: "core", SSHAuthorizedKeys: []igntypes2.SSHAuthorizedKey{igntypes2.SSHAuthorizedKey(key)}, + }}, + }, + }), }, }, } @@ -130,10 +142,12 @@ func ForFIPSEnabled(role string) *mcfgv1.MachineConfig { }, }, Spec: mcfgv1.MachineConfigSpec{ - Config: igntypes2.Config{ - Ignition: igntypes2.Ignition{ - Version: igntypes2.MaxVersion.String(), - }, + Config: runtime.RawExtension{ + Raw: MarshalOrDie(&igntypes2.Config{ + Ignition: igntypes2.Ignition{ + Version: igntypes2.MaxVersion.String(), + }, + }), }, FIPS: true, }, @@ -155,15 +169,17 @@ func ForHyperthreadingDisabled(role string) *mcfgv1.MachineConfig { }, }, Spec: mcfgv1.MachineConfigSpec{ - Config: igntypes2.Config{ - Ignition: igntypes2.Ignition{ - Version: igntypes2.MaxVersion.String(), - }, - Storage: igntypes2.Storage{ - Files: []igntypes2.File{ - FileFromString("/etc/pivot/kernel-args", "root", 0600, "ADD nosmt"), + Config: runtime.RawExtension{ + Raw: MarshalOrDie(&igntypes2.Config{ + Ignition: igntypes2.Ignition{ + Version: igntypes2.MaxVersion.String(), }, - }, + Storage: igntypes2.Storage{ + Files: []igntypes2.File{ + FileFromString("/etc/pivot/kernel-args", "root", 0600, "ADD nosmt"), + }, + }, + }), }, }, } diff --git a/pkg/asset/ignition/node.go b/pkg/asset/ignition/node.go deleted file mode 100644 index ed3dd0843b5..00000000000 --- a/pkg/asset/ignition/node.go +++ /dev/null @@ -1,44 +0,0 @@ -package ignition - -import ( - "path/filepath" - - ignition "github.com/coreos/ignition/config/v2_2/types" - "github.com/vincent-petithory/dataurl" - - "github.com/openshift/installer/pkg/asset" -) - -// FilesFromAsset creates ignition files for each of the files in the specified -// asset. -func FilesFromAsset(pathPrefix string, username string, mode int, asset asset.WritableAsset) []ignition.File { - var files []ignition.File - for _, f := range asset.Files() { - files = append(files, FileFromBytes(filepath.Join(pathPrefix, f.Filename), username, mode, f.Data)) - } - return files -} - -// FileFromString creates an ignition-config file with the given contents. -func FileFromString(path string, username string, mode int, contents string) ignition.File { - return FileFromBytes(path, username, mode, []byte(contents)) -} - -// FileFromBytes creates an ignition-config file with the given contents. -func FileFromBytes(path string, username string, mode int, contents []byte) ignition.File { - return ignition.File{ - Node: ignition.Node{ - Filesystem: "root", - Path: path, - User: &ignition.NodeUser{ - Name: username, - }, - }, - FileEmbedded1: ignition.FileEmbedded1{ - Mode: &mode, - Contents: ignition.FileContents{ - Source: dataurl.EncodeBytes(contents), - }, - }, - } -} diff --git a/pkg/asset/machines/machineconfig/authorizedkeys.go b/pkg/asset/machines/machineconfig/authorizedkeys.go deleted file mode 100644 index 973641839cb..00000000000 --- a/pkg/asset/machines/machineconfig/authorizedkeys.go +++ /dev/null @@ -1,37 +0,0 @@ -package machineconfig - -import ( - "fmt" - - ignv2_2types "github.com/coreos/ignition/config/v2_2/types" - mcfgv1 "github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// ForAuthorizedKeys creates the MachineConfig to set the authorized key for `core` user. -func ForAuthorizedKeys(key string, role string) *mcfgv1.MachineConfig { - return &mcfgv1.MachineConfig{ - TypeMeta: metav1.TypeMeta{ - APIVersion: mcfgv1.SchemeGroupVersion.String(), - Kind: "MachineConfig", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: fmt.Sprintf("99-%s-ssh", role), - Labels: map[string]string{ - "machineconfiguration.openshift.io/role": role, - }, - }, - Spec: mcfgv1.MachineConfigSpec{ - Config: ignv2_2types.Config{ - Ignition: ignv2_2types.Ignition{ - Version: ignv2_2types.MaxVersion.String(), - }, - Passwd: ignv2_2types.Passwd{ - Users: []ignv2_2types.PasswdUser{{ - Name: "core", SSHAuthorizedKeys: []ignv2_2types.SSHAuthorizedKey{ignv2_2types.SSHAuthorizedKey(key)}, - }}, - }, - }, - }, - } -} diff --git a/pkg/asset/machines/machineconfig/fips.go b/pkg/asset/machines/machineconfig/fips.go deleted file mode 100644 index 7e44cf07e1c..00000000000 --- a/pkg/asset/machines/machineconfig/fips.go +++ /dev/null @@ -1,34 +0,0 @@ -package machineconfig - -import ( - "fmt" - - igntypes "github.com/coreos/ignition/config/v2_2/types" - mcfgv1 "github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// ForFIPSEnabled creates the MachineConfig to enable FIPS. -// See also https://github.com/openshift/machine-config-operator/pull/889 -func ForFIPSEnabled(role string) *mcfgv1.MachineConfig { - return &mcfgv1.MachineConfig{ - TypeMeta: metav1.TypeMeta{ - APIVersion: "machineconfiguration.openshift.io/v1", - Kind: "MachineConfig", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: fmt.Sprintf("99-%s-fips", role), - Labels: map[string]string{ - "machineconfiguration.openshift.io/role": role, - }, - }, - Spec: mcfgv1.MachineConfigSpec{ - Config: igntypes.Config{ - Ignition: igntypes.Ignition{ - Version: igntypes.MaxVersion.String(), - }, - }, - FIPS: true, - }, - } -} diff --git a/pkg/asset/machines/machineconfig/hyperthreading.go b/pkg/asset/machines/machineconfig/hyperthreading.go deleted file mode 100644 index 60ed4a7a58d..00000000000 --- a/pkg/asset/machines/machineconfig/hyperthreading.go +++ /dev/null @@ -1,40 +0,0 @@ -package machineconfig - -import ( - "fmt" - - igntypes "github.com/coreos/ignition/config/v2_2/types" - mcfgv1 "github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - "github.com/openshift/installer/pkg/asset/ignition" -) - -// ForHyperthreadingDisabled creates the MachineConfig to disable hyperthreading. -// RHCOS ships with pivot.service that uses the `/etc/pivot/kernel-args` to override the kernel arguments for hosts. -func ForHyperthreadingDisabled(role string) *mcfgv1.MachineConfig { - return &mcfgv1.MachineConfig{ - TypeMeta: metav1.TypeMeta{ - APIVersion: "machineconfiguration.openshift.io/v1", - Kind: "MachineConfig", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: fmt.Sprintf("99-%s-disable-hyperthreading", role), - Labels: map[string]string{ - "machineconfiguration.openshift.io/role": role, - }, - }, - Spec: mcfgv1.MachineConfigSpec{ - Config: igntypes.Config{ - Ignition: igntypes.Ignition{ - Version: igntypes.MaxVersion.String(), - }, - Storage: igntypes.Storage{ - Files: []igntypes.File{ - ignition.FileFromString("/etc/pivot/kernel-args", "root", 0600, "ADD nosmt"), - }, - }, - }, - }, - } -} diff --git a/pkg/asset/machines/master.go b/pkg/asset/machines/master.go index 8bca6faac86..2b8fe99329b 100644 --- a/pkg/asset/machines/master.go +++ b/pkg/asset/machines/master.go @@ -32,6 +32,7 @@ import ( openstackprovider "sigs.k8s.io/cluster-api-provider-openstack/pkg/apis/openstackproviderconfig/v1alpha1" "github.com/openshift/installer/pkg/asset" + "github.com/openshift/installer/pkg/asset/ignition" "github.com/openshift/installer/pkg/asset/ignition/machine" "github.com/openshift/installer/pkg/asset/installconfig" "github.com/openshift/installer/pkg/asset/machines/aws" @@ -366,13 +367,13 @@ func (m *Master) Generate(dependencies asset.Parents) error { machineConfigs := []*mcfgv1.MachineConfig{} if pool.Hyperthreading == types.HyperthreadingDisabled { - machineConfigs = append(machineConfigs, machineconfig.ForHyperthreadingDisabled("master")) + machineConfigs = append(machineConfigs, ignition.ForHyperthreadingDisabled("master")) } if ic.SSHKey != "" { - machineConfigs = append(machineConfigs, machineconfig.ForAuthorizedKeys(ic.SSHKey, "master")) + machineConfigs = append(machineConfigs, ignition.ForAuthorizedKeys(ic.SSHKey, "master")) } if ic.FIPS { - machineConfigs = append(machineConfigs, machineconfig.ForFIPSEnabled("master")) + machineConfigs = append(machineConfigs, ignition.ForFIPSEnabled("master")) } m.MachineConfigFiles, err = machineconfig.Manifests(machineConfigs, "master", directory) diff --git a/pkg/asset/machines/master_test.go b/pkg/asset/machines/master_test.go index 9f5bf8faa12..e3a2fc8c82e 100644 --- a/pkg/asset/machines/master_test.go +++ b/pkg/asset/machines/master_test.go @@ -41,10 +41,11 @@ spec: config: ignition: config: {} + proxy: {} security: tls: {} timeouts: {} - version: 2.2.0 + version: 2.4.0 networkd: {} passwd: users: @@ -73,10 +74,11 @@ spec: config: ignition: config: {} + proxy: {} security: tls: {} timeouts: {} - version: 2.2.0 + version: 2.4.0 networkd: {} passwd: {} storage: @@ -111,10 +113,11 @@ spec: config: ignition: config: {} + proxy: {} security: tls: {} timeouts: {} - version: 2.2.0 + version: 2.4.0 networkd: {} passwd: {} storage: @@ -143,10 +146,11 @@ spec: config: ignition: config: {} + proxy: {} security: tls: {} timeouts: {} - version: 2.2.0 + version: 2.4.0 networkd: {} passwd: users: diff --git a/pkg/asset/machines/worker.go b/pkg/asset/machines/worker.go index 88e77829d84..ea4854a40ea 100644 --- a/pkg/asset/machines/worker.go +++ b/pkg/asset/machines/worker.go @@ -30,6 +30,7 @@ import ( openstackprovider "sigs.k8s.io/cluster-api-provider-openstack/pkg/apis/openstackproviderconfig/v1alpha1" "github.com/openshift/installer/pkg/asset" + "github.com/openshift/installer/pkg/asset/ignition" "github.com/openshift/installer/pkg/asset/ignition/machine" "github.com/openshift/installer/pkg/asset/installconfig" "github.com/openshift/installer/pkg/asset/machines/aws" @@ -189,13 +190,13 @@ func (w *Worker) Generate(dependencies asset.Parents) error { ic := installConfig.Config for _, pool := range ic.Compute { if pool.Hyperthreading == types.HyperthreadingDisabled { - machineConfigs = append(machineConfigs, machineconfig.ForHyperthreadingDisabled("worker")) + machineConfigs = append(machineConfigs, ignition.ForHyperthreadingDisabled("worker")) } if ic.SSHKey != "" { - machineConfigs = append(machineConfigs, machineconfig.ForAuthorizedKeys(ic.SSHKey, "worker")) + machineConfigs = append(machineConfigs, ignition.ForAuthorizedKeys(ic.SSHKey, "worker")) } if ic.FIPS { - machineConfigs = append(machineConfigs, machineconfig.ForFIPSEnabled("worker")) + machineConfigs = append(machineConfigs, ignition.ForFIPSEnabled("worker")) } switch ic.Platform.Name() { case awstypes.Name: diff --git a/pkg/asset/machines/worker_test.go b/pkg/asset/machines/worker_test.go index 82268b968ce..158e9260f49 100644 --- a/pkg/asset/machines/worker_test.go +++ b/pkg/asset/machines/worker_test.go @@ -41,10 +41,11 @@ spec: config: ignition: config: {} + proxy: {} security: tls: {} timeouts: {} - version: 2.2.0 + version: 2.4.0 networkd: {} passwd: users: @@ -73,10 +74,11 @@ spec: config: ignition: config: {} + proxy: {} security: tls: {} timeouts: {} - version: 2.2.0 + version: 2.4.0 networkd: {} passwd: {} storage: @@ -111,10 +113,11 @@ spec: config: ignition: config: {} + proxy: {} security: tls: {} timeouts: {} - version: 2.2.0 + version: 2.4.0 networkd: {} passwd: {} storage: @@ -143,10 +146,11 @@ spec: config: ignition: config: {} + proxy: {} security: tls: {} timeouts: {} - version: 2.2.0 + version: 2.4.0 networkd: {} passwd: users: From f6cede3155fb4df095998c49aa9c8c88ea0fc51b Mon Sep 17 00:00:00 2001 From: Vadim Rutkovsky Date: Mon, 6 Apr 2020 10:08:17 +0200 Subject: [PATCH 7/9] ignition_v2: use ignition 2.2 for most files and 2.4 for Openstack shim --- pkg/asset/ignition/ignition_v2.go | 127 +++++++++++++++--------------- pkg/asset/machines/master_test.go | 12 +-- pkg/asset/machines/worker_test.go | 12 +-- 3 files changed, 72 insertions(+), 79 deletions(-) diff --git a/pkg/asset/ignition/ignition_v2.go b/pkg/asset/ignition/ignition_v2.go index b74dce550dc..f9a48e91320 100644 --- a/pkg/asset/ignition/ignition_v2.go +++ b/pkg/asset/ignition/ignition_v2.go @@ -10,7 +10,8 @@ import ( "path/filepath" "github.com/coreos/ignition/config/util" - igntypes2 "github.com/coreos/ignition/config/v2_4/types" + igntypes22 "github.com/coreos/ignition/config/v2_2/types" + igntypes24 "github.com/coreos/ignition/config/v2_4/types" "github.com/pkg/errors" mcfgv1 "github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1" @@ -24,9 +25,9 @@ import ( ) // Config is ignition v2 Config -type Config igntypes2.Config +type Config igntypes22.Config -// Dropin in an abstraction over igntypes2.SystemdDropin +// Dropin in an abstraction over igntypes22.SystemdDropin type Dropin struct { Name string Contents string @@ -34,8 +35,8 @@ type Dropin struct { // FilesFromAsset creates ignition files for each of the files in the specified // asset. -func FilesFromAsset(pathPrefix string, username string, mode int, asset asset.WritableAsset) []igntypes2.File { - var files []igntypes2.File +func FilesFromAsset(pathPrefix string, username string, mode int, asset asset.WritableAsset) []igntypes22.File { + var files []igntypes22.File for _, f := range asset.Files() { files = append(files, FileFromBytes(filepath.Join(pathPrefix, f.Filename), username, mode, f.Data)) } @@ -43,23 +44,23 @@ func FilesFromAsset(pathPrefix string, username string, mode int, asset asset.Wr } // FileFromString creates an ignition-config file with the given contents. -func FileFromString(path string, username string, mode int, contents string) igntypes2.File { +func FileFromString(path string, username string, mode int, contents string) igntypes22.File { return FileFromBytes(path, username, mode, []byte(contents)) } // FileFromBytes creates an ignition-config file with the given contents. -func FileFromBytes(path string, username string, mode int, contents []byte) igntypes2.File { - return igntypes2.File{ - Node: igntypes2.Node{ +func FileFromBytes(path string, username string, mode int, contents []byte) igntypes22.File { + return igntypes22.File{ + Node: igntypes22.Node{ Filesystem: "root", Path: path, - User: &igntypes2.NodeUser{ + User: &igntypes22.NodeUser{ Name: username, }, }, - FileEmbedded1: igntypes2.FileEmbedded1{ + FileEmbedded1: igntypes22.FileEmbedded1{ Mode: &mode, - Contents: igntypes2.FileContents{ + Contents: igntypes22.FileContents{ Source: dataurl.EncodeBytes(contents), }, }, @@ -70,16 +71,16 @@ func FileFromBytes(path string, username string, mode int, contents []byte) ignt // served by the machine config server. func PointerIgnitionConfig(url string, rootCA []byte) *Config { return &Config{ - Ignition: igntypes2.Ignition{ - Version: igntypes2.MaxVersion.String(), - Config: igntypes2.IgnitionConfig{ - Append: []igntypes2.ConfigReference{{ + Ignition: igntypes22.Ignition{ + Version: igntypes22.MaxVersion.String(), + Config: igntypes22.IgnitionConfig{ + Append: []igntypes22.ConfigReference{{ Source: url, }}, }, - Security: igntypes2.Security{ - TLS: igntypes2.TLS{ - CertificateAuthorities: []igntypes2.CaReference{{ + Security: igntypes22.Security{ + TLS: igntypes22.TLS{ + CertificateAuthorities: []igntypes22.CaReference{{ Source: dataurl.EncodeBytes(rootCA), }}, }, @@ -112,13 +113,13 @@ func ForAuthorizedKeys(key string, role string) *mcfgv1.MachineConfig { }, Spec: mcfgv1.MachineConfigSpec{ Config: runtime.RawExtension{ - Raw: MarshalOrDie(&igntypes2.Config{ - Ignition: igntypes2.Ignition{ - Version: igntypes2.MaxVersion.String(), + Raw: MarshalOrDie(&igntypes22.Config{ + Ignition: igntypes22.Ignition{ + Version: igntypes22.MaxVersion.String(), }, - Passwd: igntypes2.Passwd{ - Users: []igntypes2.PasswdUser{{ - Name: "core", SSHAuthorizedKeys: []igntypes2.SSHAuthorizedKey{igntypes2.SSHAuthorizedKey(key)}, + Passwd: igntypes22.Passwd{ + Users: []igntypes22.PasswdUser{{ + Name: "core", SSHAuthorizedKeys: []igntypes22.SSHAuthorizedKey{igntypes22.SSHAuthorizedKey(key)}, }}, }, }), @@ -143,9 +144,9 @@ func ForFIPSEnabled(role string) *mcfgv1.MachineConfig { }, Spec: mcfgv1.MachineConfigSpec{ Config: runtime.RawExtension{ - Raw: MarshalOrDie(&igntypes2.Config{ - Ignition: igntypes2.Ignition{ - Version: igntypes2.MaxVersion.String(), + Raw: MarshalOrDie(&igntypes22.Config{ + Ignition: igntypes22.Ignition{ + Version: igntypes22.MaxVersion.String(), }, }), }, @@ -170,12 +171,12 @@ func ForHyperthreadingDisabled(role string) *mcfgv1.MachineConfig { }, Spec: mcfgv1.MachineConfigSpec{ Config: runtime.RawExtension{ - Raw: MarshalOrDie(&igntypes2.Config{ - Ignition: igntypes2.Ignition{ - Version: igntypes2.MaxVersion.String(), + Raw: MarshalOrDie(&igntypes22.Config{ + Ignition: igntypes22.Ignition{ + Version: igntypes22.MaxVersion.String(), }, - Storage: igntypes2.Storage{ - Files: []igntypes2.File{ + Storage: igntypes22.Storage{ + Files: []igntypes22.File{ FileFromString("/etc/pivot/kernel-args", "root", 0600, "ADD nosmt"), }, }, @@ -188,7 +189,7 @@ func ForHyperthreadingDisabled(role string) *mcfgv1.MachineConfig { // InjectInstallInfo adds information about the installer and its invoker as a // ConfigMap to the provided bootstrap Ignition config. func InjectInstallInfo(bootstrap []byte) (string, error) { - config := &igntypes2.Config{} + config := &igntypes22.Config{} if err := json.Unmarshal(bootstrap, &config); err != nil { return "", errors.Wrap(err, "failed to unmarshal bootstrap Ignition config") } @@ -211,8 +212,8 @@ func InjectInstallInfo(bootstrap []byte) (string, error) { // GenerateMinimalConfig returns a minimal ignition v2 config func GenerateMinimalConfig() *Config { return &Config{ - Ignition: igntypes2.Ignition{ - Version: igntypes2.MaxVersion.String(), + Ignition: igntypes22.Ignition{ + Version: igntypes22.MaxVersion.String(), }, } } @@ -221,13 +222,13 @@ func GenerateMinimalConfig() *Config { func (c *Config) AddSSHKey(sshKey, bootstrapSSHKeyPair string) { c.Passwd.Users = append( c.Passwd.Users, - igntypes2.PasswdUser{Name: "core", SSHAuthorizedKeys: []igntypes2.SSHAuthorizedKey{igntypes2.SSHAuthorizedKey(sshKey), igntypes2.SSHAuthorizedKey(bootstrapSSHKeyPair)}}, + igntypes22.PasswdUser{Name: "core", SSHAuthorizedKeys: []igntypes22.SSHAuthorizedKey{igntypes22.SSHAuthorizedKey(sshKey), igntypes22.SSHAuthorizedKey(bootstrapSSHKeyPair)}}, ) } // AddSystemdUnit appends contents in Ignition config func (c *Config) AddSystemdUnit(name string, contents string, enabled bool) { - unit := igntypes2.Unit{ + unit := igntypes22.Unit{ Name: name, Contents: contents, } @@ -239,15 +240,15 @@ func (c *Config) AddSystemdUnit(name string, contents string, enabled bool) { // AddSystemdDropins appends systemd dropins in the config func (c *Config) AddSystemdDropins(name string, children []Dropin, enabled bool) { - dropins := []igntypes2.SystemdDropin{} + dropins := []igntypes22.SystemdDropin{} for _, childInfo := range children { - dropins = append(dropins, igntypes2.SystemdDropin{ + dropins = append(dropins, igntypes22.SystemdDropin{ Name: childInfo.Name, Contents: childInfo.Contents, }) } - unit := igntypes2.Unit{ + unit := igntypes22.Unit{ Name: name, Dropins: dropins, } @@ -258,7 +259,7 @@ func (c *Config) AddSystemdDropins(name string, children []Dropin, enabled bool) } // ReplaceOrAppend is a function which ensures duplicate files are not added in the file list -func (c *Config) ReplaceOrAppend(file igntypes2.File) { +func (c *Config) ReplaceOrAppend(file igntypes22.File) { for i, f := range c.Storage.Files { if f.Node.Path == file.Node.Path { c.Storage.Files[i] = file @@ -283,36 +284,36 @@ func GenerateIgnitionShim(userCA string, clusterID string, bootstrapConfigURL st // Hostname Config contents := fmt.Sprintf("%s-bootstrap", clusterID) - hostnameConfigFile := igntypes2.File{ - Node: igntypes2.Node{ + hostnameConfigFile := igntypes24.File{ + Node: igntypes24.Node{ Filesystem: "root", Path: "/etc/hostname", }, - FileEmbedded1: igntypes2.FileEmbedded1{ + FileEmbedded1: igntypes24.FileEmbedded1{ Mode: &fileMode, - Contents: igntypes2.FileContents{ + Contents: igntypes24.FileContents{ Source: dataurl.EncodeBytes([]byte(contents)), }, }, } // Openstack Ca Cert file - openstackCAFile := igntypes2.File{ - Node: igntypes2.Node{ + openstackCAFile := igntypes24.File{ + Node: igntypes24.Node{ Filesystem: "root", Path: "/opt/openshift/tls/cloud-ca-cert.pem", }, - FileEmbedded1: igntypes2.FileEmbedded1{ + FileEmbedded1: igntypes24.FileEmbedded1{ Mode: &fileMode, - Contents: igntypes2.FileContents{ + Contents: igntypes24.FileContents{ Source: dataurl.EncodeBytes([]byte(userCA)), }, }, } - security := igntypes2.Security{} + security := igntypes24.Security{} if userCA != "" { - carefs := []igntypes2.CaReference{} + carefs := []igntypes24.CaReference{} rest := []byte(userCA) for { @@ -322,33 +323,33 @@ func GenerateIgnitionShim(userCA string, clusterID string, bootstrapConfigURL st return "", fmt.Errorf("unable to parse certificate, please check the cacert section of clouds.yaml") } - carefs = append(carefs, igntypes2.CaReference{Source: dataurl.EncodeBytes(pem.EncodeToMemory(block))}) + carefs = append(carefs, igntypes24.CaReference{Source: dataurl.EncodeBytes(pem.EncodeToMemory(block))}) if len(rest) == 0 { break } } - security = igntypes2.Security{ - TLS: igntypes2.TLS{ + security = igntypes24.Security{ + TLS: igntypes24.TLS{ CertificateAuthorities: carefs, }, } } - headers := []igntypes2.HTTPHeader{ + headers := []igntypes24.HTTPHeader{ { Name: "X-Auth-Token", Value: tokenID, }, } - ign := igntypes2.Config{ - Ignition: igntypes2.Ignition{ - Version: igntypes2.MaxVersion.String(), + ign := igntypes24.Config{ + Ignition: igntypes24.Ignition{ + Version: igntypes24.MaxVersion.String(), Security: security, - Config: igntypes2.IgnitionConfig{ - Append: []igntypes2.ConfigReference{ + Config: igntypes24.IgnitionConfig{ + Append: []igntypes24.ConfigReference{ { Source: bootstrapConfigURL, HTTPHeaders: headers, @@ -356,8 +357,8 @@ func GenerateIgnitionShim(userCA string, clusterID string, bootstrapConfigURL st }, }, }, - Storage: igntypes2.Storage{ - Files: []igntypes2.File{ + Storage: igntypes24.Storage{ + Files: []igntypes24.File{ hostnameConfigFile, openstackCAFile, }, diff --git a/pkg/asset/machines/master_test.go b/pkg/asset/machines/master_test.go index e3a2fc8c82e..9f5bf8faa12 100644 --- a/pkg/asset/machines/master_test.go +++ b/pkg/asset/machines/master_test.go @@ -41,11 +41,10 @@ spec: config: ignition: config: {} - proxy: {} security: tls: {} timeouts: {} - version: 2.4.0 + version: 2.2.0 networkd: {} passwd: users: @@ -74,11 +73,10 @@ spec: config: ignition: config: {} - proxy: {} security: tls: {} timeouts: {} - version: 2.4.0 + version: 2.2.0 networkd: {} passwd: {} storage: @@ -113,11 +111,10 @@ spec: config: ignition: config: {} - proxy: {} security: tls: {} timeouts: {} - version: 2.4.0 + version: 2.2.0 networkd: {} passwd: {} storage: @@ -146,11 +143,10 @@ spec: config: ignition: config: {} - proxy: {} security: tls: {} timeouts: {} - version: 2.4.0 + version: 2.2.0 networkd: {} passwd: users: diff --git a/pkg/asset/machines/worker_test.go b/pkg/asset/machines/worker_test.go index 158e9260f49..82268b968ce 100644 --- a/pkg/asset/machines/worker_test.go +++ b/pkg/asset/machines/worker_test.go @@ -41,11 +41,10 @@ spec: config: ignition: config: {} - proxy: {} security: tls: {} timeouts: {} - version: 2.4.0 + version: 2.2.0 networkd: {} passwd: users: @@ -74,11 +73,10 @@ spec: config: ignition: config: {} - proxy: {} security: tls: {} timeouts: {} - version: 2.4.0 + version: 2.2.0 networkd: {} passwd: {} storage: @@ -113,11 +111,10 @@ spec: config: ignition: config: {} - proxy: {} security: tls: {} timeouts: {} - version: 2.4.0 + version: 2.2.0 networkd: {} passwd: {} storage: @@ -146,11 +143,10 @@ spec: config: ignition: config: {} - proxy: {} security: tls: {} timeouts: {} - version: 2.4.0 + version: 2.2.0 networkd: {} passwd: users: From e89e321695ba805193f9d514a9b292591d7fa56b Mon Sep 17 00:00:00 2001 From: Vadim Rutkovsky Date: Mon, 11 May 2020 15:03:24 +0200 Subject: [PATCH 8/9] Bump to latest MCO --- go.mod | 3 +- go.sum | 282 +++++++++++++++++++++++++++++++++------------------------ 2 files changed, 167 insertions(+), 118 deletions(-) diff --git a/go.mod b/go.mod index 7626e22d46b..b680212af57 100644 --- a/go.mod +++ b/go.mod @@ -45,7 +45,6 @@ require ( github.com/metal3-io/baremetal-operator v0.0.0 github.com/metal3-io/cluster-api-provider-baremetal v0.0.0 github.com/mitchellh/cli v1.0.0 - github.com/opencontainers/image-spec v1.0.2-0.20190823105129-775207bd45b6 // indirect github.com/openshift-metal3/terraform-provider-ironic v0.2.1 github.com/openshift/api v3.9.1-0.20191111211345-a27ff30ebf09+incompatible github.com/openshift/client-go v0.0.0-20200320150128-a906f3d8e723 @@ -114,7 +113,7 @@ replace ( github.com/metal3-io/cluster-api-provider-baremetal => github.com/openshift/cluster-api-provider-baremetal v0.0.0-20190821174549-a2a477909c1d // Pin OpenShift fork github.com/openshift/api => github.com/openshift/api v0.0.0-20200601094953-95abe2d2f422 // Pin API github.com/openshift/client-go => github.com/openshift/client-go v0.0.0-20200116152001-92a2713fa240 // Pin client-go - github.com/openshift/machine-config-operator => github.com/openshift/machine-config-operator v0.0.1-0.20200130220348-e5685c0cf530 // Pin MCO so it doesn't get downgraded + github.com/openshift/machine-config-operator => github.com/openshift/machine-config-operator v0.0.1-0.20200609021741-16da55b2a211 // Pin MCO so it doesn't get downgraded github.com/terraform-providers/terraform-provider-aws => github.com/openshift/terraform-provider-aws v1.60.1-0.20200526184553-1a716dcc0fa8 // Pin to openshift fork with tag v2.60.0-openshift-1 github.com/terraform-providers/terraform-provider-azurerm => github.com/openshift/terraform-provider-azurerm v1.40.1-0.20200508151851-2bfa0b7d4a9d // release-2.8.0 branch github.com/terraform-providers/terraform-provider-vsphere => github.com/openshift/terraform-provider-vsphere v1.18.1-openshift-1 diff --git a/go.sum b/go.sum index b318665acc9..616fad41d1f 100644 --- a/go.sum +++ b/go.sum @@ -10,7 +10,6 @@ cloud.google.com/go v0.37.2/go.mod h1:H8IAquKe2L30IxoupDgqTaQvKSwF/c8prYHynGIWQb cloud.google.com/go v0.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.39.0/go.mod h1:rVLT6fkc8chs9sfPtFc1SBH6em7n+ZoXaG+87tDISts= -cloud.google.com/go v0.40.0/go.mod h1:Tk58MuI9rbLMKlAjeO/bDnteAx7tX2gJIXw4T5Jwlro= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= @@ -55,7 +54,6 @@ dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1 dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU= git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= git.apache.org/thrift.git v0.12.0/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= -github.com/14rcole/gopopulate v0.0.0-20180821133914-b175b219e774/go.mod h1:6/0dYRLLXyJjbkIPeeGyoJ/eKOSI0eU6eTlCBYibgd0= github.com/AlecAivazis/survey/v2 v2.0.5/go.mod h1:WYBhg6f0y/fNYUuesWQc0PKbJcEliGcYHB9sNT3Bg74= github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4= github.com/Azure/azure-pipeline-go v0.2.2/go.mod h1:4rQ/NZncSvGqNkkOsNpOU1tgoNuIlp9AfUH5G1tvCHc= @@ -159,7 +157,7 @@ github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:H github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= -github.com/VividCortex/ewma v1.1.1/go.mod h1:2Tkkvm3sRDVXaiyucHiACn4cqf7DpdyLvmxzcbUokwA= +github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/abdullin/seq v0.0.0-20160510034733-d5467c17e7af h1:DBNMBMuMiWYu0b+8KMJuWmfCkcxl09JwdlqwDZZ6U14= github.com/abdullin/seq v0.0.0-20160510034733-d5467c17e7af/go.mod h1:5Jv4cbFiHJMsVxt52+i0Ha45fjshj6wxYr1r19tB9bw= github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= @@ -176,7 +174,6 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:CgnQgUtFrFz9mxFNtED3jI5tLDjKlOM+oUF/sTk6ps0= github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190329064014-6e358769c32a/go.mod h1:T9M45xf79ahXVelWoOBmH0y4aC1t5kXO5BxwyakgIGA= github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190412020505-60e2075261b6/go.mod h1:T9M45xf79ahXVelWoOBmH0y4aC1t5kXO5BxwyakgIGA= github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190620160927-9418d7b0cd0f h1:oRD16bhpKNAanfcDDVU+J0NXqsgHIvGbbe/sy+r6Rs0= @@ -230,6 +227,7 @@ github.com/aws/aws-sdk-go v1.15.66/go.mod h1:E3/ieXAlvM0XWO57iftYVDLLvQ824smPP3A github.com/aws/aws-sdk-go v1.15.78/go.mod h1:E3/ieXAlvM0XWO57iftYVDLLvQ824smPP3ATZkfNZeM= github.com/aws/aws-sdk-go v1.16.26/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.17.7/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.19.11/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.19.39/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.25.3/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.25.47/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= @@ -281,16 +279,19 @@ github.com/bshuster-repo/logrus-logstash-hook v0.4.1/go.mod h1:zsTqEiSzDgAa/8GZR github.com/btubbs/datetime v0.1.0/go.mod h1:n2BZ/2ltnRzNiz27aE3wUb2onNttQdC+WFxAoks5jJM= github.com/btubbs/datetime v0.1.1 h1:KuV+F9tyq/hEnezmKZNGk8dzqMVsId6EpFVrQCfA3To= github.com/btubbs/datetime v0.1.1/go.mod h1:n2BZ/2ltnRzNiz27aE3wUb2onNttQdC+WFxAoks5jJM= -github.com/buger/goterm v0.0.0-20181115115552-c206103e1f37/go.mod h1:u9UyCz2eTrSGy6fbupqJ54eY5c4IC8gREQ1053dK12U= -github.com/buger/jsonparser v0.0.0-20180808090653-f4dd9f5a6b44/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50= github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= +github.com/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34= github.com/c4milo/gotoolkit v0.0.0-20170704181456-e37eeabad07e/go.mod h1:txokOny9wavBtq2PWuHmj1P+eFwpCsj+gQeNNANChfU= github.com/c4milo/gotoolkit v0.0.0-20190525173301-67483a18c17a h1:+uvtaGSLJh0YpLLHCQ9F+UVGy4UOS542hsjj8wBjvH0= github.com/c4milo/gotoolkit v0.0.0-20190525173301-67483a18c17a/go.mod h1:txokOny9wavBtq2PWuHmj1P+eFwpCsj+gQeNNANChfU= +github.com/caarlos0/ctrlc v1.0.0/go.mod h1:CdXpj4rmq0q/1Eb44M9zi2nKB0QraNKuRGYGrrHhcQw= +github.com/cactus/go-statsd-client/statsd v0.0.0-20190501063751-9a7692639588/go.mod h1:3/sdo8I67TaOslRGJ6FqQC/ynu+wg7H6IE4WYtr51hk= github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= github.com/campoy/embedmd v1.0.0/go.mod h1:oxyr9RCiSXg0M3VJ3ks0UGfp98BpSSGr0kpiX3MzVl8= +github.com/campoy/unique v0.0.0-20180121183637-88950e537e7e/go.mod h1:9IOqJGCPMSc6E5ydlp5NIonxObaeu/Iub/X03EKPVYo= +github.com/casbin/casbin v1.8.3/go.mod h1:z8uPsfBJGUsnkagrt3G8QvjgTKFMBJ32UP8HpZllfog= github.com/cenkalti/backoff v0.0.0-20181003080854-62661b46c409/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= @@ -319,6 +320,9 @@ github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 h1:q763qf9huN11kDQavWs github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= +github.com/clarketm/json v1.14.1/go.mod h1:ynr2LRfb0fQU34l07csRNBTcivjySLLiY1YzQqKVfdo= +github.com/clbanning/x2j v0.0.0-20180326210544-5e605d46809c/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= +github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/cfssl v0.0.0-20190716005913-5fc50ce768d7/go.mod h1:yMWuSON2oQp+43nFtAV/uvKQIFpSPerB57DCt9t8sSA= github.com/cloudfoundry-community/go-cfclient v0.0.0-20190201205600-f136f9222381/go.mod h1:e5+USP2j8Le2M0Jo3qKPFnNhuo1wueU4nWHCXBOfQ14= @@ -334,40 +338,22 @@ github.com/container-storage-interface/spec v1.2.0/go.mod h1:6URME8mwIBbpVyZV93C github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= github.com/containerd/console v0.0.0-20170925154832-84eeaae905fa/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/console v0.0.0-20181022165439-0650fd9eeb50/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= github.com/containerd/containerd v1.0.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= github.com/containerd/containerd v1.2.7/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.2.9/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/continuity v0.0.0-20180814194400-c7c5070e6f6e/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/continuity v0.0.0-20181203112020-004b46473808/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= github.com/containerd/continuity v0.0.0-20190827140505-75bee3e2ccb6/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= github.com/containerd/continuity v0.0.0-20200107194136-26c1120b8d41/go.mod h1:Dq467ZllaHgAtVp4p1xUQWBrFXR9s/wyoTpG8zOJGkY= github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/go-runc v0.0.0-20190603165425-9007c2405372/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/project v0.0.0-20190513184420-7fb81da5e663/go.mod h1:VPSgtIMzq50WVxCAuIyN+jYh7MjyVCBrNa8MHe2MZ8A= -github.com/containerd/ttrpc v0.0.0-20190613183316-1fb3814edf44/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= github.com/containerd/typeurl v0.0.0-20190228175220-2a93cfde8c20/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containernetworking/cni v0.7.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= github.com/containernetworking/cni v0.7.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/containernetworking/plugins v0.8.1/go.mod h1:dagHaAhNjXjT9QYOklkKJDGaQPTg4pf//FrUcJeb7FU= -github.com/containernetworking/plugins v0.8.2/go.mod h1:TxALKWZpWL79BC3GOYKJzzXr7U8R23PdhwaLp6F3adc= -github.com/containers/buildah v1.10.1/go.mod h1:ZTyMFo3IQlu9tYndtnAf0Tjf2NdeUL6bY2/TpP9uIuU= -github.com/containers/buildah v1.11.2/go.mod h1:CtnP3vsLiU3xgKvkhdb4b0IzYwXNzHRv3ezl4z+RPC0= -github.com/containers/conmon v0.3.0/go.mod h1:hgwZ2mtuDrppv78a/cOBNiCm6O0UMWGx1mu7P00nu5I= -github.com/containers/conmon v2.0.0+incompatible/go.mod h1:hgwZ2mtuDrppv78a/cOBNiCm6O0UMWGx1mu7P00nu5I= github.com/containers/image v3.0.2+incompatible h1:B1lqAE8MUPCrsBLE86J0gnXleeRq8zJnQryhiiGQNyE= github.com/containers/image v3.0.2+incompatible/go.mod h1:8Vtij257IWSanUQKe1tAeNOm2sRVkSqQTVQ1IlwI3+M= -github.com/containers/libpod v1.5.1/go.mod h1:S5TOYh/q+DFAsTeGH0gUS3kYr9MLD2HUC9umQpwwSCk= -github.com/containers/psgo v1.3.1/go.mod h1:LLiRMmxZ6FWP4bB/fOUu6kDT+4okk/ZCeeykqh0O5Ns= -github.com/containers/storage v1.13.1/go.mod h1:6D8nK2sU9V7nEmAraINRs88ZEscM5C5DK+8Npp27GeA= -github.com/containers/storage v1.13.2/go.mod h1:6D8nK2sU9V7nEmAraINRs88ZEscM5C5DK+8Npp27GeA= -github.com/containers/storage v1.13.4/go.mod h1:6D8nK2sU9V7nEmAraINRs88ZEscM5C5DK+8Npp27GeA= +github.com/containers/storage v1.13.5/go.mod h1:HELz8Sn+UVbPaUZMI8RvIG9doD4y4z6Gtg4k7xdd2ZY= github.com/coredns/corefile-migration v1.0.4/go.mod h1:OFwBp/Wc9dJt5cAZzHWMNhK1r5L0p0jDwIBc6j8NC8E= github.com/coreos/bbolt v1.3.0/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/bbolt v1.3.1-coreos.6/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= @@ -379,9 +365,10 @@ github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.15+incompatible h1:+9RjdC18gMxNQVvSiXvObLu29mOFmkgdsB4cRTlV+EE= github.com/coreos/etcd v3.3.15+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/etcd v3.3.18+incompatible h1:Zz1aXgDrFFi1nadh58tA9ktt06cmPTwNNP3dXwIq1lE= +github.com/coreos/etcd v3.3.18+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/fcct v0.5.0/go.mod h1:cbE+j77YSQwFB2fozWVB3qsI2Pi3YiVEbDz/b6Yywdo= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-iptables v0.4.1/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= -github.com/coreos/go-iptables v0.4.2/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= github.com/coreos/go-oidc v2.0.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= @@ -389,39 +376,46 @@ github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmf github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd/v22 v22.0.0 h1:XJIw/+VlJ+87J+doOxznsAWIdmWuViOVhkQamW5YV28= github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= +github.com/coreos/ign-converter v0.0.0-20200228175238-237c8512310a/go.mod h1:eOYp0mzbRAnWFWZ64q8IeWWHFTQu9y2lxndiuVVGVkE= github.com/coreos/ignition v0.33.0/go.mod h1:WJQapxzEn9DE0ryxsGvm8QnBajm/XsS/PkrDqSpz+bA= github.com/coreos/ignition v0.34.0/go.mod h1:WJQapxzEn9DE0ryxsGvm8QnBajm/XsS/PkrDqSpz+bA= github.com/coreos/ignition v0.35.0 h1:UFodoYq1mOPrbEjtxIsZbThcDyQwAI1owczRDqWmKkQ= github.com/coreos/ignition v0.35.0/go.mod h1:WJQapxzEn9DE0ryxsGvm8QnBajm/XsS/PkrDqSpz+bA= +github.com/coreos/ignition/v2 v2.1.1/go.mod h1:RqmqU64zxarUJa3l4cHtbhcSwfQLpUhv0WVziZwoXvE= +github.com/coreos/ignition/v2 v2.2.1/go.mod h1:RqmqU64zxarUJa3l4cHtbhcSwfQLpUhv0WVziZwoXvE= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/prometheus-operator v0.38.0/go.mod h1:xZC7/TgeC0/mBaJk+1H9dbHaiEvLYHgX6Mi1h40UPh8= +github.com/coreos/vcontext v0.0.0-20190529201340-22b159166068/go.mod h1:E+6hug9bFSe0KZ2ZAzr8M9F5JlArJjv5D1JS7KSkPKE= +github.com/coreos/vcontext v0.0.0-20191017033345-260217907eb5/go.mod h1:E+6hug9bFSe0KZ2ZAzr8M9F5JlArJjv5D1JS7KSkPKE= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/creack/pty v1.1.7 h1:6pwm8kMQKCmgUg0ZHTm5+/YvRK0s3THD/28+T6/kk4A= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/creack/pty v1.1.9 h1:uDmaGzcdjhF4i/plgjmEsriH11Y0o7RKapEf/LDaM3w= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/cri-o/cri-o v1.9.0-beta.2.0.20191003162030-4775e1c05c26/go.mod h1:Zyf/AWxspq/FDHRYERdpXYUvLQPiC5Vz1lVNl/TpuBY= -github.com/cri-o/ocicni v0.1.1-0.20190702175919-7762645d18ca/go.mod h1:BO0al9TKber3XUTucLzKgoG5sq8qiOB41H7zSdfw6r8= -github.com/cyphar/filepath-securejoin v0.2.1/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/cznic/b v0.0.0-20180115125044-35e9bbe41f07/go.mod h1:URriBxXwVq5ijiJ12C7iIZqlA69nTlI+LgI6/pwftG8= +github.com/cznic/cc v0.0.0-20181122101902-d673e9b70d4d/go.mod h1:m3fD/V+XTB35Kh9zw6dzjMY+We0Q7PMf6LLIC4vuG9k= github.com/cznic/fileutil v0.0.0-20180108211300-6a051e75936f/go.mod h1:8S58EK26zhXSxzv7NQFpnliaOQsmDUxvoQO3rt154Vg= +github.com/cznic/fileutil v0.0.0-20181122101858-4d67cfea8c87/go.mod h1:8S58EK26zhXSxzv7NQFpnliaOQsmDUxvoQO3rt154Vg= github.com/cznic/golex v0.0.0-20170803123110-4ab7c5e190e4/go.mod h1:+bmmJDNmKlhWNG+gwWCkaBoTy39Fs+bzRxVBzoTQbIc= +github.com/cznic/golex v0.0.0-20181122101858-9c343928389c/go.mod h1:+bmmJDNmKlhWNG+gwWCkaBoTy39Fs+bzRxVBzoTQbIc= github.com/cznic/internal v0.0.0-20180608152220-f44710a21d00/go.mod h1:olo7eAdKwJdXxb55TKGLiJ6xt1H0/tiiRCWKVLmtjY4= +github.com/cznic/internal v0.0.0-20181122101858-3279554c546e/go.mod h1:olo7eAdKwJdXxb55TKGLiJ6xt1H0/tiiRCWKVLmtjY4= +github.com/cznic/ir v0.0.0-20181122101859-da7ba2ecce8b/go.mod h1:bctvsSxTD8Lpaj5RRQ0OrAAu4+0mD4KognDQItBNMn0= +github.com/cznic/lex v0.0.0-20181122101858-ce0fb5e9bb1b/go.mod h1:LcYbbl1tn/c31gGxe2EOWyzr7EaBcdQOoIVGvJMc7Dc= +github.com/cznic/lexer v0.0.0-20181122101858-e884d4bd112e/go.mod h1:YNGh5qsZlhFHDfWBp/3DrJ37Uy4pRqlwxtL+LS7a/Qw= github.com/cznic/lldb v1.1.0/go.mod h1:FIZVUmYUVhPwRiPzL8nD/mpFcJ/G7SSXjjXYG4uRI3A= github.com/cznic/mathutil v0.0.0-20180504122225-ca4c9f2c1369/go.mod h1:e6NPNENfs9mPDVNRekM7lKScauxd5kXTr1Mfyig6TDM= +github.com/cznic/mathutil v0.0.0-20181122101859-297441e03548/go.mod h1:e6NPNENfs9mPDVNRekM7lKScauxd5kXTr1Mfyig6TDM= github.com/cznic/ql v1.2.0/go.mod h1:FbpzhyZrqr0PVlK6ury+PoW3T0ODUV22OeWIxcaOrSE= github.com/cznic/sortutil v0.0.0-20150617083342-4c7342852e65/go.mod h1:q2w6Bg5jeox1B+QkJ6Wp/+Vn0G/bo3f1uY7Fn3vivIQ= github.com/cznic/strutil v0.0.0-20171016134553-529a34b1c186/go.mod h1:AHHPPPXTw0h6pVabbcbyGRK1DckRn7r/STdZEeIDzZc= +github.com/cznic/strutil v0.0.0-20181122101858-275e90344537/go.mod h1:AHHPPPXTw0h6pVabbcbyGRK1DckRn7r/STdZEeIDzZc= +github.com/cznic/xc v0.0.0-20181122101856-45b06973881e/go.mod h1:3oFoiOvCDBYH+swwf5+k/woVmWy7h1Fcyu8Qig/jjX0= github.com/cznic/zappy v0.0.0-20160723133515-2533cb5b45cc/go.mod h1:Y1SNZ4dRUOKXshKUbwUapqNncRrho4mkjQebgEHZLj8= -github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1SMSibvLzxjeJLnrYEVLULFNiHY9YfQ= -github.com/d2g/dhcp4client v1.0.0/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s= -github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5/go.mod h1:Eo87+Kg/IX2hfWJfwxMzLyuSZyxSoAug2nGa1G2QAi8= -github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4/go.mod h1:bMl4RjIciD2oAxI7DmWRx6gbeqrkoLqv3MV0vzNad+I= +github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -447,33 +441,25 @@ github.com/dnaeon/go-vcr v0.0.0-20180920040454-5637cf3d8a31/go.mod h1:aBB1+wY4s9 github.com/dnaeon/go-vcr v1.0.1 h1:r8L/HqC0Hje5AXMu1ooW8oyQyOFv4GxqpL0nRP7SLLY= github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= github.com/docker/cli v0.0.0-20200130152716-5d0cf8839492/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= -github.com/docker/distribution v0.0.0-20170817175659-5f6282db7d65/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v0.0.0-20180920194744-16128bbac47f/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v0.0.0-20191216044856-a8371794149d/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= github.com/docker/distribution v2.7.0+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/docker v0.0.0-20171019062838-86f080cff091/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v0.7.3-0.20180827131323-0c5f8d2b9b23/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v0.7.3-0.20190103212154-2b7e084dc98b/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v0.7.3-0.20190309235953-33c3200e0d16/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v0.7.3-0.20190410184157-6d18c6a06295/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v0.7.3-0.20190817195342-4760db040282/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v1.4.2-0.20190927142053-ada3c14355ce/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v1.4.2-0.20200203170920-46ec8731fbce/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker-credential-helpers v0.6.1/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= -github.com/docker/docker-credential-helpers v0.6.2/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-metrics v0.0.0-20180209012529-399ea8c73916/go.mod h1:/u0gXw0Gay3ceNrsHubL3BtdOL2fHf93USgMTe0W5dI= -github.com/docker/go-metrics v0.0.0-20181218153428-b84716841b82/go.mod h1:/u0gXw0Gay3ceNrsHubL3BtdOL2fHf93USgMTe0W5dI= github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/libnetwork v0.0.0-20190731215715-7f13a5c99f4b/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= -github.com/docker/libnetwork v0.8.0-dev.2.0.20180608203834-19279f049241/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= github.com/docker/libnetwork v0.8.0-dev.2.0.20190624125649-f0e46a78ea34/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= -github.com/docker/libnetwork v0.8.0-dev.2.0.20190625141545-5a177b73e316/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= @@ -503,7 +489,6 @@ github.com/elastic/go-windows v1.0.0/go.mod h1:TsU0Nrp7/y3+VwE82FoZF8gC/XFg/Elz6 github.com/elastic/go-windows v1.0.1/go.mod h1:FoVvqWSun28vaDQPbj2Elfc0JahhPB7WQEGa3c814Ss= github.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4= github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= -github.com/elazarl/goproxy v0.0.0-20190421051319-9d40249d3c2f/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/elazarl/goproxy v0.0.0-20190911111923-ecfe977594f1/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM= github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8= github.com/elazarl/goproxy/ext v0.0.0-20190911111923-ecfe977594f1/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8= @@ -517,8 +502,6 @@ github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymF github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/etcd-io/bbolt v1.3.2/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= -github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= github.com/evanphx/json-patch v4.0.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v4.1.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= @@ -544,8 +527,6 @@ github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsouza/fake-gcs-server v1.7.0/go.mod h1:5XIRs4YvwNbNoz+1JF8j6KLAyDh7RHGAyAK3EP2EsNk= github.com/fsouza/go-dockerclient v0.0.0-20171004212419-da3951ba2e9e/go.mod h1:KpcjM623fQYE9MZiTGzKhjfxXAV9wbyX2C1cyRHfhl0= -github.com/fsouza/go-dockerclient v1.3.0/go.mod h1:IN9UPc4/w7cXiARH2Yg99XxUHbAM+6rAi9hzBVbkWRU= -github.com/fsouza/go-dockerclient v1.4.1/go.mod h1:PUNHxbowDqRXfRgZqMz1OeGtbWC6VKyZvJ99hDjB0qs= github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= github.com/gammazero/deque v0.0.0-20180920172122-f6adf94963e4/go.mod h1:GeIq9qoE43YdGnDXURnmKTnGg15pQz4mYkXSTChbneI= github.com/gammazero/deque v0.0.0-20190130191400-2afb3858e9c7 h1:D2LrfOPgGHQprIxmsTpxtzhpmF66HoM6rXSmcqaX7h8= @@ -563,6 +544,7 @@ github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32/go.mod h1:GIjDIg/heH github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= +github.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M= github.com/go-asn1-ber/asn1-ber v1.3.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= @@ -680,7 +662,78 @@ github.com/go-toolsmith/pkgload v0.0.0-20181119091011-e9e65178eee8/go.mod h1:WoM github.com/go-toolsmith/pkgload v1.0.0/go.mod h1:5eFArkbO80v7Z0kdngIxsRXRMTaX4Ilcwuh3clNrQJc= github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= -github.com/go-zoo/bone v1.3.0/go.mod h1:HI3Lhb7G3UQcAwEhOJ2WyNcsFtQX1WYHa0Hl4OBbhW8= +github.com/gobuffalo/attrs v0.0.0-20190219185331-f338c9388485/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= +github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= +github.com/gobuffalo/attrs v0.1.0/go.mod h1:fmNpaWyHM0tRm8gCZWKx8yY9fvaNLo2PyzBNSrBZ5Hw= +github.com/gobuffalo/buffalo v0.12.8-0.20181004233540-fac9bb505aa8/go.mod h1:sLyT7/dceRXJUxSsE813JTQtA3Eb1vjxWfo/N//vXIY= +github.com/gobuffalo/buffalo v0.13.0/go.mod h1:Mjn1Ba9wpIbpbrD+lIDMy99pQ0H0LiddMIIDGse7qT4= +github.com/gobuffalo/buffalo v0.13.1/go.mod h1:K9c22KLfDz7obgxvHv1amvJtCQEZNiox9+q6FDJ1Zcs= +github.com/gobuffalo/buffalo v0.13.2/go.mod h1:vA8I4Dwcfkx7RAzIRHVDZxfS3QJR7muiOjX4r8P2/GE= +github.com/gobuffalo/buffalo v0.13.4/go.mod h1:y2jbKkO0k49OrNIOAkbWQiPBqxAFpHn5OKnkc7BDh+I= +github.com/gobuffalo/buffalo v0.13.5/go.mod h1:hPcP12TkFSZmT3gUVHZ24KRhTX3deSgu6QSgn0nbWf4= +github.com/gobuffalo/buffalo v0.13.6/go.mod h1:/Pm0MPLusPhWDayjRD+/vKYnelScIiv0sX9YYek0wpg= +github.com/gobuffalo/buffalo v0.13.7/go.mod h1:3gQwZhI8DSbqmDqlFh7kfwuv/wd40rqdVxXtFWlCQHw= +github.com/gobuffalo/buffalo v0.13.9/go.mod h1:vIItiQkTHq46D1p+bw8mFc5w3BwrtJhMvYjSIYK3yjE= +github.com/gobuffalo/buffalo v0.13.12/go.mod h1:Y9e0p0cdo/eI+lHm7EFzlkc9YzjwGo5QeDj+FbsyqVA= +github.com/gobuffalo/buffalo v0.13.13/go.mod h1:WAL36xBN8OkU71lNjuYv6llmgl0o8twjlY+j7oGUmYw= +github.com/gobuffalo/buffalo v0.14.0/go.mod h1:A9JI3juErlXNrPBeJ/0Pdky9Wz+GffEg7ZN0d1B5h48= +github.com/gobuffalo/buffalo v0.14.2/go.mod h1:VNMTzddg7bMnkVxCUXzqTS4PvUo6cDOs/imtG8Cnt/k= +github.com/gobuffalo/buffalo v0.14.3/go.mod h1:3O9vB/a4UNb16TevehTvDCaPnb98NWvYz0msJQ6ZlVA= +github.com/gobuffalo/buffalo v0.14.5/go.mod h1:RWK6evR4hY4nRVfw9xie9V/LYK3j0U9wU2oKgQUFZ88= +github.com/gobuffalo/buffalo v0.14.6/go.mod h1:71Un+T2JGgwXLjBqYFdGSooz/OUjw15BJM0nbbcAM0o= +github.com/gobuffalo/buffalo-docker v1.0.5/go.mod h1:NZ3+21WIdqOUlOlM2onCt7cwojYp4Qwlsngoolw8zlE= +github.com/gobuffalo/buffalo-docker v1.0.6/go.mod h1:UlqKHJD8CQvyIb+pFq+m/JQW2w2mXuhxsaKaTj1X1XI= +github.com/gobuffalo/buffalo-docker v1.0.7/go.mod h1:BdB8AhcmjwR6Lo3rDPMzyh/+eNjYnZ1TAO0eZeLkhig= +github.com/gobuffalo/buffalo-plugins v1.0.2/go.mod h1:pOp/uF7X3IShFHyobahTkTLZaeUXwb0GrUTb9ngJWTs= +github.com/gobuffalo/buffalo-plugins v1.0.4/go.mod h1:pWS1vjtQ6uD17MVFWf7i3zfThrEKWlI5+PYLw/NaDB4= +github.com/gobuffalo/buffalo-plugins v1.4.3/go.mod h1:uCzTY0woez4nDMdQjkcOYKanngeUVRO2HZi7ezmAjWY= +github.com/gobuffalo/buffalo-plugins v1.5.1/go.mod h1:jbmwSZK5+PiAP9cC09VQOrGMZFCa/P0UMlIS3O12r5w= +github.com/gobuffalo/buffalo-plugins v1.6.1/go.mod h1:/XZt7UuuDnx5P4v3cStK0+XoYiNOA2f0wDIsm1oLJQA= +github.com/gobuffalo/buffalo-plugins v1.6.4/go.mod h1:/+N1aophkA2jZ1ifB2O3Y9yGwu6gKOVMtUmJnbg+OZI= +github.com/gobuffalo/buffalo-plugins v1.6.5/go.mod h1:0HVkbgrVs/MnPZ/FOseDMVanCTm2RNcdM0PuXcL1NNI= +github.com/gobuffalo/buffalo-plugins v1.6.6/go.mod h1:hSWAEkJyL9RENJlmanMivgnNkrQ9RC4xJARz8dQryi0= +github.com/gobuffalo/buffalo-plugins v1.6.7/go.mod h1:ZGZRkzz2PiKWHs0z7QsPBOTo2EpcGRArMEym6ghKYgk= +github.com/gobuffalo/buffalo-plugins v1.6.9/go.mod h1:yYlYTrPdMCz+6/+UaXg5Jm4gN3xhsvsQ2ygVatZV5vw= +github.com/gobuffalo/buffalo-plugins v1.6.10/go.mod h1:HxzPZjAEzh9H0gnHelObxxrut9O+1dxydf7U93SYsc8= +github.com/gobuffalo/buffalo-plugins v1.6.11/go.mod h1:eAA6xJIL8OuynJZ8amXjRmHND6YiusVAaJdHDN1Lu8Q= +github.com/gobuffalo/buffalo-plugins v1.7.2/go.mod h1:vEbx30cLFeeZ48gBA/rkhbqC2M/2JpsKs5CoESWhkPw= +github.com/gobuffalo/buffalo-plugins v1.8.1/go.mod h1:vu71J3fD4b7KKywJQ1tyaJGtahG837Cj6kgbxX0e4UI= +github.com/gobuffalo/buffalo-plugins v1.8.2/go.mod h1:9te6/VjEQ7pKp7lXlDIMqzxgGpjlKoAcAANdCgoR960= +github.com/gobuffalo/buffalo-plugins v1.8.3/go.mod h1:IAWq6vjZJVXebIq2qGTLOdlXzmpyTZ5iJG5b59fza5U= +github.com/gobuffalo/buffalo-plugins v1.9.3/go.mod h1:BNRunDThMZKjqx6R+n14Rk3sRSOWgbMuzCKXLqbd7m0= +github.com/gobuffalo/buffalo-plugins v1.9.4/go.mod h1:grCV6DGsQlVzQwk6XdgcL3ZPgLm9BVxlBmXPMF8oBHI= +github.com/gobuffalo/buffalo-plugins v1.10.0/go.mod h1:4osg8d9s60txLuGwXnqH+RCjPHj9K466cDFRl3PErHI= +github.com/gobuffalo/buffalo-plugins v1.11.0/go.mod h1:rtIvAYRjYibgmWhnjKmo7OadtnxuMG5ZQLr25ozAzjg= +github.com/gobuffalo/buffalo-plugins v1.12.0/go.mod h1:kw4Mj2vQXqe4X5TI36PEQgswbL30heGQwJEeDKd1v+4= +github.com/gobuffalo/buffalo-plugins v1.13.0/go.mod h1:Y9nH2VwHVkeKhmdM380ulNXmhhD5On81nRVeD+WlDTQ= +github.com/gobuffalo/buffalo-plugins v1.13.1/go.mod h1:VcvhrgWcZLhOp8JPLckHBDtv05KepY/MxHsT2+06xX4= +github.com/gobuffalo/buffalo-plugins v1.14.0/go.mod h1:r2lykSXBT79c3T5JK1ouivVDrHvvCZUdZBmn+lPMHU8= +github.com/gobuffalo/buffalo-plugins v1.14.1/go.mod h1:9BRBvXuKxR0m4YttVFRtuUcAP9Rs97mGq6OleyDbIuo= +github.com/gobuffalo/buffalo-pop v1.0.5/go.mod h1:Fw/LfFDnSmB/vvQXPvcXEjzP98Tc+AudyNWUBWKCwQ8= +github.com/gobuffalo/buffalo-pop v1.1.2/go.mod h1:czNLXcYbg5/fjr+uht0NyjZaQ0V2W23H1jzyORgCzQ4= +github.com/gobuffalo/buffalo-pop v1.1.5/go.mod h1:H01JIg42XwOHS4gRMhSeDZqBovNVlfBUsVXckU617s4= +github.com/gobuffalo/buffalo-pop v1.1.8/go.mod h1:1uaxOFzzVud/zR5f1OEBr21tMVLQS3OZpQ1A5cr0svE= +github.com/gobuffalo/buffalo-pop v1.1.13/go.mod h1:47GQoBjCMcl5Pw40iCWHQYJvd0HsT9kdaOPWgnzHzk4= +github.com/gobuffalo/buffalo-pop v1.1.14/go.mod h1:sAMh6+s7wytCn5cHqZIuItJbAqzvs6M7FemLexl+pwc= +github.com/gobuffalo/buffalo-pop v1.1.15/go.mod h1:vnvvxhbEFAaEbac9E2ZPjsBeL7WHkma2UyKNVA4y9Wo= +github.com/gobuffalo/buffalo-pop v1.2.1/go.mod h1:SHqojN0bVzaAzCbQDdWtsib202FDIxqwmCO8VDdweF4= +github.com/gobuffalo/buffalo-pop v1.3.0/go.mod h1:P0PhA225dRGyv0WkgYjYKqgoxPdDPDFZDvHj60AGF5w= +github.com/gobuffalo/buffalo-pop v1.6.0/go.mod h1:vrEVNOBKe042HjSNMj72J4FgER/VG6lt4xW6WMpTdlY= +github.com/gobuffalo/buffalo-pop v1.7.0/go.mod h1:UB5HHeFucJG7esTPUPjinBaJTEpVoREJHfSJJELnyeI= +github.com/gobuffalo/buffalo-pop v1.9.0/go.mod h1:MfrkBg0iN9+RdlxdHHAqqGFAC/iyCfTiKqH7Jvt+vhE= +github.com/gobuffalo/buffalo-pop v1.10.0/go.mod h1:C3/cFXB8Zd38XiGgHFdE7dw3Wu9MOKeD7bfELQicGPI= +github.com/gobuffalo/buffalo-pop v1.12.0/go.mod h1:pO2ONSJOCjyroGp4BwVHfMkfd7sLg1U9BvMJqRy6Otk= +github.com/gobuffalo/buffalo-pop v1.13.0/go.mod h1:h+zfyXCUFwihFqz6jmo9xsdsZ1Tm9n7knYpQjW0gv18= +github.com/gobuffalo/clara v0.4.1/go.mod h1:3QgAPqYgPqAzhfGbNLlp4UztaZRi2SOg+ZrZwaq9L94= +github.com/gobuffalo/clara v0.6.0/go.mod h1:RKZxkcH80pLykRi2hLkoxGMxA8T06Dc9fN/pFvutMFY= +github.com/gobuffalo/depgen v0.0.0-20190219190223-ba8c93fa0c2c/go.mod h1:CE/HUV4vDCXtJayRf6WoMWgezb1yH4QHg8GNK8FL0JI= +github.com/gobuffalo/depgen v0.0.0-20190315122043-8442b3fa16db/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= +github.com/gobuffalo/depgen v0.0.0-20190315124901-e02f65b90669/go.mod h1:yTQe8xo5pGIDOApkeO95DjePS4ZOSSSx+ItkqJHxUG4= +github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= +github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= +github.com/gobuffalo/depgen v0.1.1/go.mod h1:65EOv3g7CMe4kc8J1Ds+l2bjcwrWKGXkE4/vpRRLPWY= +github.com/gobuffalo/depgen v0.2.0/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= +github.com/gobuffalo/envy v1.6.4/go.mod h1:Abh+Jfw475/NWtYMEt+hnJWRiC8INKWibIMyNt1w2Mc= github.com/gobuffalo/envy v1.6.5/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ= github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= github.com/gobuffalo/envy v1.7.1/go.mod h1:FurDp9+EDPE4aIUS3ZLyD+7/9fpx7YRt/ukY6jIHf0w= @@ -694,7 +747,7 @@ github.com/gobuffalo/packr/v2 v2.5.1/go.mod h1:8f9c96ITobJlPzI44jj+4tHnEKNt0xXWS github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/gocql/gocql v0.0.0-20190301043612-f6df8288f9b4/go.mod h1:4Fw1eo5iaEhDUs8XyuhSVCVy52Jq3L+/3GJgYkwc+/0= github.com/gocql/gocql v0.0.0-20190402132108-0e1d5de854df/go.mod h1:4Fw1eo5iaEhDUs8XyuhSVCVy52Jq3L+/3GJgYkwc+/0= -github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= +github.com/godbus/dbus v0.0.0-20181025153459-66d97aec3384/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/godbus/dbus v0.0.0-20181101234600-2ff6f7ffd60f/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus v4.1.0+incompatible/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= @@ -809,7 +862,6 @@ github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/shlex v0.0.0-20181106134648-c34317bd91bf/go.mod h1:RpwtwJQFrIEPstU94h88MWPXP2ektJZ8cZ0YntAmXiE= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v0.0.0-20170306145142-6a5e28554805/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -823,7 +875,6 @@ github.com/googleapis/gax-go/v2 v2.0.3/go.mod h1:LLvjysVCY1JZeum8Z6l8qUty8fiNwE0 github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5 h1:sjZBwGj9Jlw33ImPtvFviGYvseOtDM7hkSKB7+Tv3SM= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.0.0-20170426233943-68f4ded48ba9/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.3.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= @@ -867,7 +918,6 @@ github.com/gostaticanalysis/analysisutil v0.0.3/go.mod h1:eEOZF4jCKGi+aprrirO9e7 github.com/gosuri/uitable v0.0.4/go.mod h1:tKR86bXuXPZazfOTG1FIzvjIdXzd0mo4Vtn16vt0PJo= github.com/gotestyourself/gotestyourself v2.2.0+incompatible/go.mod h1:zZKM6oeNM8k+FRljX1mnzVYeS8wiGgQyvST1/GafPbY= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.1.0 h1:THDBEeQ9xZ8JEaCLyLQqXMMdRqNr0QAUJTIkQAUtFjg= @@ -1048,7 +1098,7 @@ github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpO github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= github.com/iancoleman/strcase v0.0.0-20190422225806-e506e3ef7365/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd/go.mod h1:3LVOLeyx9XVvwPgrt2be44XgSqndprz1G18rSk8KD84= +github.com/imdario/mergo v0.3.4/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= @@ -1057,9 +1107,13 @@ github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJ github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/influxdata/influxdb v0.0.0-20190411212539-d24b7ba8c4c4/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY= +github.com/influxdata/influxdb v1.7.6/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY= github.com/influxdata/influxdb v1.7.7/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY= -github.com/ishidawataru/sctp v0.0.0-20180918013207-6e2cb1366111/go.mod h1:DM4VvS+hD/kDi1U1QsX2fnZowwBhqD0Dk3bRPKF/Oc8= -github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= +github.com/influxdata/influxql v1.0.0/go.mod h1:KpVI7okXjK6PRi3Z5B+mtKZli+R1DnZgb3N+tzevNgo= +github.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE= +github.com/influxdata/roaring v0.4.12/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE= +github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0= +github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po= github.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80sQsxDoMokWK1W5TQtxBFNpzWTD84ibQ= github.com/jackc/pgx v3.2.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I= github.com/jackc/pgx v3.3.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I= @@ -1072,6 +1126,7 @@ github.com/jen20/awspolicyequivalence v1.1.0/go.mod h1:PV1fS2xyHhCLp83vbgSMFr2dr github.com/jessevdk/go-flags v0.0.0-20180331124232-1c38ed7ad0cc/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8= +github.com/jingyugao/rowserrcheck v0.0.0-20191204022205-72ab7603b68a h1:GmsqmapfzSJkm28dhRoHz2tLRbJmqhU86IPgBtN3mmk= github.com/jingyugao/rowserrcheck v0.0.0-20191204022205-72ab7603b68a/go.mod h1:xRskid8CManxVta/ALEhJha/pweKBaVG6fWgc0yH25s= github.com/jirfag/go-printf-func-name v0.0.0-20191110105641-45db9963cdd3/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0= github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= @@ -1105,9 +1160,6 @@ github.com/jteeuwen/go-bindata v3.0.8-0.20151023091102-a0ff2567cfb7+incompatible github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/juju/errors v0.0.0-20180806074554-22422dad46e1/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= -github.com/juju/loggo v0.0.0-20190526231331-6e530bcce5d8/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= -github.com/juju/testing v0.0.0-20190613124551-e81189438503/go.mod h1:63prj8cnj0tU0S9OHjGJn+b1h0ZghCndfnbQolrYTwA= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= @@ -1182,7 +1234,6 @@ github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH github.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk= github.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao= github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58= -github.com/lusis/go-artifactory v0.0.0-20160115162124-7e4ce345df82 h1:wnfcqULT+N2seWf6y4yHzmi7GD2kNx4Ute0qArktD48= github.com/lusis/go-artifactory v0.0.0-20160115162124-7e4ce345df82/go.mod h1:y54tfGmO3NKssKveTEFFzH8C/akrSOy/iW9qEAUDV84= github.com/magiconair/properties v1.7.6/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= @@ -1191,12 +1242,24 @@ github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190620125010-da37f6c1e481/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM= github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= github.com/maorfr/helm-plugin-utils v0.0.0-20200216074820-36d2fcf6ae86/go.mod h1:p3gwmRSFqbWw6plBpR0sKl3n3vpu8kX70gvCJKMvvCA= github.com/markbates/inflect v1.0.4/go.mod h1:1fR9+pO2KHEO9ZRtto13gDwwZaAKstQzferVeWqbgNs= +github.com/markbates/oncer v0.0.0-20180924031910-e862a676800b/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= +github.com/markbates/oncer v0.0.0-20180924034138-723ad0170a46/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= +github.com/markbates/oncer v0.0.0-20181014194634-05fccaae8fc4/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= +github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= +github.com/markbates/refresh v1.4.10/go.mod h1:NDPHvotuZmTmesXxr95C9bjlw1/0frJwtME2dzcVKhc= +github.com/markbates/refresh v1.4.11/go.mod h1:awpJuyo4zgexB/JaHfmBX0sRdvOjo2dXwIayWIz9i3g= +github.com/markbates/refresh v1.5.0/go.mod h1:ZYMLkxV+x7wXQ2Xd7bXAPyF0EXiEWAMfiy/4URYb1+M= +github.com/markbates/refresh v1.6.0/go.mod h1:p8jWGABFUaFf/cSw0pxbo0MQVujiz5NTQ0bmCHLC4ac= +github.com/markbates/refresh v1.7.1/go.mod h1:hcGVJc3m5EeskliwSVJxcTHzUtMz2h8gBtCS0V94CgE= +github.com/markbates/safe v1.0.0/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= +github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= +github.com/markbates/sigtx v1.0.0/go.mod h1:QF1Hv6Ic6Ca6W+T+DL0Y/ypborFKyvUY9HmuCD4VeTc= +github.com/markbates/willie v1.0.9/go.mod h1:fsrFVWl91+gXpx/6dv715j7i11fYPfZ9ZGfH0DQzY7w= github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= github.com/martini-contrib/render v0.0.0-20150707142108-ec18f8345a11/go.mod h1:Ah2dBMoxZEqk118as2T4u4fjfXarE0pPnMJaArZQZsI= @@ -1229,7 +1292,6 @@ github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Ky github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= github.com/mattn/go-shellwords v1.0.4/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= github.com/mattn/go-shellwords v1.0.5/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= github.com/mattn/go-shellwords v1.0.9/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= @@ -1250,6 +1312,7 @@ github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00v github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.1.15 h1:CSSIDtllwGLMoA6zjdKnaE6Tx6eVUxQ29LUgGetiDCI= github.com/miekg/dns v1.1.15/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.22/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/mikefarah/yaml/v2 v2.4.0/go.mod h1:ahVqZF4n1W4NqwvVnZzC4es67xsW9uR/RRf2RRxieJU= @@ -1297,7 +1360,6 @@ github.com/mitchellh/prefixedio v0.0.0-20190213213902-5733675afd51/go.mod h1:kB1 github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/mitchellh/reflectwalk v1.0.1 h1:FVzMWA5RllMAKIdUSC8mdWo3XtwoecrH79BY70sEEpE= github.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/moby/moby v0.0.0-20171005181806-f8806b18b4b9/go.mod h1:fDXVQ6+S340veQPv35CzDahGBmHsiclFwfEygB/TWMc= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -1306,6 +1368,8 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/monoculum/formam v0.0.0-20180901015400-4e68be1d79ba/go.mod h1:RKgILGEJq24YyJ2ban8EO0RUVSJlF1pGsEvoLEACr/Q= +github.com/monoculum/formam v0.0.0-20190307031628-bc555adff0cd/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc= github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/mozilla/tls-observatory v0.0.0-20180409132520-8791a200eb40/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk= @@ -1315,7 +1379,7 @@ github.com/mozillazg/go-httpheader v0.2.1 h1:geV7TrjbL8KXSyvghnFm+NyTux/hxwueTSr github.com/mozillazg/go-httpheader v0.2.1/go.mod h1:jJ8xECTlalr6ValeXYdOF8fFUISeBAdw6E61aqQma60= github.com/mreiferson/go-httpclient v0.0.0-20160630210159-31f0106b4474/go.mod h1:OQA4XLvDbMgS8P0CevmM4m9Q3Jq4phKUzcocxuGJ5m8= github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= -github.com/mtrmac/gpgme v0.0.0-20170102180018-b2432428689c/go.mod h1:GhAqVMEWnTcW2dxoD/SO3n2enrgWl3y6Dnx4m59GvcA= +github.com/mtrmac/gpgme v0.1.2/go.mod h1:GYYHnGSuS7HK3zVS2n3y73y0okK/BeKzwnn5jgiVFNI= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/munnerz/goautoneg v0.0.0-20190414153302-2ae31c8b6b30/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= @@ -1326,6 +1390,9 @@ github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+ github.com/nakagami/firebirdsql v0.0.0-20190310045651-3c02a58cfed8/go.mod h1:86wM1zFnC6/uDBfZGNwB65O+pR2OFi5q/YQaEUid1qA= github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= +github.com/nats-io/go-nats v1.7.2/go.mod h1:+t7RHT5ApZebkrQdnn6AhQJmhJJiKAvJUio1PiiCtj0= +github.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4= +github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/nbutton23/zxcvbn-go v0.0.0-20160627004424-a22cb81b2ecd/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU= github.com/nbutton23/zxcvbn-go v0.0.0-20171102151520-eafdab6b0663/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU= github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU= @@ -1340,21 +1407,20 @@ github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQ github.com/oklog/ulid v0.0.0-20170117200651-66bb6560562f/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/olekukonko/tablewriter v0.0.0-20180130162743-b8a9be070da4/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.2/go.mod h1:rSAaSIOAGT9odnlyGlUfAJaoc5w2fSBUmeGDbRWPxyQ= -github.com/onsi/ginkgo v0.0.0-20151202141238-7f8ab55aaf3b/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.4.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.10.2/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0 h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw= github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.0 h1:Iw5WCbBcaAAd0fpRb1c9r5YCylv4XDoCSigm1zLevwU= github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg= -github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.3.0/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= @@ -1376,20 +1442,15 @@ github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zM github.com/opencontainers/image-spec v1.0.2-0.20190823105129-775207bd45b6 h1:yN8BPXVwMBAm3Cuvh1L5XE8XpvYRMdsVLd82ILprhUU= github.com/opencontainers/image-spec v1.0.2-0.20190823105129-775207bd45b6/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v0.0.0-20190425234816-dae70e8efea4/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= github.com/opencontainers/runc v0.0.0-20191031171055-b133feaeeb2e/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= github.com/opencontainers/runc v1.0.0-rc8/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= github.com/opencontainers/runc v1.0.0-rc8.0.20190827142921-dd075602f158/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v0.1.2-0.20190618234442-a950415649c7/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= -github.com/opencontainers/runtime-tools v0.9.0/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= github.com/opencontainers/selinux v1.2.2/go.mod h1:+BLncwf63G4dgOzykXAxcmnFlUaOlkDdmw/CqsW6pjs= -github.com/opencontainers/selinux v1.3.0/go.mod h1:+BLncwf63G4dgOzykXAxcmnFlUaOlkDdmw/CqsW6pjs= github.com/opencontainers/selinux v1.3.1-0.20190929122143-5215b1806f52/go.mod h1:+BLncwf63G4dgOzykXAxcmnFlUaOlkDdmw/CqsW6pjs= github.com/openshift-metal3/terraform-provider-ironic v0.2.1 h1:K/tPSylailvH70zCR2zbugv+y/zs79a0Ri596sqS9nA= github.com/openshift-metal3/terraform-provider-ironic v0.2.1/go.mod h1:G79T6t60oBpYfZK/x960DRzYsNHdz5YVCHINx6QlmtU= @@ -1404,7 +1465,6 @@ github.com/openshift/client-go v0.0.0-20200116152001-92a2713fa240/go.mod h1:4riO github.com/openshift/cloud-credential-operator v0.0.0-20200316201045-d10080b52c9e h1:2gyl9UVyjHSWzdS56KUXxQwIhENbq2x2olqoMQSA/C8= github.com/openshift/cloud-credential-operator v0.0.0-20200316201045-d10080b52c9e/go.mod h1:iPn+uhIe7nkP5BMHe2QnbLtg5m/AIQ1xvz9s3cig5ss= github.com/openshift/cluster-api v0.0.0-20190805113604-f8de78af80fc/go.mod h1:mNsD1dsD4T57kV4/C6zTHke/Ro166xgnyyRZqkamiEU= -github.com/openshift/cluster-api v0.0.0-20190923092624-4024de4fa64d/go.mod h1:mNsD1dsD4T57kV4/C6zTHke/Ro166xgnyyRZqkamiEU= github.com/openshift/cluster-api v0.0.0-20191030113141-9a3a7bbe9258/go.mod h1:T18COkr6nLh9RyZKPMP7YjnwBME7RX8P2ar1SQbBltM= github.com/openshift/cluster-api v0.0.0-20191129101638-b09907ac6668 h1:IDZyg/Kye98ptqpc9j9rzPjZJlijjEDe8g7TZ67CmLU= github.com/openshift/cluster-api v0.0.0-20191129101638-b09907ac6668/go.mod h1:T18COkr6nLh9RyZKPMP7YjnwBME7RX8P2ar1SQbBltM= @@ -1428,9 +1488,9 @@ github.com/openshift/cluster-etcd-operator v0.0.0-alpha.0.0.20191025163650-5854b github.com/openshift/cluster-version-operator v3.11.1-0.20190629164025-08cac1c02538+incompatible/go.mod h1:0BbpR1mrN0F2ZRae5N1XHcytmkvVPaeKgSQwRRBWugc= github.com/openshift/hashicorp-terraform-plugin-sdk v1.6.0-openshift h1:lfMsjeRYTWs2FmLo9ak0fqV7ekzpKUtV2JkLKdlx3Zk= github.com/openshift/hashicorp-terraform-plugin-sdk v1.6.0-openshift/go.mod h1:H5QLx/uhwfxBZ59Bc5SqT19M4i+fYt7LZjHTpbLZiAg= -github.com/openshift/imagebuilder v1.1.0/go.mod h1:9aJRczxCH0mvT6XQ+5STAQaPWz7OsWcU5/mRkt8IWeo= github.com/openshift/library-go v0.0.0-20190619114638-6b58b672ee58/go.mod h1:NBttNjZpWwup/nthuLbPAPSYC8Qyo+BBK5bCtFoyYjo= github.com/openshift/library-go v0.0.0-20191003152030-97c62d8a2901/go.mod h1:NBttNjZpWwup/nthuLbPAPSYC8Qyo+BBK5bCtFoyYjo= +github.com/openshift/library-go v0.0.0-20200320155611-2a351bebf158/go.mod h1:Qc5duoXHzAKyUfA0REIlG/rdfWzknOpp9SiDiyg5Y7A= github.com/openshift/library-go v0.0.0-20200324092245-db2a8546af81 h1:bNUcSdyoACkjI2USyvDbAMb6lCtghdz563b0bfhPC8A= github.com/openshift/library-go v0.0.0-20200324092245-db2a8546af81/go.mod h1:Qc5duoXHzAKyUfA0REIlG/rdfWzknOpp9SiDiyg5Y7A= github.com/openshift/machine-api-operator v0.0.0-20190312153711-9650e16c9880/go.mod h1:7HeAh0v04zQn1L+4ItUjvpBQYsm2Nf81WaZLiXTcnkc= @@ -1438,8 +1498,8 @@ github.com/openshift/machine-api-operator v0.2.1-0.20191128180243-986b771e661d/g github.com/openshift/machine-api-operator v0.2.1-0.20200402110321-4f3602b96da3/go.mod h1:46g2eLjzAcaNURYDvhGu0GhyjKzOlCPqixEo68lFBLs= github.com/openshift/machine-api-operator v0.2.1-0.20200429102619-d36974451290 h1:0QnZvWW2X/4fCmIlOWsm3FmHZnsh2sCBfsQE/ujGhsw= github.com/openshift/machine-api-operator v0.2.1-0.20200429102619-d36974451290/go.mod h1:QkhH+/6BXabl+4HmiLwx9/bmW1ieCGF9km7xz22Ozl0= -github.com/openshift/machine-config-operator v0.0.1-0.20200130220348-e5685c0cf530 h1:r9eSp963LcaLw3YUyJHMHwZYXoaGXOc2MOKVQQrdRmw= -github.com/openshift/machine-config-operator v0.0.1-0.20200130220348-e5685c0cf530/go.mod h1:z3udws7UDLBp233iGbayvpZEwhWn74K9xzjDtCGJlok= +github.com/openshift/machine-config-operator v0.0.1-0.20200609021741-16da55b2a211 h1:Wa4IqnXLIpt9CDwv3uthJAC5aNz7tfw5bv+ymrqWqww= +github.com/openshift/machine-config-operator v0.0.1-0.20200609021741-16da55b2a211/go.mod h1:PzGMX+rpfL0vzL7+Fqn1Dz6+I06kA4raunYQQ7dAYpY= github.com/openshift/origin v0.0.0-20160503220234-8f127d736703/go.mod h1:0Rox5r9C8aQn6j1oAOQ0c1uC86mYbUFObzjBRvUKHII= github.com/openshift/prom-label-proxy v0.1.1-0.20191016113035-b8153a7f39f1/go.mod h1:p5MuxzsYP1JPsNGwtjtcgRHHlGziCJJfztff91nNixw= github.com/openshift/runtime-utils v0.0.0-20191011150825-9169de69ebf6/go.mod h1:5gDRVvQwesU7cfwlpuMivdv3Dz/oslvv2qTBHCy4wqQ= @@ -1467,7 +1527,6 @@ github.com/operator-framework/operator-sdk v0.5.1-0.20190301204940-c2efe6f74e7b/ github.com/operator-framework/operator-sdk v0.17.0/go.mod h1:wmYi08aoUmtgfoUamURmssI4dkdFGNtSI1Egj+ZfBnk= github.com/oracle/oci-go-sdk v7.0.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukwStZIg5F66tcBccjip/j888= github.com/ory/dockertest v3.3.4+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= -github.com/ostreedev/ostree-go v0.0.0-20190702140239-759a8c1ac913/go.mod h1:J6OG6YJVEWopen4avK3VNQSnALmmjvniMmni/YFYAwc= github.com/otiai10/copy v1.0.1/go.mod h1:8bMCJrAqOtN/d9oyh5HR7HhLQMvcGMpGdwRDYsfOCHc= github.com/otiai10/copy v1.0.2/go.mod h1:c7RpqBkwMom4bYTSkLSym4VSJz/XtncWRAj/J4PEIMY= github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= @@ -1476,7 +1535,8 @@ github.com/otiai10/mint v1.2.3/go.mod h1:YnfyPNhBvnY8bW4SGQHCs/aAFhkgySlMZbrF5U0 github.com/otiai10/mint v1.2.4/go.mod h1:d+b7n/0R3tdyUYYylALXpWQ/kTN+QobSq/4SRGBkR3M= github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= github.com/ovirt/go-ovirt v0.0.0-20200313072907-d30f754823a6/go.mod h1:fLDxPk1Sf64DBYtwIYxrnx3gPZ1q0xPdWdI1y9vxUaw= -github.com/ovirt/go-ovirt v0.0.0-20200428093010-9bcc4fd4e6c0 h1:9dTL3/s4HXoLerbZL/N6EVHX62JWXNMIxJ+ephNTTYI= +github.com/ovirt/go-ovirt v0.0.0-20200320082526-4e97a11ff083 h1:nW3qTnZ+ytoEZ1JL0EW3+mwjVcfjZ9WB3tSfOHQREgM= +github.com/ovirt/go-ovirt v0.0.0-20200320082526-4e97a11ff083/go.mod h1:fLDxPk1Sf64DBYtwIYxrnx3gPZ1q0xPdWdI1y9vxUaw= github.com/ovirt/go-ovirt v0.0.0-20200428093010-9bcc4fd4e6c0/go.mod h1:fLDxPk1Sf64DBYtwIYxrnx3gPZ1q0xPdWdI1y9vxUaw= github.com/ovirt/go-ovirt v0.0.0-20200613023950-320a86f9df27 h1:jHcZg49imi3zydtFqly5vniMnFX7HxW27L9M095eLhI= github.com/ovirt/go-ovirt v0.0.0-20200613023950-320a86f9df27/go.mod h1:fLDxPk1Sf64DBYtwIYxrnx3gPZ1q0xPdWdI1y9vxUaw= @@ -1495,7 +1555,7 @@ github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.1.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo= +github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= @@ -1503,9 +1563,9 @@ github.com/pierrec/lz4 v2.2.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi github.com/pierrec/lz4 v2.2.6+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4 v2.3.0+incompatible h1:CZzRn4Ut9GbUkHlQ7jqBXeZQV41ZSKWFc302ZU6lUTk= github.com/pierrec/lz4 v2.3.0+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pin/tftp v2.1.0+incompatible/go.mod h1:xVpZOMCXTy+A5QMjEVN0Glwa1sUvaJhFXbr/aAxuxGY= github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4 h1:49lOXmGaUpV9Fz3gd7TFZY106KVlPVa5jcYD1gaQf98= github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA= -github.com/pkg/errors v0.0.0-20190227000051-27936f6d90f9/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -1588,10 +1648,11 @@ github.com/quasilyte/go-consistent v0.0.0-20190521200055-c6f3937de18c/go.mod h1: github.com/quobyte/api v0.1.2/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= +github.com/remyoudompheng/bigfft v0.0.0-20190512091148-babf20351dd7/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/retailnext/hllpp v1.0.0/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= github.com/robfig/cron v0.0.0-20170526150127-736158dc09e1/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= -github.com/rogpeppe/fastuuid v1.1.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc= github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= @@ -1599,16 +1660,19 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.3.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.5.0/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= +github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= +github.com/rs/zerolog v1.4.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/rubenv/sql-migrate v0.0.0-20191025130928-9355dd04f4b3/go.mod h1:WS0rl9eEliYI8DPnr3TOwz4439pay+qNgzJoVya/DmY= github.com/rubiojr/go-vhd v0.0.0-20160810183302-0bfd3b39853c/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto= github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= +github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd/go.mod h1:hPqNNc0+uJM6H+SuU8sEs5K5IQeKccPqeSjfgcKGgPk= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/go-glob v0.0.0-20170128012129-256dc444b735/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= -github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= github.com/samuel/go-zookeeper v0.0.0-20180130194729-c4fab1ac1bec/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/samuel/go-zookeeper v0.0.0-20190810000440-0ceca61e4d75/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= @@ -1622,10 +1686,6 @@ github.com/satori/uuid v1.2.0/go.mod h1:B8HLsPLik/YNn6KKWVMDJ8nzCL8RP5WyfsnmvnAE github.com/sclevine/spec v1.2.0/go.mod h1:W4J29eT/Kzv7/b9IWLB055Z+qvVC9vt0Arko24q7p+U= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/seccomp/containers-golang v0.0.0-20180629143253-cdfdaa7543f4/go.mod h1:f/98/SnvAzhAEFQJ3u836FePXvcbE8BS0YGMQNn4mhA= -github.com/seccomp/containers-golang v0.0.0-20190312124753-8ca8945ccf5f/go.mod h1:f/98/SnvAzhAEFQJ3u836FePXvcbE8BS0YGMQNn4mhA= -github.com/seccomp/containers-golang v0.3.1/go.mod h1:ZUNmbYf+/7mfX5qYV07/krJnTdQQRF67rBMOwzciCwE= -github.com/seccomp/libseccomp-golang v0.9.0/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= github.com/securego/gosec v0.0.0-20191002120514-e680875ea14d/go.mod h1:w5+eXa0mYznDkHaMCXA4XYffjlH+cy1oyKbfzJXa2Do= github.com/securego/gosec v0.0.0-20200103095621-79fbf3af8d83/go.mod h1:vvbZ2Ae7AzSq3/kywjUDxSNq2SJ27RxCz2un0H3ePqE= @@ -1665,7 +1725,6 @@ github.com/shurcooL/vfsgen v0.0.0-20180825020608-02ddb050ef6b/go.mod h1:TrYk7fJV github.com/shurcooL/vfsgen v0.0.0-20181202132449-6a9ea43bcacd h1:ug7PpSOB5RBPK1Kg6qskGBoP3Vnj/aNYFTznWvlkGo0= github.com/shurcooL/vfsgen v0.0.0-20181202132449-6a9ea43bcacd/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw= github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw= -github.com/sirupsen/logrus v0.0.0-20190403091019-9b3cdde74fbe/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= github.com/sirupsen/logrus v1.0.5/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= @@ -1680,6 +1739,7 @@ github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1 github.com/smartystreets/assertions v1.0.1 h1:voD4ITNjPL5jjBfgR/r8fPIIBrliWrWHeiJApdr3r4w= github.com/smartystreets/assertions v1.0.1/go.mod h1:kHHU4qYBaI3q23Pp3VPrmWhuIUrLW/7eUrw0BU5VaoM= github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s= +github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa/go.mod h1:2RVY1rIf+2J2o/IM9+vPq9RzmHDSseB7FoXiSNIUsoU= github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= @@ -1774,17 +1834,13 @@ github.com/tombuildsstuff/go-autorest/autorest/azure/auth v0.4.3-0.2020041618430 github.com/tombuildsstuff/go-autorest/autorest/azure/auth v0.4.3-0.20200416184303-d4e299a3c04a/go.mod h1:jyL63IJfcs2j+2n9xmyFz6yUnXex+c/ZfelxDwSbkdc= github.com/tommy-muehle/go-mnd v1.1.1/go.mod h1:dSUh0FtTP8VhvkL1S+gUR1OKd9ZnSaozuI6r3m6wOig= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= -github.com/uber/jaeger-client-go v2.16.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-client-go v2.20.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= -github.com/uber/jaeger-lib v0.0.0-20190122222657-d036253de8f5/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= github.com/uber/jaeger-lib v2.2.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= github.com/ugorji/go v0.0.0-20180813092308-00b869d2f4a5/go.mod h1:hnLbHMwcvSihnDhEfx2/BzKp2xb0Y+ErdfYcrs9tkJQ= github.com/ugorji/go v1.1.2/go.mod h1:hnLbHMwcvSihnDhEfx2/BzKp2xb0Y+ErdfYcrs9tkJQ= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go v1.1.5-pre/go.mod h1:FwP/aQVg39TXzItUBMwnWp9T9gPQnXw4Poh4/oBQZ/0= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/ugorji/go/codec v0.0.0-20190204201341-e444a5086c43/go.mod h1:iT03XoTwV7xq/+UGwKO3UbC1nNNlopQiY61beSdrtOA= -github.com/ugorji/go/codec v1.1.5-pre/go.mod h1:tULtS6Gy1AE1yCENaw4Vb//HLH5njI2tfCQDUqRd8fI= github.com/ulikunitz/xz v0.5.5/go.mod h1:2bypXElzHzzJZwzH67Y6wb67pO62Rzfn7BSiF4ABRW8= github.com/ulikunitz/xz v0.5.6 h1:jGHAfXawEGZQ3blwU5wnWKQJvAraT7Ftq9EXjnXYgt8= github.com/ulikunitz/xz v0.5.6/go.mod h1:2bypXElzHzzJZwzH67Y6wb67pO62Rzfn7BSiF4ABRW8= @@ -1793,8 +1849,6 @@ github.com/ultraware/funlen v0.0.2/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lP github.com/ultraware/whitespace v0.0.4/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA= github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.21.0/go.mod h1:lxDj6qX9Q6lWQxIrbrT0nwecwUtRnhVZAJjJZrVUZZQ= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/uudashr/gocognit v1.0.1/go.mod h1:j44Ayx2KW4+oB6SWMv8KsmHzZrOInQav7D3cQMJ5JUM= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= @@ -1802,19 +1856,13 @@ github.com/valyala/fasthttp v1.2.0/go.mod h1:4vX61m6KN+xDduDNwXrhIAVZaZaZiQ1luJk github.com/valyala/quicktemplate v1.1.1/go.mod h1:EH+4AkTd43SvgIbQHYu59/cJyxDoOVRUAfrukLPuGJ4= github.com/valyala/quicktemplate v1.2.0/go.mod h1:EH+4AkTd43SvgIbQHYu59/cJyxDoOVRUAfrukLPuGJ4= github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= -github.com/varlink/go v0.0.0-20190502142041-0f1d566d194b/go.mod h1:YHaw8N660ESgMgLOZfLQqT1htFItynAUxMesFBho52s= -github.com/vbatts/git-validation v1.0.0/go.mod h1:QyK3uQnRYWGt/5ezd8kcpwPrm6zn9tNM/KtozbpfU6k= github.com/vbatts/tar-split v0.11.1/go.mod h1:LEuURwDEiWjRjwu46yU3KVGuUdVv/dcnpcEPSzR8z6g= -github.com/vbauerster/mpb v3.4.0+incompatible/go.mod h1:zAHG26FUhVKETRu+MWqYXcI70POlC6N8up9p1dID7SU= github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= github.com/vincent-petithory/dataurl v0.0.0-20160330182126-9a301d65acbb/go.mod h1:FHafX5vmDzyP+1CQATJn7WFKc9CvnvxyvZy6I1MrG/U= github.com/vincent-petithory/dataurl v0.0.0-20191104211930-d1553a71de50 h1:uxE3GYdXIOfhMv3unJKETJEhw78gvzuQqRX/rVirc2A= github.com/vincent-petithory/dataurl v0.0.0-20191104211930-d1553a71de50/go.mod h1:FHafX5vmDzyP+1CQATJn7WFKc9CvnvxyvZy6I1MrG/U= -github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= github.com/vishvananda/netns v0.0.0-20171111001504-be1fbeda1936/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI= -github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI= -github.com/vishvananda/netns v0.0.0-20190625233234-7109fa855b0f/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI= github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= github.com/vmihailenco/msgpack v4.0.1+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= @@ -1823,6 +1871,7 @@ github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6Ac github.com/vmware/govmomi v0.22.2-0.20200420222347-5fceac570f29 h1:8S2J/LGp5U19G4tia+aq+KvlNPuynIeui7W8xc8PGqU= github.com/vmware/govmomi v0.22.2-0.20200420222347-5fceac570f29/go.mod h1:Y+Wq4lst78L85Ge/F8+ORXIWiKYqaro1vhAulACy9Lc= github.com/vmware/vmw-guestinfo v0.0.0-20170707015358-25eff159a728/go.mod h1:x9oS4Wk2s2u4tS29nEaDLdzvuHdB19CvSGJjPgkZJNk= +github.com/vmware/vmw-ovflib v0.0.0-20170608004843-1f217b9dc714/go.mod h1:jiPk45kn7klhByRvUq5i2vo1RtHKBHj+iWGFpxbXuuI= github.com/weppos/publicsuffix-go v0.4.0/go.mod h1:z3LCPQ38eedDQSwmsSRW4Y7t2L8Ln16JPQ02lHAdn5k= github.com/xanzy/go-gitlab v0.15.0/go.mod h1:8zdQa/ri1dfn8eS3Ir1SyfvOKlw7WBJ8DVThkpGiXrs= github.com/xanzy/ssh-agent v0.2.1 h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70= @@ -1908,8 +1957,11 @@ go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1 go4.org v0.0.0-20190313082347-94abd6928b1d/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= go4.org v0.0.0-20191010144846-132d2879e1e9 h1:zHLoVtbywceo2hE4Wqv8CmIufe7jDERQ2KJHZoSDfCU= go4.org v0.0.0-20191010144846-132d2879e1e9/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= +go4.org v0.0.0-20200104003542-c7e774b10ea0 h1:M6XsnQeLwG+rHQ+/rrGh3puBI3WZEy9TBWmf2H+enQA= +go4.org v0.0.0-20200104003542-c7e774b10ea0/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d/go.mod h1:OWs+y06UdEOHN4y+MfF/py+xQ/tYqIWW03b70/CG9Rw= golang.org/x/build v0.0.0-20190314133821-5284462c4bec/go.mod h1:atTaCNAy0f16Ah5aV1gMSwgiKVHwu/JncqDpuRr7lS4= +golang.org/x/build v0.0.0-20190626175840-54405f243e45/go.mod h1:fYw7AShPAhGMdXqA9gRadk/CcMsvLlClpE5oBwnS3dM= golang.org/x/build v0.0.0-20190927031335-2835ba2e683f/go.mod h1:fYw7AShPAhGMdXqA9gRadk/CcMsvLlClpE5oBwnS3dM= golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180426230345-b49d69b5da94/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1921,7 +1973,11 @@ golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181112202954-3d3f9f413869/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190102171810-8d7daa0c54b3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190103213133-ff983b9c42bc/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190122013713-64072686203f/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190130090550-b01c7a725664/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190222235706-ffb98f73852f/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1959,7 +2015,6 @@ golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE= golang.org/x/exp v0.0.0-20191029154019-8994fa331a53/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= golang.org/x/exp v0.0.0-20191129062945-2f5052295587 h1:5Uz0rkjCFu9BC9gCRN7EkwVvhNyQgGWb8KNJrPwBoHY= @@ -2035,7 +2090,6 @@ golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190918130420-a8b05e9114ab/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -2079,7 +2133,6 @@ golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20171026204733-164713f0dfce/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180117170059-2c42eef0765b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180824143301-4910a1d54f87/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -2127,15 +2180,14 @@ golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190919044723-0c1ff786ef13/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191002091554-b397fe3ad8ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191025021431-6c3a3bfe00ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191029155521-f43be2a4598c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191110163157-d32e6e3b99c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191112214154-59a1497f0cea/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191113165036-4c7a9d0fe056/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -2205,7 +2257,7 @@ golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190624180213-70d37148ca0c/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190624190245-7f2218787638/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190626204024-7ef8a99cf38d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190706070813-72ffa07ba3db/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= golang.org/x/tools v0.0.0-20190718200317-82a3ea8a504c/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= @@ -2218,7 +2270,6 @@ golang.org/x/tools v0.0.0-20190910044552-dd2b5c81c578/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190918214516-5a1a30219888/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190930201159-7c411dea38b0/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -2265,10 +2316,9 @@ gomodules.xyz/orderedmap v0.1.0/go.mod h1:g9/TPUCm1t2gwD3j3zfV8uylyYhVdCNSi+xCEI gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= gonum.org/v1/gonum v0.0.0-20190915125329-975d99cd20a9/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= -gonum.org/v1/gonum v0.0.0-20190929233944-b20cf7805fc4/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= +gonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= -gonum.org/v1/netlib v0.0.0-20190926062253-2d6e29b73a19/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= google.golang.org/api v0.0.0-20160322025152-9bf6e6e569ff/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= @@ -2321,7 +2371,6 @@ google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190508193815-b515fa19cec8/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190513181449-d00d292a067c/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= -google.golang.org/genproto v0.0.0-20190620144150-6af8c5fc6601/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= @@ -2389,6 +2438,7 @@ gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.0 h1:AQvPpx3LzTDM0AjnIRlVFwFFGC+npRopjZxLJj6gdno= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= +gopkg.in/mail.v2 v2.0.0-20180731213649-a0242b2233b4/go.mod h1:htwXN1Qh09vZJ1NVKxQqHPBaCBbzKhp5GzuJEA4VJWw= gopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U= gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= @@ -2400,6 +2450,7 @@ gopkg.in/square/go-jose.v2 v2.3.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76 gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/urfave/cli.v1 v1.20.0/go.mod h1:vuBzUtMdQeixQj8LVd+/98pzhxNGQoyuPBlsXHOQNO0= gopkg.in/warnings.v0 v0.1.1/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= @@ -2413,8 +2464,11 @@ gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20190502103701-55513cacd4ae/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966 h1:B0J02caTR6tpSJozBJyiAzT6CtBzjclw4pgm9gg8Ys0= gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20191010095647-fc94e3f71652 h1:VKvJ/mQ4BgCjZUDggYFxTe0qv9jPMHsZPD4Xt91Y5H4= +gopkg.in/yaml.v3 v3.0.0-20191010095647-fc94e3f71652/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v0.0.0-20190624233834-05ebafbffc79/go.mod h1:R//lfYlUuTOTfblYI3lGoAAAebUdzjvbmQsuB7Ykd90= gotest.tools v2.1.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= @@ -2452,7 +2506,6 @@ k8s.io/component-base v0.17.1/go.mod h1:LrBPZkXtlvGjBzDJa0+b7E5Ij4VoAAKrOGudRC5z k8s.io/cri-api v0.17.1/go.mod h1:BzAkbBHHp81d+aXzbiIcUbilLkbXa40B8mUHOk6EX3s= k8s.io/csi-translation-lib v0.17.1/go.mod h1:EWeHQJcexqar6avuUocMwEJOYkboteNM9ODXa3qoamc= k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20190327210449-e17681d19d3a/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20190822140433-26a664648505/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20190907103519-ebc107f98eab/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20191010091904-7fa3014cb28f/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= @@ -2469,7 +2522,6 @@ k8s.io/kube-controller-manager v0.17.1/go.mod h1:+jsQDMuaZzr0e2m5TMuSIz7jR0JlYCq k8s.io/kube-openapi v0.0.0-20180731170545-e3762e86a74c/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc= k8s.io/kube-openapi v0.0.0-20190228160746-b3a7cee44a30/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc= k8s.io/kube-openapi v0.0.0-20190320154901-5e45bb682580/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc= -k8s.io/kube-openapi v0.0.0-20190603182131-db7b694dc208/go.mod h1:nfDlWeOsu3pUf4yWGL+ERqohP4YsZcBJXWMK+gkzOA4= k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a h1:UcxjrRMyNx/i/y8G7kPvLyy7rfbeuf1PYyBf973pgyU= k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= k8s.io/kube-proxy v0.17.1/go.mod h1:Vz/TedeV9dMIBDTQ5FsmRLF+swQlKtVSvX394nnnCEg= @@ -2487,9 +2539,7 @@ k8s.io/utils v0.0.0-20190221042446-c2654d5206da/go.mod h1:8k8uAuAQ0rXslZKaEWd0c3 k8s.io/utils v0.0.0-20190308190857-21c4ce38f2a7/go.mod h1:8k8uAuAQ0rXslZKaEWd0c3oVhZz7sSzSiPnVZayjIX0= k8s.io/utils v0.0.0-20190506122338-8fab8cb257d5/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= k8s.io/utils v0.0.0-20190529001817-6999998975a7/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= -k8s.io/utils v0.0.0-20190607212802-c55fbcfc754a/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= k8s.io/utils v0.0.0-20190801114015-581e00157fb1/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= -k8s.io/utils v0.0.0-20190920012459-5008bf6f8cd6/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= k8s.io/utils v0.0.0-20190923111123-69764acb6e8e/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= k8s.io/utils v0.0.0-20191114184206-e782cd3c129f/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= k8s.io/utils v0.0.0-20191114200735-6ca3b61696b6/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= From e333587beccc1e2f3fa426f994f3c70659196a2d Mon Sep 17 00:00:00 2001 From: Vadim Rutkovsky Date: Sun, 5 Apr 2020 13:56:27 +0200 Subject: [PATCH 9/9] go mod vendor --- go.sum | 146 -------- .../coreos/ignition/config/v1/cloudinit.go | 53 --- .../coreos/ignition/config/v1/config.go | 59 --- .../coreos/ignition/config/v1/types/config.go | 35 -- .../coreos/ignition/config/v1/types/disk.go | 123 ------ .../coreos/ignition/config/v1/types/file.go | 39 -- .../ignition/config/v1/types/filesystem.go | 45 --- .../coreos/ignition/config/v1/types/group.go | 22 -- .../ignition/config/v1/types/networkd.go | 19 - .../ignition/config/v1/types/partition.go | 60 --- .../coreos/ignition/config/v1/types/passwd.go | 20 - .../coreos/ignition/config/v1/types/path.go | 31 -- .../coreos/ignition/config/v1/types/raid.go | 44 --- .../ignition/config/v1/types/storage.go | 21 -- .../ignition/config/v1/types/systemd.go | 19 - .../coreos/ignition/config/v1/types/unit.go | 73 ---- .../coreos/ignition/config/v1/types/user.go | 35 -- .../coreos/ignition/config/v2_0/append.go | 76 ---- .../coreos/ignition/config/v2_0/cloudinit.go | 53 --- .../coreos/ignition/config/v2_0/config.go | 70 ---- .../coreos/ignition/config/v2_0/translate.go | 173 --------- .../ignition/config/v2_0/types/compression.go | 31 -- .../ignition/config/v2_0/types/config.go | 87 ----- .../coreos/ignition/config/v2_0/types/disk.go | 126 ------- .../coreos/ignition/config/v2_0/types/file.go | 61 --- .../ignition/config/v2_0/types/filesystem.go | 60 --- .../ignition/config/v2_0/types/group.go | 22 -- .../coreos/ignition/config/v2_0/types/hash.go | 72 ---- .../ignition/config/v2_0/types/ignition.go | 64 ---- .../ignition/config/v2_0/types/networkd.go | 19 - .../ignition/config/v2_0/types/partition.go | 64 ---- .../ignition/config/v2_0/types/passwd.go | 20 - .../coreos/ignition/config/v2_0/types/path.go | 35 -- .../coreos/ignition/config/v2_0/types/raid.go | 44 --- .../ignition/config/v2_0/types/storage.go | 22 -- .../ignition/config/v2_0/types/systemd.go | 19 - .../coreos/ignition/config/v2_0/types/unit.go | 115 ------ .../coreos/ignition/config/v2_0/types/url.go | 69 ---- .../coreos/ignition/config/v2_0/types/user.go | 35 -- .../config/v2_0/types/verification.go | 19 - .../coreos/ignition/config/v2_1/append.go | 76 ---- .../coreos/ignition/config/v2_1/cloudinit.go | 53 --- .../coreos/ignition/config/v2_1/config.go | 68 ---- .../coreos/ignition/config/v2_1/translate.go | 236 ------------ .../coreos/ignition/config/v2_2/append.go | 76 ---- .../coreos/ignition/config/v2_2/cloudinit.go | 53 --- .../coreos/ignition/config/v2_2/config.go | 71 ---- .../coreos/ignition/config/v2_2/translate.go | 354 ------------------ .../v1/helpers.go | 56 --- .../v1/machineconfig.deepcopy.go | 57 --- .../v1/types.go | 18 +- .../v1/zz_generated.deepcopy.go | 49 +++ vendor/gopkg.in/yaml.v3/decode.go | 33 +- vendor/gopkg.in/yaml.v3/emitterc.go | 2 +- vendor/gopkg.in/yaml.v3/scannerc.go | 16 + vendor/modules.txt | 12 +- 56 files changed, 113 insertions(+), 3317 deletions(-) delete mode 100644 vendor/github.com/coreos/ignition/config/v1/cloudinit.go delete mode 100644 vendor/github.com/coreos/ignition/config/v1/config.go delete mode 100644 vendor/github.com/coreos/ignition/config/v1/types/config.go delete mode 100644 vendor/github.com/coreos/ignition/config/v1/types/disk.go delete mode 100644 vendor/github.com/coreos/ignition/config/v1/types/file.go delete mode 100644 vendor/github.com/coreos/ignition/config/v1/types/filesystem.go delete mode 100644 vendor/github.com/coreos/ignition/config/v1/types/group.go delete mode 100644 vendor/github.com/coreos/ignition/config/v1/types/networkd.go delete mode 100644 vendor/github.com/coreos/ignition/config/v1/types/partition.go delete mode 100644 vendor/github.com/coreos/ignition/config/v1/types/passwd.go delete mode 100644 vendor/github.com/coreos/ignition/config/v1/types/path.go delete mode 100644 vendor/github.com/coreos/ignition/config/v1/types/raid.go delete mode 100644 vendor/github.com/coreos/ignition/config/v1/types/storage.go delete mode 100644 vendor/github.com/coreos/ignition/config/v1/types/systemd.go delete mode 100644 vendor/github.com/coreos/ignition/config/v1/types/unit.go delete mode 100644 vendor/github.com/coreos/ignition/config/v1/types/user.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_0/append.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_0/cloudinit.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_0/config.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_0/translate.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_0/types/compression.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_0/types/config.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_0/types/disk.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_0/types/file.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_0/types/filesystem.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_0/types/group.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_0/types/hash.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_0/types/ignition.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_0/types/networkd.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_0/types/partition.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_0/types/passwd.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_0/types/path.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_0/types/raid.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_0/types/storage.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_0/types/systemd.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_0/types/unit.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_0/types/url.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_0/types/user.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_0/types/verification.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_1/append.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_1/cloudinit.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_1/config.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_1/translate.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_2/append.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_2/cloudinit.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_2/config.go delete mode 100644 vendor/github.com/coreos/ignition/config/v2_2/translate.go delete mode 100644 vendor/github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1/machineconfig.deepcopy.go diff --git a/go.sum b/go.sum index 616fad41d1f..d754ae62d65 100644 --- a/go.sum +++ b/go.sum @@ -157,7 +157,6 @@ github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:H github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= -github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/abdullin/seq v0.0.0-20160510034733-d5467c17e7af h1:DBNMBMuMiWYu0b+8KMJuWmfCkcxl09JwdlqwDZZ6U14= github.com/abdullin/seq v0.0.0-20160510034733-d5467c17e7af/go.mod h1:5Jv4cbFiHJMsVxt52+i0Ha45fjshj6wxYr1r19tB9bw= github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= @@ -282,16 +281,11 @@ github.com/btubbs/datetime v0.1.1/go.mod h1:n2BZ/2ltnRzNiz27aE3wUb2onNttQdC+WFxA github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50= github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= -github.com/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34= github.com/c4milo/gotoolkit v0.0.0-20170704181456-e37eeabad07e/go.mod h1:txokOny9wavBtq2PWuHmj1P+eFwpCsj+gQeNNANChfU= github.com/c4milo/gotoolkit v0.0.0-20190525173301-67483a18c17a h1:+uvtaGSLJh0YpLLHCQ9F+UVGy4UOS542hsjj8wBjvH0= github.com/c4milo/gotoolkit v0.0.0-20190525173301-67483a18c17a/go.mod h1:txokOny9wavBtq2PWuHmj1P+eFwpCsj+gQeNNANChfU= -github.com/caarlos0/ctrlc v1.0.0/go.mod h1:CdXpj4rmq0q/1Eb44M9zi2nKB0QraNKuRGYGrrHhcQw= -github.com/cactus/go-statsd-client/statsd v0.0.0-20190501063751-9a7692639588/go.mod h1:3/sdo8I67TaOslRGJ6FqQC/ynu+wg7H6IE4WYtr51hk= github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= github.com/campoy/embedmd v1.0.0/go.mod h1:oxyr9RCiSXg0M3VJ3ks0UGfp98BpSSGr0kpiX3MzVl8= -github.com/campoy/unique v0.0.0-20180121183637-88950e537e7e/go.mod h1:9IOqJGCPMSc6E5ydlp5NIonxObaeu/Iub/X03EKPVYo= -github.com/casbin/casbin v1.8.3/go.mod h1:z8uPsfBJGUsnkagrt3G8QvjgTKFMBJ32UP8HpZllfog= github.com/cenkalti/backoff v0.0.0-20181003080854-62661b46c409/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= @@ -321,7 +315,6 @@ github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMn github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/clarketm/json v1.14.1/go.mod h1:ynr2LRfb0fQU34l07csRNBTcivjySLLiY1YzQqKVfdo= -github.com/clbanning/x2j v0.0.0-20180326210544-5e605d46809c/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/cfssl v0.0.0-20190716005913-5fc50ce768d7/go.mod h1:yMWuSON2oQp+43nFtAV/uvKQIFpSPerB57DCt9t8sSA= @@ -362,11 +355,8 @@ github.com/coreos/bbolt v1.3.3 h1:n6AiVyVRKQFNb6mJlwESEvvLoDyiTzXX7ORAUlkeBdY= github.com/coreos/bbolt v1.3.3/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/container-linux-config-transpiler v0.9.0/go.mod h1:SlcxXZQ2c42knj8pezMiQsM1f+ADxFMjGetuMKR/YSQ= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.15+incompatible h1:+9RjdC18gMxNQVvSiXvObLu29mOFmkgdsB4cRTlV+EE= github.com/coreos/etcd v3.3.15+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/etcd v3.3.18+incompatible h1:Zz1aXgDrFFi1nadh58tA9ktt06cmPTwNNP3dXwIq1lE= -github.com/coreos/etcd v3.3.18+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/fcct v0.5.0/go.mod h1:cbE+j77YSQwFB2fozWVB3qsI2Pi3YiVEbDz/b6Yywdo= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-oidc v2.0.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= @@ -396,26 +386,15 @@ github.com/creack/pty v1.1.7 h1:6pwm8kMQKCmgUg0ZHTm5+/YvRK0s3THD/28+T6/kk4A= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/cznic/b v0.0.0-20180115125044-35e9bbe41f07/go.mod h1:URriBxXwVq5ijiJ12C7iIZqlA69nTlI+LgI6/pwftG8= -github.com/cznic/cc v0.0.0-20181122101902-d673e9b70d4d/go.mod h1:m3fD/V+XTB35Kh9zw6dzjMY+We0Q7PMf6LLIC4vuG9k= github.com/cznic/fileutil v0.0.0-20180108211300-6a051e75936f/go.mod h1:8S58EK26zhXSxzv7NQFpnliaOQsmDUxvoQO3rt154Vg= -github.com/cznic/fileutil v0.0.0-20181122101858-4d67cfea8c87/go.mod h1:8S58EK26zhXSxzv7NQFpnliaOQsmDUxvoQO3rt154Vg= github.com/cznic/golex v0.0.0-20170803123110-4ab7c5e190e4/go.mod h1:+bmmJDNmKlhWNG+gwWCkaBoTy39Fs+bzRxVBzoTQbIc= -github.com/cznic/golex v0.0.0-20181122101858-9c343928389c/go.mod h1:+bmmJDNmKlhWNG+gwWCkaBoTy39Fs+bzRxVBzoTQbIc= github.com/cznic/internal v0.0.0-20180608152220-f44710a21d00/go.mod h1:olo7eAdKwJdXxb55TKGLiJ6xt1H0/tiiRCWKVLmtjY4= -github.com/cznic/internal v0.0.0-20181122101858-3279554c546e/go.mod h1:olo7eAdKwJdXxb55TKGLiJ6xt1H0/tiiRCWKVLmtjY4= -github.com/cznic/ir v0.0.0-20181122101859-da7ba2ecce8b/go.mod h1:bctvsSxTD8Lpaj5RRQ0OrAAu4+0mD4KognDQItBNMn0= -github.com/cznic/lex v0.0.0-20181122101858-ce0fb5e9bb1b/go.mod h1:LcYbbl1tn/c31gGxe2EOWyzr7EaBcdQOoIVGvJMc7Dc= -github.com/cznic/lexer v0.0.0-20181122101858-e884d4bd112e/go.mod h1:YNGh5qsZlhFHDfWBp/3DrJ37Uy4pRqlwxtL+LS7a/Qw= github.com/cznic/lldb v1.1.0/go.mod h1:FIZVUmYUVhPwRiPzL8nD/mpFcJ/G7SSXjjXYG4uRI3A= github.com/cznic/mathutil v0.0.0-20180504122225-ca4c9f2c1369/go.mod h1:e6NPNENfs9mPDVNRekM7lKScauxd5kXTr1Mfyig6TDM= -github.com/cznic/mathutil v0.0.0-20181122101859-297441e03548/go.mod h1:e6NPNENfs9mPDVNRekM7lKScauxd5kXTr1Mfyig6TDM= github.com/cznic/ql v1.2.0/go.mod h1:FbpzhyZrqr0PVlK6ury+PoW3T0ODUV22OeWIxcaOrSE= github.com/cznic/sortutil v0.0.0-20150617083342-4c7342852e65/go.mod h1:q2w6Bg5jeox1B+QkJ6Wp/+Vn0G/bo3f1uY7Fn3vivIQ= github.com/cznic/strutil v0.0.0-20171016134553-529a34b1c186/go.mod h1:AHHPPPXTw0h6pVabbcbyGRK1DckRn7r/STdZEeIDzZc= -github.com/cznic/strutil v0.0.0-20181122101858-275e90344537/go.mod h1:AHHPPPXTw0h6pVabbcbyGRK1DckRn7r/STdZEeIDzZc= -github.com/cznic/xc v0.0.0-20181122101856-45b06973881e/go.mod h1:3oFoiOvCDBYH+swwf5+k/woVmWy7h1Fcyu8Qig/jjX0= github.com/cznic/zappy v0.0.0-20160723133515-2533cb5b45cc/go.mod h1:Y1SNZ4dRUOKXshKUbwUapqNncRrho4mkjQebgEHZLj8= -github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -544,7 +523,6 @@ github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32/go.mod h1:GIjDIg/heH github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M= github.com/go-asn1-ber/asn1-ber v1.3.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= @@ -662,78 +640,6 @@ github.com/go-toolsmith/pkgload v0.0.0-20181119091011-e9e65178eee8/go.mod h1:WoM github.com/go-toolsmith/pkgload v1.0.0/go.mod h1:5eFArkbO80v7Z0kdngIxsRXRMTaX4Ilcwuh3clNrQJc= github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= -github.com/gobuffalo/attrs v0.0.0-20190219185331-f338c9388485/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= -github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= -github.com/gobuffalo/attrs v0.1.0/go.mod h1:fmNpaWyHM0tRm8gCZWKx8yY9fvaNLo2PyzBNSrBZ5Hw= -github.com/gobuffalo/buffalo v0.12.8-0.20181004233540-fac9bb505aa8/go.mod h1:sLyT7/dceRXJUxSsE813JTQtA3Eb1vjxWfo/N//vXIY= -github.com/gobuffalo/buffalo v0.13.0/go.mod h1:Mjn1Ba9wpIbpbrD+lIDMy99pQ0H0LiddMIIDGse7qT4= -github.com/gobuffalo/buffalo v0.13.1/go.mod h1:K9c22KLfDz7obgxvHv1amvJtCQEZNiox9+q6FDJ1Zcs= -github.com/gobuffalo/buffalo v0.13.2/go.mod h1:vA8I4Dwcfkx7RAzIRHVDZxfS3QJR7muiOjX4r8P2/GE= -github.com/gobuffalo/buffalo v0.13.4/go.mod h1:y2jbKkO0k49OrNIOAkbWQiPBqxAFpHn5OKnkc7BDh+I= -github.com/gobuffalo/buffalo v0.13.5/go.mod h1:hPcP12TkFSZmT3gUVHZ24KRhTX3deSgu6QSgn0nbWf4= -github.com/gobuffalo/buffalo v0.13.6/go.mod h1:/Pm0MPLusPhWDayjRD+/vKYnelScIiv0sX9YYek0wpg= -github.com/gobuffalo/buffalo v0.13.7/go.mod h1:3gQwZhI8DSbqmDqlFh7kfwuv/wd40rqdVxXtFWlCQHw= -github.com/gobuffalo/buffalo v0.13.9/go.mod h1:vIItiQkTHq46D1p+bw8mFc5w3BwrtJhMvYjSIYK3yjE= -github.com/gobuffalo/buffalo v0.13.12/go.mod h1:Y9e0p0cdo/eI+lHm7EFzlkc9YzjwGo5QeDj+FbsyqVA= -github.com/gobuffalo/buffalo v0.13.13/go.mod h1:WAL36xBN8OkU71lNjuYv6llmgl0o8twjlY+j7oGUmYw= -github.com/gobuffalo/buffalo v0.14.0/go.mod h1:A9JI3juErlXNrPBeJ/0Pdky9Wz+GffEg7ZN0d1B5h48= -github.com/gobuffalo/buffalo v0.14.2/go.mod h1:VNMTzddg7bMnkVxCUXzqTS4PvUo6cDOs/imtG8Cnt/k= -github.com/gobuffalo/buffalo v0.14.3/go.mod h1:3O9vB/a4UNb16TevehTvDCaPnb98NWvYz0msJQ6ZlVA= -github.com/gobuffalo/buffalo v0.14.5/go.mod h1:RWK6evR4hY4nRVfw9xie9V/LYK3j0U9wU2oKgQUFZ88= -github.com/gobuffalo/buffalo v0.14.6/go.mod h1:71Un+T2JGgwXLjBqYFdGSooz/OUjw15BJM0nbbcAM0o= -github.com/gobuffalo/buffalo-docker v1.0.5/go.mod h1:NZ3+21WIdqOUlOlM2onCt7cwojYp4Qwlsngoolw8zlE= -github.com/gobuffalo/buffalo-docker v1.0.6/go.mod h1:UlqKHJD8CQvyIb+pFq+m/JQW2w2mXuhxsaKaTj1X1XI= -github.com/gobuffalo/buffalo-docker v1.0.7/go.mod h1:BdB8AhcmjwR6Lo3rDPMzyh/+eNjYnZ1TAO0eZeLkhig= -github.com/gobuffalo/buffalo-plugins v1.0.2/go.mod h1:pOp/uF7X3IShFHyobahTkTLZaeUXwb0GrUTb9ngJWTs= -github.com/gobuffalo/buffalo-plugins v1.0.4/go.mod h1:pWS1vjtQ6uD17MVFWf7i3zfThrEKWlI5+PYLw/NaDB4= -github.com/gobuffalo/buffalo-plugins v1.4.3/go.mod h1:uCzTY0woez4nDMdQjkcOYKanngeUVRO2HZi7ezmAjWY= -github.com/gobuffalo/buffalo-plugins v1.5.1/go.mod h1:jbmwSZK5+PiAP9cC09VQOrGMZFCa/P0UMlIS3O12r5w= -github.com/gobuffalo/buffalo-plugins v1.6.1/go.mod h1:/XZt7UuuDnx5P4v3cStK0+XoYiNOA2f0wDIsm1oLJQA= -github.com/gobuffalo/buffalo-plugins v1.6.4/go.mod h1:/+N1aophkA2jZ1ifB2O3Y9yGwu6gKOVMtUmJnbg+OZI= -github.com/gobuffalo/buffalo-plugins v1.6.5/go.mod h1:0HVkbgrVs/MnPZ/FOseDMVanCTm2RNcdM0PuXcL1NNI= -github.com/gobuffalo/buffalo-plugins v1.6.6/go.mod h1:hSWAEkJyL9RENJlmanMivgnNkrQ9RC4xJARz8dQryi0= -github.com/gobuffalo/buffalo-plugins v1.6.7/go.mod h1:ZGZRkzz2PiKWHs0z7QsPBOTo2EpcGRArMEym6ghKYgk= -github.com/gobuffalo/buffalo-plugins v1.6.9/go.mod h1:yYlYTrPdMCz+6/+UaXg5Jm4gN3xhsvsQ2ygVatZV5vw= -github.com/gobuffalo/buffalo-plugins v1.6.10/go.mod h1:HxzPZjAEzh9H0gnHelObxxrut9O+1dxydf7U93SYsc8= -github.com/gobuffalo/buffalo-plugins v1.6.11/go.mod h1:eAA6xJIL8OuynJZ8amXjRmHND6YiusVAaJdHDN1Lu8Q= -github.com/gobuffalo/buffalo-plugins v1.7.2/go.mod h1:vEbx30cLFeeZ48gBA/rkhbqC2M/2JpsKs5CoESWhkPw= -github.com/gobuffalo/buffalo-plugins v1.8.1/go.mod h1:vu71J3fD4b7KKywJQ1tyaJGtahG837Cj6kgbxX0e4UI= -github.com/gobuffalo/buffalo-plugins v1.8.2/go.mod h1:9te6/VjEQ7pKp7lXlDIMqzxgGpjlKoAcAANdCgoR960= -github.com/gobuffalo/buffalo-plugins v1.8.3/go.mod h1:IAWq6vjZJVXebIq2qGTLOdlXzmpyTZ5iJG5b59fza5U= -github.com/gobuffalo/buffalo-plugins v1.9.3/go.mod h1:BNRunDThMZKjqx6R+n14Rk3sRSOWgbMuzCKXLqbd7m0= -github.com/gobuffalo/buffalo-plugins v1.9.4/go.mod h1:grCV6DGsQlVzQwk6XdgcL3ZPgLm9BVxlBmXPMF8oBHI= -github.com/gobuffalo/buffalo-plugins v1.10.0/go.mod h1:4osg8d9s60txLuGwXnqH+RCjPHj9K466cDFRl3PErHI= -github.com/gobuffalo/buffalo-plugins v1.11.0/go.mod h1:rtIvAYRjYibgmWhnjKmo7OadtnxuMG5ZQLr25ozAzjg= -github.com/gobuffalo/buffalo-plugins v1.12.0/go.mod h1:kw4Mj2vQXqe4X5TI36PEQgswbL30heGQwJEeDKd1v+4= -github.com/gobuffalo/buffalo-plugins v1.13.0/go.mod h1:Y9nH2VwHVkeKhmdM380ulNXmhhD5On81nRVeD+WlDTQ= -github.com/gobuffalo/buffalo-plugins v1.13.1/go.mod h1:VcvhrgWcZLhOp8JPLckHBDtv05KepY/MxHsT2+06xX4= -github.com/gobuffalo/buffalo-plugins v1.14.0/go.mod h1:r2lykSXBT79c3T5JK1ouivVDrHvvCZUdZBmn+lPMHU8= -github.com/gobuffalo/buffalo-plugins v1.14.1/go.mod h1:9BRBvXuKxR0m4YttVFRtuUcAP9Rs97mGq6OleyDbIuo= -github.com/gobuffalo/buffalo-pop v1.0.5/go.mod h1:Fw/LfFDnSmB/vvQXPvcXEjzP98Tc+AudyNWUBWKCwQ8= -github.com/gobuffalo/buffalo-pop v1.1.2/go.mod h1:czNLXcYbg5/fjr+uht0NyjZaQ0V2W23H1jzyORgCzQ4= -github.com/gobuffalo/buffalo-pop v1.1.5/go.mod h1:H01JIg42XwOHS4gRMhSeDZqBovNVlfBUsVXckU617s4= -github.com/gobuffalo/buffalo-pop v1.1.8/go.mod h1:1uaxOFzzVud/zR5f1OEBr21tMVLQS3OZpQ1A5cr0svE= -github.com/gobuffalo/buffalo-pop v1.1.13/go.mod h1:47GQoBjCMcl5Pw40iCWHQYJvd0HsT9kdaOPWgnzHzk4= -github.com/gobuffalo/buffalo-pop v1.1.14/go.mod h1:sAMh6+s7wytCn5cHqZIuItJbAqzvs6M7FemLexl+pwc= -github.com/gobuffalo/buffalo-pop v1.1.15/go.mod h1:vnvvxhbEFAaEbac9E2ZPjsBeL7WHkma2UyKNVA4y9Wo= -github.com/gobuffalo/buffalo-pop v1.2.1/go.mod h1:SHqojN0bVzaAzCbQDdWtsib202FDIxqwmCO8VDdweF4= -github.com/gobuffalo/buffalo-pop v1.3.0/go.mod h1:P0PhA225dRGyv0WkgYjYKqgoxPdDPDFZDvHj60AGF5w= -github.com/gobuffalo/buffalo-pop v1.6.0/go.mod h1:vrEVNOBKe042HjSNMj72J4FgER/VG6lt4xW6WMpTdlY= -github.com/gobuffalo/buffalo-pop v1.7.0/go.mod h1:UB5HHeFucJG7esTPUPjinBaJTEpVoREJHfSJJELnyeI= -github.com/gobuffalo/buffalo-pop v1.9.0/go.mod h1:MfrkBg0iN9+RdlxdHHAqqGFAC/iyCfTiKqH7Jvt+vhE= -github.com/gobuffalo/buffalo-pop v1.10.0/go.mod h1:C3/cFXB8Zd38XiGgHFdE7dw3Wu9MOKeD7bfELQicGPI= -github.com/gobuffalo/buffalo-pop v1.12.0/go.mod h1:pO2ONSJOCjyroGp4BwVHfMkfd7sLg1U9BvMJqRy6Otk= -github.com/gobuffalo/buffalo-pop v1.13.0/go.mod h1:h+zfyXCUFwihFqz6jmo9xsdsZ1Tm9n7knYpQjW0gv18= -github.com/gobuffalo/clara v0.4.1/go.mod h1:3QgAPqYgPqAzhfGbNLlp4UztaZRi2SOg+ZrZwaq9L94= -github.com/gobuffalo/clara v0.6.0/go.mod h1:RKZxkcH80pLykRi2hLkoxGMxA8T06Dc9fN/pFvutMFY= -github.com/gobuffalo/depgen v0.0.0-20190219190223-ba8c93fa0c2c/go.mod h1:CE/HUV4vDCXtJayRf6WoMWgezb1yH4QHg8GNK8FL0JI= -github.com/gobuffalo/depgen v0.0.0-20190315122043-8442b3fa16db/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= -github.com/gobuffalo/depgen v0.0.0-20190315124901-e02f65b90669/go.mod h1:yTQe8xo5pGIDOApkeO95DjePS4ZOSSSx+ItkqJHxUG4= -github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= -github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= -github.com/gobuffalo/depgen v0.1.1/go.mod h1:65EOv3g7CMe4kc8J1Ds+l2bjcwrWKGXkE4/vpRRLPWY= -github.com/gobuffalo/depgen v0.2.0/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= -github.com/gobuffalo/envy v1.6.4/go.mod h1:Abh+Jfw475/NWtYMEt+hnJWRiC8INKWibIMyNt1w2Mc= github.com/gobuffalo/envy v1.6.5/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ= github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= github.com/gobuffalo/envy v1.7.1/go.mod h1:FurDp9+EDPE4aIUS3ZLyD+7/9fpx7YRt/ukY6jIHf0w= @@ -750,7 +656,6 @@ github.com/gocql/gocql v0.0.0-20190402132108-0e1d5de854df/go.mod h1:4Fw1eo5iaEhD github.com/godbus/dbus v0.0.0-20181025153459-66d97aec3384/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/godbus/dbus v0.0.0-20181101234600-2ff6f7ffd60f/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= -github.com/godbus/dbus v4.1.0+incompatible/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/flock v0.0.0-20190320160742-5135e617513b/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gofrs/flock v0.7.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= @@ -929,7 +834,6 @@ github.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpg github.com/grpc-ecosystem/grpc-gateway v1.6.2/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.2/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.4/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.12.1 h1:zCy2xE9ablevUOrUZc3Dl72Dt+ya2FNAvC2yLYMHzi4= @@ -1098,7 +1002,6 @@ github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpO github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= github.com/iancoleman/strcase v0.0.0-20190422225806-e506e3ef7365/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/imdario/mergo v0.3.4/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= @@ -1107,13 +1010,7 @@ github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJ github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/influxdata/influxdb v0.0.0-20190411212539-d24b7ba8c4c4/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY= -github.com/influxdata/influxdb v1.7.6/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY= github.com/influxdata/influxdb v1.7.7/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY= -github.com/influxdata/influxql v1.0.0/go.mod h1:KpVI7okXjK6PRi3Z5B+mtKZli+R1DnZgb3N+tzevNgo= -github.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE= -github.com/influxdata/roaring v0.4.12/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE= -github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0= -github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po= github.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80sQsxDoMokWK1W5TQtxBFNpzWTD84ibQ= github.com/jackc/pgx v3.2.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I= github.com/jackc/pgx v3.3.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I= @@ -1247,19 +1144,6 @@ github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= github.com/maorfr/helm-plugin-utils v0.0.0-20200216074820-36d2fcf6ae86/go.mod h1:p3gwmRSFqbWw6plBpR0sKl3n3vpu8kX70gvCJKMvvCA= github.com/markbates/inflect v1.0.4/go.mod h1:1fR9+pO2KHEO9ZRtto13gDwwZaAKstQzferVeWqbgNs= -github.com/markbates/oncer v0.0.0-20180924031910-e862a676800b/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= -github.com/markbates/oncer v0.0.0-20180924034138-723ad0170a46/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= -github.com/markbates/oncer v0.0.0-20181014194634-05fccaae8fc4/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= -github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= -github.com/markbates/refresh v1.4.10/go.mod h1:NDPHvotuZmTmesXxr95C9bjlw1/0frJwtME2dzcVKhc= -github.com/markbates/refresh v1.4.11/go.mod h1:awpJuyo4zgexB/JaHfmBX0sRdvOjo2dXwIayWIz9i3g= -github.com/markbates/refresh v1.5.0/go.mod h1:ZYMLkxV+x7wXQ2Xd7bXAPyF0EXiEWAMfiy/4URYb1+M= -github.com/markbates/refresh v1.6.0/go.mod h1:p8jWGABFUaFf/cSw0pxbo0MQVujiz5NTQ0bmCHLC4ac= -github.com/markbates/refresh v1.7.1/go.mod h1:hcGVJc3m5EeskliwSVJxcTHzUtMz2h8gBtCS0V94CgE= -github.com/markbates/safe v1.0.0/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= -github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= -github.com/markbates/sigtx v1.0.0/go.mod h1:QF1Hv6Ic6Ca6W+T+DL0Y/ypborFKyvUY9HmuCD4VeTc= -github.com/markbates/willie v1.0.9/go.mod h1:fsrFVWl91+gXpx/6dv715j7i11fYPfZ9ZGfH0DQzY7w= github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= github.com/martini-contrib/render v0.0.0-20150707142108-ec18f8345a11/go.mod h1:Ah2dBMoxZEqk118as2T4u4fjfXarE0pPnMJaArZQZsI= @@ -1368,8 +1252,6 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/monoculum/formam v0.0.0-20180901015400-4e68be1d79ba/go.mod h1:RKgILGEJq24YyJ2ban8EO0RUVSJlF1pGsEvoLEACr/Q= -github.com/monoculum/formam v0.0.0-20190307031628-bc555adff0cd/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc= github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/mozilla/tls-observatory v0.0.0-20180409132520-8791a200eb40/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk= @@ -1390,9 +1272,6 @@ github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+ github.com/nakagami/firebirdsql v0.0.0-20190310045651-3c02a58cfed8/go.mod h1:86wM1zFnC6/uDBfZGNwB65O+pR2OFi5q/YQaEUid1qA= github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= -github.com/nats-io/go-nats v1.7.2/go.mod h1:+t7RHT5ApZebkrQdnn6AhQJmhJJiKAvJUio1PiiCtj0= -github.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4= -github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/nbutton23/zxcvbn-go v0.0.0-20160627004424-a22cb81b2ecd/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU= github.com/nbutton23/zxcvbn-go v0.0.0-20171102151520-eafdab6b0663/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU= github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU= @@ -1407,7 +1286,6 @@ github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQ github.com/oklog/ulid v0.0.0-20170117200651-66bb6560562f/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/olekukonko/tablewriter v0.0.0-20180130162743-b8a9be070da4/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.2/go.mod h1:rSAaSIOAGT9odnlyGlUfAJaoc5w2fSBUmeGDbRWPxyQ= github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -1423,7 +1301,6 @@ github.com/onsi/ginkgo v1.12.0 h1:Iw5WCbBcaAAd0fpRb1c9r5YCylv4XDoCSigm1zLevwU= github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.3.0/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= @@ -1535,8 +1412,6 @@ github.com/otiai10/mint v1.2.3/go.mod h1:YnfyPNhBvnY8bW4SGQHCs/aAFhkgySlMZbrF5U0 github.com/otiai10/mint v1.2.4/go.mod h1:d+b7n/0R3tdyUYYylALXpWQ/kTN+QobSq/4SRGBkR3M= github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= github.com/ovirt/go-ovirt v0.0.0-20200313072907-d30f754823a6/go.mod h1:fLDxPk1Sf64DBYtwIYxrnx3gPZ1q0xPdWdI1y9vxUaw= -github.com/ovirt/go-ovirt v0.0.0-20200320082526-4e97a11ff083 h1:nW3qTnZ+ytoEZ1JL0EW3+mwjVcfjZ9WB3tSfOHQREgM= -github.com/ovirt/go-ovirt v0.0.0-20200320082526-4e97a11ff083/go.mod h1:fLDxPk1Sf64DBYtwIYxrnx3gPZ1q0xPdWdI1y9vxUaw= github.com/ovirt/go-ovirt v0.0.0-20200428093010-9bcc4fd4e6c0/go.mod h1:fLDxPk1Sf64DBYtwIYxrnx3gPZ1q0xPdWdI1y9vxUaw= github.com/ovirt/go-ovirt v0.0.0-20200613023950-320a86f9df27 h1:jHcZg49imi3zydtFqly5vniMnFX7HxW27L9M095eLhI= github.com/ovirt/go-ovirt v0.0.0-20200613023950-320a86f9df27/go.mod h1:fLDxPk1Sf64DBYtwIYxrnx3gPZ1q0xPdWdI1y9vxUaw= @@ -1555,7 +1430,6 @@ github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.1.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= @@ -1648,8 +1522,6 @@ github.com/quasilyte/go-consistent v0.0.0-20190521200055-c6f3937de18c/go.mod h1: github.com/quobyte/api v0.1.2/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= -github.com/remyoudompheng/bigfft v0.0.0-20190512091148-babf20351dd7/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= -github.com/retailnext/hllpp v1.0.0/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= github.com/robfig/cron v0.0.0-20170526150127-736158dc09e1/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= @@ -1660,15 +1532,11 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.3.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.5.0/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= -github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= -github.com/rs/zerolog v1.4.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/rubenv/sql-migrate v0.0.0-20191025130928-9355dd04f4b3/go.mod h1:WS0rl9eEliYI8DPnr3TOwz4439pay+qNgzJoVya/DmY= github.com/rubiojr/go-vhd v0.0.0-20160810183302-0bfd3b39853c/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto= github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= -github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd/go.mod h1:hPqNNc0+uJM6H+SuU8sEs5K5IQeKccPqeSjfgcKGgPk= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/go-glob v0.0.0-20170128012129-256dc444b735/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= @@ -1961,23 +1829,17 @@ go4.org v0.0.0-20200104003542-c7e774b10ea0 h1:M6XsnQeLwG+rHQ+/rrGh3puBI3WZEy9TBW go4.org v0.0.0-20200104003542-c7e774b10ea0/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d/go.mod h1:OWs+y06UdEOHN4y+MfF/py+xQ/tYqIWW03b70/CG9Rw= golang.org/x/build v0.0.0-20190314133821-5284462c4bec/go.mod h1:atTaCNAy0f16Ah5aV1gMSwgiKVHwu/JncqDpuRr7lS4= -golang.org/x/build v0.0.0-20190626175840-54405f243e45/go.mod h1:fYw7AShPAhGMdXqA9gRadk/CcMsvLlClpE5oBwnS3dM= golang.org/x/build v0.0.0-20190927031335-2835ba2e683f/go.mod h1:fYw7AShPAhGMdXqA9gRadk/CcMsvLlClpE5oBwnS3dM= golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180426230345-b49d69b5da94/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180608092829-8ac0e0d97ce4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180820150726-614d502a4dac/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181112202954-3d3f9f413869/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190102171810-8d7daa0c54b3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190103213133-ff983b9c42bc/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190122013713-64072686203f/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190130090550-b01c7a725664/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190222235706-ffb98f73852f/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -2025,7 +1887,6 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190622003408-7e034cad6442/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -2041,7 +1902,6 @@ golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPI golang.org/x/lint v0.0.0-20200302205851-738671d3881b h1:Wh+f8QHJXR411sJR8/vRBTZ7YapZaRvUcLFFJhusH0k= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190607214518-6fa95d984e88/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= @@ -2058,7 +1918,6 @@ golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180911220305-26e67e76b6c3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181029044818-c44066c5c816/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181102091132-c10e9556a7bc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -2257,7 +2116,6 @@ golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190624180213-70d37148ca0c/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190626204024-7ef8a99cf38d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190706070813-72ffa07ba3db/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= golang.org/x/tools v0.0.0-20190718200317-82a3ea8a504c/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= @@ -2316,7 +2174,6 @@ gomodules.xyz/orderedmap v0.1.0/go.mod h1:g9/TPUCm1t2gwD3j3zfV8uylyYhVdCNSi+xCEI gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= gonum.org/v1/gonum v0.0.0-20190915125329-975d99cd20a9/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= -gonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= @@ -2331,7 +2188,6 @@ google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMt google.golang.org/api v0.3.2/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.5.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.6.0/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4= google.golang.org/api v0.6.1-0.20190607001116-5213b8090861/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= @@ -2438,7 +2294,6 @@ gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.0 h1:AQvPpx3LzTDM0AjnIRlVFwFFGC+npRopjZxLJj6gdno= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= -gopkg.in/mail.v2 v2.0.0-20180731213649-a0242b2233b4/go.mod h1:htwXN1Qh09vZJ1NVKxQqHPBaCBbzKhp5GzuJEA4VJWw= gopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U= gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= @@ -2450,7 +2305,6 @@ gopkg.in/square/go-jose.v2 v2.3.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76 gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/urfave/cli.v1 v1.20.0/go.mod h1:vuBzUtMdQeixQj8LVd+/98pzhxNGQoyuPBlsXHOQNO0= gopkg.in/warnings.v0 v0.1.1/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= diff --git a/vendor/github.com/coreos/ignition/config/v1/cloudinit.go b/vendor/github.com/coreos/ignition/config/v1/cloudinit.go deleted file mode 100644 index 7cfeb455938..00000000000 --- a/vendor/github.com/coreos/ignition/config/v1/cloudinit.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2015 CoreOS, Inc. -// -// 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. - -// These functions are copied from github.com/coreos/coreos-cloudinit/config. - -package v1 - -import ( - "bytes" - "compress/gzip" - "io/ioutil" - "strings" - "unicode" -) - -func isCloudConfig(userdata []byte) bool { - header := strings.SplitN(string(decompressIfGzipped(userdata)), "\n", 2)[0] - - // Trim trailing whitespaces - header = strings.TrimRightFunc(header, unicode.IsSpace) - - return (header == "#cloud-config") -} - -func isScript(userdata []byte) bool { - header := strings.SplitN(string(decompressIfGzipped(userdata)), "\n", 2)[0] - return strings.HasPrefix(header, "#!") -} - -func decompressIfGzipped(data []byte) []byte { - if reader, err := gzip.NewReader(bytes.NewReader(data)); err == nil { - uncompressedData, err := ioutil.ReadAll(reader) - reader.Close() - if err == nil { - return uncompressedData - } else { - return data - } - } else { - return data - } -} diff --git a/vendor/github.com/coreos/ignition/config/v1/config.go b/vendor/github.com/coreos/ignition/config/v1/config.go deleted file mode 100644 index 21e79f81e54..00000000000 --- a/vendor/github.com/coreos/ignition/config/v1/config.go +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2015 CoreOS, Inc. -// -// 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 v1 - -import ( - "github.com/coreos/ignition/config/shared/errors" - "github.com/coreos/ignition/config/util" - "github.com/coreos/ignition/config/v1/types" - "github.com/coreos/ignition/config/validate" - "github.com/coreos/ignition/config/validate/report" - - json "github.com/ajeddeloh/go-json" -) - -func Parse(rawConfig []byte) (types.Config, report.Report, error) { - if isEmpty(rawConfig) { - return types.Config{}, report.Report{}, errors.ErrEmpty - } else if isCloudConfig(rawConfig) { - return types.Config{}, report.Report{}, errors.ErrCloudConfig - } else if isScript(rawConfig) { - return types.Config{}, report.Report{}, errors.ErrScript - } - - var err error - var config types.Config - - err = json.Unmarshal(rawConfig, &config) - if err != nil { - rpt, err := util.HandleParseErrors(rawConfig) - // HandleParseErrors always returns an error - return types.Config{}, rpt, err - } - - if config.Version != types.Version { - return types.Config{}, report.Report{}, errors.ErrUnknownVersion - } - - rpt := validate.ValidateConfig(rawConfig, config) - if rpt.IsFatal() { - return types.Config{}, rpt, errors.ErrInvalid - } - return config, rpt, nil -} - -func isEmpty(userdata []byte) bool { - return len(userdata) == 0 -} diff --git a/vendor/github.com/coreos/ignition/config/v1/types/config.go b/vendor/github.com/coreos/ignition/config/v1/types/config.go deleted file mode 100644 index 3a369e4f3e8..00000000000 --- a/vendor/github.com/coreos/ignition/config/v1/types/config.go +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -import "github.com/coreos/go-semver/semver" - -const ( - Version = 1 -) - -var ( - MaxVersion = semver.Version{ - Major: Version, - } -) - -type Config struct { - Version int `json:"ignitionVersion"` - Storage Storage `json:"storage,omitempty"` - Systemd Systemd `json:"systemd,omitempty"` - Networkd Networkd `json:"networkd,omitempty"` - Passwd Passwd `json:"passwd,omitempty"` -} diff --git a/vendor/github.com/coreos/ignition/config/v1/types/disk.go b/vendor/github.com/coreos/ignition/config/v1/types/disk.go deleted file mode 100644 index 62517856dc0..00000000000 --- a/vendor/github.com/coreos/ignition/config/v1/types/disk.go +++ /dev/null @@ -1,123 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -import ( - "github.com/coreos/ignition/config/shared/errors" - "github.com/coreos/ignition/config/validate/report" -) - -type Disk struct { - Device Path `json:"device,omitempty"` - WipeTable bool `json:"wipeTable,omitempty"` - Partitions []Partition `json:"partitions,omitempty"` -} - -func (n Disk) Validate() report.Report { - r := report.Report{} - if len(n.Device) == 0 { - r.Add(report.Entry{ - Kind: report.EntryError, - Message: errors.ErrDiskDeviceRequired.Error(), - }) - } - if n.partitionNumbersCollide() { - r.Add(report.Entry{ - Kind: report.EntryError, - Message: errors.ErrPartitionNumbersCollide.Error(), - }) - } - if n.partitionsOverlap() { - r.Add(report.Entry{ - Kind: report.EntryError, - Message: errors.ErrPartitionsOverlap.Error(), - }) - } - if n.partitionsMisaligned() { - r.Add(report.Entry{ - Kind: report.EntryError, - Message: errors.ErrPartitionsMisaligned.Error(), - }) - } - // Disks which get to this point will likely succeed in sgdisk - return r -} - -// partitionNumbersCollide returns true if partition numbers in n.Partitions are not unique. -func (n Disk) partitionNumbersCollide() bool { - m := map[int][]Partition{} - for _, p := range n.Partitions { - m[p.Number] = append(m[p.Number], p) - } - for _, n := range m { - if len(n) > 1 { - // TODO(vc): return information describing the collision for logging - return true - } - } - return false -} - -// end returns the last sector of a partition. -func (p Partition) end() PartitionDimension { - if p.Size == 0 { - // a size of 0 means "fill available", just return the start as the end for those. - return p.Start - } - return p.Start + p.Size - 1 -} - -// partitionsOverlap returns true if any explicitly dimensioned partitions overlap -func (n Disk) partitionsOverlap() bool { - for _, p := range n.Partitions { - // Starts of 0 are placed by sgdisk into the "largest available block" at that time. - // We aren't going to check those for overlap since we don't have the disk geometry. - if p.Start == 0 { - continue - } - - for _, o := range n.Partitions { - if p == o || o.Start == 0 { - continue - } - - // is p.Start within o? - if p.Start >= o.Start && p.Start <= o.end() { - return true - } - - // is p.end() within o? - if p.end() >= o.Start && p.end() <= o.end() { - return true - } - - // do p.Start and p.end() straddle o? - if p.Start < o.Start && p.end() > o.end() { - return true - } - } - } - return false -} - -// partitionsMisaligned returns true if any of the partitions don't start on a 2048-sector (1MiB) boundary. -func (n Disk) partitionsMisaligned() bool { - for _, p := range n.Partitions { - if (p.Start & (2048 - 1)) != 0 { - return true - } - } - return false -} diff --git a/vendor/github.com/coreos/ignition/config/v1/types/file.go b/vendor/github.com/coreos/ignition/config/v1/types/file.go deleted file mode 100644 index 8775c19fd5e..00000000000 --- a/vendor/github.com/coreos/ignition/config/v1/types/file.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -import ( - "os" - - "github.com/coreos/ignition/config/shared/errors" - "github.com/coreos/ignition/config/validate/report" -) - -type FileMode os.FileMode - -type File struct { - Path Path `json:"path,omitempty"` - Contents string `json:"contents,omitempty"` - Mode FileMode `json:"mode,omitempty"` - Uid int `json:"uid,omitempty"` - Gid int `json:"gid,omitempty"` -} - -func (m FileMode) Validate() report.Report { - if (m &^ 07777) != 0 { - return report.ReportFromError(errors.ErrFileIllegalMode, report.EntryError) - } - return report.Report{} -} diff --git a/vendor/github.com/coreos/ignition/config/v1/types/filesystem.go b/vendor/github.com/coreos/ignition/config/v1/types/filesystem.go deleted file mode 100644 index 7986bd724cc..00000000000 --- a/vendor/github.com/coreos/ignition/config/v1/types/filesystem.go +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -import ( - "github.com/coreos/ignition/config/shared/errors" - "github.com/coreos/ignition/config/validate/report" -) - -type Filesystem struct { - Device Path `json:"device,omitempty"` - Format FilesystemFormat `json:"format,omitempty"` - Create *FilesystemCreate `json:"create,omitempty"` - Files []File `json:"files,omitempty"` -} - -type FilesystemCreate struct { - Force bool `json:"force,omitempty"` - Options MkfsOptions `json:"options,omitempty"` -} - -type FilesystemFormat string - -func (f FilesystemFormat) Validate() report.Report { - switch f { - case "ext4", "btrfs", "xfs": - return report.Report{} - default: - return report.ReportFromError(errors.ErrFilesystemInvalidFormat, report.EntryError) - } -} - -type MkfsOptions []string diff --git a/vendor/github.com/coreos/ignition/config/v1/types/group.go b/vendor/github.com/coreos/ignition/config/v1/types/group.go deleted file mode 100644 index 27e51048870..00000000000 --- a/vendor/github.com/coreos/ignition/config/v1/types/group.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -type Group struct { - Name string `json:"name,omitempty"` - Gid *uint `json:"gid,omitempty"` - PasswordHash string `json:"passwordHash,omitempty"` - System bool `json:"system,omitempty"` -} diff --git a/vendor/github.com/coreos/ignition/config/v1/types/networkd.go b/vendor/github.com/coreos/ignition/config/v1/types/networkd.go deleted file mode 100644 index 470c721106a..00000000000 --- a/vendor/github.com/coreos/ignition/config/v1/types/networkd.go +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -type Networkd struct { - Units []NetworkdUnit `json:"units,omitempty"` -} diff --git a/vendor/github.com/coreos/ignition/config/v1/types/partition.go b/vendor/github.com/coreos/ignition/config/v1/types/partition.go deleted file mode 100644 index 16270de2cf8..00000000000 --- a/vendor/github.com/coreos/ignition/config/v1/types/partition.go +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -import ( - "fmt" - "regexp" - - "github.com/coreos/ignition/config/shared/errors" - "github.com/coreos/ignition/config/validate/report" -) - -type Partition struct { - Label PartitionLabel `json:"label,omitempty"` - Number int `json:"number"` - Size PartitionDimension `json:"size"` - Start PartitionDimension `json:"start"` - TypeGUID PartitionTypeGUID `json:"typeGuid,omitempty"` -} - -type PartitionLabel string - -func (n PartitionLabel) Validate() report.Report { - // http://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_entries: - // 56 (0x38) 72 bytes Partition name (36 UTF-16LE code units) - - // XXX(vc): note GPT calls it a name, we're using label for consistency - // with udev naming /dev/disk/by-partlabel/*. - if len(string(n)) > 36 { - return report.ReportFromError(errors.ErrLabelTooLong, report.EntryError) - } - return report.Report{} -} - -type PartitionDimension uint64 - -type PartitionTypeGUID string - -func (d PartitionTypeGUID) Validate() report.Report { - ok, err := regexp.MatchString("^(|[[:xdigit:]]{8}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{12})$", string(d)) - if err != nil { - return report.ReportFromError(fmt.Errorf("error matching type-guid regexp: %v", err), report.EntryError) - } - if !ok { - return report.ReportFromError(fmt.Errorf(`partition type-guid must have the form "01234567-89AB-CDEF-EDCB-A98765432101", got: %q`, string(d)), report.EntryError) - } - return report.Report{} -} diff --git a/vendor/github.com/coreos/ignition/config/v1/types/passwd.go b/vendor/github.com/coreos/ignition/config/v1/types/passwd.go deleted file mode 100644 index 0ffff43bb84..00000000000 --- a/vendor/github.com/coreos/ignition/config/v1/types/passwd.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -type Passwd struct { - Users []User `json:"users,omitempty"` - Groups []Group `json:"groups,omitempty"` -} diff --git a/vendor/github.com/coreos/ignition/config/v1/types/path.go b/vendor/github.com/coreos/ignition/config/v1/types/path.go deleted file mode 100644 index e37341c1ace..00000000000 --- a/vendor/github.com/coreos/ignition/config/v1/types/path.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -import ( - "path" - - "github.com/coreos/ignition/config/shared/errors" - "github.com/coreos/ignition/config/validate/report" -) - -type Path string - -func (d Path) Validate() report.Report { - if !path.IsAbs(string(d)) { - return report.ReportFromError(errors.ErrPathRelative, report.EntryError) - } - return report.Report{} -} diff --git a/vendor/github.com/coreos/ignition/config/v1/types/raid.go b/vendor/github.com/coreos/ignition/config/v1/types/raid.go deleted file mode 100644 index 329b123e6d0..00000000000 --- a/vendor/github.com/coreos/ignition/config/v1/types/raid.go +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -import ( - "github.com/coreos/ignition/config/shared/errors" - "github.com/coreos/ignition/config/validate/report" -) - -type Raid struct { - Name string `json:"name"` - Level string `json:"level"` - Devices []Path `json:"devices,omitempty"` - Spares int `json:"spares,omitempty"` -} - -func (n Raid) Validate() report.Report { - switch n.Level { - case "linear", "raid0", "0", "stripe": - if n.Spares != 0 { - return report.ReportFromError(errors.ErrSparesUnsupportedForLevel, report.EntryError) - } - case "raid1", "1", "mirror": - case "raid4", "4": - case "raid5", "5": - case "raid6", "6": - case "raid10", "10": - default: - return report.ReportFromError(errors.ErrUnrecognizedRaidLevel, report.EntryError) - } - return report.Report{} -} diff --git a/vendor/github.com/coreos/ignition/config/v1/types/storage.go b/vendor/github.com/coreos/ignition/config/v1/types/storage.go deleted file mode 100644 index 2649751a7d0..00000000000 --- a/vendor/github.com/coreos/ignition/config/v1/types/storage.go +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -type Storage struct { - Disks []Disk `json:"disks,omitempty"` - Arrays []Raid `json:"raid,omitempty"` - Filesystems []Filesystem `json:"filesystems,omitempty"` -} diff --git a/vendor/github.com/coreos/ignition/config/v1/types/systemd.go b/vendor/github.com/coreos/ignition/config/v1/types/systemd.go deleted file mode 100644 index 97194b91150..00000000000 --- a/vendor/github.com/coreos/ignition/config/v1/types/systemd.go +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -type Systemd struct { - Units []SystemdUnit `json:"units,omitempty"` -} diff --git a/vendor/github.com/coreos/ignition/config/v1/types/unit.go b/vendor/github.com/coreos/ignition/config/v1/types/unit.go deleted file mode 100644 index 5e983cc1456..00000000000 --- a/vendor/github.com/coreos/ignition/config/v1/types/unit.go +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -import ( - "path" - - "github.com/coreos/ignition/config/shared/errors" - "github.com/coreos/ignition/config/validate/report" -) - -type SystemdUnit struct { - Name SystemdUnitName `json:"name,omitempty"` - Enable bool `json:"enable,omitempty"` - Mask bool `json:"mask,omitempty"` - Contents string `json:"contents,omitempty"` - DropIns []SystemdUnitDropIn `json:"dropins,omitempty"` -} - -type SystemdUnitDropIn struct { - Name SystemdUnitDropInName `json:"name,omitempty"` - Contents string `json:"contents,omitempty"` -} - -type SystemdUnitName string - -func (n SystemdUnitName) Validate() report.Report { - switch path.Ext(string(n)) { - case ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice", ".scope": - return report.Report{} - default: - return report.ReportFromError(errors.ErrInvalidSystemdExt, report.EntryError) - } -} - -type SystemdUnitDropInName string - -func (n SystemdUnitDropInName) Validate() report.Report { - switch path.Ext(string(n)) { - case ".conf": - return report.Report{} - default: - return report.ReportFromError(errors.ErrInvalidSystemdDropinExt, report.EntryError) - } -} - -type NetworkdUnit struct { - Name NetworkdUnitName `json:"name,omitempty"` - Contents string `json:"contents,omitempty"` -} - -type NetworkdUnitName string - -func (n NetworkdUnitName) Validate() report.Report { - switch path.Ext(string(n)) { - case ".link", ".netdev", ".network": - return report.Report{} - default: - return report.ReportFromError(errors.ErrInvalidNetworkdExt, report.EntryError) - } -} diff --git a/vendor/github.com/coreos/ignition/config/v1/types/user.go b/vendor/github.com/coreos/ignition/config/v1/types/user.go deleted file mode 100644 index f6653e27494..00000000000 --- a/vendor/github.com/coreos/ignition/config/v1/types/user.go +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -type User struct { - Name string `json:"name,omitempty"` - PasswordHash string `json:"passwordHash,omitempty"` - SSHAuthorizedKeys []string `json:"sshAuthorizedKeys,omitempty"` - Create *UserCreate `json:"create,omitempty"` -} - -type UserCreate struct { - Uid *uint `json:"uid,omitempty"` - GECOS string `json:"gecos,omitempty"` - Homedir string `json:"homeDir,omitempty"` - NoCreateHome bool `json:"noCreateHome,omitempty"` - PrimaryGroup string `json:"primaryGroup,omitempty"` - Groups []string `json:"groups,omitempty"` - NoUserGroup bool `json:"noUserGroup,omitempty"` - System bool `json:"system,omitempty"` - NoLogInit bool `json:"noLogInit,omitempty"` - Shell string `json:"shell,omitempty"` -} diff --git a/vendor/github.com/coreos/ignition/config/v2_0/append.go b/vendor/github.com/coreos/ignition/config/v2_0/append.go deleted file mode 100644 index b005734b1e8..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_0/append.go +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 v2_0 - -import ( - "reflect" - - "github.com/coreos/ignition/config/v2_0/types" -) - -// Append appends newConfig to oldConfig and returns the result. Appending one -// config to another is accomplished by iterating over every field in the -// config structure, appending slices, recursively appending structs, and -// overwriting old values with new values for all other types. -func Append(oldConfig, newConfig types.Config) types.Config { - vOld := reflect.ValueOf(oldConfig) - vNew := reflect.ValueOf(newConfig) - - vResult := appendStruct(vOld, vNew) - - return vResult.Interface().(types.Config) -} - -// appendStruct is an internal helper function to AppendConfig. Given two values -// of structures (assumed to be the same type), recursively iterate over every -// field in the struct, appending slices, recursively appending structs, and -// overwriting old values with the new for all other types. Some individual -// struct fields have alternate merge strategies, determined by the field name. -// Currently these fields are "ignition.version", which uses the old value, and -// "ignition.config" which uses the new value. -func appendStruct(vOld, vNew reflect.Value) reflect.Value { - tOld := vOld.Type() - vRes := reflect.New(tOld) - - for i := 0; i < tOld.NumField(); i++ { - vfOld := vOld.Field(i) - vfNew := vNew.Field(i) - vfRes := vRes.Elem().Field(i) - - switch tOld.Field(i).Name { - case "Version": - vfRes.Set(vfOld) - continue - case "Config": - vfRes.Set(vfNew) - continue - } - - switch vfOld.Type().Kind() { - case reflect.Struct: - vfRes.Set(appendStruct(vfOld, vfNew)) - case reflect.Slice: - vfRes.Set(reflect.AppendSlice(vfOld, vfNew)) - default: - if vfNew.Kind() == reflect.Ptr && vfNew.IsNil() { - vfRes.Set(vfOld) - } else { - vfRes.Set(vfNew) - } - } - } - - return vRes.Elem() -} diff --git a/vendor/github.com/coreos/ignition/config/v2_0/cloudinit.go b/vendor/github.com/coreos/ignition/config/v2_0/cloudinit.go deleted file mode 100644 index 9e1f2ad0e7c..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_0/cloudinit.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2015 CoreOS, Inc. -// -// 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. - -// These functions are copied from github.com/coreos/coreos-cloudinit/config. - -package v2_0 - -import ( - "bytes" - "compress/gzip" - "io/ioutil" - "strings" - "unicode" -) - -func isCloudConfig(userdata []byte) bool { - header := strings.SplitN(string(decompressIfGzipped(userdata)), "\n", 2)[0] - - // Trim trailing whitespaces - header = strings.TrimRightFunc(header, unicode.IsSpace) - - return (header == "#cloud-config") -} - -func isScript(userdata []byte) bool { - header := strings.SplitN(string(decompressIfGzipped(userdata)), "\n", 2)[0] - return strings.HasPrefix(header, "#!") -} - -func decompressIfGzipped(data []byte) []byte { - if reader, err := gzip.NewReader(bytes.NewReader(data)); err == nil { - uncompressedData, err := ioutil.ReadAll(reader) - reader.Close() - if err == nil { - return uncompressedData - } else { - return data - } - } else { - return data - } -} diff --git a/vendor/github.com/coreos/ignition/config/v2_0/config.go b/vendor/github.com/coreos/ignition/config/v2_0/config.go deleted file mode 100644 index f1385bf1ca9..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_0/config.go +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2015 CoreOS, Inc. -// -// 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 v2_0 - -import ( - "github.com/coreos/ignition/config/shared/errors" - "github.com/coreos/ignition/config/v1" - "github.com/coreos/ignition/config/v2_0/types" - "github.com/coreos/ignition/config/validate" - "github.com/coreos/ignition/config/validate/report" - - json "github.com/ajeddeloh/go-json" - "github.com/coreos/go-semver/semver" -) - -// Parse parses the raw config into a types.Config struct and generates a report of any -// errors, warnings, info, and deprecations it encountered -func Parse(rawConfig []byte) (types.Config, report.Report, error) { - if isEmpty(rawConfig) { - return types.Config{}, report.Report{}, errors.ErrEmpty - } else if isCloudConfig(rawConfig) { - return types.Config{}, report.Report{}, errors.ErrCloudConfig - } else if isScript(rawConfig) { - return types.Config{}, report.Report{}, errors.ErrScript - } - - var err error - var config types.Config - - err = json.Unmarshal(rawConfig, &config) - - if err != nil || semver.Version(config.Ignition.Version).LessThan(types.MaxVersion) { - // We can fail unmarshaling if it's an older config. Attempt to parse - // it as such. - config, rpt, err := v1.Parse(rawConfig) - if err != nil { - return types.Config{}, rpt, err - } - - rpt.Merge(report.ReportFromError(errors.ErrDeprecated, report.EntryDeprecated)) - return TranslateFromV1(config), rpt, err - } - - if semver.Version(config.Ignition.Version) != types.MaxVersion { - return types.Config{}, report.Report{}, errors.ErrUnknownVersion - } - - rpt := validate.ValidateConfig(rawConfig, config) - if rpt.IsFatal() { - return types.Config{}, rpt, errors.ErrInvalid - } - - return config, rpt, nil -} - -func isEmpty(userdata []byte) bool { - return len(userdata) == 0 -} diff --git a/vendor/github.com/coreos/ignition/config/v2_0/translate.go b/vendor/github.com/coreos/ignition/config/v2_0/translate.go deleted file mode 100644 index 832adce566d..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_0/translate.go +++ /dev/null @@ -1,173 +0,0 @@ -// Copyright 2018 CoreOS, Inc. -// -// 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 v2_0 - -import ( - "fmt" - - v1 "github.com/coreos/ignition/config/v1/types" - "github.com/coreos/ignition/config/v2_0/types" - "github.com/vincent-petithory/dataurl" -) - -func TranslateFromV1(old v1.Config) types.Config { - config := types.Config{ - Ignition: types.Ignition{ - Version: types.IgnitionVersion(types.MaxVersion), - }, - } - - for _, oldDisk := range old.Storage.Disks { - disk := types.Disk{ - Device: types.Path(oldDisk.Device), - WipeTable: oldDisk.WipeTable, - } - - for _, oldPartition := range oldDisk.Partitions { - disk.Partitions = append(disk.Partitions, types.Partition{ - Label: types.PartitionLabel(oldPartition.Label), - Number: oldPartition.Number, - Size: types.PartitionDimension(oldPartition.Size), - Start: types.PartitionDimension(oldPartition.Start), - TypeGUID: types.PartitionTypeGUID(oldPartition.TypeGUID), - }) - } - - config.Storage.Disks = append(config.Storage.Disks, disk) - } - - for _, oldArray := range old.Storage.Arrays { - array := types.Raid{ - Name: oldArray.Name, - Level: oldArray.Level, - Spares: oldArray.Spares, - } - - for _, oldDevice := range oldArray.Devices { - array.Devices = append(array.Devices, types.Path(oldDevice)) - } - - config.Storage.Arrays = append(config.Storage.Arrays, array) - } - - for i, oldFilesystem := range old.Storage.Filesystems { - filesystem := types.Filesystem{ - Name: fmt.Sprintf("_translate-filesystem-%d", i), - Mount: &types.FilesystemMount{ - Device: types.Path(oldFilesystem.Device), - Format: types.FilesystemFormat(oldFilesystem.Format), - }, - } - - if oldFilesystem.Create != nil { - filesystem.Mount.Create = &types.FilesystemCreate{ - Force: oldFilesystem.Create.Force, - Options: types.MkfsOptions(oldFilesystem.Create.Options), - } - } - - config.Storage.Filesystems = append(config.Storage.Filesystems, filesystem) - - for _, oldFile := range oldFilesystem.Files { - file := types.File{ - Filesystem: filesystem.Name, - Path: types.Path(oldFile.Path), - User: types.FileUser{Id: oldFile.Uid}, - Group: types.FileGroup{Id: oldFile.Gid}, - Mode: types.FileMode(oldFile.Mode), - Contents: types.FileContents{ - Source: types.Url{ - Scheme: "data", - Opaque: "," + dataurl.EscapeString(oldFile.Contents), - }, - }, - } - - config.Storage.Files = append(config.Storage.Files, file) - } - } - - for _, oldUnit := range old.Systemd.Units { - unit := types.SystemdUnit{ - Name: types.SystemdUnitName(oldUnit.Name), - Enable: oldUnit.Enable, - Mask: oldUnit.Mask, - Contents: oldUnit.Contents, - } - - for _, oldDropIn := range oldUnit.DropIns { - unit.DropIns = append(unit.DropIns, types.SystemdUnitDropIn{ - Name: types.SystemdUnitDropInName(oldDropIn.Name), - Contents: oldDropIn.Contents, - }) - } - - config.Systemd.Units = append(config.Systemd.Units, unit) - } - - for _, oldUnit := range old.Networkd.Units { - config.Networkd.Units = append(config.Networkd.Units, types.NetworkdUnit{ - Name: types.NetworkdUnitName(oldUnit.Name), - Contents: oldUnit.Contents, - }) - } - - for _, oldUser := range old.Passwd.Users { - user := types.User{ - Name: oldUser.Name, - PasswordHash: oldUser.PasswordHash, - SSHAuthorizedKeys: oldUser.SSHAuthorizedKeys, - } - - if oldUser.Create != nil { - var uid *uint - if oldUser.Create.Uid != nil { - tmp := uint(*oldUser.Create.Uid) - uid = &tmp - } - - user.Create = &types.UserCreate{ - Uid: uid, - GECOS: oldUser.Create.GECOS, - Homedir: oldUser.Create.Homedir, - NoCreateHome: oldUser.Create.NoCreateHome, - PrimaryGroup: oldUser.Create.PrimaryGroup, - Groups: oldUser.Create.Groups, - NoUserGroup: oldUser.Create.NoUserGroup, - System: oldUser.Create.System, - NoLogInit: oldUser.Create.NoLogInit, - Shell: oldUser.Create.Shell, - } - } - - config.Passwd.Users = append(config.Passwd.Users, user) - } - - for _, oldGroup := range old.Passwd.Groups { - var gid *uint - if oldGroup.Gid != nil { - tmp := uint(*oldGroup.Gid) - gid = &tmp - } - config.Passwd.Groups = append(config.Passwd.Groups, types.Group{ - Name: oldGroup.Name, - Gid: gid, - PasswordHash: oldGroup.PasswordHash, - System: oldGroup.System, - }) - } - - return config -} diff --git a/vendor/github.com/coreos/ignition/config/v2_0/types/compression.go b/vendor/github.com/coreos/ignition/config/v2_0/types/compression.go deleted file mode 100644 index f56e5b9c80b..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_0/types/compression.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -import ( - "github.com/coreos/ignition/config/shared/errors" - "github.com/coreos/ignition/config/validate/report" -) - -type Compression string - -func (c Compression) Validate() report.Report { - switch c { - case "", "gzip": - default: - return report.ReportFromError(errors.ErrCompressionInvalid, report.EntryError) - } - return report.Report{} -} diff --git a/vendor/github.com/coreos/ignition/config/v2_0/types/config.go b/vendor/github.com/coreos/ignition/config/v2_0/types/config.go deleted file mode 100644 index 38551589175..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_0/types/config.go +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright 2015 CoreOS, Inc. -// -// 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 types - -import ( - "fmt" - - "github.com/coreos/go-semver/semver" - - "github.com/coreos/ignition/config/validate/report" -) - -var ( - MaxVersion = semver.Version{ - Major: 2, - Minor: 0, - } -) - -type Config struct { - Ignition Ignition `json:"ignition"` - Storage Storage `json:"storage,omitempty"` - Systemd Systemd `json:"systemd,omitempty"` - Networkd Networkd `json:"networkd,omitempty"` - Passwd Passwd `json:"passwd,omitempty"` -} - -func (c Config) Validate() report.Report { - r := report.Report{} - rules := []rule{ - checkFilesFilesystems, - checkDuplicateFilesystems, - } - - for _, rule := range rules { - rule(c, &r) - } - return r -} - -type rule func(cfg Config, report *report.Report) - -func checkFilesFilesystems(cfg Config, r *report.Report) { - filesystems := map[string]struct{}{"root": {}} - for _, filesystem := range cfg.Storage.Filesystems { - filesystems[filesystem.Name] = struct{}{} - } - for _, file := range cfg.Storage.Files { - if file.Filesystem == "" { - // Filesystem was not specified. This is an error, but its handled in types.File's Validate, not here - continue - } - _, ok := filesystems[file.Filesystem] - if !ok { - r.Add(report.Entry{ - Kind: report.EntryWarning, - Message: fmt.Sprintf("File %q references nonexistent filesystem %q. (This is ok if it is defined in a referenced config)", - file.Path, file.Filesystem), - }) - } - } -} - -func checkDuplicateFilesystems(cfg Config, r *report.Report) { - filesystems := map[string]struct{}{"root": {}} - for _, filesystem := range cfg.Storage.Filesystems { - if _, ok := filesystems[filesystem.Name]; ok { - r.Add(report.Entry{ - Kind: report.EntryWarning, - Message: fmt.Sprintf("Filesystem %q shadows exising filesystem definition", filesystem.Name), - }) - } - filesystems[filesystem.Name] = struct{}{} - } -} diff --git a/vendor/github.com/coreos/ignition/config/v2_0/types/disk.go b/vendor/github.com/coreos/ignition/config/v2_0/types/disk.go deleted file mode 100644 index b68c5c930ed..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_0/types/disk.go +++ /dev/null @@ -1,126 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -import ( - "github.com/coreos/ignition/config/shared/errors" - "github.com/coreos/ignition/config/validate/report" -) - -type Disk struct { - Device Path `json:"device,omitempty"` - WipeTable bool `json:"wipeTable,omitempty"` - Partitions []Partition `json:"partitions,omitempty"` -} - -func (n Disk) Validate() report.Report { - r := report.Report{} - if len(n.Device) == 0 { - r.Add(report.Entry{ - Message: errors.ErrDiskDeviceRequired.Error(), - Kind: report.EntryError, - }) - } - if n.partitionNumbersCollide() { - r.Add(report.Entry{ - Message: errors.ErrPartitionNumbersCollide.Error(), - Kind: report.EntryError, - }) - } - if n.partitionsOverlap() { - r.Add(report.Entry{ - Message: errors.ErrPartitionsOverlap.Error(), - Kind: report.EntryError, - }) - } - if n.partitionsMisaligned() { - r.Add(report.Entry{ - Message: errors.ErrPartitionsMisaligned.Error(), - Kind: report.EntryError, - }) - } - // Disks which have no errors at this point will likely succeed in sgdisk - return r -} - -// partitionNumbersCollide returns true if partition numbers in n.Partitions are not unique. -func (n Disk) partitionNumbersCollide() bool { - m := map[int][]Partition{} - for _, p := range n.Partitions { - if p.Number != 0 { - // a number of 0 means next available number, multiple devices can specify this - m[p.Number] = append(m[p.Number], p) - } - } - for _, n := range m { - if len(n) > 1 { - // TODO(vc): return information describing the collision for logging - return true - } - } - return false -} - -// end returns the last sector of a partition. -func (p Partition) end() PartitionDimension { - if p.Size == 0 { - // a size of 0 means "fill available", just return the start as the end for those. - return p.Start - } - return p.Start + p.Size - 1 -} - -// partitionsOverlap returns true if any explicitly dimensioned partitions overlap -func (n Disk) partitionsOverlap() bool { - for _, p := range n.Partitions { - // Starts of 0 are placed by sgdisk into the "largest available block" at that time. - // We aren't going to check those for overlap since we don't have the disk geometry. - if p.Start == 0 { - continue - } - - for _, o := range n.Partitions { - if p == o || o.Start == 0 { - continue - } - - // is p.Start within o? - if p.Start >= o.Start && p.Start <= o.end() { - return true - } - - // is p.end() within o? - if p.end() >= o.Start && p.end() <= o.end() { - return true - } - - // do p.Start and p.end() straddle o? - if p.Start < o.Start && p.end() > o.end() { - return true - } - } - } - return false -} - -// partitionsMisaligned returns true if any of the partitions don't start on a 2048-sector (1MiB) boundary. -func (n Disk) partitionsMisaligned() bool { - for _, p := range n.Partitions { - if (p.Start & (2048 - 1)) != 0 { - return true - } - } - return false -} diff --git a/vendor/github.com/coreos/ignition/config/v2_0/types/file.go b/vendor/github.com/coreos/ignition/config/v2_0/types/file.go deleted file mode 100644 index 8d3e79054de..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_0/types/file.go +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -import ( - "os" - - "github.com/coreos/ignition/config/shared/errors" - "github.com/coreos/ignition/config/validate/report" -) - -type File struct { - Filesystem string `json:"filesystem,omitempty"` - Path Path `json:"path,omitempty"` - Contents FileContents `json:"contents,omitempty"` - Mode FileMode `json:"mode,omitempty"` - User FileUser `json:"user,omitempty"` - Group FileGroup `json:"group,omitempty"` -} - -func (f File) Validate() report.Report { - if f.Filesystem == "" { - return report.ReportFromError(errors.ErrNoFilesystem, report.EntryError) - } - return report.Report{} -} - -type FileUser struct { - Id int `json:"id,omitempty"` -} - -type FileGroup struct { - Id int `json:"id,omitempty"` -} - -type FileContents struct { - Compression Compression `json:"compression,omitempty"` - Source Url `json:"source,omitempty"` - Verification Verification `json:"verification,omitempty"` -} - -type FileMode os.FileMode - -func (m FileMode) Validate() report.Report { - if (m &^ 07777) != 0 { - return report.ReportFromError(errors.ErrFileIllegalMode, report.EntryError) - } - return report.Report{} -} diff --git a/vendor/github.com/coreos/ignition/config/v2_0/types/filesystem.go b/vendor/github.com/coreos/ignition/config/v2_0/types/filesystem.go deleted file mode 100644 index e3572711da8..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_0/types/filesystem.go +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -import ( - "github.com/coreos/ignition/config/shared/errors" - "github.com/coreos/ignition/config/validate/report" -) - -type Filesystem struct { - Name string `json:"name,omitempty"` - Mount *FilesystemMount `json:"mount,omitempty"` - Path *Path `json:"path,omitempty"` -} - -type FilesystemMount struct { - Device Path `json:"device,omitempty"` - Format FilesystemFormat `json:"format,omitempty"` - Create *FilesystemCreate `json:"create,omitempty"` -} - -type FilesystemCreate struct { - Force bool `json:"force,omitempty"` - Options MkfsOptions `json:"options,omitempty"` -} - -func (f Filesystem) Validate() report.Report { - if f.Mount == nil && f.Path == nil { - return report.ReportFromError(errors.ErrFilesystemNoMountPath, report.EntryError) - } - if f.Mount != nil && f.Path != nil { - return report.ReportFromError(errors.ErrFilesystemMountAndPath, report.EntryError) - } - return report.Report{} -} - -type FilesystemFormat string - -func (f FilesystemFormat) Validate() report.Report { - switch f { - case "ext4", "btrfs", "xfs": - return report.Report{} - default: - return report.ReportFromError(errors.ErrFilesystemInvalidFormat, report.EntryError) - } -} - -type MkfsOptions []string diff --git a/vendor/github.com/coreos/ignition/config/v2_0/types/group.go b/vendor/github.com/coreos/ignition/config/v2_0/types/group.go deleted file mode 100644 index 27e51048870..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_0/types/group.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -type Group struct { - Name string `json:"name,omitempty"` - Gid *uint `json:"gid,omitempty"` - PasswordHash string `json:"passwordHash,omitempty"` - System bool `json:"system,omitempty"` -} diff --git a/vendor/github.com/coreos/ignition/config/v2_0/types/hash.go b/vendor/github.com/coreos/ignition/config/v2_0/types/hash.go deleted file mode 100644 index 628524dc6d1..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_0/types/hash.go +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -import ( - "crypto" - "encoding/hex" - "encoding/json" - "strings" - - "github.com/coreos/ignition/config/shared/errors" - "github.com/coreos/ignition/config/validate/report" -) - -type Hash struct { - Function string - Sum string -} - -func (h *Hash) UnmarshalJSON(data []byte) error { - var th string - if err := json.Unmarshal(data, &th); err != nil { - return err - } - - parts := strings.SplitN(th, "-", 2) - if len(parts) != 2 { - return errors.ErrHashMalformed - } - - h.Function = parts[0] - h.Sum = parts[1] - - return nil -} - -func (h Hash) MarshalJSON() ([]byte, error) { - return []byte(`"` + h.Function + "-" + h.Sum + `"`), nil -} - -func (h Hash) String() string { - bytes, _ := h.MarshalJSON() - return string(bytes) -} - -func (h Hash) Validate() report.Report { - var hash crypto.Hash - switch h.Function { - case "sha512": - hash = crypto.SHA512 - default: - return report.ReportFromError(errors.ErrHashUnrecognized, report.EntryError) - } - - if len(h.Sum) != hex.EncodedLen(hash.Size()) { - return report.ReportFromError(errors.ErrHashWrongSize, report.EntryError) - } - - return report.Report{} -} diff --git a/vendor/github.com/coreos/ignition/config/v2_0/types/ignition.go b/vendor/github.com/coreos/ignition/config/v2_0/types/ignition.go deleted file mode 100644 index deeb822d09e..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_0/types/ignition.go +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2015 CoreOS, Inc. -// -// 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 types - -import ( - "encoding/json" - - "github.com/coreos/go-semver/semver" - - "github.com/coreos/ignition/config/shared/errors" - "github.com/coreos/ignition/config/validate/report" -) - -type Ignition struct { - Version IgnitionVersion `json:"version,omitempty" merge:"old"` - Config IgnitionConfig `json:"config,omitempty" merge:"new"` -} - -type IgnitionConfig struct { - Append []ConfigReference `json:"append,omitempty"` - Replace *ConfigReference `json:"replace,omitempty"` -} - -type ConfigReference struct { - Source Url `json:"source,omitempty"` - Verification Verification `json:"verification,omitempty"` -} - -type IgnitionVersion semver.Version - -func (v *IgnitionVersion) UnmarshalJSON(data []byte) error { - tv := semver.Version(*v) - if err := json.Unmarshal(data, &tv); err != nil { - return err - } - *v = IgnitionVersion(tv) - return nil -} - -func (v IgnitionVersion) MarshalJSON() ([]byte, error) { - return semver.Version(v).MarshalJSON() -} - -func (v IgnitionVersion) Validate() report.Report { - if MaxVersion.Major > v.Major { - return report.ReportFromError(errors.ErrOldVersion, report.EntryError) - } - if MaxVersion.LessThan(semver.Version(v)) { - return report.ReportFromError(errors.ErrNewVersion, report.EntryError) - } - return report.Report{} -} diff --git a/vendor/github.com/coreos/ignition/config/v2_0/types/networkd.go b/vendor/github.com/coreos/ignition/config/v2_0/types/networkd.go deleted file mode 100644 index 470c721106a..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_0/types/networkd.go +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -type Networkd struct { - Units []NetworkdUnit `json:"units,omitempty"` -} diff --git a/vendor/github.com/coreos/ignition/config/v2_0/types/partition.go b/vendor/github.com/coreos/ignition/config/v2_0/types/partition.go deleted file mode 100644 index c36545d4a63..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_0/types/partition.go +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -import ( - "fmt" - "regexp" - "strings" - - "github.com/coreos/ignition/config/shared/errors" - "github.com/coreos/ignition/config/validate/report" -) - -type Partition struct { - Label PartitionLabel `json:"label,omitempty"` - Number int `json:"number"` - Size PartitionDimension `json:"size"` - Start PartitionDimension `json:"start"` - TypeGUID PartitionTypeGUID `json:"typeGuid,omitempty"` -} - -type PartitionLabel string - -func (n PartitionLabel) Validate() report.Report { - // http://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_entries: - // 56 (0x38) 72 bytes Partition name (36 UTF-16LE code units) - - // XXX(vc): note GPT calls it a name, we're using label for consistency - // with udev naming /dev/disk/by-partlabel/*. - if len(string(n)) > 36 { - return report.ReportFromError(errors.ErrLabelTooLong, report.EntryError) - } - if strings.Contains(string(n), ":") { - return report.ReportFromError(errors.ErrLabelContainsColon, report.EntryWarning) - } - return report.Report{} -} - -type PartitionDimension uint64 - -type PartitionTypeGUID string - -func (d PartitionTypeGUID) Validate() report.Report { - ok, err := regexp.MatchString("^(|[[:xdigit:]]{8}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{12})$", string(d)) - if err != nil { - return report.ReportFromError(fmt.Errorf("error matching type-guid regexp: %v", err), report.EntryError) - } - if !ok { - return report.ReportFromError(errors.ErrDoesntMatchGUIDRegex, report.EntryError) - } - return report.Report{} -} diff --git a/vendor/github.com/coreos/ignition/config/v2_0/types/passwd.go b/vendor/github.com/coreos/ignition/config/v2_0/types/passwd.go deleted file mode 100644 index 0ffff43bb84..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_0/types/passwd.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -type Passwd struct { - Users []User `json:"users,omitempty"` - Groups []Group `json:"groups,omitempty"` -} diff --git a/vendor/github.com/coreos/ignition/config/v2_0/types/path.go b/vendor/github.com/coreos/ignition/config/v2_0/types/path.go deleted file mode 100644 index dcf35f80756..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_0/types/path.go +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -import ( - "path" - - "github.com/coreos/ignition/config/shared/errors" - "github.com/coreos/ignition/config/validate/report" -) - -type Path string - -func (p Path) MarshalJSON() ([]byte, error) { - return []byte(`"` + string(p) + `"`), nil -} - -func (p Path) Validate() report.Report { - if !path.IsAbs(string(p)) { - return report.ReportFromError(errors.ErrPathRelative, report.EntryError) - } - return report.Report{} -} diff --git a/vendor/github.com/coreos/ignition/config/v2_0/types/raid.go b/vendor/github.com/coreos/ignition/config/v2_0/types/raid.go deleted file mode 100644 index 329b123e6d0..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_0/types/raid.go +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -import ( - "github.com/coreos/ignition/config/shared/errors" - "github.com/coreos/ignition/config/validate/report" -) - -type Raid struct { - Name string `json:"name"` - Level string `json:"level"` - Devices []Path `json:"devices,omitempty"` - Spares int `json:"spares,omitempty"` -} - -func (n Raid) Validate() report.Report { - switch n.Level { - case "linear", "raid0", "0", "stripe": - if n.Spares != 0 { - return report.ReportFromError(errors.ErrSparesUnsupportedForLevel, report.EntryError) - } - case "raid1", "1", "mirror": - case "raid4", "4": - case "raid5", "5": - case "raid6", "6": - case "raid10", "10": - default: - return report.ReportFromError(errors.ErrUnrecognizedRaidLevel, report.EntryError) - } - return report.Report{} -} diff --git a/vendor/github.com/coreos/ignition/config/v2_0/types/storage.go b/vendor/github.com/coreos/ignition/config/v2_0/types/storage.go deleted file mode 100644 index bd7343778a9..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_0/types/storage.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -type Storage struct { - Disks []Disk `json:"disks,omitempty"` - Arrays []Raid `json:"raid,omitempty"` - Filesystems []Filesystem `json:"filesystems,omitempty"` - Files []File `json:"files,omitempty"` -} diff --git a/vendor/github.com/coreos/ignition/config/v2_0/types/systemd.go b/vendor/github.com/coreos/ignition/config/v2_0/types/systemd.go deleted file mode 100644 index 97194b91150..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_0/types/systemd.go +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -type Systemd struct { - Units []SystemdUnit `json:"units,omitempty"` -} diff --git a/vendor/github.com/coreos/ignition/config/v2_0/types/unit.go b/vendor/github.com/coreos/ignition/config/v2_0/types/unit.go deleted file mode 100644 index 06d99f26616..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_0/types/unit.go +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -import ( - "fmt" - "path" - "strings" - - "github.com/coreos/go-systemd/unit" - - "github.com/coreos/ignition/config/shared/errors" - "github.com/coreos/ignition/config/shared/validations" - "github.com/coreos/ignition/config/validate/report" -) - -type SystemdUnit struct { - Name SystemdUnitName `json:"name,omitempty"` - Enable bool `json:"enable,omitempty"` - Mask bool `json:"mask,omitempty"` - Contents string `json:"contents,omitempty"` - DropIns []SystemdUnitDropIn `json:"dropins,omitempty"` -} - -func (u SystemdUnit) Validate() report.Report { - r := report.Report{} - opts, err := validateUnitContent(u.Contents) - if err != nil { - return report.ReportFromError(err, report.EntryError) - } - - r.Merge(validations.ValidateInstallSection(string(u.Name), u.Enable, u.Contents == "", opts)) - - return r -} - -type SystemdUnitDropIn struct { - Name SystemdUnitDropInName `json:"name,omitempty"` - Contents string `json:"contents,omitempty"` -} - -func (u SystemdUnitDropIn) Validate() report.Report { - if _, err := validateUnitContent(u.Contents); err != nil { - return report.ReportFromError(err, report.EntryError) - } - - return report.Report{} -} - -type SystemdUnitName string - -func (n SystemdUnitName) Validate() report.Report { - switch path.Ext(string(n)) { - case ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice", ".scope": - return report.Report{} - default: - return report.ReportFromError(errors.ErrInvalidSystemdExt, report.EntryError) - } -} - -type SystemdUnitDropInName string - -func (n SystemdUnitDropInName) Validate() report.Report { - switch path.Ext(string(n)) { - case ".conf": - return report.Report{} - default: - return report.ReportFromError(errors.ErrInvalidSystemdDropinExt, report.EntryError) - } -} - -type NetworkdUnit struct { - Name NetworkdUnitName `json:"name,omitempty"` - Contents string `json:"contents,omitempty"` -} - -func (u NetworkdUnit) Validate() report.Report { - if _, err := validateUnitContent(u.Contents); err != nil { - return report.ReportFromError(err, report.EntryError) - } - - return report.Report{} -} - -type NetworkdUnitName string - -func (n NetworkdUnitName) Validate() report.Report { - switch path.Ext(string(n)) { - case ".link", ".netdev", ".network": - return report.Report{} - default: - return report.ReportFromError(errors.ErrInvalidNetworkdExt, report.EntryError) - } -} - -func validateUnitContent(content string) ([]*unit.UnitOption, error) { - c := strings.NewReader(content) - opts, err := unit.Deserialize(c) - if err != nil { - return nil, fmt.Errorf("invalid unit content: %s", err) - } - return opts, nil -} diff --git a/vendor/github.com/coreos/ignition/config/v2_0/types/url.go b/vendor/github.com/coreos/ignition/config/v2_0/types/url.go deleted file mode 100644 index b8ed96118be..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_0/types/url.go +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -import ( - "encoding/json" - "net/url" - - "github.com/vincent-petithory/dataurl" - - "github.com/coreos/ignition/config/shared/errors" - "github.com/coreos/ignition/config/validate/report" -) - -type Url url.URL - -func (u *Url) UnmarshalJSON(data []byte) error { - var tu string - if err := json.Unmarshal(data, &tu); err != nil { - return err - } - - pu, err := url.Parse(tu) - if err != nil { - return errors.ErrInvalidUrl - } - - *u = Url(*pu) - return nil -} - -func (u Url) MarshalJSON() ([]byte, error) { - return []byte(`"` + u.String() + `"`), nil -} - -func (u Url) String() string { - tu := url.URL(u) - return (&tu).String() -} - -func (u Url) Validate() report.Report { - // Empty url is valid, indicates an empty file - if u.String() == "" { - return report.Report{} - } - switch url.URL(u).Scheme { - case "http", "https", "oem": - return report.Report{} - case "data": - if _, err := dataurl.DecodeString(u.String()); err != nil { - return report.ReportFromError(err, report.EntryError) - } - return report.Report{} - default: - return report.ReportFromError(errors.ErrInvalidScheme, report.EntryError) - } -} diff --git a/vendor/github.com/coreos/ignition/config/v2_0/types/user.go b/vendor/github.com/coreos/ignition/config/v2_0/types/user.go deleted file mode 100644 index f6653e27494..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_0/types/user.go +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -type User struct { - Name string `json:"name,omitempty"` - PasswordHash string `json:"passwordHash,omitempty"` - SSHAuthorizedKeys []string `json:"sshAuthorizedKeys,omitempty"` - Create *UserCreate `json:"create,omitempty"` -} - -type UserCreate struct { - Uid *uint `json:"uid,omitempty"` - GECOS string `json:"gecos,omitempty"` - Homedir string `json:"homeDir,omitempty"` - NoCreateHome bool `json:"noCreateHome,omitempty"` - PrimaryGroup string `json:"primaryGroup,omitempty"` - Groups []string `json:"groups,omitempty"` - NoUserGroup bool `json:"noUserGroup,omitempty"` - System bool `json:"system,omitempty"` - NoLogInit bool `json:"noLogInit,omitempty"` - Shell string `json:"shell,omitempty"` -} diff --git a/vendor/github.com/coreos/ignition/config/v2_0/types/verification.go b/vendor/github.com/coreos/ignition/config/v2_0/types/verification.go deleted file mode 100644 index b7cef403e87..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_0/types/verification.go +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 types - -type Verification struct { - Hash *Hash `json:"hash,omitempty"` -} diff --git a/vendor/github.com/coreos/ignition/config/v2_1/append.go b/vendor/github.com/coreos/ignition/config/v2_1/append.go deleted file mode 100644 index 9c8821e132d..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_1/append.go +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 v2_1 - -import ( - "reflect" - - "github.com/coreos/ignition/config/v2_1/types" -) - -// Append appends newConfig to oldConfig and returns the result. Appending one -// config to another is accomplished by iterating over every field in the -// config structure, appending slices, recursively appending structs, and -// overwriting old values with new values for all other types. -func Append(oldConfig, newConfig types.Config) types.Config { - vOld := reflect.ValueOf(oldConfig) - vNew := reflect.ValueOf(newConfig) - - vResult := appendStruct(vOld, vNew) - - return vResult.Interface().(types.Config) -} - -// appendStruct is an internal helper function to AppendConfig. Given two values -// of structures (assumed to be the same type), recursively iterate over every -// field in the struct, appending slices, recursively appending structs, and -// overwriting old values with the new for all other types. Some individual -// struct fields have alternate merge strategies, determined by the field name. -// Currently these fields are "ignition.version", which uses the old value, and -// "ignition.config" which uses the new value. -func appendStruct(vOld, vNew reflect.Value) reflect.Value { - tOld := vOld.Type() - vRes := reflect.New(tOld) - - for i := 0; i < tOld.NumField(); i++ { - vfOld := vOld.Field(i) - vfNew := vNew.Field(i) - vfRes := vRes.Elem().Field(i) - - switch tOld.Field(i).Name { - case "Version": - vfRes.Set(vfOld) - continue - case "Config": - vfRes.Set(vfNew) - continue - } - - switch vfOld.Type().Kind() { - case reflect.Struct: - vfRes.Set(appendStruct(vfOld, vfNew)) - case reflect.Slice: - vfRes.Set(reflect.AppendSlice(vfOld, vfNew)) - default: - if vfNew.Kind() == reflect.Ptr && vfNew.IsNil() { - vfRes.Set(vfOld) - } else { - vfRes.Set(vfNew) - } - } - } - - return vRes.Elem() -} diff --git a/vendor/github.com/coreos/ignition/config/v2_1/cloudinit.go b/vendor/github.com/coreos/ignition/config/v2_1/cloudinit.go deleted file mode 100644 index a019320f41d..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_1/cloudinit.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2015 CoreOS, Inc. -// -// 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. - -// These functions are copied from github.com/coreos/coreos-cloudinit/config. - -package v2_1 - -import ( - "bytes" - "compress/gzip" - "io/ioutil" - "strings" - "unicode" -) - -func isCloudConfig(userdata []byte) bool { - header := strings.SplitN(string(decompressIfGzipped(userdata)), "\n", 2)[0] - - // Trim trailing whitespaces - header = strings.TrimRightFunc(header, unicode.IsSpace) - - return (header == "#cloud-config") -} - -func isScript(userdata []byte) bool { - header := strings.SplitN(string(decompressIfGzipped(userdata)), "\n", 2)[0] - return strings.HasPrefix(header, "#!") -} - -func decompressIfGzipped(data []byte) []byte { - if reader, err := gzip.NewReader(bytes.NewReader(data)); err == nil { - uncompressedData, err := ioutil.ReadAll(reader) - reader.Close() - if err == nil { - return uncompressedData - } else { - return data - } - } else { - return data - } -} diff --git a/vendor/github.com/coreos/ignition/config/v2_1/config.go b/vendor/github.com/coreos/ignition/config/v2_1/config.go deleted file mode 100644 index 3fd271dd7e9..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_1/config.go +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2015 CoreOS, Inc. -// -// 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 v2_1 - -import ( - "github.com/coreos/go-semver/semver" - "github.com/coreos/ignition/config/shared/errors" - "github.com/coreos/ignition/config/v2_0" - "github.com/coreos/ignition/config/v2_1/types" - "github.com/coreos/ignition/config/validate" - "github.com/coreos/ignition/config/validate/report" - - json "github.com/ajeddeloh/go-json" -) - -func Parse(rawConfig []byte) (types.Config, report.Report, error) { - if isEmpty(rawConfig) { - return types.Config{}, report.Report{}, errors.ErrEmpty - } else if isCloudConfig(rawConfig) { - return types.Config{}, report.Report{}, errors.ErrCloudConfig - } else if isScript(rawConfig) { - return types.Config{}, report.Report{}, errors.ErrScript - } - - var err error - var config types.Config - - err = json.Unmarshal(rawConfig, &config) - - version, semverErr := semver.NewVersion(config.Ignition.Version) - - if err != nil || semverErr != nil || version.LessThan(types.MaxVersion) { - // We can fail unmarshaling if it's an older config. Attempt to parse - // it as such. - config, rpt, err := v2_0.Parse(rawConfig) - if err != nil { - return types.Config{}, rpt, err - } - return TranslateFromV2_0(config), rpt, err - } - - if *version != types.MaxVersion { - return types.Config{}, report.Report{}, errors.ErrUnknownVersion - } - - rpt := validate.ValidateConfig(rawConfig, config) - if rpt.IsFatal() { - return types.Config{}, rpt, errors.ErrInvalid - } - - return config, rpt, nil -} - -func isEmpty(userdata []byte) bool { - return len(userdata) == 0 -} diff --git a/vendor/github.com/coreos/ignition/config/v2_1/translate.go b/vendor/github.com/coreos/ignition/config/v2_1/translate.go deleted file mode 100644 index e6b80dd1222..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_1/translate.go +++ /dev/null @@ -1,236 +0,0 @@ -// Copyright 2018 CoreOS, Inc. -// -// 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 v2_1 - -import ( - "strings" - - "github.com/coreos/ignition/config/util" - v2_0 "github.com/coreos/ignition/config/v2_0/types" - "github.com/coreos/ignition/config/v2_1/types" -) - -// golang-- -func translateV2_0MkfsOptionsTov2_1OptionSlice(opts v2_0.MkfsOptions) []types.CreateOption { - newOpts := make([]types.CreateOption, len(opts)) - for i, o := range opts { - newOpts[i] = types.CreateOption(o) - } - return newOpts -} - -// golang-- -func translateStringSliceTov2_1SSHAuthorizedKeySlice(keys []string) []types.SSHAuthorizedKey { - newKeys := make([]types.SSHAuthorizedKey, len(keys)) - for i, k := range keys { - newKeys[i] = types.SSHAuthorizedKey(k) - } - return newKeys -} - -// golang-- -func translateStringSliceTov2_1UsercreateGroupSlice(groups []string) []types.UsercreateGroup { - var newGroups []types.UsercreateGroup - for _, g := range groups { - newGroups = append(newGroups, types.UsercreateGroup(g)) - } - return newGroups -} - -func TranslateFromV2_0(old v2_0.Config) types.Config { - translateVerification := func(old v2_0.Verification) types.Verification { - var ver types.Verification - if old.Hash != nil { - // .String() here is a wrapper around MarshalJSON, which will put the hash in quotes - h := strings.Trim(old.Hash.String(), "\"") - ver.Hash = &h - } - return ver - } - translateConfigReference := func(old v2_0.ConfigReference) types.ConfigReference { - return types.ConfigReference{ - Source: old.Source.String(), - Verification: translateVerification(old.Verification), - } - } - - config := types.Config{ - Ignition: types.Ignition{ - Version: types.MaxVersion.String(), - }, - } - - if old.Ignition.Config.Replace != nil { - ref := translateConfigReference(*old.Ignition.Config.Replace) - config.Ignition.Config.Replace = &ref - } - - for _, oldAppend := range old.Ignition.Config.Append { - config.Ignition.Config.Append = - append(config.Ignition.Config.Append, translateConfigReference(oldAppend)) - } - - for _, oldDisk := range old.Storage.Disks { - disk := types.Disk{ - Device: string(oldDisk.Device), - WipeTable: oldDisk.WipeTable, - } - - for _, oldPartition := range oldDisk.Partitions { - disk.Partitions = append(disk.Partitions, types.Partition{ - Label: string(oldPartition.Label), - Number: oldPartition.Number, - Size: int(oldPartition.Size), - Start: int(oldPartition.Start), - TypeGUID: string(oldPartition.TypeGUID), - }) - } - - config.Storage.Disks = append(config.Storage.Disks, disk) - } - - for _, oldArray := range old.Storage.Arrays { - array := types.Raid{ - Name: oldArray.Name, - Level: oldArray.Level, - Spares: oldArray.Spares, - } - - for _, oldDevice := range oldArray.Devices { - array.Devices = append(array.Devices, types.Device(oldDevice)) - } - - config.Storage.Raid = append(config.Storage.Raid, array) - } - - for _, oldFilesystem := range old.Storage.Filesystems { - filesystem := types.Filesystem{ - Name: oldFilesystem.Name, - } - - if oldFilesystem.Mount != nil { - filesystem.Mount = &types.Mount{ - Device: string(oldFilesystem.Mount.Device), - Format: string(oldFilesystem.Mount.Format), - } - - if oldFilesystem.Mount.Create != nil { - filesystem.Mount.Create = &types.Create{ - Force: oldFilesystem.Mount.Create.Force, - Options: translateV2_0MkfsOptionsTov2_1OptionSlice(oldFilesystem.Mount.Create.Options), - } - } - } - - if oldFilesystem.Path != nil { - p := string(*oldFilesystem.Path) - filesystem.Path = &p - } - - config.Storage.Filesystems = append(config.Storage.Filesystems, filesystem) - } - - for _, oldFile := range old.Storage.Files { - file := types.File{ - Node: types.Node{ - Filesystem: oldFile.Filesystem, - Path: string(oldFile.Path), - User: types.NodeUser{ID: util.IntToPtr(oldFile.User.Id)}, - Group: types.NodeGroup{ID: util.IntToPtr(oldFile.Group.Id)}, - }, - FileEmbedded1: types.FileEmbedded1{ - Mode: int(oldFile.Mode), - Contents: types.FileContents{ - Compression: string(oldFile.Contents.Compression), - Source: oldFile.Contents.Source.String(), - Verification: translateVerification(oldFile.Contents.Verification), - }, - }, - } - - config.Storage.Files = append(config.Storage.Files, file) - } - - for _, oldUnit := range old.Systemd.Units { - unit := types.Unit{ - Name: string(oldUnit.Name), - Enable: oldUnit.Enable, - Mask: oldUnit.Mask, - Contents: oldUnit.Contents, - } - - for _, oldDropIn := range oldUnit.DropIns { - unit.Dropins = append(unit.Dropins, types.Dropin{ - Name: string(oldDropIn.Name), - Contents: oldDropIn.Contents, - }) - } - - config.Systemd.Units = append(config.Systemd.Units, unit) - } - - for _, oldUnit := range old.Networkd.Units { - config.Networkd.Units = append(config.Networkd.Units, types.Networkdunit{ - Name: string(oldUnit.Name), - Contents: oldUnit.Contents, - }) - } - - for _, oldUser := range old.Passwd.Users { - user := types.PasswdUser{ - Name: oldUser.Name, - PasswordHash: util.StrToPtr(oldUser.PasswordHash), - SSHAuthorizedKeys: translateStringSliceTov2_1SSHAuthorizedKeySlice(oldUser.SSHAuthorizedKeys), - } - - if oldUser.Create != nil { - var u *int - if oldUser.Create.Uid != nil { - tmp := int(*oldUser.Create.Uid) - u = &tmp - } - user.Create = &types.Usercreate{ - UID: u, - Gecos: oldUser.Create.GECOS, - HomeDir: oldUser.Create.Homedir, - NoCreateHome: oldUser.Create.NoCreateHome, - PrimaryGroup: oldUser.Create.PrimaryGroup, - Groups: translateStringSliceTov2_1UsercreateGroupSlice(oldUser.Create.Groups), - NoUserGroup: oldUser.Create.NoUserGroup, - System: oldUser.Create.System, - NoLogInit: oldUser.Create.NoLogInit, - Shell: oldUser.Create.Shell, - } - } - - config.Passwd.Users = append(config.Passwd.Users, user) - } - - for _, oldGroup := range old.Passwd.Groups { - var g *int - if oldGroup.Gid != nil { - tmp := int(*oldGroup.Gid) - g = &tmp - } - config.Passwd.Groups = append(config.Passwd.Groups, types.PasswdGroup{ - Name: oldGroup.Name, - Gid: g, - PasswordHash: oldGroup.PasswordHash, - System: oldGroup.System, - }) - } - - return config -} diff --git a/vendor/github.com/coreos/ignition/config/v2_2/append.go b/vendor/github.com/coreos/ignition/config/v2_2/append.go deleted file mode 100644 index cf28f40905d..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_2/append.go +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2016 CoreOS, Inc. -// -// 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 v2_2 - -import ( - "reflect" - - "github.com/coreos/ignition/config/v2_2/types" -) - -// Append appends newConfig to oldConfig and returns the result. Appending one -// config to another is accomplished by iterating over every field in the -// config structure, appending slices, recursively appending structs, and -// overwriting old values with new values for all other types. -func Append(oldConfig, newConfig types.Config) types.Config { - vOld := reflect.ValueOf(oldConfig) - vNew := reflect.ValueOf(newConfig) - - vResult := appendStruct(vOld, vNew) - - return vResult.Interface().(types.Config) -} - -// appendStruct is an internal helper function to AppendConfig. Given two values -// of structures (assumed to be the same type), recursively iterate over every -// field in the struct, appending slices, recursively appending structs, and -// overwriting old values with the new for all other types. Some individual -// struct fields have alternate merge strategies, determined by the field name. -// Currently these fields are "ignition.version", which uses the old value, and -// "ignition.config" which uses the new value. -func appendStruct(vOld, vNew reflect.Value) reflect.Value { - tOld := vOld.Type() - vRes := reflect.New(tOld) - - for i := 0; i < tOld.NumField(); i++ { - vfOld := vOld.Field(i) - vfNew := vNew.Field(i) - vfRes := vRes.Elem().Field(i) - - switch tOld.Field(i).Name { - case "Version": - vfRes.Set(vfOld) - continue - case "Config": - vfRes.Set(vfNew) - continue - } - - switch vfOld.Type().Kind() { - case reflect.Struct: - vfRes.Set(appendStruct(vfOld, vfNew)) - case reflect.Slice: - vfRes.Set(reflect.AppendSlice(vfOld, vfNew)) - default: - if vfNew.Kind() == reflect.Ptr && vfNew.IsNil() { - vfRes.Set(vfOld) - } else { - vfRes.Set(vfNew) - } - } - } - - return vRes.Elem() -} diff --git a/vendor/github.com/coreos/ignition/config/v2_2/cloudinit.go b/vendor/github.com/coreos/ignition/config/v2_2/cloudinit.go deleted file mode 100644 index 36a54393245..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_2/cloudinit.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2015 CoreOS, Inc. -// -// 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. - -// These functions are copied from github.com/coreos/coreos-cloudinit/config. - -package v2_2 - -import ( - "bytes" - "compress/gzip" - "io/ioutil" - "strings" - "unicode" -) - -func isCloudConfig(userdata []byte) bool { - header := strings.SplitN(string(decompressIfGzipped(userdata)), "\n", 2)[0] - - // Trim trailing whitespaces - header = strings.TrimRightFunc(header, unicode.IsSpace) - - return (header == "#cloud-config") -} - -func isScript(userdata []byte) bool { - header := strings.SplitN(string(decompressIfGzipped(userdata)), "\n", 2)[0] - return strings.HasPrefix(header, "#!") -} - -func decompressIfGzipped(data []byte) []byte { - if reader, err := gzip.NewReader(bytes.NewReader(data)); err == nil { - uncompressedData, err := ioutil.ReadAll(reader) - reader.Close() - if err == nil { - return uncompressedData - } else { - return data - } - } else { - return data - } -} diff --git a/vendor/github.com/coreos/ignition/config/v2_2/config.go b/vendor/github.com/coreos/ignition/config/v2_2/config.go deleted file mode 100644 index c934a9e4a38..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_2/config.go +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2015 CoreOS, Inc. -// -// 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 v2_2 - -import ( - "github.com/coreos/ignition/config/shared/errors" - "github.com/coreos/ignition/config/v2_1" - "github.com/coreos/ignition/config/v2_2/types" - "github.com/coreos/ignition/config/validate" - "github.com/coreos/ignition/config/validate/report" - - json "github.com/ajeddeloh/go-json" - "github.com/coreos/go-semver/semver" -) - -// Parse parses the raw config into a types.Config struct and generates a report of any -// errors, warnings, info, and deprecations it encountered. Unlike config.Parse, -// it does not attempt to translate the config. -func Parse(rawConfig []byte) (types.Config, report.Report, error) { - if isEmpty(rawConfig) { - return types.Config{}, report.Report{}, errors.ErrEmpty - } else if isCloudConfig(rawConfig) { - return types.Config{}, report.Report{}, errors.ErrCloudConfig - } else if isScript(rawConfig) { - return types.Config{}, report.Report{}, errors.ErrScript - } - - var err error - var config types.Config - - err = json.Unmarshal(rawConfig, &config) - - version, semverErr := semver.NewVersion(config.Ignition.Version) - - if err != nil || semverErr != nil || version.LessThan(types.MaxVersion) { - // We can fail unmarshaling if it's an older config. Attempt to parse - // it as such. - config, rpt, err := v2_1.Parse(rawConfig) - if err != nil { - return types.Config{}, rpt, err - } - return TranslateFromV2_1(config), rpt, err - } - - if *version != types.MaxVersion { - return types.Config{}, report.Report{}, errors.ErrUnknownVersion - } - - rpt := validate.ValidateConfig(rawConfig, config) - if rpt.IsFatal() { - return types.Config{}, rpt, errors.ErrInvalid - } - - return config, rpt, nil -} - -func isEmpty(userdata []byte) bool { - return len(userdata) == 0 -} diff --git a/vendor/github.com/coreos/ignition/config/v2_2/translate.go b/vendor/github.com/coreos/ignition/config/v2_2/translate.go deleted file mode 100644 index 56a6b33fc94..00000000000 --- a/vendor/github.com/coreos/ignition/config/v2_2/translate.go +++ /dev/null @@ -1,354 +0,0 @@ -// Copyright 2018 CoreOS, Inc. -// -// 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 v2_2 - -import ( - "github.com/coreos/ignition/config/util" - v2_1 "github.com/coreos/ignition/config/v2_1/types" - "github.com/coreos/ignition/config/v2_2/types" -) - -// golang-- -func translateStringSliceToV2_2SSHAuthorizedKeySlice(keys []string) []types.SSHAuthorizedKey { - newKeys := make([]types.SSHAuthorizedKey, len(keys)) - for i, k := range keys { - newKeys[i] = types.SSHAuthorizedKey(k) - } - return newKeys -} - -// golang-- -func translateStringSliceToV2_2UsercreateGroupSlice(groups []string) []types.UsercreateGroup { - var newGroups []types.UsercreateGroup - for _, g := range groups { - newGroups = append(newGroups, types.UsercreateGroup(g)) - } - return newGroups -} - -func TranslateFromV2_1(old v2_1.Config) types.Config { - translateConfigReference := func(old *v2_1.ConfigReference) *types.ConfigReference { - if old == nil { - return nil - } - return &types.ConfigReference{ - Source: old.Source, - Verification: types.Verification{ - Hash: old.Verification.Hash, - }, - } - } - translateConfigReferenceSlice := func(old []v2_1.ConfigReference) []types.ConfigReference { - var res []types.ConfigReference - for _, c := range old { - res = append(res, *translateConfigReference(&c)) - } - return res - } - translateNetworkdUnitSlice := func(old []v2_1.Networkdunit) []types.Networkdunit { - var res []types.Networkdunit - for _, u := range old { - res = append(res, types.Networkdunit{ - Contents: u.Contents, - Name: u.Name, - }) - } - return res - } - translatePasswdGroupSlice := func(old []v2_1.PasswdGroup) []types.PasswdGroup { - var res []types.PasswdGroup - for _, g := range old { - res = append(res, types.PasswdGroup{ - Gid: g.Gid, - Name: g.Name, - PasswordHash: g.PasswordHash, - System: g.System, - }) - } - return res - } - translatePasswdUsercreateGroupSlice := func(old []v2_1.UsercreateGroup) []types.UsercreateGroup { - var res []types.UsercreateGroup - for _, g := range old { - res = append(res, types.UsercreateGroup(g)) - } - return res - } - translatePasswdUsercreate := func(old *v2_1.Usercreate) *types.Usercreate { - if old == nil { - return nil - } - return &types.Usercreate{ - Gecos: old.Gecos, - Groups: translatePasswdUsercreateGroupSlice(old.Groups), - HomeDir: old.HomeDir, - NoCreateHome: old.NoCreateHome, - NoLogInit: old.NoLogInit, - NoUserGroup: old.NoUserGroup, - PrimaryGroup: old.PrimaryGroup, - Shell: old.Shell, - System: old.System, - UID: old.UID, - } - } - translatePasswdUserGroupSlice := func(old []v2_1.PasswdUserGroup) []types.Group { - var res []types.Group - for _, g := range old { - res = append(res, types.Group(g)) - } - return res - } - translatePasswdSSHAuthorizedKeySlice := func(old []v2_1.SSHAuthorizedKey) []types.SSHAuthorizedKey { - res := make([]types.SSHAuthorizedKey, len(old)) - for i, k := range old { - res[i] = types.SSHAuthorizedKey(k) - } - return res - } - translatePasswdUserSlice := func(old []v2_1.PasswdUser) []types.PasswdUser { - var res []types.PasswdUser - for _, u := range old { - res = append(res, types.PasswdUser{ - Create: translatePasswdUsercreate(u.Create), - Gecos: u.Gecos, - Groups: translatePasswdUserGroupSlice(u.Groups), - HomeDir: u.HomeDir, - Name: u.Name, - NoCreateHome: u.NoCreateHome, - NoLogInit: u.NoLogInit, - NoUserGroup: u.NoUserGroup, - PasswordHash: u.PasswordHash, - PrimaryGroup: u.PrimaryGroup, - SSHAuthorizedKeys: translatePasswdSSHAuthorizedKeySlice(u.SSHAuthorizedKeys), - Shell: u.Shell, - System: u.System, - UID: u.UID, - }) - } - return res - } - translateNodeGroup := func(old v2_1.NodeGroup) *types.NodeGroup { - return &types.NodeGroup{ - ID: old.ID, - Name: old.Name, - } - } - translateNodeUser := func(old v2_1.NodeUser) *types.NodeUser { - return &types.NodeUser{ - ID: old.ID, - Name: old.Name, - } - } - translateNode := func(old v2_1.Node) types.Node { - return types.Node{ - Filesystem: old.Filesystem, - Group: translateNodeGroup(old.Group), - Path: old.Path, - User: translateNodeUser(old.User), - } - } - translateDirectorySlice := func(old []v2_1.Directory) []types.Directory { - var res []types.Directory - for _, x := range old { - res = append(res, types.Directory{ - Node: translateNode(x.Node), - DirectoryEmbedded1: types.DirectoryEmbedded1{ - Mode: util.IntToPtr(x.DirectoryEmbedded1.Mode), - }, - }) - } - return res - } - translatePartitionSlice := func(old []v2_1.Partition) []types.Partition { - var res []types.Partition - for _, x := range old { - res = append(res, types.Partition{ - GUID: x.GUID, - Label: x.Label, - Number: x.Number, - Size: x.Size, - Start: x.Start, - TypeGUID: x.TypeGUID, - }) - } - return res - } - translateDiskSlice := func(old []v2_1.Disk) []types.Disk { - var res []types.Disk - for _, x := range old { - res = append(res, types.Disk{ - Device: x.Device, - Partitions: translatePartitionSlice(x.Partitions), - WipeTable: x.WipeTable, - }) - } - return res - } - translateFileSlice := func(old []v2_1.File) []types.File { - var res []types.File - for _, x := range old { - res = append(res, types.File{ - Node: translateNode(x.Node), - FileEmbedded1: types.FileEmbedded1{ - Contents: types.FileContents{ - Compression: x.Contents.Compression, - Source: x.Contents.Source, - Verification: types.Verification{ - Hash: x.Contents.Verification.Hash, - }, - }, - Mode: util.IntToPtr(x.Mode), - }, - }) - } - return res - } - translateMountCreateOptionSlice := func(old []v2_1.CreateOption) []types.CreateOption { - var res []types.CreateOption - for _, x := range old { - res = append(res, types.CreateOption(x)) - } - return res - } - translateMountCreate := func(old *v2_1.Create) *types.Create { - if old == nil { - return nil - } - return &types.Create{ - Force: old.Force, - Options: translateMountCreateOptionSlice(old.Options), - } - } - translateMountOptionSlice := func(old []v2_1.MountOption) []types.MountOption { - var res []types.MountOption - for _, x := range old { - res = append(res, types.MountOption(x)) - } - return res - } - translateMount := func(old *v2_1.Mount) *types.Mount { - if old == nil { - return nil - } - return &types.Mount{ - Create: translateMountCreate(old.Create), - Device: old.Device, - Format: old.Format, - Label: old.Label, - Options: translateMountOptionSlice(old.Options), - UUID: old.UUID, - WipeFilesystem: old.WipeFilesystem, - } - } - translateFilesystemSlice := func(old []v2_1.Filesystem) []types.Filesystem { - var res []types.Filesystem - for _, x := range old { - res = append(res, types.Filesystem{ - Mount: translateMount(x.Mount), - Name: x.Name, - Path: x.Path, - }) - } - return res - } - translateLinkSlice := func(old []v2_1.Link) []types.Link { - var res []types.Link - for _, x := range old { - res = append(res, types.Link{ - Node: translateNode(x.Node), - LinkEmbedded1: types.LinkEmbedded1{ - Hard: x.Hard, - Target: x.Target, - }, - }) - } - return res - } - translateDeviceSlice := func(old []v2_1.Device) []types.Device { - var res []types.Device - for _, x := range old { - res = append(res, types.Device(x)) - } - return res - } - translateRaidSlice := func(old []v2_1.Raid) []types.Raid { - var res []types.Raid - for _, x := range old { - res = append(res, types.Raid{ - Devices: translateDeviceSlice(x.Devices), - Level: x.Level, - Name: x.Name, - Spares: x.Spares, - }) - } - return res - } - translateSystemdDropinSlice := func(old []v2_1.Dropin) []types.SystemdDropin { - var res []types.SystemdDropin - for _, x := range old { - res = append(res, types.SystemdDropin{ - Contents: x.Contents, - Name: x.Name, - }) - } - return res - } - translateSystemdUnitSlice := func(old []v2_1.Unit) []types.Unit { - var res []types.Unit - for _, x := range old { - res = append(res, types.Unit{ - Contents: x.Contents, - Dropins: translateSystemdDropinSlice(x.Dropins), - Enable: x.Enable, - Enabled: x.Enabled, - Mask: x.Mask, - Name: x.Name, - }) - } - return res - } - config := types.Config{ - Ignition: types.Ignition{ - Version: types.MaxVersion.String(), - Timeouts: types.Timeouts{ - HTTPResponseHeaders: old.Ignition.Timeouts.HTTPResponseHeaders, - HTTPTotal: old.Ignition.Timeouts.HTTPTotal, - }, - Config: types.IgnitionConfig{ - Replace: translateConfigReference(old.Ignition.Config.Replace), - Append: translateConfigReferenceSlice(old.Ignition.Config.Append), - }, - }, - Networkd: types.Networkd{ - Units: translateNetworkdUnitSlice(old.Networkd.Units), - }, - Passwd: types.Passwd{ - Groups: translatePasswdGroupSlice(old.Passwd.Groups), - Users: translatePasswdUserSlice(old.Passwd.Users), - }, - Storage: types.Storage{ - Directories: translateDirectorySlice(old.Storage.Directories), - Disks: translateDiskSlice(old.Storage.Disks), - Files: translateFileSlice(old.Storage.Files), - Filesystems: translateFilesystemSlice(old.Storage.Filesystems), - Links: translateLinkSlice(old.Storage.Links), - Raid: translateRaidSlice(old.Storage.Raid), - }, - Systemd: types.Systemd{ - Units: translateSystemdUnitSlice(old.Systemd.Units), - }, - } - return config -} diff --git a/vendor/github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1/helpers.go b/vendor/github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1/helpers.go index dbab8ec7f9c..c32d1db9573 100644 --- a/vendor/github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1/helpers.go +++ b/vendor/github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1/helpers.go @@ -2,67 +2,11 @@ package v1 import ( "fmt" - "sort" - ign "github.com/coreos/ignition/config/v2_2" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -// MergeMachineConfigs combines multiple machineconfig objects into one object. -// It sorts all the configs in increasing order of their name. -// It uses the Ignition config from first object as base and appends all the rest. -// Kernel arguments are concatenated. -// It uses only the OSImageURL provided by the CVO and ignores any MC provided OSImageURL. -func MergeMachineConfigs(configs []*MachineConfig, osImageURL string) *MachineConfig { - if len(configs) == 0 { - return nil - } - sort.Slice(configs, func(i, j int) bool { return configs[i].Name < configs[j].Name }) - - var fips bool - var kernelType string - outIgn := configs[0].Spec.Config - for idx := 1; idx < len(configs); idx++ { - // if any of the config has FIPS enabled, it'll be set - if configs[idx].Spec.FIPS { - fips = true - } - outIgn = ign.Append(outIgn, configs[idx].Spec.Config) - } - - // sets the KernelType if specified in any of the MachineConfig - // Setting kerneType to realtime in any of MachineConfig takes priority - for _, cfg := range configs { - if cfg.Spec.KernelType == "realtime" { - kernelType = cfg.Spec.KernelType - break - } else if kernelType == "default" { - kernelType = cfg.Spec.KernelType - } - } - - // If no MC sets kerneType, then set it to 'default' since that's what it is using - if kernelType == "" { - kernelType = "default" - } - - kargs := []string{} - for _, cfg := range configs { - kargs = append(kargs, cfg.Spec.KernelArguments...) - } - - return &MachineConfig{ - Spec: MachineConfigSpec{ - OSImageURL: osImageURL, - KernelArguments: kargs, - Config: outIgn, - FIPS: fips, - KernelType: kernelType, - }, - } -} - // NewMachineConfigPoolCondition creates a new MachineConfigPool condition. func NewMachineConfigPoolCondition(condType MachineConfigPoolConditionType, status corev1.ConditionStatus, reason, message string) *MachineConfigPoolCondition { return &MachineConfigPoolCondition{ diff --git a/vendor/github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1/machineconfig.deepcopy.go b/vendor/github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1/machineconfig.deepcopy.go deleted file mode 100644 index 07b6854c9f8..00000000000 --- a/vendor/github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1/machineconfig.deepcopy.go +++ /dev/null @@ -1,57 +0,0 @@ -package v1 - -import ( - ign "github.com/coreos/ignition/config/v2_2" - igntypes "github.com/coreos/ignition/config/v2_2/types" - runtime "k8s.io/apimachinery/pkg/runtime" -) - -// DeepCopyInto copying the receiver, writing into out. in must be non-nil. -func (in *MachineConfig) DeepCopyInto(out *MachineConfig) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - return -} - -// DeepCopy copying the receiver, creating a new MachineConfig. -func (in *MachineConfig) DeepCopy() *MachineConfig { - if in == nil { - return nil - } - out := new(MachineConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject copying the receiver, creating a new runtime.Object. -func (in *MachineConfig) DeepCopyObject() runtime.Object { - return in.DeepCopy() -} - -// DeepCopyInto copying the receiver, writing into out. in must be non-nil. -func (in *MachineConfigSpec) DeepCopyInto(out *MachineConfigSpec) { - *out = *in - out.Config = deepCopyIgnConfig(in.Config) - return -} - -func deepCopyIgnConfig(in igntypes.Config) igntypes.Config { - var out igntypes.Config - - // https://github.com/coreos/ignition/blob/d19b2021cf397de7c31774c13805bbc3aa655646/config/v2_2/append.go#L41 - out.Ignition.Version = in.Ignition.Version - - return ign.Append(out, in) -} - -// DeepCopy copying the receiver, creating a new MachineConfigSpec. -func (in *MachineConfigSpec) DeepCopy() *MachineConfigSpec { - if in == nil { - return nil - } - out := new(MachineConfigSpec) - in.DeepCopyInto(out) - return out -} diff --git a/vendor/github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1/types.go b/vendor/github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1/types.go index 2084682d285..d48b3df66d5 100644 --- a/vendor/github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1/types.go +++ b/vendor/github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1/types.go @@ -1,7 +1,6 @@ package v1 import ( - igntypes "github.com/coreos/ignition/config/v2_2/types" configv1 "github.com/openshift/api/config/v1" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" @@ -10,6 +9,10 @@ import ( "k8s.io/apimachinery/pkg/util/intstr" ) +// MachineConfigRoleLabelKey is metadata key in the MachineConfig. Specifies the node role that config should be applied to. +// For example: `master` or `worker` +const MachineConfigRoleLabelKey = "machineconfiguration.openshift.io/role" + // +genclient // +genclient:nonNamespaced // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -39,8 +42,8 @@ type ControllerConfigSpec struct { // The openshift platform, e.g. "libvirt", "openstack", "gcp", "baremetal", "aws", or "none" Platform string `json:"platform"` - // etcdDiscoveryDomain specifies the etcd discovery domain - EtcdDiscoveryDomain string `json:"etcdDiscoveryDomain"` + // etcdDiscoveryDomain is deprecated, use Infra.Status.EtcdDiscoveryDomain instead + EtcdDiscoveryDomain string `json:"etcdDiscoveryDomain,omitempty"` // TODO: Use string for CA data @@ -57,10 +60,12 @@ type ControllerConfigSpec struct { RootCAData []byte `json:"rootCAData"` // cloudProvider specifies the cloud provider CA data + // +nullable CloudProviderCAData []byte `json:"cloudProviderCAData"` // additionalTrustBundle is a certificate bundle that will be added to the nodes // trusted certificate store. + // +nullable AdditionalTrustBundle []byte `json:"additionalTrustBundle"` // TODO: Investigate using a ConfigMapNameReference for the PullSecret and OSImageURL @@ -77,10 +82,12 @@ type ControllerConfigSpec struct { OSImageURL string `json:"osImageURL"` // proxy holds the current proxy configuration for the nodes + // +nullable Proxy *configv1.ProxyStatus `json:"proxy"` // infra holds the infrastructure details // TODO this makes platform redundant as everything is contained inside Infra.Status + // +nullable Infra *configv1.Infrastructure `json:"infra"` // kubeletIPv6 is true to force a single-stack IPv6 kubelet config @@ -145,7 +152,7 @@ type ControllerConfigList struct { // +genclient // +genclient:noStatus // +genclient:nonNamespaced -// +k8s:deepcopy-gen=false +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // MachineConfig defines the configuration for a machine type MachineConfig struct { @@ -161,8 +168,9 @@ type MachineConfigSpec struct { // fetch the OS. OSImageURL string `json:"osImageURL"` // Config is a Ignition Config object. - Config igntypes.Config `json:"config"` + Config runtime.RawExtension `json:"config"` + // +nullable KernelArguments []string `json:"kernelArguments"` FIPS bool `json:"fips"` diff --git a/vendor/github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1/zz_generated.deepcopy.go index e11796a90c0..14e903d60d0 100644 --- a/vendor/github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1/zz_generated.deepcopy.go +++ b/vendor/github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1/zz_generated.deepcopy.go @@ -453,6 +453,33 @@ func (in *KubeletConfigStatus) DeepCopy() *KubeletConfigStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineConfig) DeepCopyInto(out *MachineConfig) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfig. +func (in *MachineConfig) DeepCopy() *MachineConfig { + if in == nil { + return nil + } + out := new(MachineConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *MachineConfig) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *MachineConfigList) DeepCopyInto(out *MachineConfigList) { *out = *in @@ -641,3 +668,25 @@ func (in *MachineConfigPoolStatusConfiguration) DeepCopy() *MachineConfigPoolSta in.DeepCopyInto(out) return out } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineConfigSpec) DeepCopyInto(out *MachineConfigSpec) { + *out = *in + in.Config.DeepCopyInto(&out.Config) + if in.KernelArguments != nil { + in, out := &in.KernelArguments, &out.KernelArguments + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigSpec. +func (in *MachineConfigSpec) DeepCopy() *MachineConfigSpec { + if in == nil { + return nil + } + out := new(MachineConfigSpec) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/gopkg.in/yaml.v3/decode.go b/vendor/gopkg.in/yaml.v3/decode.go index b2e16a6da17..be63169b719 100644 --- a/vendor/gopkg.in/yaml.v3/decode.go +++ b/vendor/gopkg.in/yaml.v3/decode.go @@ -439,12 +439,41 @@ func (d *decoder) fieldByIndex(n *Node, v reflect.Value, index []int) (field ref return v } +const ( + // 400,000 decode operations is ~500kb of dense object declarations, or + // ~5kb of dense object declarations with 10000% alias expansion + alias_ratio_range_low = 400000 + + // 4,000,000 decode operations is ~5MB of dense object declarations, or + // ~4.5MB of dense object declarations with 10% alias expansion + alias_ratio_range_high = 4000000 + + // alias_ratio_range is the range over which we scale allowed alias ratios + alias_ratio_range = float64(alias_ratio_range_high - alias_ratio_range_low) +) + +func allowedAliasRatio(decodeCount int) float64 { + switch { + case decodeCount <= alias_ratio_range_low: + // allow 99% to come from alias expansion for small-to-medium documents + return 0.99 + case decodeCount >= alias_ratio_range_high: + // allow 10% to come from alias expansion for very large documents + return 0.10 + default: + // scale smoothly from 99% down to 10% over the range. + // this maps to 396,000 - 400,000 allowed alias-driven decodes over the range. + // 400,000 decode operations is ~100MB of allocations in worst-case scenarios (single-item maps). + return 0.99 - 0.89*(float64(decodeCount-alias_ratio_range_low)/alias_ratio_range) + } +} + func (d *decoder) unmarshal(n *Node, out reflect.Value) (good bool) { d.decodeCount++ if d.aliasDepth > 0 { d.aliasCount++ } - if d.aliasCount > 100 && d.decodeCount > 1000 && float64(d.aliasCount)/float64(d.decodeCount) > 0.99 { + if d.aliasCount > 100 && d.decodeCount > 1000 && float64(d.aliasCount)/float64(d.decodeCount) > allowedAliasRatio(d.decodeCount) { failf("document contains excessive aliasing") } if out.Type() == nodeType { @@ -795,7 +824,7 @@ func isStringMap(n *Node) bool { return false } l := len(n.Content) - for i := 0; i < l; i++ { + for i := 0; i < l; i += 2 { if n.Content[i].ShortTag() != strTag { return false } diff --git a/vendor/gopkg.in/yaml.v3/emitterc.go b/vendor/gopkg.in/yaml.v3/emitterc.go index a1383c0a04e..ab2a066194c 100644 --- a/vendor/gopkg.in/yaml.v3/emitterc.go +++ b/vendor/gopkg.in/yaml.v3/emitterc.go @@ -727,7 +727,7 @@ func yaml_emitter_emit_block_sequence_item(emitter *yaml_emitter_t, event *yaml_ if first { // [Go] The original logic here would not indent the sequence when inside a mapping. // In Go we always indent it, but take the sequence indicator out of the indentation. - indentless := emitter.best_indent == 2 && emitter.mapping_context && !emitter.indention + indentless := emitter.best_indent == 2 && emitter.mapping_context && (emitter.column == 0 || !emitter.indention) original := emitter.indent if !yaml_emitter_increase_indent(emitter, false, indentless) { return false diff --git a/vendor/gopkg.in/yaml.v3/scannerc.go b/vendor/gopkg.in/yaml.v3/scannerc.go index 4a9c6564603..e33f4959065 100644 --- a/vendor/gopkg.in/yaml.v3/scannerc.go +++ b/vendor/gopkg.in/yaml.v3/scannerc.go @@ -961,6 +961,9 @@ func yaml_parser_remove_simple_key(parser *yaml_parser_t) bool { return true } +// max_flow_level limits the flow_level +const max_flow_level = 10000 + // Increase the flow level and resize the simple key list if needed. func yaml_parser_increase_flow_level(parser *yaml_parser_t) bool { // Reset the simple key on the next level. @@ -968,6 +971,11 @@ func yaml_parser_increase_flow_level(parser *yaml_parser_t) bool { // Increase the flow level. parser.flow_level++ + if parser.flow_level > max_flow_level { + return yaml_parser_set_scanner_error(parser, + "while increasing flow level", parser.simple_keys[len(parser.simple_keys)-1].mark, + fmt.Sprintf("exceeded max depth of %d", max_flow_level)) + } return true } @@ -980,6 +988,9 @@ func yaml_parser_decrease_flow_level(parser *yaml_parser_t) bool { return true } +// max_indents limits the indents stack size +const max_indents = 10000 + // Push the current indentation level to the stack and set the new level // the current column is greater than the indentation level. In this case, // append or insert the specified token into the token queue. @@ -994,6 +1005,11 @@ func yaml_parser_roll_indent(parser *yaml_parser_t, column, number int, typ yaml // indentation level. parser.indents = append(parser.indents, parser.indent) parser.indent = column + if len(parser.indents) > max_indents { + return yaml_parser_set_scanner_error(parser, + "while increasing indent level", parser.simple_keys[len(parser.simple_keys)-1].mark, + fmt.Sprintf("exceeded max depth of %d", max_indents)) + } // Create a token and insert it into the queue. token := yaml_token_t{ diff --git a/vendor/modules.txt b/vendor/modules.txt index 1484cb429dc..b76cf2ae169 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -385,13 +385,7 @@ github.com/coreos/go-systemd/unit github.com/coreos/ignition/config/shared/errors github.com/coreos/ignition/config/shared/validations github.com/coreos/ignition/config/util -github.com/coreos/ignition/config/v1 -github.com/coreos/ignition/config/v1/types -github.com/coreos/ignition/config/v2_0 -github.com/coreos/ignition/config/v2_0/types -github.com/coreos/ignition/config/v2_1 github.com/coreos/ignition/config/v2_1/types -github.com/coreos/ignition/config/v2_2 github.com/coreos/ignition/config/v2_2/types github.com/coreos/ignition/config/v2_4/types github.com/coreos/ignition/config/v2_5_experimental/types @@ -959,7 +953,7 @@ github.com/openshift/machine-api-operator/pkg/apis/machine github.com/openshift/machine-api-operator/pkg/apis/machine/v1beta1 github.com/openshift/machine-api-operator/pkg/apis/vsphereprovider github.com/openshift/machine-api-operator/pkg/apis/vsphereprovider/v1beta1 -# github.com/openshift/machine-config-operator v4.2.0-alpha.0.0.20190917115525-033375cbe820+incompatible => github.com/openshift/machine-config-operator v0.0.1-0.20200130220348-e5685c0cf530 +# github.com/openshift/machine-config-operator v4.2.0-alpha.0.0.20190917115525-033375cbe820+incompatible => github.com/openshift/machine-config-operator v0.0.1-0.20200609021741-16da55b2a211 github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1 # github.com/ovirt/go-ovirt v0.0.0-20200613023950-320a86f9df27 github.com/ovirt/go-ovirt @@ -1374,7 +1368,7 @@ go.opencensus.io/trace go.opencensus.io/trace/internal go.opencensus.io/trace/propagation go.opencensus.io/trace/tracestate -# go4.org v0.0.0-20191010144846-132d2879e1e9 +# go4.org v0.0.0-20200104003542-c7e774b10ea0 go4.org/errorutil # golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073 golang.org/x/crypto/bcrypt @@ -1618,7 +1612,7 @@ gopkg.in/inf.v0 gopkg.in/ini.v1 # gopkg.in/yaml.v2 v2.2.8 gopkg.in/yaml.v2 -# gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966 +# gopkg.in/yaml.v3 v3.0.0-20191010095647-fc94e3f71652 gopkg.in/yaml.v3 # honnef.co/go/tools v0.0.1-2020.1.3 honnef.co/go/tools/arg