Skip to content

Commit

Permalink
cluster create: install the default the default cni manifest if it ex…
Browse files Browse the repository at this point in the history
…ists
  • Loading branch information
BenTheElder committed Feb 23, 2019
1 parent 6af0ab8 commit e03fb4e
Showing 1 changed file with 24 additions and 6 deletions.
30 changes: 24 additions & 6 deletions pkg/cluster/internal/create/kubeadm-init.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,11 @@ limitations under the License.
package create

import (
"sigs.k8s.io/kind/pkg/exec"
"strings"
"time"

"sigs.k8s.io/kind/pkg/exec"

log "github.com/sirupsen/logrus"

"github.com/pkg/errors"
Expand Down Expand Up @@ -103,11 +104,28 @@ func runKubeadmInit(ec *execContext, configNode *NodeReplica) error {

// install the CNI network plugin
// TODO(bentheelder): support other overlay networks
if err := node.Command(
"/bin/sh", "-c",
`kubectl apply --kubeconfig=/etc/kubernetes/admin.conf -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version --kubeconfig=/etc/kubernetes/admin.conf | base64 | tr -d '\n')"`,
).Run(); err != nil {
return errors.Wrap(err, "failed to apply overlay network")
// first probe for a pre-installed manifest
haveDefaultCNIManifest := true
if err := node.Command("test", "-f", "/kind/manifests/default-cni.yaml").Run(); err != nil {
haveDefaultCNIManifest = false
}
if haveDefaultCNIManifest {
// we found the default manifest, install that
// the images should already be loaded along with kubernetes
if err := node.Command(
"kubectl", "create", "--kubeconfig=/etc/kubernetes/admin.conf",
"-f", "/kind/manifests/default-cni.yaml",
).Run(); err != nil {
return errors.Wrap(err, "failed to apply overlay network")
}
} else {
// fallback to our old pattern of installing weave using their recommended method
if err := node.Command(
"/bin/sh", "-c",
`kubectl apply --kubeconfig=/etc/kubernetes/admin.conf -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version --kubeconfig=/etc/kubernetes/admin.conf | base64 | tr -d '\n')"`,
).Run(); err != nil {
return errors.Wrap(err, "failed to apply overlay network")
}
}

// if we are only provisioning one node, remove the master taint
Expand Down

0 comments on commit e03fb4e

Please sign in to comment.