diff options
author | Guo Ruijing <ruijing.guo@intel.com> | 2017-03-13 03:06:56 +0800 |
---|---|---|
committer | Guo Ruijing <ruijing.guo@intel.com> | 2017-03-13 03:13:38 +0800 |
commit | 14592c93aa4dd318edd686394bd13a8880c2219b (patch) | |
tree | c92a3ff881bc679efd339e32c5a4d003c33a66b9 /src/fuel-plugin/deployment_scripts | |
parent | 2a5f2db83cc403e36820464225478bf70a946c3d (diff) |
Deploy K8s with flannel/weave by fuel plugin
1. add license information
2. add fuel plugin to deploy k8s with flannel/weave:
[root@fuel ~]# fuel plugins
id | name | version | package_version | releases
---+-----------------+---------+-----------------+---------------------
9 | fuel-plugin-k8s | 1.0.0 | 4.0.0 | ubuntu (newton-10.0)
[root@fuel ~]# fuel nodes
id | status | name | cluster | ip | mac | roles | pending_roles | online | group_id
---+--------+------------------+---------+-----------+-------------------+------------+---------------+--------+---------
15 | ready | Untitled (36:ba) | 5 | 10.20.0.7 | 52:54:00:37:36:ba | compute | | 1 | 5
20 | ready | Untitled (a5:c0) | 5 | 10.20.0.5 | 52:54:00:15:a5:c0 | k8s-master | | 1 | 5
21 | ready | Untitled (f6:58) | 5 | 10.20.0.8 | 42:bc:7f:4a:ed:1e | k8s-slave | | 1 | 5
14 | ready | Untitled (7e:60) | 5 | 10.20.0.6 | 32:20:08:b9:e4:9a | controller | | 1 | 5
[root@fuel ~]# ssh 10.20.0.5
Warning: Permanently added '10.20.0.5' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-66-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Last login: Sun Mar 12 19:30:52 2017 from 10.20.0.2
root@node-20:~# kubectl get nodes
NAME STATUS AGE
node-20.domain.tld Ready,master 50m
node-21.domain.tld Ready 14m
root@node-20:~# kubectl get pods
NAME READY STATUS RESTARTS AGE
busybox 1/1 Running 0 11m
Change-Id: I4969c08fb35d0e7354a1cacdf89d739fff2e5eba
Signed-off-by: Guo Ruijing <ruijing.guo@intel.com>
Diffstat (limited to 'src/fuel-plugin/deployment_scripts')
4 files changed, 77 insertions, 0 deletions
diff --git a/src/fuel-plugin/deployment_scripts/k8s-master-install.sh b/src/fuel-plugin/deployment_scripts/k8s-master-install.sh new file mode 100755 index 0000000..6d05ede --- /dev/null +++ b/src/fuel-plugin/deployment_scripts/k8s-master-install.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +set -eux + +api_advertise_address=$1 +service_cidr=$2 +pod_network=$3 +pod_network_cidr=$4 +token='8c5adc.1cec8dbf339093f0' + +curl -s http://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - +cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list +deb http://apt.kubernetes.io/ kubernetes-xenial main +EOF + +sudo apt-get update +sudo apt-get install -y docker.io +sudo apt-get install -y kubelet kubeadm kubectl kubernetes-cni +rm -rf /var/lib/kubelet +sudo kubeadm init --api-advertise-addresses $api_advertise_address --service-cidr=$service_cidr --pod-network-cidr=$pod_network_cidr --token $token + +if [ $pod_network_cidr = 'flannel' ]; then + sudo kubectl apply -f http://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml +else + sudo kubectl apply -f http://git.io/weave-kube +fi diff --git a/src/fuel-plugin/deployment_scripts/k8s-slave-install.sh b/src/fuel-plugin/deployment_scripts/k8s-slave-install.sh new file mode 100755 index 0000000..cc7652f --- /dev/null +++ b/src/fuel-plugin/deployment_scripts/k8s-slave-install.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +set -eux + +api_advertise_address=$1 +token='8c5adc.1cec8dbf339093f0' + +curl -s http://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - +cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list +deb http://apt.kubernetes.io/ kubernetes-xenial main +EOF +sudo apt-get update +sudo apt-get install -y docker.io +sudo apt-get install -y kubelet kubeadm kubectl kubernetes-cni +rm -rf /var/lib/kubelet +sudo kubeadm join --token $token $api_advertise_address || true diff --git a/src/fuel-plugin/deployment_scripts/puppet/manifests/k8s-master-install.pp b/src/fuel-plugin/deployment_scripts/puppet/manifests/k8s-master-install.pp new file mode 100644 index 0000000..8c52fad --- /dev/null +++ b/src/fuel-plugin/deployment_scripts/puppet/manifests/k8s-master-install.pp @@ -0,0 +1,22 @@ +notice('MODULAR: k8s-master-install') +# get options + +$network_metadata = hiera_hash('network_metadata') +$k8s_nodes_hash = get_nodes_hash_by_roles($network_metadata, ['k8s-master']) +$k8s_mgmt_ips_hash = get_node_to_ipaddr_map_by_network_role($k8s_nodes_hash, 'management') +$k8s_mgmt_ips = values($k8s_mgmt_ips_hash) + +$network_scheme = hiera_hash('network_scheme') +$service_cidr = $network_scheme['endpoints']['br-mgmt']['IP'] + +$k8s_settings = hiera_hash('fuel-plugin-k8s') +$pod_network = $k8s_settings['pod_network'] +$pod_network_cidr = $k8s_settings['pod_network_cidr'] + +if $operatingsystem == 'Ubuntu' { + exec { 'install k8s master': + command => "/etc/fuel/plugins/fuel-plugin-k8s-1.0/k8s-master-install.sh $k8s_mgmt_ips $service_cidr $pod_network $pod_network_cidr", + path => '/usr/bin:/usr/sbin:/bin:/sbin', + } +} elsif $operatingsystem == 'CentOS' { +} diff --git a/src/fuel-plugin/deployment_scripts/puppet/manifests/k8s-slave-install.pp b/src/fuel-plugin/deployment_scripts/puppet/manifests/k8s-slave-install.pp new file mode 100644 index 0000000..4e4863b --- /dev/null +++ b/src/fuel-plugin/deployment_scripts/puppet/manifests/k8s-slave-install.pp @@ -0,0 +1,15 @@ +notice('MODULAR: k8s-slave-install') +# get options + +$network_metadata = hiera_hash('network_metadata') +$k8s_nodes_hash = get_nodes_hash_by_roles($network_metadata, ['k8s-master']) +$k8s_mgmt_ips_hash = get_node_to_ipaddr_map_by_network_role($k8s_nodes_hash, 'management') +$k8s_mgmt_ips = values($k8s_mgmt_ips_hash) + +if $operatingsystem == 'Ubuntu' { + exec { 'install k8s slave': + command => "/etc/fuel/plugins/fuel-plugin-k8s-1.0/k8s-slave-install.sh $k8s_mgmt_ips", + path => '/usr/bin:/usr/sbin:/bin:/sbin', + } +} elsif $operatingsystem == 'CentOS' { +} |