summaryrefslogtreecommitdiffstats
path: root/src/fuel-plugin/deployment_scripts
diff options
context:
space:
mode:
authorGuo Ruijing <ruijing.guo@intel.com>2017-03-13 03:06:56 +0800
committerGuo Ruijing <ruijing.guo@intel.com>2017-03-13 03:13:38 +0800
commit14592c93aa4dd318edd686394bd13a8880c2219b (patch)
treec92a3ff881bc679efd339e32c5a4d003c33a66b9 /src/fuel-plugin/deployment_scripts
parent2a5f2db83cc403e36820464225478bf70a946c3d (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')
-rwxr-xr-xsrc/fuel-plugin/deployment_scripts/k8s-master-install.sh25
-rwxr-xr-xsrc/fuel-plugin/deployment_scripts/k8s-slave-install.sh15
-rw-r--r--src/fuel-plugin/deployment_scripts/puppet/manifests/k8s-master-install.pp22
-rw-r--r--src/fuel-plugin/deployment_scripts/puppet/manifests/k8s-slave-install.pp15
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' {
+}