From 8ba58626516754d086bbdbf01066cf304e5f7177 Mon Sep 17 00:00:00 2001 From: Hong Guan Date: Thu, 22 Feb 2018 10:54:22 -0500 Subject: add tasks to install k8s tools Change-Id: Iae1032f73c03fcdf3bb69b341fc113bc67ecbb46 Issue-ID: OOM-725 Signed-off-by: hg4105 --- .../imports/cloud-config.yaml | 2 + .../openstack-blueprint.yaml | 23 +++++++++ .../kubernetes-cluster-TOSCA/scripts/k8s_tools.sh | 60 ++++++++++++++++++++++ 3 files changed, 85 insertions(+) create mode 100644 TOSCA/kubernetes-cluster-TOSCA/scripts/k8s_tools.sh (limited to 'TOSCA') 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 <>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 -- cgit 1.2.3-korg