aboutsummaryrefslogtreecommitdiffstats
path: root/TOSCA/kubernetes-cluster-TOSCA
diff options
context:
space:
mode:
authorHong Guan <hg4105@att.com>2018-02-22 10:54:22 -0500
committerHong Guan <hg4105@att.com>2018-02-26 19:49:14 +0000
commit8ba58626516754d086bbdbf01066cf304e5f7177 (patch)
tree7cb56a907fc342ddab0bf89cf093a681703611b7 /TOSCA/kubernetes-cluster-TOSCA
parenta70775c54d244fe769293ea3bba1d99881416e6e (diff)
add tasks to install k8s tools
Change-Id: Iae1032f73c03fcdf3bb69b341fc113bc67ecbb46 Issue-ID: OOM-725 Signed-off-by: hg4105 <hg4105@att.com>
Diffstat (limited to 'TOSCA/kubernetes-cluster-TOSCA')
-rw-r--r--TOSCA/kubernetes-cluster-TOSCA/imports/cloud-config.yaml2
-rw-r--r--TOSCA/kubernetes-cluster-TOSCA/openstack-blueprint.yaml23
-rw-r--r--TOSCA/kubernetes-cluster-TOSCA/scripts/k8s_tools.sh60
3 files changed, 85 insertions, 0 deletions
diff --git a/TOSCA/kubernetes-cluster-TOSCA/imports/cloud-config.yaml b/TOSCA/kubernetes-cluster-TOSCA/imports/cloud-config.yaml
index 16b4b9a727..2a7b7e7bc4 100644
--- a/TOSCA/kubernetes-cluster-TOSCA/imports/cloud-config.yaml
+++ b/TOSCA/kubernetes-cluster-TOSCA/imports/cloud-config.yaml
@@ -63,6 +63,8 @@ node_templates:
- [kubectl, 1.8.6-0]
- [kubernetes-cni, 0.5.1-1]
- [nfs-utils]
+ - git
+ - wget
runcmd:
- [ setenforce, 0 ]
- [ sysctl , '--system' ]
diff --git a/TOSCA/kubernetes-cluster-TOSCA/openstack-blueprint.yaml b/TOSCA/kubernetes-cluster-TOSCA/openstack-blueprint.yaml
index 9ff0d58a80..3219791c0d 100644
--- a/TOSCA/kubernetes-cluster-TOSCA/openstack-blueprint.yaml
+++ b/TOSCA/kubernetes-cluster-TOSCA/openstack-blueprint.yaml
@@ -45,6 +45,10 @@ inputs:
User for connecting to agent VMs
default: centos
+ helm_version:
+ description: helm version to be installed
+ default: v2.7.0
+
dsl_definitions:
openstack_config: &openstack_config
@@ -76,6 +80,25 @@ node_templates:
- type: cloudify.relationships.contained_in
target: kubernetes_master_host
+ k8s_tools:
+ type: cloudify.nodes.SoftwareComponent
+ properties:
+ interfaces:
+ cloudify.interfaces.lifecycle:
+ start:
+ implementation: fabric.fabric_plugin.tasks.run_script
+ inputs:
+ script_path: scripts/k8s_tools.sh
+ process:
+ args: [{ get_input: helm_version }]
+ fabric_env:
+ host_string: { get_attribute: [ kubernetes_master_host, ip ] }
+ user: { get_input: agent_user }
+ key: { get_secret: agent_key_private }
+ relationships:
+ - type: cloudify.relationships.contained_in
+ target: kubernetes_master
+
kubernetes_master_host:
type: cloudify.openstack.nodes.Server
properties:
diff --git a/TOSCA/kubernetes-cluster-TOSCA/scripts/k8s_tools.sh b/TOSCA/kubernetes-cluster-TOSCA/scripts/k8s_tools.sh
new file mode 100644
index 0000000000..2eee89e78b
--- /dev/null
+++ b/TOSCA/kubernetes-cluster-TOSCA/scripts/k8s_tools.sh
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright (c) 2017 AT&T
+#
+# 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.
+#============LICENSE_END============================================
+
+# this script will install dashboard on k8s master.
+
+#install heapster
+git clone -b release-1.5 https://github.com/kubernetes/heapster.git
+
+kubectl create -f heapster/deploy/kube-config/influxdb/
+kubectl create -f heapster/deploy/kube-config/rbac/heapster-rbac.yaml
+
+#install dashboard
+kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/alternative/kubernetes-dashboard.yaml
+
+##Change spec.type from ClusterIP to NodePort and save.
+kubectl get svc kubernetes-dashboard --namespace=kube-system -o yaml | sed 's/type: ClusterIP/type: NodePort/' | kubectl replace -f -
+
+cat <<EOF >>dashboard-admin.yaml
+apiVersion: rbac.authorization.k8s.io/v1beta1
+kind: ClusterRoleBinding
+metadata:
+ name: kubernetes-dashboard
+ labels:
+ k8s-app: kubernetes-dashboard
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: cluster-admin
+subjects:
+- kind: ServiceAccount
+ name: kubernetes-dashboard
+ namespace: kube-system
+EOF
+
+kubectl create -f dashboard-admin.yaml
+
+#install helm
+wget http://storage.googleapis.com/kubernetes-helm/helm-$1-linux-amd64.tar.gz
+tar -zxvf helm-$1-linux-amd64.tar.gz
+sudo mv linux-amd64/helm /usr/bin/helm
+
+kubectl -n kube-system create sa tiller
+kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller
+helm init --service-account tiller \ No newline at end of file