mirror of https://github.com/kubernetes/kops.git
Add template function returning the latest image
Apply suggestions from code review Co-authored-by: Peter Rifel <rifelpet@users.noreply.github.com>
This commit is contained in:
parent
55a5915515
commit
05092f8389
|
@ -16,8 +16,8 @@ metadata:
|
||||||
kops.k8s.io/cluster: {{ '{{.clusterName}}.{{.dnsZone}}' }}
|
kops.k8s.io/cluster: {{ '{{.clusterName}}.{{.dnsZone}}' }}
|
||||||
name: nodes
|
name: nodes
|
||||||
spec:
|
spec:
|
||||||
image: coreos.com/CoreOS-stable-1409.6.0-hvm
|
image: {{ ChannelRecommendedImage .cloud .kubernetesVersion }}
|
||||||
kubernetesVersion: {{ '{{.kubernetesVersion}}' }}
|
kubernetesVersion: {{ '{{ ChannelRecommendedKubernetesUpgradeVersion .kubernetesVersion }}' }}
|
||||||
machineType: m4.large
|
machineType: m4.large
|
||||||
maxPrice: "0.5"
|
maxPrice: "0.5"
|
||||||
maxSize: 20
|
maxSize: 20
|
||||||
|
@ -127,9 +127,13 @@ spec:
|
||||||
|
|
||||||
This function returns the kubernetes version recommended for the running kops version.
|
This function returns the kubernetes version recommended for the running kops version.
|
||||||
|
|
||||||
##### ChannelRecommendedKopsUpgradeVersion <kuberneteVersion>
|
##### ChannelRecommendedKubernetesUpgradeVersion <kuberneteVersion>
|
||||||
|
|
||||||
This function returns the kubernetes upgrade recommendation given that you run `<kubernetesVersion>`. Typically this is the latest minor version supported by the given channel.
|
This function returns the recommended kubernetes version given that you currently run `<kubernetesVersion>`. Typically this is the latest patch version supported by the given channel.
|
||||||
|
|
||||||
|
##### ChannelRecommendedImage <cloudProvider> <kuberneteVersion>
|
||||||
|
|
||||||
|
This function returns the recommended image for the given cloud provider and kubernetes version.
|
||||||
|
|
||||||
#### Sprig functions
|
#### Sprig functions
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@ go_library(
|
||||||
"//pkg/apis/kops:go_default_library",
|
"//pkg/apis/kops:go_default_library",
|
||||||
"//pkg/apis/kops/util:go_default_library",
|
"//pkg/apis/kops/util:go_default_library",
|
||||||
"//vendor/github.com/Masterminds/sprig/v3:go_default_library",
|
"//vendor/github.com/Masterminds/sprig/v3:go_default_library",
|
||||||
|
"//vendor/github.com/blang/semver/v4:go_default_library",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ import (
|
||||||
"text/template"
|
"text/template"
|
||||||
|
|
||||||
"github.com/Masterminds/sprig/v3"
|
"github.com/Masterminds/sprig/v3"
|
||||||
|
"github.com/blang/semver/v4"
|
||||||
"k8s.io/kops"
|
"k8s.io/kops"
|
||||||
kopsapi "k8s.io/kops/pkg/apis/kops"
|
kopsapi "k8s.io/kops/pkg/apis/kops"
|
||||||
"k8s.io/kops/pkg/apis/kops/util"
|
"k8s.io/kops/pkg/apis/kops/util"
|
||||||
|
@ -62,5 +63,11 @@ func (r *Templater) templateFuncsMap(tm *template.Template) template.FuncMap {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
funcs["ChannelRecommendedImage"] = func(cloud, k8sVersion string) string {
|
||||||
|
ver, _ := semver.ParseTolerant(k8sVersion)
|
||||||
|
imageSpec := r.channel.FindImage(kopsapi.CloudProviderID(cloud), ver)
|
||||||
|
return imageSpec.Name
|
||||||
|
}
|
||||||
|
|
||||||
return funcs
|
return funcs
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,6 +95,11 @@ func TestRenderChannelFunctions(t *testing.T) {
|
||||||
Template: `{{ ChannelRecommendedKubernetesUpgradeVersion "1.4.2" }}`,
|
Template: `{{ ChannelRecommendedKubernetesUpgradeVersion "1.4.2" }}`,
|
||||||
Expected: "1.4.8",
|
Expected: "1.4.8",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
Context: map[string]interface{}{},
|
||||||
|
Template: `{{ ChannelRecommendedImage "aws" "1.4.2" }}`,
|
||||||
|
Expected: "kope.io/k8s-1.4-debian-jessie-amd64-hvm-ebs-2016-10-21",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
makeRenderTests(t, cases)
|
makeRenderTests(t, cases)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue