Skip to content
This repository has been archived by the owner on Mar 31, 2023. It is now read-only.

Commit

Permalink
capei 0.2.1
Browse files Browse the repository at this point in the history
  • Loading branch information
Jenkins committed Feb 12, 2021
2 parents 0d9f252 + 648a95e commit 9a012a3
Show file tree
Hide file tree
Showing 14 changed files with 571 additions and 26 deletions.
16 changes: 2 additions & 14 deletions cmd/wksctl/apply/apply.go
Expand Up @@ -14,10 +14,8 @@ import (
"github.com/weaveworks/cluster-api-provider-existinginfra/pkg/apis/wksprovider/machine/config"
capeios "github.com/weaveworks/cluster-api-provider-existinginfra/pkg/apis/wksprovider/machine/os"
"github.com/weaveworks/cluster-api-provider-existinginfra/pkg/cluster/machine"
"github.com/weaveworks/cluster-api-provider-existinginfra/pkg/scheme"
capeispecs "github.com/weaveworks/cluster-api-provider-existinginfra/pkg/specs"
"github.com/weaveworks/cluster-api-provider-existinginfra/pkg/utilities/kubeadm"
"github.com/weaveworks/libgitops/pkg/serializer"
"github.com/weaveworks/wksctl/pkg/addons"
wksos "github.com/weaveworks/wksctl/pkg/apis/wksprovider/machine/os"
"github.com/weaveworks/wksctl/pkg/manifests"
Expand Down Expand Up @@ -110,17 +108,6 @@ func parseCluster(clusterManifest []byte) (c *clusterv1.Cluster, eic *existingin
return capeispecs.ParseCluster(ioutil.NopCloser(bytes.NewReader(clusterManifest)))
}

func unparseCluster(c *clusterv1.Cluster, eic *existinginfrav1.ExistingInfraCluster) ([]byte, error) {
var buf bytes.Buffer
s := serializer.NewSerializer(scheme.Scheme, nil)
fw := serializer.NewYAMLFrameWriter(&buf)
err := s.Encoder().Encode(fw, c, eic)
if err != nil {
return nil, err
}
return buf.Bytes(), nil
}

func (a *Applier) initiateCluster(ctx context.Context, clusterManifestPath, machinesManifestPath string) error {
sp := specs.NewFromPaths(clusterManifestPath, machinesManifestPath)
sshClient, err := ssh.NewClientForMachine(sp.MasterSpec, sp.ClusterSpec.User, a.Params.sshKeyPath, log.GetLevel() > log.InfoLevel)
Expand Down Expand Up @@ -208,7 +195,7 @@ func (a *Applier) initiateCluster(ctx context.Context, clusterManifestPath, mach
}

eic.Spec.DeprecatedSSHKeyPath = a.Params.sshKeyPath
clusterManifest, err = unparseCluster(cluster, eic)
clusterManifest, err = wksos.UnparseCluster(cluster, eic)
if err != nil {
return errors.Wrap(err, "failed to annotate cluster manifest: ")
}
Expand Down Expand Up @@ -259,6 +246,7 @@ func (a *Applier) initiateCluster(ctx context.Context, clusterManifestPath, mach
AdditionalSANs: sp.ClusterSpec.APIServer.AdditionalSANs,
Namespace: ns,
AddonNamespaces: addonNamespaces,
Flavor: sp.ClusterSpec.Flavor,
}); err != nil {
return errors.Wrapf(err, "failed to set up seed node (%s)", sp.GetMasterPublicAddress())
}
Expand Down
179 changes: 179 additions & 0 deletions examples/footloose/cluster-eks-d.yaml
@@ -0,0 +1,179 @@
apiVersion: cluster.x-k8s.io/v1alpha3
kind: Cluster
metadata:
name: example
spec:
clusterNetwork:
pods:
cidrBlocks:
- 192.168.0.0/16
services:
cidrBlocks:
- 10.96.0.0/12
infrastructureRef:
apiVersion: cluster.weave.works/v1alpha3
kind: ExistingInfraCluster
name: example
---
apiVersion: cluster.weave.works/v1alpha3
kind: ExistingInfraCluster
metadata:
name: example
spec:
user: root
controlPlaneMachineCount: "1"
workerMachineCount: "1"
cri:
kind: docker
package: docker-ce
version: 19.03.8
kubernetesVersion: 1.18.9
flavor:
name: eks-d
manifestURL: https://distro.eks.amazonaws.com/kubernetes-1-18/kubernetes-1-18-eks-1.yaml
os:
files:
- destination: /etc/yum.repos.d/kubernetes.repo
source:
configmap: repo
contents: |
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kube*
key: kubernetes.repo
- destination: /etc/yum.repos.d/docker-ce.repo
source:
configmap: repo
contents: |
[docker-ce-stable]
name=Docker CE Stable - \$basearch
baseurl=https://download.docker.com/linux/centos/7/\$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
[docker-ce-stable-debuginfo]
name=Docker CE Stable - Debuginfo \$basearch
baseurl=https://download.docker.com/linux/centos/7/debug-\$basearch/stable
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
[docker-ce-stable-source]
name=Docker CE Stable - Sources
baseurl=https://download.docker.com/linux/centos/7/source/stable
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
[docker-ce-edge]
name=Docker CE Edge - \$basearch
baseurl=https://download.docker.com/linux/centos/7/\$basearch/edge
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
[docker-ce-edge-debuginfo]
name=Docker CE Edge - Debuginfo \$basearch
baseurl=https://download.docker.com/linux/centos/7/debug-\$basearch/edge
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
[docker-ce-edge-source]
name=Docker CE Edge - Sources
baseurl=https://download.docker.com/linux/centos/7/source/edge
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
[docker-ce-test]
name=Docker CE Test - \$basearch
baseurl=https://download.docker.com/linux/centos/7/\$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
[docker-ce-test-debuginfo]
name=Docker CE Test - Debuginfo \$basearch
baseurl=https://download.docker.com/linux/centos/7/debug-\$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
[docker-ce-test-source]
name=Docker CE Test - Sources
baseurl=https://download.docker.com/linux/centos/7/source/test
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
[docker-ce-nightly]
name=Docker CE Nightly - \$basearch
baseurl=https://download.docker.com/linux/centos/7/\$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
[docker-ce-nightly-debuginfo]
name=Docker CE Nightly - Debuginfo \$basearch
baseurl=https://download.docker.com/linux/centos/7/debug-\$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
[docker-ce-nightly-source]
name=Docker CE Nightly - Sources
baseurl=https://download.docker.com/linux/centos/7/source/nightly
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
key: docker-ce.repo
- destination: /tmp/cloud-google-com.gpg.b64
source:
configmap: repo
contents: |
mQENBFUd6rIBCAD6mhKRHDn3UrCeLDp7U5IE7AhhrOCPpqGF7mfTemZYHf/5JdjxcOxoSFlK7zwm
Fr3lVqJ+tJ9L1wd1K6P7RrtaNwCiZyeNPf/Y86AJ5NJwBe0VD0xHTXzPNTqRSByVYtdN94NoltXU
YFAAPZYQls0x0nUD1hLMlOlC2HdTPrD1PMCnYq/NuL/Vk8sWrcUt4DIS+0RDQ8tKKe5PSV0+Pnma
JvdF5CKawhh0qGTklS2MXTyKFoqjXgYDfY2EodI9ogT/LGr9Lm/+u4OFPvmN9VN6UG+s0DgJjWvp
bmuHL/ZIRwMEn/tpuneaLTO7h1dCrXC849PiJ8wSkGzBnuJQUbXnABEBAAG0QEdvb2dsZSBDbG91
ZCBQYWNrYWdlcyBBdXRvbWF0aWMgU2lnbmluZyBLZXkgPGdjLXRlYW1AZ29vZ2xlLmNvbT6JAT4E
EwECACgFAlUd6rICGy8FCQWjmoAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEDdGwginMXsP
cLcIAKi2yNhJMbu4zWQ2tM/rJFovazcY28MF2rDWGOnc9giHXOH0/BoMBcd8rw0lgjmOosBdM2JT
0HWZIxC/Gdt7NSRA0WOlJe04u82/o3OHWDgTdm9MS42noSP0mvNzNALBbQnlZHU0kvt3sV1Ysnrx
ljoIuvxKWLLwren/GVshFLPwONjw3f9Fan6GWxJyn/dkX3OSUGaduzcygw51vksBQiUZLCD2Tlxy
r9NvkZYTqiaWW78L6regvATsLc9L/dQUiSMQZIK6NglmHE+cuSaoK0H4ruNKeTiQUw/EGFaLecay
6Qy/s3Hk7K0QLd+gl0hZ1w1VzIeXLo2BRlqnjOYFX4CwAgADmQENBFrBaNsBCADrF18KCbsZlo4N
jAvVecTBCnp6WcBQJ5oSh7+E98jX9YznUCrNrgmeCcCMUvTDRDxfTaDJybaHugfba43nqhkbNpJ4
7YXsIa+YL6eEE9emSmQtjrSWIiY+2YJYwsDgsgckF3duqkb02OdBQlh6IbHPoXB6H//b1PgZYsom
B+841XW1LSJPYlYbIrWfwDfQvtkFQI90r6NknVTQlpqQh5GLNWNYqRNrGQPmsB+NrUYrkl1nUt1L
RGu+rCe4bSaSmNbwKMQKkROE4kTiB72DPk7zH4Lm0uo0YFFWG4qsMIuqEihJ/9KNX8GYBr+tWgyL
ooLlsdK3l+4dVqd8cjkJM1ExABEBAAG0QEdvb2dsZSBDbG91ZCBQYWNrYWdlcyBBdXRvbWF0aWMg
U2lnbmluZyBLZXkgPGdjLXRlYW1AZ29vZ2xlLmNvbT6JAT4EEwECACgFAlrBaNsCGy8FCQWjmoAG
CwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEGoDCyG6B/T78e8H/1WH2LN/nVNhm5TS1VYJG8B+
IW8zS4BqyozxC9iJAJqZIVHXl8g8a/Hus8RfXR7cnYHcg8sjSaJfQhqO9RbKnffiuQgGrqwQxuC2
jBa6M/QKzejTeP0Mgi67pyrLJNWrFI71RhritQZmzTZ2PoWxfv6b+Tv5v0rPaG+ut1J47pn+kYgt
UaKdsJz1umi6HzK6AacDf0C0CksJdKG7MOWsZcB4xeOxJYuy6NuO6KcdEz8/XyEUjIuIOlhYTd0h
H8E/SEBbXXft7/VBQC5wNq40izPi+6WFK/e1O42DIpzQ749ogYQ1eodexPNhLzekKR3XhGrNXJ95
r5KO10VrsLFNd8KwAgAD
key: cloud-google-com.gpg.b64
- destination: /etc/docker/daemon.json
source:
configmap: docker
contents: |
{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"exec-opts": [
"native.cgroupdriver=cgroupfs"
]
}
key: daemon.json
2 changes: 1 addition & 1 deletion examples/footloose/cluster.yaml
Expand Up @@ -18,7 +18,7 @@ spec:
apiVersion: cluster.weave.works/v1alpha3
kind: ExistingInfraCluster
metadata:
name: example
name: example-provider
spec:
user: root
controlPlaneMachineCount: "1"
Expand Down
27 changes: 27 additions & 0 deletions examples/vagrant/Vagrantfile-ubuntu
@@ -0,0 +1,27 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
(1..2).each do |i|
config.vm.define vm_name = "%s-%02d" % ["kube", i] do |config|
config.vm.box = "ubuntu/bionic64"
config.vm.hostname = vm_name

config.ssh.insert_key = false
config.vm.provision "file", source: "~/.vagrant.d/insecure_private_key", destination: "/home/vagrant/.ssh/id_rsa"
config.vm.provision "shell", inline: "chmod 400 /home/vagrant/.ssh/id_rsa"

config.vm.provider "virtualbox" do |vb|
vb.memory = "4096"
vb.cpus = 2
end

config.vm.network :private_network, ip: "172.17.8.#{i+100}"
config.vm.network "forwarded_port", guest: 6443, host: 6443, auto_correct: true
# The below line is required for Weave Net to reach the API server
# in order to get the list of peers. Without it, worker nodes never
# become "Ready".
#config.vm.provision "shell", inline: "ip route add 10.96.0.0/16 dev eth1"
end
end
end

0 comments on commit 9a012a3

Please sign in to comment.