diff options
author | Gary Wu <gary.i.wu@huawei.com> | 2018-01-16 18:31:01 -0800 |
---|---|---|
committer | Gary Wu <gary.i.wu@huawei.com> | 2018-01-17 16:19:42 -0800 |
commit | ccd529bf8e917c9534e43a0c35b6598e0188885e (patch) | |
tree | b4d7cc99adbd01f1cd054f434ab2a33dfea5bc5b | |
parent | d6cec0bbf6c929113b47c4a62594c3e5e2fcf261 (diff) |
Heat template for ONAP OOM deployment
Issue-ID: INT-381
Change-Id: I9b9a59c4f9efa9eadc5d47548f038800a0bba0dd
Signed-off-by: Gary Wu <gary.i.wu@huawei.com>
-rw-r--r-- | test/ete/labs/gwu/onap-oom.env | 14 | ||||
-rw-r--r-- | test/ete/labs/gwu/onap-openrc | 2 | ||||
-rw-r--r-- | test/ete/labs/gwu/onap-openstack-template.env | 2 | ||||
-rw-r--r-- | test/ete/labs/huawei/onap-oom.env | 14 | ||||
-rw-r--r-- | test/ete/labs/huawei/onap-oom.yaml | 155 |
5 files changed, 185 insertions, 2 deletions
diff --git a/test/ete/labs/gwu/onap-oom.env b/test/ete/labs/gwu/onap-oom.env new file mode 100644 index 000000000..92c13fad2 --- /dev/null +++ b/test/ete/labs/gwu/onap-oom.env @@ -0,0 +1,14 @@ +parameters: + + ############################################## + # # + # Parameters used across all ONAP components # + # # + ############################################## + + public_net_id: 024582bd-ef9b-48b9-9e70-e6732559d9df + + docker_proxy: 192.168.1.51:5000 + + apt_proxy: 192.168.1.51:3142 + diff --git a/test/ete/labs/gwu/onap-openrc b/test/ete/labs/gwu/onap-openrc index 74042317b..1a452fa0a 100644 --- a/test/ete/labs/gwu/onap-openrc +++ b/test/ete/labs/gwu/onap-openrc @@ -1,4 +1,4 @@ -export OS_PROJECT_ID=fe370564c0614739a328e20d8ae76261 +export OS_PROJECT_ID=4c93f99551604bf7af25a8f80c7f34cb export OS_PROJECT_DOMAIN_NAME=Default export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_NAME=onap diff --git a/test/ete/labs/gwu/onap-openstack-template.env b/test/ete/labs/gwu/onap-openstack-template.env index c42214937..97adca265 100644 --- a/test/ete/labs/gwu/onap-openstack-template.env +++ b/test/ete/labs/gwu/onap-openstack-template.env @@ -6,7 +6,7 @@ parameters: # # ############################################## - public_net_id: 50e7638e-a9d2-4cd9-a242-2f289f8f6553 + public_net_id: 024582bd-ef9b-48b9-9e70-e6732559d9df public_net_name: provider diff --git a/test/ete/labs/huawei/onap-oom.env b/test/ete/labs/huawei/onap-oom.env new file mode 100644 index 000000000..b50244e83 --- /dev/null +++ b/test/ete/labs/huawei/onap-oom.env @@ -0,0 +1,14 @@ +parameters: + + ############################################## + # # + # Parameters used across all ONAP components # + # # + ############################################## + + public_net_id: 3a6247f1-fac6-4167-a49f-33cc8415ccf4 + + docker_proxy: 10.145.122.118:5000 + + apt_proxy: 10.145.122.118:3142 + diff --git a/test/ete/labs/huawei/onap-oom.yaml b/test/ete/labs/huawei/onap-oom.yaml new file mode 100644 index 000000000..11767cf63 --- /dev/null +++ b/test/ete/labs/huawei/onap-oom.yaml @@ -0,0 +1,155 @@ +heat_template_version: 2015-10-15 +description: ONAP on Kubernetes using OOM + +parameters: + public_net_id: + type: string + description: The ID of the Public network for floating IP address allocation + + docker_proxy: + type: string + + apt_proxy: + type: string + +resources: + rancher_vm: + type: OS::Nova::Server + properties: + name: rancher + image: xenial + flavor: m1.medium + key_name: onap_key + networks: + - network: { get_param: public_net_id } + user_data_format: RAW + user_data: + str_replace: + params: + __docker_proxy__: { get_param: docker_proxy } + __apt_proxy__: { get_param: apt_proxy } + template: | + #!/bin/bash -x + echo `hostname -I` `hostname` >> /etc/hosts + mkdir -p /etc/docker + cat > /etc/docker/daemon.json <<EOF + { + "insecure-registries" : ["__docker_proxy__"] + } + EOF + cat > /etc/apt/apt.conf.d/30proxy<<EOF + Acquire::http { Proxy "http://__apt_proxy__"; }; + Acquire::https::Proxy "DIRECT"; + EOF + apt-get -y update + apt-get -y install docker.io + usermod -aG docker ubuntu + docker run --restart unless-stopped -d -p 8080:8080 rancher/server:v1.6.10 + + k8s_vm: + type: OS::Nova::Server + properties: + name: k8s + image: xenial + flavor: m1.xxlarge + key_name: onap_key + networks: + - network: { get_param: public_net_id } + user_data_format: RAW + user_data: + str_replace: + params: + __docker_proxy__: { get_param: docker_proxy } + __apt_proxy__: { get_param: apt_proxy } + __rancher_ip_addr__: { get_attr: [rancher_vm, first_address] } + template: | + #!/bin/bash -x + mkdir -p /opt/config + echo "__rancher_ip_addr__" > /opt/config/rancher_ip_addr.txt + echo `hostname -I` `hostname` >> /etc/hosts + mkdir -p /etc/docker + cat > /etc/docker/daemon.json <<EOF + { + "insecure-registries" : ["__docker_proxy__"] + } + EOF + cat > /etc/apt/apt.conf.d/30proxy<<EOF + Acquire::http { Proxy "http://__apt_proxy__"; }; + Acquire::https::Proxy "DIRECT"; + EOF + apt-get -y update + apt-get -y install jq + + cd ~ + + # install docker 1.12 + curl -s https://releases.rancher.com/install-docker/1.12.sh | sh + usermod -aG docker ubuntu + + # install kubernetes 1.8.6 + curl -s -LO https://storage.googleapis.com/kubernetes-release/release/v1.8.6/bin/linux/amd64/kubectl + chmod +x ./kubectl + sudo mv ./kubectl /usr/local/bin/kubectl + mkdir ~/.kube + + # install helm 2.3 + wget -q http://storage.googleapis.com/kubernetes-helm/helm-v2.3.0-linux-amd64.tar.gz + tar -zxvf helm-v2.3.0-linux-amd64.tar.gz + sudo mv linux-amd64/helm /usr/local/bin/helm + + # Fix virtual memory allocation for onap-log:elasticsearch: + sysctl -w vm.max_map_count=262144 + + # install rancher agent + echo export RANCHER_IP=__rancher_ip_addr__ > api-keys-rc + source api-keys-rc + + until curl -s -o projects.json -H "Accept: application/json" http://$RANCHER_IP:8080/v2-beta/projects; do + sleep 5 + done + OLD_PID=$(jq -r '.data[0].id' projects.json) + + curl -s -H "Accept: application/json" -H "Content-Type: application/json" -d '{"accountId":"1a1"}' http://$RANCHER_IP:8080/v2-beta/apikeys | tee apikeys.json + echo export RANCHER_ACCESS_KEY=`jq -r '.publicValue' apikeys.json` >> api-keys-rc + echo export RANCHER_SECRET_KEY=`jq -r '.secretValue' apikeys.json` >> api-keys-rc + source api-keys-rc + + curl -u "${RANCHER_ACCESS_KEY}:${RANCHER_SECRET_KEY}" -X DELETE -H 'Content-Type: application/json' "http://$RANCHER_IP:8080/v2-beta/projects/$OLD_PID" + + until [ ! -z "$TEMPLATE_ID" ] && [ "$TEMPLATE_ID" != "null" ]; do + sleep 5 + curl -s -H "Accept: application/json" http://$RANCHER_IP:8080/v2-beta/projectTemplates?name=Kubernetes | tee projectTemplatesKubernetes.json + TEMPLATE_ID=$(jq -r '.data[0].id' projectTemplatesKubernetes.json) + done + + curl -u "${RANCHER_ACCESS_KEY}:${RANCHER_SECRET_KEY}" -X POST -H 'Content-Type: application/json' -d '{ "name":"oom", "projectTemplateId":"'$TEMPLATE_ID'" }' "http://$RANCHER_IP:8080/v2-beta/projects" | tee project.json + PID=`jq -r '.id' project.json` + echo export RANCHER_URL=http://$RANCHER_IP:8080/v1/projects/$PID >> api-keys-rc + source api-keys-rc + + until [ $(jq -r '.state' project.json) == "active" ]; do + sleep 1 + curl -s -H "Accept: application/json" http://$RANCHER_IP:8080/v1/projects/$PID | tee project.json + done + + TID=$(curl -s -X POST -H "Accept: application/json" -H "Content-Type: application/json" http://$RANCHER_IP:8080/v1/projects/$PID/registrationTokens | jq -r '.id') + touch token.json + while [ $(jq -r .command token.json | wc -c) -lt 10 ]; do + sleep 1 + curl -s -X GET -H "Accept: application/json" http://$RANCHER_IP:8080/v1/projects/$PID/registrationToken/$TID | tee token.json + done + CMD=$(jq -r .command token.json) + eval $CMD + + # download rancher CLI + wget -q https://github.com/rancher/cli/releases/download/v0.6.7/rancher-linux-amd64-v0.6.7.tar.xz + unxz rancher-linux-amd64-v0.6.7.tar.xz + tar xvf rancher-linux-amd64-v0.6.7.tar + + # Clone OOM: + cd ~ + git clone -b amsterdam http://gerrit.onap.org/r/oom + + # Update values.yaml to point to docker-proxy instead of nexus3: + cd ~/oom/kubernetes + perl -p -i -e 's/nexus3.onap.org:10001/__docker_proxy__/g' `find ./ -name values.yaml` |