Merge pull request #7377 from justinsb/download_nodeup_from_mirrors_also

Support mirroring for nodeup also
This commit is contained in:
Kubernetes Prow Robot 2019-08-16 08:00:29 -07:00 committed by GitHub
commit eeb383826f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 55 additions and 47 deletions

View File

@ -20,6 +20,7 @@ import (
"archive/tar" "archive/tar"
"fmt" "fmt"
"path" "path"
"strings"
"k8s.io/klog" "k8s.io/klog"
"k8s.io/kops/pkg/apis/kops" "k8s.io/kops/pkg/apis/kops"
@ -170,12 +171,16 @@ func (b *Builder) Build(cluster *kops.Cluster, ig *kops.InstanceGroup) (*Data, e
bootstrapScript := model.BootstrapScript{} bootstrapScript := model.BootstrapScript{}
nodeupLocation, nodeupHash, err := cloudup.NodeUpLocation(assetBuilder) {
if err != nil { asset, err := cloudup.NodeUpAsset(assetBuilder)
return nil, err if err != nil {
return nil, err
}
bootstrapScript.NodeUpSource = strings.Join(asset.Locations, ",")
bootstrapScript.NodeUpSourceHash = asset.Hash.Hex()
} }
bootstrapScript.NodeUpSource = nodeupLocation.String()
bootstrapScript.NodeUpSourceHash = nodeupHash.Hex()
bootstrapScript.NodeUpConfigBuilder = func(ig *kops.InstanceGroup) (*nodeup.Config, error) { bootstrapScript.NodeUpConfigBuilder = func(ig *kops.InstanceGroup) (*nodeup.Config, error) {
return nodeupConfig, err return nodeupConfig, err
} }

View File

@ -18,7 +18,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1bmastersadditionalcidrex
set -o nounset set -o nounset
set -o pipefail set -o pipefail
NODEUP_URL=https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup NODEUP_URL=https://github.com/kubernetes/kops/releases/download/1.8.1/linux-amd64-nodeup,https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup
NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808 NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808
export AWS_REGION=us-test-1 export AWS_REGION=us-test-1
@ -297,7 +297,7 @@ Resources.AWSAutoScalingLaunchConfigurationnodesadditionalcidrexamplecom.Propert
set -o nounset set -o nounset
set -o pipefail set -o pipefail
NODEUP_URL=https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup NODEUP_URL=https://github.com/kubernetes/kops/releases/download/1.8.1/linux-amd64-nodeup,https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup
NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808 NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808
export AWS_REGION=us-test-1 export AWS_REGION=us-test-1

View File

@ -27,7 +27,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersadditionaluserda
set -o nounset set -o nounset
set -o pipefail set -o pipefail
NODEUP_URL=https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup NODEUP_URL=https://github.com/kubernetes/kops/releases/download/1.8.1/linux-amd64-nodeup,https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup
NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808 NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808
export AWS_REGION=us-test-1 export AWS_REGION=us-test-1
@ -326,7 +326,7 @@ Resources.AWSAutoScalingLaunchConfigurationnodesadditionaluserdataexamplecom.Pro
set -o nounset set -o nounset
set -o pipefail set -o pipefail
NODEUP_URL=https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup NODEUP_URL=https://github.com/kubernetes/kops/releases/download/1.8.1/linux-amd64-nodeup,https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup
NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808 NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808
export AWS_REGION=us-test-1 export AWS_REGION=us-test-1

View File

@ -18,7 +18,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersminimalexampleco
set -o nounset set -o nounset
set -o pipefail set -o pipefail
NODEUP_URL=https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup NODEUP_URL=https://github.com/kubernetes/kops/releases/download/1.8.1/linux-amd64-nodeup,https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup
NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808 NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808
export AWS_REGION=us-test-1 export AWS_REGION=us-test-1
@ -297,7 +297,7 @@ Resources.AWSAutoScalingLaunchConfigurationnodesminimalexamplecom.Properties.Use
set -o nounset set -o nounset
set -o pipefail set -o pipefail
NODEUP_URL=https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup NODEUP_URL=https://github.com/kubernetes/kops/releases/download/1.8.1/linux-amd64-nodeup,https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup
NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808 NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808
export AWS_REGION=us-test-1 export AWS_REGION=us-test-1

View File

@ -17,7 +17,7 @@ set -o errexit
set -o nounset set -o nounset
set -o pipefail set -o pipefail
NODEUP_URL=https://kubeupv2.s3.amazonaws.com/kops/1.8.0/linux/amd64/nodeup NODEUP_URL=https://github.com/kubernetes/kops/releases/download/1.8.0/linux-amd64-nodeup,https://kubeupv2.s3.amazonaws.com/kops/1.8.0/linux/amd64/nodeup
NODEUP_HASH=02185512f78dc9d15a8c10774c4cb11f67e4bc20 NODEUP_HASH=02185512f78dc9d15a8c10774c4cb11f67e4bc20

View File

@ -17,7 +17,7 @@ set -o errexit
set -o nounset set -o nounset
set -o pipefail set -o pipefail
NODEUP_URL=https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup NODEUP_URL=https://github.com/kubernetes/kops/releases/download/1.8.1/linux-amd64-nodeup,https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup
NODEUP_HASH=02185512f78dc9d15a8c10774c4cb11f67e4bc20 NODEUP_HASH=02185512f78dc9d15a8c10774c4cb11f67e4bc20

View File

@ -18,7 +18,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersexternallbexampl
set -o nounset set -o nounset
set -o pipefail set -o pipefail
NODEUP_URL=https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup NODEUP_URL=https://github.com/kubernetes/kops/releases/download/1.8.1/linux-amd64-nodeup,https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup
NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808 NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808
export AWS_REGION=us-test-1 export AWS_REGION=us-test-1
@ -317,7 +317,7 @@ Resources.AWSAutoScalingLaunchConfigurationnodesexternallbexamplecom.Properties.
set -o nounset set -o nounset
set -o pipefail set -o pipefail
NODEUP_URL=https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup NODEUP_URL=https://github.com/kubernetes/kops/releases/download/1.8.1/linux-amd64-nodeup,https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup
NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808 NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808
export AWS_REGION=us-test-1 export AWS_REGION=us-test-1

View File

@ -18,7 +18,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersminimalexampleco
set -o nounset set -o nounset
set -o pipefail set -o pipefail
NODEUP_URL=https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup NODEUP_URL=https://github.com/kubernetes/kops/releases/download/1.8.1/linux-amd64-nodeup,https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup
NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808 NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808
export AWS_REGION=us-test-1 export AWS_REGION=us-test-1
@ -297,7 +297,7 @@ Resources.AWSAutoScalingLaunchConfigurationnodesminimalexamplecom.Properties.Use
set -o nounset set -o nounset
set -o pipefail set -o pipefail
NODEUP_URL=https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup NODEUP_URL=https://github.com/kubernetes/kops/releases/download/1.8.1/linux-amd64-nodeup,https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup
NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808 NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808
export AWS_REGION=us-test-1 export AWS_REGION=us-test-1

View File

@ -18,7 +18,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersmixedinstancesex
set -o nounset set -o nounset
set -o pipefail set -o pipefail
NODEUP_URL=https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup NODEUP_URL=https://github.com/kubernetes/kops/releases/download/1.8.1/linux-amd64-nodeup,https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup
NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808 NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808
export AWS_REGION=us-test-1 export AWS_REGION=us-test-1
@ -318,7 +318,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1bmastersmixedinstancesex
set -o nounset set -o nounset
set -o pipefail set -o pipefail
NODEUP_URL=https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup NODEUP_URL=https://github.com/kubernetes/kops/releases/download/1.8.1/linux-amd64-nodeup,https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup
NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808 NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808
export AWS_REGION=us-test-1 export AWS_REGION=us-test-1
@ -618,7 +618,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1cmastersmixedinstancesex
set -o nounset set -o nounset
set -o pipefail set -o pipefail
NODEUP_URL=https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup NODEUP_URL=https://github.com/kubernetes/kops/releases/download/1.8.1/linux-amd64-nodeup,https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup
NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808 NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808
export AWS_REGION=us-test-1 export AWS_REGION=us-test-1
@ -918,7 +918,7 @@ Resources.AWSEC2LaunchTemplatenodesmixedinstancesexamplecom.Properties.LaunchTem
set -o nounset set -o nounset
set -o pipefail set -o pipefail
NODEUP_URL=https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup NODEUP_URL=https://github.com/kubernetes/kops/releases/download/1.8.1/linux-amd64-nodeup,https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup
NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808 NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808
export AWS_REGION=us-test-1 export AWS_REGION=us-test-1

View File

@ -18,7 +18,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersmixedinstancesex
set -o nounset set -o nounset
set -o pipefail set -o pipefail
NODEUP_URL=https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup NODEUP_URL=https://github.com/kubernetes/kops/releases/download/1.8.1/linux-amd64-nodeup,https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup
NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808 NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808
export AWS_REGION=us-test-1 export AWS_REGION=us-test-1
@ -318,7 +318,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1bmastersmixedinstancesex
set -o nounset set -o nounset
set -o pipefail set -o pipefail
NODEUP_URL=https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup NODEUP_URL=https://github.com/kubernetes/kops/releases/download/1.8.1/linux-amd64-nodeup,https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup
NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808 NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808
export AWS_REGION=us-test-1 export AWS_REGION=us-test-1
@ -618,7 +618,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1cmastersmixedinstancesex
set -o nounset set -o nounset
set -o pipefail set -o pipefail
NODEUP_URL=https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup NODEUP_URL=https://github.com/kubernetes/kops/releases/download/1.8.1/linux-amd64-nodeup,https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup
NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808 NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808
export AWS_REGION=us-test-1 export AWS_REGION=us-test-1
@ -918,7 +918,7 @@ Resources.AWSEC2LaunchTemplatenodesmixedinstancesexamplecom.Properties.LaunchTem
set -o nounset set -o nounset
set -o pipefail set -o pipefail
NODEUP_URL=https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup NODEUP_URL=https://github.com/kubernetes/kops/releases/download/1.8.1/linux-amd64-nodeup,https://kubeupv2.s3.amazonaws.com/kops/1.8.1/linux/amd64/nodeup
NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808 NODEUP_HASH=bb41724c37d15ab7e039e06230e742b9b38d0808
export AWS_REGION=us-test-1 export AWS_REGION=us-test-1

View File

@ -1191,12 +1191,12 @@ func (c *ApplyClusterCmd) AddFileAssets(assetBuilder *assets.AssetBuilder) error
c.Assets = append(c.Assets, BuildMirroredAsset(utilsLocation, hash)) c.Assets = append(c.Assets, BuildMirroredAsset(utilsLocation, hash))
} }
n, hash, err := NodeUpLocation(assetBuilder) asset, err := NodeUpAsset(assetBuilder)
if err != nil { if err != nil {
return err return err
} }
c.NodeUpSource = n.String() c.NodeUpSource = strings.Join(asset.Locations, ",")
c.NodeUpHash = hash.Hex() c.NodeUpHash = asset.Hash.Hex()
// Explicitly add the protokube image, // Explicitly add the protokube image,
// otherwise when the Target is DryRun this asset is not added // otherwise when the Target is DryRun this asset is not added

View File

@ -55,11 +55,8 @@ var defaultKopsMirrors = []mirror{
var kopsBaseUrl *url.URL var kopsBaseUrl *url.URL
// nodeUpLocation caches the nodeUpLocation url // nodeUpAsset caches the nodeup download urls/hash
var nodeUpLocation *url.URL var nodeUpAsset *MirroredAsset
// nodeUpHash caches the hash for nodeup
var nodeUpHash *hashing.Hash
// protokubeLocation caches the protokubeLocation url // protokubeLocation caches the protokubeLocation url
var protokubeLocation *url.URL var protokubeLocation *url.URL
@ -119,36 +116,42 @@ func SetKopsAssetsLocations(assetsBuilder *assets.AssetBuilder) error {
return nil return nil
} }
// NodeUpLocation returns the URL where nodeup should be downloaded // NodeUpAsset returns the asset for where nodeup should be downloaded
func NodeUpLocation(assetsBuilder *assets.AssetBuilder) (*url.URL, *hashing.Hash, error) { func NodeUpAsset(assetsBuilder *assets.AssetBuilder) (*MirroredAsset, error) {
// Avoid repeated logging // Avoid repeated logging
if nodeUpLocation != nil && nodeUpHash != nil { if nodeUpAsset != nil {
// Avoid repeated logging // Avoid repeated logging
klog.V(8).Infof("Using cached nodeup location: %q", nodeUpLocation.String()) klog.V(8).Infof("Using cached nodeup location: %v", nodeUpAsset.Locations)
return nodeUpLocation, nodeUpHash, nil return nodeUpAsset, nil
} }
env := os.Getenv("NODEUP_URL") env := os.Getenv("NODEUP_URL")
var err error var err error
var u *url.URL
var hash *hashing.Hash
if env == "" { if env == "" {
nodeUpLocation, nodeUpHash, err = KopsFileUrl("linux/amd64/nodeup", assetsBuilder) u, hash, err = KopsFileUrl("linux/amd64/nodeup", assetsBuilder)
if err != nil { if err != nil {
return nil, nil, err return nil, err
} }
klog.V(8).Infof("Using default nodeup location: %q", nodeUpLocation.String()) klog.V(8).Infof("Using default nodeup location: %q", u.String())
} else { } else {
nodeUpLocation, err = url.Parse(env) u, err = url.Parse(env)
if err != nil { if err != nil {
return nil, nil, fmt.Errorf("unable to parse env var NODEUP_URL %q as a url: %v", env, err) return nil, fmt.Errorf("unable to parse env var NODEUP_URL %q as a url: %v", env, err)
} }
nodeUpLocation, nodeUpHash, err = assetsBuilder.RemapFileAndSHA(nodeUpLocation) u, hash, err = assetsBuilder.RemapFileAndSHA(u)
if err != nil { if err != nil {
return nil, nil, err return nil, err
} }
klog.Warningf("Using nodeup location from NODEUP_URL env var: %q", nodeUpLocation.String()) klog.Warningf("Using nodeup location from NODEUP_URL env var: %q", u.String())
} }
return nodeUpLocation, nodeUpHash, nil asset := BuildMirroredAsset(u, hash)
nodeUpAsset = asset
return asset, nil
} }
// TODO make this a container when hosted assets // TODO make this a container when hosted assets