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}}' }}
|
||||
name: nodes
|
||||
spec:
|
||||
image: coreos.com/CoreOS-stable-1409.6.0-hvm
|
||||
kubernetesVersion: {{ '{{.kubernetesVersion}}' }}
|
||||
image: {{ ChannelRecommendedImage .cloud .kubernetesVersion }}
|
||||
kubernetesVersion: {{ '{{ ChannelRecommendedKubernetesUpgradeVersion .kubernetesVersion }}' }}
|
||||
machineType: m4.large
|
||||
maxPrice: "0.5"
|
||||
maxSize: 20
|
||||
|
@ -127,9 +127,13 @@ spec:
|
|||
|
||||
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
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@ go_library(
|
|||
"//pkg/apis/kops:go_default_library",
|
||||
"//pkg/apis/kops/util: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"
|
||||
|
||||
"github.com/Masterminds/sprig/v3"
|
||||
"github.com/blang/semver/v4"
|
||||
"k8s.io/kops"
|
||||
kopsapi "k8s.io/kops/pkg/apis/kops"
|
||||
"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
|
||||
}
|
||||
|
|
|
@ -95,6 +95,11 @@ func TestRenderChannelFunctions(t *testing.T) {
|
|||
Template: `{{ ChannelRecommendedKubernetesUpgradeVersion "1.4.2" }}`,
|
||||
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)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue