in packages/deb/build.go [403:624]
func main() {
flag.Parse()
builds := []build{
{
Package: "kubectl",
Distros: distros,
Versions: []version{
{
GetVersion: getStableKubeVersion,
Revision: revision,
Channel: ChannelStable,
GetDownloadLinkBase: getReleaseDownloadLinkBase,
},
{
GetVersion: getLatestKubeVersion,
Revision: revision,
Channel: ChannelUnstable,
GetDownloadLinkBase: getReleaseDownloadLinkBase,
},
{
GetVersion: getLatestCIVersion,
Revision: revision,
Channel: ChannelNightly,
GetDownloadLinkBase: getCIBuildsDownloadLinkBase,
},
},
},
{
Package: "kubelet",
Distros: distros,
Versions: []version{
{
GetVersion: getStableKubeVersion,
Revision: revision,
Channel: ChannelStable,
GetDownloadLinkBase: getReleaseDownloadLinkBase,
},
{
GetVersion: getLatestKubeVersion,
Revision: revision,
Channel: ChannelUnstable,
GetDownloadLinkBase: getReleaseDownloadLinkBase,
},
{
GetVersion: getLatestCIVersion,
Revision: revision,
Channel: ChannelNightly,
GetDownloadLinkBase: getCIBuildsDownloadLinkBase,
},
},
},
{
Package: "kubernetes-cni",
Distros: distros,
Versions: []version{
{
Version: currentCNIVersion,
Revision: revision,
Channel: ChannelStable,
},
{
Version: currentCNIVersion,
Revision: revision,
Channel: ChannelUnstable,
},
{
Version: currentCNIVersion,
Revision: revision,
Channel: ChannelNightly,
},
},
},
{
Package: "kubeadm",
Distros: distros,
Versions: []version{
{
GetVersion: getStableKubeVersion,
Revision: revision,
Channel: ChannelStable,
GetDownloadLinkBase: getReleaseDownloadLinkBase,
},
{
GetVersion: getLatestKubeVersion,
Revision: revision,
Channel: ChannelUnstable,
GetDownloadLinkBase: getReleaseDownloadLinkBase,
},
{
GetVersion: getLatestCIVersion,
Revision: revision,
Channel: ChannelNightly,
GetDownloadLinkBase: getCIBuildsDownloadLinkBase,
},
},
},
{
Package: "cri-tools",
Distros: distros,
Versions: []version{
{
GetVersion: getCRIToolsLatestVersion,
Revision: revision,
Channel: ChannelStable,
},
{
GetVersion: getCRIToolsLatestVersion,
Revision: revision,
Channel: ChannelUnstable,
},
{
GetVersion: getCRIToolsLatestVersion,
Revision: revision,
Channel: ChannelNightly,
},
},
},
}
if kubeVersion != "" {
getSpecifiedVersion := func() (string, error) {
return kubeVersion, nil
}
builds = []build{
{
Package: "kubectl",
Distros: distros,
Versions: []version{
{
GetVersion: getSpecifiedVersion,
Revision: revision,
Channel: ChannelStable,
GetDownloadLinkBase: getReleaseDownloadLinkBase,
},
},
},
{
Package: "kubelet",
Distros: distros,
Versions: []version{
{
GetVersion: getSpecifiedVersion,
Revision: revision,
Channel: ChannelStable,
GetDownloadLinkBase: getReleaseDownloadLinkBase,
},
},
},
{
Package: "kubernetes-cni",
Distros: distros,
Versions: []version{
{
Version: currentCNIVersion,
Revision: revision,
Channel: ChannelStable,
},
},
},
{
Package: "kubeadm",
Distros: distros,
Versions: []version{
{
GetVersion: getSpecifiedVersion,
Revision: revision,
Channel: ChannelStable,
GetDownloadLinkBase: getReleaseDownloadLinkBase,
},
},
},
{
Package: "cri-tools",
Distros: distros,
Versions: []version{
{
GetVersion: getCRIToolsLatestVersion,
Revision: revision,
Channel: ChannelStable,
},
},
},
}
}
if err := walkBuilds(builds, func(pkg, distro, arch string, v version) error {
c := cfg{
Package: pkg,
version: v,
DistroName: distro,
Arch: arch,
}
if c.Arch == "arm" {
c.DebArch = "armhf"
} else if c.Arch == "ppc64le" {
c.DebArch = "ppc64el"
} else {
c.DebArch = c.Arch
}
var err error
c.KubeadmKubeletConfigFile, err = getKubeadmKubeletConfigFile(v)
if err != nil {
log.Fatalf("error getting kubeadm config: %v", err)
}
c.Dependencies, err = getKubeadmDependencies(v)
if err != nil {
log.Fatalf("error getting kubeadm dependencies: %v", err)
}
c.CNIVersion, err = getCNIVersion(v)
if err != nil {
log.Fatalf("error getting kubelet CNI Version: %v", err)
}
return c.run()
}); err != nil {
log.Fatalf("err: %v", err)
}
}