From ea106c4be8b50ac7569ae62e87d876975808e2c7 Mon Sep 17 00:00:00 2001 From: Ciprian Hacman Date: Sat, 6 Jun 2020 11:55:01 +0300 Subject: [PATCH] Copy "portmap" to /opt/cni/bin for Weave --- nodeup/pkg/model/networking/BUILD.bazel | 1 + nodeup/pkg/model/networking/weave.go | 40 +++++++++++++++++++++++++ upup/pkg/fi/nodeup/command.go | 3 +- 3 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 nodeup/pkg/model/networking/weave.go diff --git a/nodeup/pkg/model/networking/BUILD.bazel b/nodeup/pkg/model/networking/BUILD.bazel index b0cf17063a..a3a14e970d 100644 --- a/nodeup/pkg/model/networking/BUILD.bazel +++ b/nodeup/pkg/model/networking/BUILD.bazel @@ -9,6 +9,7 @@ go_library( "kube_router.go", "kubenet.go", "lyft.go", + "weave.go", ], importpath = "k8s.io/kops/nodeup/pkg/model/networking", visibility = ["//visibility:public"], diff --git a/nodeup/pkg/model/networking/weave.go b/nodeup/pkg/model/networking/weave.go new file mode 100644 index 0000000000..024ea7043f --- /dev/null +++ b/nodeup/pkg/model/networking/weave.go @@ -0,0 +1,40 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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 networking + +import ( + "k8s.io/kops/nodeup/pkg/model" + "k8s.io/kops/upup/pkg/fi" +) + +// WeaveBuilder installs weave +type WeaveBuilder struct { + *model.NodeupModelContext +} + +var _ fi.ModelBuilder = &WeaveBuilder{} + +// Build is responsible for configuring the weave +func (b *WeaveBuilder) Build(c *fi.ModelBuilderContext) error { + if b.Cluster.Spec.Networking.Weave == nil { + return nil + } + + b.AddCNIBinAssets(c, []string{"portmap"}) + + return nil +} diff --git a/upup/pkg/fi/nodeup/command.go b/upup/pkg/fi/nodeup/command.go index 4a25fefb80..1084b65ee8 100644 --- a/upup/pkg/fi/nodeup/command.go +++ b/upup/pkg/fi/nodeup/command.go @@ -267,8 +267,9 @@ func (c *NodeUpCommand) Run(out io.Writer) error { loader.Builders = append(loader.Builders, &networking.CiliumBuilder{NodeupModelContext: modelContext}) // Canal = Flannel + Calico, so use this builder for both CNIs loader.Builders = append(loader.Builders, &networking.FlannelBuilder{NodeupModelContext: modelContext}) - loader.Builders = append(loader.Builders, &networking.LyftVPCBuilder{NodeupModelContext: modelContext}) loader.Builders = append(loader.Builders, &networking.KuberouterBuilder{NodeupModelContext: modelContext}) + loader.Builders = append(loader.Builders, &networking.LyftVPCBuilder{NodeupModelContext: modelContext}) + loader.Builders = append(loader.Builders, &networking.WeaveBuilder{NodeupModelContext: modelContext}) // Also handles kopeio as kopeio is based on kubenet loader.Builders = append(loader.Builders, &networking.KubenetBuilder{NodeupModelContext: modelContext})