type: string
description: VM flavor for k8s hosts
+ etcd_vm_flavor:
+ type: string
+ description: VM flavor for etcd hosts
+
+ orch_vm_flavor:
+ type: string
+ description: VM flavor for orch hosts
+
integration_override_yaml:
type: string
description: Content for integration_override.yaml
docker_version:
type: string
- default: "17.03"
+ default: "17.03.2"
rancher_version:
type: string
- default: "1.6.18"
+ default: "1.6.22"
rancher_agent_version:
type: string
- default: "1.2.10"
+ default: "1.2.11"
kubectl_version:
type: string
- default: "1.8.10"
+ default: "1.11.2"
helm_version:
type: string
get_attr: [k8s_10_floating_ip, floating_ip_address],
get_attr: [k8s_11_floating_ip, floating_ip_address],
get_attr: [k8s_12_floating_ip, floating_ip_address],
- get_attr: [k8s_13_floating_ip, floating_ip_address],
]
__k8s_private_ips__: [
get_attr: [k8s_1_floating_ip, fixed_ip_address],
get_attr: [k8s_10_floating_ip, fixed_ip_address],
get_attr: [k8s_11_floating_ip, fixed_ip_address],
get_attr: [k8s_12_floating_ip, fixed_ip_address],
- get_attr: [k8s_13_floating_ip, fixed_ip_address],
]
k8s_1_private_port:
type: OS::Neutron::Port
type: OS::Nova::Server
properties:
name:
- list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_1']]
+ list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '1' ] ]
image: { get_param: ubuntu_1604_image }
flavor: { get_param: k8s_vm_flavor }
key_name: { get_param: key_name }
__docker_version__: { get_param: docker_version }
__rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
__rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
+ __host_label__: 'compute'
template:
get_file: k8s_vm_entrypoint.sh
type: OS::Nova::Server
properties:
name:
- list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_2']]
+ list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '2' ] ]
image: { get_param: ubuntu_1604_image }
flavor: { get_param: k8s_vm_flavor }
key_name: { get_param: key_name }
__docker_version__: { get_param: docker_version }
__rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
__rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
+ __host_label__: 'compute'
template:
get_file: k8s_vm_entrypoint.sh
type: OS::Nova::Server
properties:
name:
- list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_3']]
+ list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '3' ] ]
image: { get_param: ubuntu_1604_image }
flavor: { get_param: k8s_vm_flavor }
key_name: { get_param: key_name }
__docker_version__: { get_param: docker_version }
__rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
__rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
+ __host_label__: 'compute'
template:
get_file: k8s_vm_entrypoint.sh
type: OS::Nova::Server
properties:
name:
- list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_4']]
+ list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '4' ] ]
image: { get_param: ubuntu_1604_image }
flavor: { get_param: k8s_vm_flavor }
key_name: { get_param: key_name }
__docker_version__: { get_param: docker_version }
__rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
__rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
+ __host_label__: 'compute'
template:
get_file: k8s_vm_entrypoint.sh
type: OS::Nova::Server
properties:
name:
- list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_5']]
+ list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '5' ] ]
image: { get_param: ubuntu_1604_image }
flavor: { get_param: k8s_vm_flavor }
key_name: { get_param: key_name }
__docker_version__: { get_param: docker_version }
__rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
__rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
+ __host_label__: 'compute'
template:
get_file: k8s_vm_entrypoint.sh
type: OS::Nova::Server
properties:
name:
- list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_6']]
+ list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '6' ] ]
image: { get_param: ubuntu_1604_image }
flavor: { get_param: k8s_vm_flavor }
key_name: { get_param: key_name }
__docker_version__: { get_param: docker_version }
__rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
__rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
+ __host_label__: 'compute'
template:
get_file: k8s_vm_entrypoint.sh
type: OS::Nova::Server
properties:
name:
- list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_7']]
+ list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '7' ] ]
image: { get_param: ubuntu_1604_image }
flavor: { get_param: k8s_vm_flavor }
key_name: { get_param: key_name }
__docker_version__: { get_param: docker_version }
__rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
__rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
+ __host_label__: 'compute'
template:
get_file: k8s_vm_entrypoint.sh
type: OS::Nova::Server
properties:
name:
- list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_8']]
+ list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '8' ] ]
image: { get_param: ubuntu_1604_image }
flavor: { get_param: k8s_vm_flavor }
key_name: { get_param: key_name }
__docker_version__: { get_param: docker_version }
__rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
__rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
+ __host_label__: 'compute'
template:
get_file: k8s_vm_entrypoint.sh
type: OS::Nova::Server
properties:
name:
- list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_9']]
+ list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '9' ] ]
image: { get_param: ubuntu_1604_image }
flavor: { get_param: k8s_vm_flavor }
key_name: { get_param: key_name }
__docker_version__: { get_param: docker_version }
__rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
__rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
+ __host_label__: 'compute'
template:
get_file: k8s_vm_entrypoint.sh
type: OS::Nova::Server
properties:
name:
- list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_10']]
+ list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '10' ] ]
image: { get_param: ubuntu_1604_image }
flavor: { get_param: k8s_vm_flavor }
key_name: { get_param: key_name }
__docker_version__: { get_param: docker_version }
__rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
__rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
+ __host_label__: 'compute'
template:
get_file: k8s_vm_entrypoint.sh
type: OS::Nova::Server
properties:
name:
- list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_11']]
+ list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '11' ] ]
image: { get_param: ubuntu_1604_image }
flavor: { get_param: k8s_vm_flavor }
key_name: { get_param: key_name }
__docker_version__: { get_param: docker_version }
__rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
__rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
+ __host_label__: 'compute'
template:
get_file: k8s_vm_entrypoint.sh
type: OS::Nova::Server
properties:
name:
- list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_12']]
+ list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '12' ] ]
image: { get_param: ubuntu_1604_image }
flavor: { get_param: k8s_vm_flavor }
key_name: { get_param: key_name }
__docker_version__: { get_param: docker_version }
__rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
__rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
+ __host_label__: 'compute'
template:
get_file: k8s_vm_entrypoint.sh
- k8s_13_private_port:
+ etcd_1_private_port:
type: OS::Neutron::Port
properties:
network: { get_resource: oam_network }
security_groups:
- { get_resource: onap_sg }
- k8s_13_floating_ip:
+ etcd_1_floating_ip:
type: OS::Neutron::FloatingIP
properties:
floating_network_id: { get_param: public_net_id }
- port_id: { get_resource: k8s_13_private_port }
+ port_id: { get_resource: etcd_1_private_port }
- k8s_13_vm:
+ etcd_1_vm:
type: OS::Nova::Server
properties:
name:
- list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_13']]
+ list_join: ['-', [ { get_param: 'OS::stack_name' }, 'etcd', '1' ] ]
image: { get_param: ubuntu_1604_image }
- flavor: { get_param: k8s_vm_flavor }
+ flavor: { get_param: etcd_vm_flavor }
+ key_name: { get_param: key_name }
+ networks:
+ - port: { get_resource: etcd_1_private_port }
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ params:
+ __docker_proxy__: { get_param: docker_proxy }
+ __apt_proxy__: { get_param: apt_proxy }
+ __docker_version__: { get_param: docker_version }
+ __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
+ __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
+ __host_label__: 'etcd'
+ template:
+ get_file: k8s_vm_entrypoint.sh
+
+ etcd_2_private_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: oam_network }
+ fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
+ security_groups:
+ - { get_resource: onap_sg }
+
+ etcd_2_floating_ip:
+ type: OS::Neutron::FloatingIP
+ properties:
+ floating_network_id: { get_param: public_net_id }
+ port_id: { get_resource: etcd_2_private_port }
+
+ etcd_2_vm:
+ type: OS::Nova::Server
+ properties:
+ name:
+ list_join: ['-', [ { get_param: 'OS::stack_name' }, 'etcd', '2' ] ]
+ image: { get_param: ubuntu_1604_image }
+ flavor: { get_param: etcd_vm_flavor }
+ key_name: { get_param: key_name }
+ networks:
+ - port: { get_resource: etcd_2_private_port }
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ params:
+ __docker_proxy__: { get_param: docker_proxy }
+ __apt_proxy__: { get_param: apt_proxy }
+ __docker_version__: { get_param: docker_version }
+ __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
+ __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
+ __host_label__: 'etcd'
+ template:
+ get_file: k8s_vm_entrypoint.sh
+
+ etcd_3_private_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: oam_network }
+ fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
+ security_groups:
+ - { get_resource: onap_sg }
+
+ etcd_3_floating_ip:
+ type: OS::Neutron::FloatingIP
+ properties:
+ floating_network_id: { get_param: public_net_id }
+ port_id: { get_resource: etcd_3_private_port }
+
+ etcd_3_vm:
+ type: OS::Nova::Server
+ properties:
+ name:
+ list_join: ['-', [ { get_param: 'OS::stack_name' }, 'etcd', '3' ] ]
+ image: { get_param: ubuntu_1604_image }
+ flavor: { get_param: etcd_vm_flavor }
+ key_name: { get_param: key_name }
+ networks:
+ - port: { get_resource: etcd_3_private_port }
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ params:
+ __docker_proxy__: { get_param: docker_proxy }
+ __apt_proxy__: { get_param: apt_proxy }
+ __docker_version__: { get_param: docker_version }
+ __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
+ __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
+ __host_label__: 'etcd'
+ template:
+ get_file: k8s_vm_entrypoint.sh
+
+ orch_1_private_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: oam_network }
+ fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
+ security_groups:
+ - { get_resource: onap_sg }
+
+ orch_1_floating_ip:
+ type: OS::Neutron::FloatingIP
+ properties:
+ floating_network_id: { get_param: public_net_id }
+ port_id: { get_resource: orch_1_private_port }
+
+ orch_1_vm:
+ type: OS::Nova::Server
+ properties:
+ name:
+ list_join: ['-', [ { get_param: 'OS::stack_name' }, 'orch', '1' ] ]
+ image: { get_param: ubuntu_1604_image }
+ flavor: { get_param: orch_vm_flavor }
key_name: { get_param: key_name }
networks:
- - port: { get_resource: k8s_13_private_port }
+ - port: { get_resource: orch_1_private_port }
user_data_format: RAW
user_data:
str_replace:
__docker_version__: { get_param: docker_version }
__rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
__rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
+ __host_label__: 'orchestration'
+ template:
+ get_file: k8s_vm_entrypoint.sh
+
+ orch_2_private_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: oam_network }
+ fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
+ security_groups:
+ - { get_resource: onap_sg }
+
+ orch_2_floating_ip:
+ type: OS::Neutron::FloatingIP
+ properties:
+ floating_network_id: { get_param: public_net_id }
+ port_id: { get_resource: orch_2_private_port }
+
+ orch_2_vm:
+ type: OS::Nova::Server
+ properties:
+ name:
+ list_join: ['-', [ { get_param: 'OS::stack_name' }, 'orch', '2' ] ]
+ image: { get_param: ubuntu_1604_image }
+ flavor: { get_param: orch_vm_flavor }
+ key_name: { get_param: key_name }
+ networks:
+ - port: { get_resource: orch_2_private_port }
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ params:
+ __docker_proxy__: { get_param: docker_proxy }
+ __apt_proxy__: { get_param: apt_proxy }
+ __docker_version__: { get_param: docker_version }
+ __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
+ __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
+ __host_label__: 'orchestration'
template:
get_file: k8s_vm_entrypoint.sh
description: The IP address of the k8s_12 instance
value: { get_attr: [k8s_12_floating_ip, floating_ip_address] }
- k8s_13_vm_ip:
- description: The IP address of the k8s_13 instance
- value: { get_attr: [k8s_13_floating_ip, floating_ip_address] }
-
# http://www.apache.org/licenses/LICENSE-2.0
#
+export DEBIAN_FRONTEND=noninteractive
printenv
mkdir -p /opt/config
git commit -m "initial commit"
# export NFS mount
-NFS_EXP=""
-for K8S_VM_IP in $(tr -d ',[]' < /opt/config/k8s_private_ips.txt); do
- NFS_EXP+="$K8S_VM_IP(rw,fsid=1,async,no_root_squash,no_subtree_check) "
-done
-echo "/dockerdata-nfs $NFS_EXP" | tee /etc/exports
+echo "/dockerdata-nfs *(rw,fsid=1,async,no_root_squash,no_subtree_check)" | tee /etc/exports
exportfs -a
usermod -aG docker ubuntu
sleep 10
done
+apt-mark hold docker-ce
# install rancher __rancher_version__
-docker run --restart unless-stopped -d -p 8080:8080 -e CATTLE_BOOTSTRAP_REQUIRED_IMAGE=__docker_proxy__/rancher/agent:v__rancher_agent_version__ __docker_proxy__/rancher/server:v__rancher_version__
+docker run --name rancher-server --restart unless-stopped -d -p 8080:8080 -e CATTLE_BOOTSTRAP_REQUIRED_IMAGE=__docker_proxy__/rancher/agent:v__rancher_agent_version__ __docker_proxy__/rancher/server:v__rancher_version__
# install kubectl __kubectl_version__
curl -s -LO https://storage.googleapis.com/kubernetes-release/release/v__kubectl_version__/bin/linux/amd64/kubectl
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 > 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
+echo export CATTLE_ACCESS_KEY=`jq -r '.publicValue' apikeys.json` >> api-keys-rc
+echo export CATTLE_SECRET_KEY=`jq -r '.secretValue' apikeys.json` >> api-keys-rc
source api-keys-rc
-curl -u "${RANCHER_ACCESS_KEY}:${RANCHER_SECRET_KEY}" -X PUT -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"id":"registry.default","type":"activeSetting","baseType":"setting","name":"registry.default","activeValue":"__docker_proxy__","inDb":true,"source":"Database","value":"__docker_proxy__"}' http://$RANCHER_IP:8080/v2-beta/settings/registry.default
+curl -u "${CATTLE_ACCESS_KEY}:${CATTLE_SECRET_KEY}" -X PUT -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"id":"registry.default","type":"activeSetting","baseType":"setting","name":"registry.default","activeValue":"__docker_proxy__","inDb":true,"source":"Database","value":"__docker_proxy__"}' http://$RANCHER_IP:8080/v2-beta/settings/registry.default
-curl -s -u "${RANCHER_ACCESS_KEY}:${RANCHER_SECRET_KEY}" -X DELETE -H 'Content-Type: application/json' "http://$RANCHER_IP:8080/v2-beta/projects/$OLD_PID"
+curl -s -u "${CATTLE_ACCESS_KEY}:${CATTLE_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
TEMPLATE_ID=$(jq -r '.data[0].id' projectTemplatesKubernetes.json)
done
-curl -s -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" > project.json
+
+curl -s -u "${CATTLE_ACCESS_KEY}:${CATTLE_SECRET_KEY}" \
+-X PUT \
+-H 'Accept: application/json' \
+-H 'Content-Type: application/json' \
+-d '{"stacks":[{"type":"catalogTemplate", "answers":{"CONSTRAINT_TYPE":"required"}, "name":"kubernetes", "templateVersionId":"library:infra*k8s:52"}, {"type":"catalogTemplate", "name":"network-services", "templateId":"library:infra*network-services"}, {"type":"catalogTemplate", "name":"ipsec", "templateId":"library:infra*ipsec"}, {"type":"catalogTemplate", "name":"healthcheck", "templateId":"library:infra*healthcheck"}]}' \
+"http://$RANCHER_IP:8080/v2-beta/projecttemplates/$TEMPLATE_ID"
+
+curl -s -u "${CATTLE_ACCESS_KEY}:${CATTLE_SECRET_KEY}" -X POST -H 'Content-Type: application/json' -d '{ "name":"oom", "projectTemplateId":"'$TEMPLATE_ID'" }' "http://$RANCHER_IP:8080/v2-beta/projects" > 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
done
-curl -s -u $RANCHER_ACCESS_KEY:$RANCHER_SECRET_KEY -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"name":"docker-proxy", "serverAddress":"__docker_proxy__"}' $RANCHER_URL/registries > registry.json
+curl -s -u $CATTLE_ACCESS_KEY:$CATTLE_SECRET_KEY -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"name":"docker-proxy", "serverAddress":"__docker_proxy__"}' $RANCHER_URL/registries > registry.json
RID=$(jq -r '.id' registry.json)
-curl -u "${RANCHER_ACCESS_KEY}:${RANCHER_SECRET_KEY}" -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"publicValue":"docker", "registryId":"'$RID'", "secretValue":"docker", "type":"registryCredential"}' "http://$RANCHER_IP:8080/v2-beta/projects/$PID/registrycredential"
+curl -u "${CATTLE_ACCESS_KEY}:${CATTLE_SECRET_KEY}" -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"publicValue":"docker", "registryId":"'$RID'", "secretValue":"docker", "type":"registryCredential"}' "http://$RANCHER_IP:8080/v2-beta/projects/$PID/registrycredential"
cd ~
-KUBETOKEN=$(echo -n 'Basic '$(echo -n "$RANCHER_ACCESS_KEY:$RANCHER_SECRET_KEY" | base64 -w 0) | base64 -w 0)
+KUBETOKEN=$(echo -n 'Basic '$(echo -n "$CATTLE_ACCESS_KEY:$CATTLE_SECRET_KEY" | base64 -w 0) | base64 -w 0)
# create .kube/config
cat > ~/.kube/config <<EOF