diff options
Diffstat (limited to 'ci/opencontrail')
26 files changed, 16 insertions, 1646 deletions
diff --git a/ci/opencontrail/README b/ci/opencontrail/README deleted file mode 100644 index 4334818d..00000000 --- a/ci/opencontrail/README +++ /dev/null @@ -1,115 +0,0 @@ -OpenContrail Deployment with Juju -================================= - -This readme contains instructions for checking out and deploying Juju charms for -OpenContrail. - -The charms are targetted at Trusty but originally used OpenContrail Precise -packages. - - -Checkout charms ---------------- - -Charms are hosted on Launchpad. -You need to 'sudo apt-get install bzr' first. - -Follow these steps to checkout code: - -cd <deployer dir> -./fetch-charms.sh - -This will checkout the relevant charms into 'src' and create any Juju symlinks -in 'charms'. - - -Deploy with cloud-sh-contrail ------------------------------ - -cloud-sh-contrail is a collection of development shell scripts to deploy -and setup OpenStack with OpenContrail using Juju's local provider. This will -create 3 KVMs as follows: - -*KVM #1 - Keystone, Glance, Neutron Server, Nova Cloud Controller, Horizon, - MySQL, RabbitMQ, Contrail Configuration, Contrail Control, - Contrail Analytics, Contrail Web UI, Zookeeper - -*KVM #2 - Nova Compute with Contrail vRouter - -*KVM #3 - Cassandra - -You'll require approx. 25Gb RAM with 60Gb+ disk space. -Deployment can take anywhere between 20 mins to 1 hour. - -You need to 'sudo apt-get install juju juju-local uvtool', and -logout/login in order to pick up libvirt group permissions before -proceeding. See https://bugs.launchpad.net/juju-core/+bug/1308088. - -Follow these steps: - -ssh-keygen - (if you don't already have a key at ~/.ssh/id_rsa). - -cp cloud-sh-contrail/environments.yaml ~/.juju - (or create your own default local environment in your existing - environments.yaml file) - -cd cloud-sh-contrail - -./deploy-trusty.sh (deploys under trusty) -or -./deploy-precise.sh (deploys under precise) - -This will log to 'out.log'. - -This will deploy OpenStack and import Trusty's daily image into Glance. - -Horizon will be located on the machine 'juju status openstack-dashboard' - -http://<ip>/horizon. - -Contrail Web UI will be located on the machine 'juju status contrail-webui' - -http://<ip>:8080. - -Admin credentials will be written to cloud/admin-openrc. - -Upon deployment, the host's route and iptables config will be updated to send -NAT'ed traffic to the Nova Compute node hosting Contrail's virtual gateway. -Such changes can be disabled by not defining or commenting out the variable -'CONFIGURE_HOST_ROUTING' in cloud-sh-contrail/config-*.sh. - -The deployment can be destroyed with: - -juju destroy-environment local - - -Deploy with Juju Deployer -------------------------- - -Juju Deployer can deploy a preset configuration of charms given a yaml -configuration file. There is a configuration file in -'juju-deployer/contrail.yaml'. - -You need to 'sudo apt-get install juju-deployer' first. - -Then: - -cd juju-deployer - -juju-deployer -c contrail.yaml -d trusty-icehouse-contrail (deploy trusty) -or -juju-deployer -c contrail.yaml -d precise-icehouse-contrail (deploy precise) - -Juju Deployer will branch its own copy of the remote charms. - -Post-deployment scripts exist to configure OpenStack. -You will need 'dnsutils' package installed beforehand. -To run: - -cd scripts - -CONFIGURE_HOST_ROUTING=true ./openstack.sh - -Setting 'CONFIGURE_HOST_ROUTING' environment variable will configure the host's -route and iptables config to send NAT'ed traffic to the Nova Compute node -hosting Contrail's virtual gateway. If you do not want this, run -'./openstack.sh' directly. diff --git a/ci/opencontrail/cloud-sh-contrail/cloud-setup.sh b/ci/opencontrail/cloud-sh-contrail/cloud-setup.sh deleted file mode 100755 index 47e625c9..00000000 --- a/ci/opencontrail/cloud-sh-contrail/cloud-setup.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -e - -. ~/admin-openrc - -# adjust tiny image -nova flavor-delete m1.tiny -nova flavor-create m1.tiny 1 512 8 1 - -# configure external network -neutron net-create --router:external=True public-net -neutron subnet-create --name public-subnet --no-gateway --allocation-pool start=10.0.10.2,end=10.0.10.254 --disable-dhcp public-net 10.0.10.0/24 - -# create vm network -neutron net-create ubuntu-net -neutron subnet-create --name ubuntu-subnet --gateway 10.0.5.1 ubuntu-net 10.0.5.0/24 - -# create pool of floating ips -i=0 -while [ $i -ne 10 ]; do - neutron floatingip-create public-net - i=$((i + 1)) -done - -# configure security groups -neutron security-group-rule-create --direction ingress --ethertype IPv4 --protocol icmp --remote-ip-prefix 0.0.0.0/0 default -neutron security-group-rule-create --direction ingress --ethertype IPv4 --protocol tcp --port-range-min 22 --port-range-max 22 --remote-ip-prefix 0.0.0.0/0 default - -# import key pair -nova keypair-add --pub-key id_rsa.pub ubuntu-keypair diff --git a/ci/opencontrail/cloud-sh-contrail/compute.sh b/ci/opencontrail/cloud-sh-contrail/compute.sh deleted file mode 100755 index eb818250..00000000 --- a/ci/opencontrail/cloud-sh-contrail/compute.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -e - -modprobe kvm_intel -printf "\n%s\n" kvm_intel >> /etc/modules -service libvirt-bin restart - -sed -e 's/KSM_ENABLED=1/KSM_ENABLED=0/' -i /etc/default/qemu-kvm -service qemu-kvm restart diff --git a/ci/opencontrail/cloud-sh-contrail/config-precise.sh b/ci/opencontrail/cloud-sh-contrail/config-precise.sh deleted file mode 100644 index b22f0a6d..00000000 --- a/ci/opencontrail/cloud-sh-contrail/config-precise.sh +++ /dev/null @@ -1,48 +0,0 @@ -export JUJU_REPOSITORY=../charms - -DEFAULT_SERIES=precise - -CHARM_CASSANDRA=local:precise/cassandra -CHARM_CASSANDRA_DEPLOY_OPTS="--config config-precise.yaml" - -CHARM_CONTRAIL_ANALYTICS=local:precise/contrail-analytics -CHARM_CONTRAIL_ANALYTICS_DEPLOY_OPTS="--config config-precise.yaml" - -CHARM_CONTRAIL_CONFIGURATION=local:precise/contrail-configuration -CHARM_CONTRAIL_CONFIGURATION_DEPLOY_OPTS="--config config-precise.yaml" - -CHARM_CONTRAIL_CONTROL=local:precise/contrail-control -CHARM_CONTRAIL_CONTROL_DEPLOY_OPTS="--config config-precise.yaml" - -CHARM_CONTRAIL_WEBUI=local:trusty/contrail-webui - -CHARM_GLANCE=local:precise/glance -CHARM_GLANCE_DEPLOY_OPTS="--config config-precise.yaml" - -CHARM_KEYSTONE=local:precise/keystone -CHARM_KEYSTONE_DEPLOY_OPTS="--config config-precise.yaml" - -CHARM_MYSQL=precise/mysql -CHARM_MYSQL_DEPLOY_OPTS="--config config-precise.yaml" - -CHARM_NEUTRON_API=local:precise/neutron-api -CHARM_NEUTRON_API_DEPLOY_OPTS="--config config-precise.yaml" - -CHARM_NEUTRON_API_CONTRAIL=local:precise/neutron-api-contrail - -CHARM_NEUTRON_CONTRAIL=local:precise/neutron-contrail - -CHARM_NOVA_CLOUD_CONTROLLER=local:precise/nova-cloud-controller -CHARM_NOVA_CLOUD_CONTROLLER_DEPLOY_OPTS="--config config-precise.yaml" - -CHARM_NOVA_COMPUTE=local:precise/nova-compute -CHARM_NOVA_COMPUTE_DEPLOY_OPTS="--config config-precise.yaml" - -CHARM_OPENSTACK_DASHBOARD=local:precise/openstack-dashboard -CHARM_OPENSTACK_DASHBOARD_DEPLOY_OPTS="--config config-precise.yaml" - -CHARM_RABBITMQ_SERVER=precise/rabbitmq-server - -CHARM_ZOOKEEPER=local:precise/zookeeper - -CONFIGURE_HOST_ROUTING=true diff --git a/ci/opencontrail/cloud-sh-contrail/config-precise.yaml b/ci/opencontrail/cloud-sh-contrail/config-precise.yaml deleted file mode 100644 index ebdd0337..00000000 --- a/ci/opencontrail/cloud-sh-contrail/config-precise.yaml +++ /dev/null @@ -1,37 +0,0 @@ -cassandra: - authenticator: AllowAllAuthenticator - -contrail-analytics: - openstack-origin: cloud:precise-icehouse - -contrail-configuration: - openstack-origin: cloud:precise-icehouse - -contrail-control: - openstack-origin: cloud:precise-icehouse - -glance: - openstack-origin: cloud:precise-icehouse - -keystone: - admin-password: password - admin-role: admin - openstack-origin: cloud:precise-icehouse - -mysql: - dataset-size: 15% - -neutron-api: - manage-neutron-plugin-legacy-mode: false - openstack-origin: cloud:precise-icehouse - -nova-cloud-controller: - network-manager: Neutron - openstack-origin: cloud:precise-icehouse - -nova-compute: - manage-neutron-plugin-legacy-mode: false - openstack-origin: cloud:precise-icehouse - -openstack-dashboard: - openstack-origin: cloud:precise-icehouse diff --git a/ci/opencontrail/cloud-sh-contrail/config-trusty-juno.sh b/ci/opencontrail/cloud-sh-contrail/config-trusty-juno.sh deleted file mode 100644 index aeebf861..00000000 --- a/ci/opencontrail/cloud-sh-contrail/config-trusty-juno.sh +++ /dev/null @@ -1,48 +0,0 @@ -export JUJU_REPOSITORY=../charms - -DEFAULT_SERIES=trusty - -CHARM_CASSANDRA=local:trusty/cassandra -CHARM_CASSANDRA_DEPLOY_OPTS="--config config-trusty-juno.yaml" - -CHARM_CONTRAIL_ANALYTICS=local:trusty/contrail-analytics -CHARM_CONTRAIL_ANALYTICS_DEPLOY_OPTS="--config config-trusty-juno.yaml" - -CHARM_CONTRAIL_CONFIGURATION=local:trusty/contrail-configuration -CHARM_CONTRAIL_CONFIGURATION_DEPLOY_OPTS="--config config-trusty-juno.yaml" - -CHARM_CONTRAIL_CONTROL=local:trusty/contrail-control -CHARM_CONTRAIL_CONTROL_DEPLOY_OPTS="--config config-trusty-juno.yaml" - -CHARM_CONTRAIL_WEBUI=local:trusty/contrail-webui - -CHARM_GLANCE=local:trusty/glance -CHARM_GLANCE_DEPLOY_OPTS="--config config-trusty-juno.yaml" - -CHARM_KEYSTONE=local:trusty/keystone -CHARM_KEYSTONE_DEPLOY_OPTS="--config config-trusty-juno.yaml" - -CHARM_MYSQL=trusty/mysql -CHARM_MYSQL_DEPLOY_OPTS="--config config-trusty-juno.yaml" - -CHARM_NEUTRON_API=local:trusty/neutron-api -CHARM_NEUTRON_API_DEPLOY_OPTS="--config config-trusty-juno.yaml" - -CHARM_NEUTRON_API_CONTRAIL=local:trusty/neutron-api-contrail - -CHARM_NEUTRON_CONTRAIL=local:trusty/neutron-contrail - -CHARM_NOVA_CLOUD_CONTROLLER=local:trusty/nova-cloud-controller -CHARM_NOVA_CLOUD_CONTROLLER_DEPLOY_OPTS="--config config-trusty-juno.yaml" - -CHARM_NOVA_COMPUTE=local:trusty/nova-compute -CHARM_NOVA_COMPUTE_DEPLOY_OPTS="--config config-trusty-juno.yaml" - -CHARM_OPENSTACK_DASHBOARD=local:trusty/openstack-dashboard -CHARM_OPENSTACK_DASHBOARD_DEPLOY_OPTS="--config config-trusty-juno.yaml" - -CHARM_RABBITMQ_SERVER=trusty/rabbitmq-server - -CHARM_ZOOKEEPER=local:precise/zookeeper - -CONFIGURE_HOST_ROUTING=true diff --git a/ci/opencontrail/cloud-sh-contrail/config-trusty-juno.yaml b/ci/opencontrail/cloud-sh-contrail/config-trusty-juno.yaml deleted file mode 100644 index 7db15be9..00000000 --- a/ci/opencontrail/cloud-sh-contrail/config-trusty-juno.yaml +++ /dev/null @@ -1,37 +0,0 @@ -cassandra: - authenticator: AllowAllAuthenticator - -contrail-analytics: - openstack-origin: cloud:trusty-juno - -contrail-configuration: - openstack-origin: cloud:trusty-juno - -contrail-control: - openstack-origin: cloud:trusty-juno - -glance: - openstack-origin: cloud:trusty-juno - -keystone: - admin-password: password - admin-role: admin - openstack-origin: cloud:trusty-juno - -mysql: - dataset-size: 15% - -neutron-api: - manage-neutron-plugin-legacy-mode: false - openstack-origin: cloud:trusty-juno - -nova-cloud-controller: - network-manager: Neutron - openstack-origin: cloud:trusty-juno - -nova-compute: - manage-neutron-plugin-legacy-mode: false - openstack-origin: cloud:trusty-juno - -openstack-dashboard: - openstack-origin: cloud:trusty-juno diff --git a/ci/opencontrail/cloud-sh-contrail/config-trusty.sh b/ci/opencontrail/cloud-sh-contrail/config-trusty.sh deleted file mode 100644 index 9d38461c..00000000 --- a/ci/opencontrail/cloud-sh-contrail/config-trusty.sh +++ /dev/null @@ -1,43 +0,0 @@ -export JUJU_REPOSITORY=../charms - -DEFAULT_SERIES=trusty - -CHARM_CASSANDRA=local:trusty/cassandra -CHARM_CASSANDRA_DEPLOY_OPTS="--config config-trusty.yaml" - -CHARM_CONTRAIL_ANALYTICS=local:trusty/contrail-analytics - -CHARM_CONTRAIL_CONFIGURATION=local:trusty/contrail-configuration - -CHARM_CONTRAIL_CONTROL=local:trusty/contrail-control - -CHARM_CONTRAIL_WEBUI=local:trusty/contrail-webui - -CHARM_GLANCE=local:trusty/glance - -CHARM_KEYSTONE=local:trusty/keystone -CHARM_KEYSTONE_DEPLOY_OPTS="--config config-trusty.yaml" - -CHARM_MYSQL=trusty/mysql -CHARM_MYSQL_DEPLOY_OPTS="--config config-trusty.yaml" - -CHARM_NEUTRON_API=local:trusty/neutron-api -CHARM_NEUTRON_API_DEPLOY_OPTS="--config config-trusty.yaml" - -CHARM_NEUTRON_API_CONTRAIL=local:trusty/neutron-api-contrail - -CHARM_NEUTRON_CONTRAIL=local:trusty/neutron-contrail - -CHARM_NOVA_CLOUD_CONTROLLER=local:trusty/nova-cloud-controller -CHARM_NOVA_CLOUD_CONTROLLER_DEPLOY_OPTS="--config config-trusty.yaml" - -CHARM_NOVA_COMPUTE=local:trusty/nova-compute -CHARM_NOVA_COMPUTE_DEPLOY_OPTS="--config config-trusty.yaml" - -CHARM_OPENSTACK_DASHBOARD=local:trusty/openstack-dashboard - -CHARM_RABBITMQ_SERVER=trusty/rabbitmq-server - -CHARM_ZOOKEEPER=local:precise/zookeeper - -CONFIGURE_HOST_ROUTING=true diff --git a/ci/opencontrail/cloud-sh-contrail/config-trusty.yaml b/ci/opencontrail/cloud-sh-contrail/config-trusty.yaml deleted file mode 100644 index abb862ad..00000000 --- a/ci/opencontrail/cloud-sh-contrail/config-trusty.yaml +++ /dev/null @@ -1,18 +0,0 @@ -cassandra: - authenticator: AllowAllAuthenticator - -keystone: - admin-password: password - admin-role: admin - -mysql: - dataset-size: 15% - -neutron-api: - manage-neutron-plugin-legacy-mode: false - -nova-cloud-controller: - network-manager: Neutron - -nova-compute: - manage-neutron-plugin-legacy-mode: false diff --git a/ci/opencontrail/cloud-sh-contrail/deploy-precise.sh b/ci/opencontrail/cloud-sh-contrail/deploy-precise.sh deleted file mode 100755 index 2e35546b..00000000 --- a/ci/opencontrail/cloud-sh-contrail/deploy-precise.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -e -exec ./openstack.sh ./config-precise.sh 2>&1 | tee out.log diff --git a/ci/opencontrail/cloud-sh-contrail/deploy-trusty-juno.sh b/ci/opencontrail/cloud-sh-contrail/deploy-trusty-juno.sh deleted file mode 100755 index 27a9d56f..00000000 --- a/ci/opencontrail/cloud-sh-contrail/deploy-trusty-juno.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -e -exec ./openstack.sh ./config-trusty-juno.sh 2>&1 | tee out.log diff --git a/ci/opencontrail/cloud-sh-contrail/deploy-trusty.sh b/ci/opencontrail/cloud-sh-contrail/deploy-trusty.sh deleted file mode 100755 index b7b21de0..00000000 --- a/ci/opencontrail/cloud-sh-contrail/deploy-trusty.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -e -exec ./openstack.sh ./config-trusty.sh 2>&1 | tee out.log diff --git a/ci/opencontrail/cloud-sh-contrail/environments.yaml b/ci/opencontrail/cloud-sh-contrail/environments.yaml deleted file mode 100644 index 72a492d3..00000000 --- a/ci/opencontrail/cloud-sh-contrail/environments.yaml +++ /dev/null @@ -1,8 +0,0 @@ -default: local - -environments: - local: - type: local - container: kvm - default-series: trusty - lxc-clone: true diff --git a/ci/opencontrail/cloud-sh-contrail/glance.sh b/ci/opencontrail/cloud-sh-contrail/glance.sh deleted file mode 100755 index 467932ff..00000000 --- a/ci/opencontrail/cloud-sh-contrail/glance.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -e - -. ~/admin-openrc - -wget http://cloud-images.ubuntu.com/trusty/current/MD5SUMS - -wget http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img -glance image-create --name ubuntu-trusty-daily --disk-format qcow2 --container-format bare --owner admin --file trusty-server-cloudimg-amd64-disk1.img --checksum $(grep trusty-server-cloudimg-amd64-disk1.img MD5SUMS | cut -d " " -f 1) --is-public True diff --git a/ci/opencontrail/cloud-sh-contrail/lxc-network.sh b/ci/opencontrail/cloud-sh-contrail/lxc-network.sh deleted file mode 100755 index 5a65fa18..00000000 --- a/ci/opencontrail/cloud-sh-contrail/lxc-network.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -e - -DEBIAN_FRONTEND=noninteractive apt-get -qy -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold install lxc < /dev/null - -sed -e 's/^USE_LXC_BRIDGE="true"/USE_LXC_BRIDGE="false"/' -i /etc/default/lxc -service lxc-net restart - -ifdown eth0 -mv /etc/network/interfaces.d/eth0.cfg /etc/network/interfaces.d/eth0.cfg.bak -cat <<-"EOF" > /etc/network/interfaces.d/bridge.cfg - auto eth0 - iface eth0 inet manual - - auto lxcbr0 - iface lxcbr0 inet dhcp - bridge_ports eth0 - EOF -ifup eth0 lxcbr0 diff --git a/ci/opencontrail/cloud-sh-contrail/openstack.sh b/ci/opencontrail/cloud-sh-contrail/openstack.sh deleted file mode 100755 index b1234fcc..00000000 --- a/ci/opencontrail/cloud-sh-contrail/openstack.sh +++ /dev/null @@ -1,188 +0,0 @@ -#!/bin/sh -ex - -agentState() -{ - juju status | python -c "import yaml; import sys; print yaml.load(sys.stdin)[\"machines\"][\"$1\"][\"agent-state\"]" 2> /dev/null -} - -agentStateUnit() -{ - juju status | python -c "import yaml; import sys; print yaml.load(sys.stdin)[\"services\"][\"$1\"][\"units\"][\"$1/$2\"][\"agent-state\"]" 2> /dev/null -} - -configOpenrc() -{ - cat <<-EOF - export OS_USERNAME=$1 - export OS_PASSWORD=$2 - export OS_TENANT_NAME=$3 - export OS_AUTH_URL=$4 - export OS_REGION_NAME=$5 - EOF -} - -unitAddress() -{ - juju status | python -c "import yaml; import sys; print yaml.load(sys.stdin)[\"services\"][\"$1\"][\"units\"][\"$1/$2\"][\"public-address\"]" 2> /dev/null -} - -unitMachine() -{ - juju status | python -c "import yaml; import sys; print yaml.load(sys.stdin)[\"services\"][\"$1\"][\"units\"][\"$1/$2\"][\"machine\"]" 2> /dev/null -} - -waitForMachine() -{ - for machine; do - while [ "$(agentState $machine)" != started ]; do - sleep 5 - done - done -} - -waitForService() -{ - for service; do - while [ "$(agentStateUnit "$service" 0)" != started ]; do - sleep 5 - done - done -} - -if [ $# -ne 0 ]; then - . "$1" -fi - -juju bootstrap -waitForMachine 0 - -spare_cpus=$(($(grep processor /proc/cpuinfo | wc -l) - 4)) -if [ $spare_cpus -gt 0 ]; then - spare_cpus=$(((spare_cpus * 3) / 4)) -else - spare_cpus=0 -fi - -extra_cpus=0 -[ $spare_cpus -ne 0 ] && extra_cpus=$((1 + (((spare_cpus - 1) * 3) / 4))) && spare_cpus=$((spare_cpus - extra_cpus)) -juju add-machine --constraints "cpu-cores=$((1 + extra_cpus)) mem=12G root-disk=20G" --series $DEFAULT_SERIES - -extra_cpus=0 -[ $spare_cpus -ne 0 ] && extra_cpus=$((1 + (((spare_cpus - 1) * 3) / 4))) && spare_cpus=$((spare_cpus - extra_cpus)) -juju deploy --constraints "cpu-cores=$((1 + extra_cpus)) mem=4G root-disk=20G" $CHARM_NOVA_COMPUTE_DEPLOY_OPTS "${CHARM_NOVA_COMPUTE:-nova-compute}" - -juju add-machine --constraints "cpu-cores=$((1 + spare_cpus)) mem=8G root-disk=20G" --series $DEFAULT_SERIES - -waitForMachine 1 -juju scp lxc-network.sh 1: -juju run --machine 1 "sudo ./lxc-network.sh" - -waitForMachine 3 -juju scp lxc-network.sh 3: -juju run --machine 3 "sudo ./lxc-network.sh" - -juju deploy --to lxc:1 $CHARM_MYSQL_DEPLOY_OPTS "${CHARM_MYSQL:-mysql}" -juju deploy --to lxc:1 $CHARM_RABBITMQ_SERVER_DEPLOY_OPTS "${CHARM_RABBITMQ_SERVER:-rabbitmq-server}" -juju deploy --to lxc:1 $CHARM_KEYSTONE_DEPLOY_OPTS "${CHARM_KEYSTONE:-keystone}" -juju deploy --to lxc:1 $CHARM_NOVA_CLOUD_CONTROLLER_DEPLOY_OPTS "${CHARM_NOVA_CLOUD_CONTROLLER:-nova-cloud-controller}" -juju deploy --to lxc:1 $CHARM_NEUTRON_API_DEPLOY_OPTS "${CHARM_NEUTRON_API:-neutron-api}" -juju deploy --to lxc:1 $CHARM_GLANCE_DEPLOY_OPTS "${CHARM_GLANCE:-glance}" -juju deploy --to lxc:1 $CHARM_OPENSTACK_DASHBOARD_DEPLOY_OPTS "${CHARM_OPENSTACK_DASHBOARD:-openstack-dashboard}" -# contrail -juju deploy --to lxc:1 $CHARM_ZOOKEEPER_DEPLOY_OPTS "${CHARM_ZOOKEEPER:-zookeeper}" -juju deploy --to lxc:1 $CHARM_CONTRAIL_CONFIGURATION_DEPLOY_OPTS "${CHARM_CONTRAIL_CONFIGURATION:-contrail-configuration}" -juju deploy --to lxc:1 $CHARM_CONTRAIL_CONTROL_DEPLOY_OPTS "${CHARM_CONTRAIL_CONTROL:-contrail-control}" -juju deploy --to lxc:1 $CHARM_CONTRAIL_ANALYTICS_DEPLOY_OPTS "${CHARM_CONTRAIL_ANALYTICS:-contrail-analytics}" -juju deploy --to lxc:1 $CHARM_CONTRAIL_WEBUI_DEPLOY_OPTS "${CHARM_CONTRAIL_WEBUI:-contrail-webui}" -juju deploy --to lxc:3 $CHARM_CASSANDRA_DEPLOY_OPTS "${CHARM_CASSANDRA:-cassandra}" -juju deploy $CHARM_NEUTRON_API_CONTRAIL_DEPLOY_OPTS "${CHARM_NEUTRON_API_CONTRAIL:-neutron-api-contrail}" -juju deploy $CHARM_NEUTRON_CONTRAIL_DEPLOY_OPTS "${CHARM_NEUTRON_CONTRAIL:-neutron-contrail}" - -# relation must be set first -# no official way of knowing when this relation hook will fire -waitForService mysql keystone -juju add-relation keystone mysql -sleep 60 - -waitForService rabbitmq-server nova-cloud-controller glance openstack-dashboard nova-compute -juju add-relation nova-cloud-controller mysql -juju add-relation nova-cloud-controller rabbitmq-server -juju add-relation nova-cloud-controller glance -juju add-relation nova-cloud-controller keystone -juju add-relation nova-compute:shared-db mysql:shared-db -juju add-relation nova-compute:amqp rabbitmq-server:amqp -juju add-relation nova-compute glance -juju add-relation nova-compute nova-cloud-controller -juju add-relation glance mysql -juju add-relation glance keystone -juju add-relation openstack-dashboard keystone -sleep 60 - -waitForService neutron-api -juju add-relation neutron-api mysql -juju add-relation neutron-api rabbitmq-server -juju add-relation neutron-api nova-cloud-controller -juju add-relation neutron-api keystone -juju add-relation neutron-api neutron-api-contrail -sleep 60 - -# contrail -waitForService cassandra zookeeper contrail-configuration -juju add-relation contrail-configuration:cassandra cassandra:database -juju add-relation contrail-configuration zookeeper -juju add-relation contrail-configuration rabbitmq-server -juju add-relation contrail-configuration keystone -sleep 60 - -waitForService contrail-control contrail-analytics -juju add-relation neutron-api-contrail contrail-configuration -juju add-relation neutron-api-contrail keystone -juju add-relation contrail-control:contrail-api contrail-configuration:contrail-api -juju add-relation contrail-control:contrail-discovery contrail-configuration:contrail-discovery -juju add-relation contrail-control:contrail-ifmap contrail-configuration:contrail-ifmap -juju add-relation contrail-control keystone -juju add-relation contrail-analytics:cassandra cassandra:database -juju add-relation contrail-analytics contrail-configuration -juju add-relation nova-compute neutron-contrail -juju add-relation neutron-contrail:contrail-discovery contrail-configuration:contrail-discovery -juju add-relation neutron-contrail:contrail-api contrail-configuration:contrail-api -juju add-relation neutron-contrail keystone -sleep 60 - -waitForService contrail-webui -juju add-relation contrail-webui keystone -juju add-relation contrail-webui:contrail_api contrail-configuration:contrail-api -juju add-relation contrail-webui:contrail_discovery contrail-configuration:contrail-discovery -juju add-relation contrail-webui:cassandra cassandra:database -sleep 60 - -# enable kvm on compute -machine=$(unitMachine nova-compute 0) -juju scp compute.sh $machine: -juju run --machine $machine "sudo ./compute.sh" - -mkdir -m 0700 -p cloud -controller_address=$(unitAddress keystone 0) -configOpenrc admin password Admin http://$controller_address:5000/v2.0 RegionOne > cloud/admin-openrc -chmod 0600 cloud/admin-openrc - -machine=$(unitMachine nova-cloud-controller 0) -juju scp cloud-setup.sh cloud/admin-openrc ~/.ssh/id_rsa.pub $machine: -juju run --machine $machine ./cloud-setup.sh - -# setup contrail routing -juju set contrail-configuration "floating-ip-pools=[ { project: admin, network: public-net, pool-name: floatingip_pool, target-projects: [ admin ] } ]" -juju set neutron-contrail "virtual-gateways=[ { project: admin, network: public-net, interface: vgw, subnets: [ 10.0.10.0/24 ], routes: [ 0.0.0.0/0 ] } ]" - -machine=$(unitMachine glance 0) -juju scp glance.sh cloud/admin-openrc $machine: -juju run --machine $machine ./glance.sh - -# setup host routing -if [ -n "$CONFIGURE_HOST_ROUTING" ]; then - compute_address=$(unitAddress nova-compute 0) - sudo ip route replace 10.0.10.0/24 via $compute_address - sudo iptables -C FORWARD -s 10.0.10.0/24 -j ACCEPT 2> /dev/null || sudo iptables -I FORWARD 1 -s 10.0.10.0/24 -j ACCEPT - sudo iptables -C FORWARD -d 10.0.10.0/24 -j ACCEPT 2> /dev/null || sudo iptables -I FORWARD 2 -d 10.0.10.0/24 -j ACCEPT - sudo iptables -t nat -C POSTROUTING -s 10.0.10.0/24 ! -d 10.0.10.0/24 -j MASQUERADE 2> /dev/null || sudo iptables -t nat -A POSTROUTING -s 10.0.10.0/24 ! -d 10.0.10.0/24 -j MASQUERADE -fi diff --git a/ci/opencontrail/fetch-charms.sh b/ci/opencontrail/fetch-charms.sh index 1ee385f6..211624c4 100755 --- a/ci/opencontrail/fetch-charms.sh +++ b/ci/opencontrail/fetch-charms.sh @@ -1,7 +1,6 @@ #!/bin/bash -ex distro=$1 -mkdir precise mkdir -p $distro function build { @@ -12,16 +11,12 @@ function build { # openstack bzr branch lp:~narindergupta/charms/trusty/promise/trunk $distro/promise -charm pull cs:trusty/mongodb $distro/mongodb -charm pull cs:$distro/haproxy $distro/haproxy -charm pull cs:$distro/ntp $distro/ntp -charm pull cs:$distro/aodh $distro/aodh -charm pull cs:~narindergupta/congress-1 $distro/congress +bzr branch lp:~billy-olsen/charms/xenial/mongodb/trunk $distro/mongodb +bzr branch lp:~narindergupta/opnfv/ntp $distro/ntp git clone -b stable/17.02 https://github.com/openstack/charm-hacluster.git $distro/hacluster -#bzr branch lp:~sdn-charmers/charms/$distro/ceilometer/ceilometer-plugin $distro/ceilometer -#git clone -b stable/17.02 https://github.com/openstack/charm-ceilometer.git $distro/ceilometer -#git clone -b stable/17.02 https://github.com/openstack/charm-ceilometer-agent.git $distro/ceilometer-agent +git clone -b stable/17.02 https://github.com/openstack/charm-ceilometer.git $distro/ceilometer +git clone -b stable/17.02 https://github.com/openstack/charm-ceilometer-agent.git $distro/ceilometer-agent git clone -b stable/17.02 https://github.com/openstack/charm-ceph-mon.git $distro/ceph-mon git clone -b stable/17.02 https://github.com/openstack/charm-ceph-osd.git $distro/ceph-osd git clone -b stable/17.02 https://github.com/openstack/charm-ceph-radosgw.git $distro/ceph-radosgw @@ -30,16 +25,21 @@ git clone -b stable/17.02 https://github.com/openstack/charm-cinder-ceph.git $di git clone -b stable/17.02 https://github.com/openstack/charm-glance.git $distro/glance git clone -b stable/17.02 https://github.com/openstack/charm-keystone.git $distro/keystone git clone -b stable/17.02 https://github.com/openstack/charm-percona-cluster.git $distro/percona-cluster +git clone -b stable/17.02 https://github.com/openstack/charm-neutron-api.git $distro/neutron-api git clone -b stable/17.02 https://github.com/openstack/charm-neutron-gateway.git $distro/neutron-gateway -#git clone -b stable/17.02 https://github.com/openstack/charm-neutron-openvswitch.git $distro/neutron-openvswitch +git clone -b stable/17.02 https://github.com/openstack/charm-neutron-openvswitch.git $distro/neutron-openvswitch git clone -b stable/17.02 https://github.com/openstack/charm-nova-cloud-controller.git $distro/nova-cloud-controller git clone -b stable/17.02 https://github.com/openstack/charm-nova-compute.git $distro/nova-compute git clone -b stable/17.02 https://github.com/openstack/charm-openstack-dashboard.git $distro/openstack-dashboard git clone -b stable/17.02 https://github.com/openstack/charm-rabbitmq-server.git $distro/rabbitmq-server git clone -b stable/17.02 https://github.com/openstack/charm-heat.git $distro/heat -git clone -b stable/17.02 https://github.com/openstack/charm-neutron-api.git $distro/neutron-api +git clone https://github.com/openstack/charm-lxd.git $distro/lxd git clone https://github.com/openbaton/juju-charm.git $distro/openbaton +charm pull cs:$distro/aodh $distro/aodh +charm pull cs:~free.ekanayaka/xenial/haproxy-1 $distro/haproxy +charm pull cs:~narindergupta/congress-1 $distro/congress + #pulling scaleio charms. charm pull cs:~cloudscaling/scaleio-mdm $distro/scaleio-mdm charm pull cs:~cloudscaling/scaleio-sds $distro/scaleio-sds @@ -49,30 +49,9 @@ charm pull cs:~cloudscaling/scaleio-openstack $distro/scaleio-openstack charm pull cs:~cloudscaling/scaleio-cluster $distro/scaleio-cluster charm pull cs:~cloudscaling/scaleio-gui $distro/scaleio-gui -#charm pull cs:~openstack-charmers-next/hacluster $distro/hacluster -#charm pull cs:~openstack-charmers-next/ceilometer $distro/ceilometer -#charm pull cs:~openstack-charmers-next/ceilometer-agent $distro/ceilometer-agent -#charm pull cs:~openstack-charmers-next/ceph-mon $distro/ceph -#charm pull cs:~openstack-charmers-next/ceph-osd $distro/ceph-osd -#charm pull cs:~openstack-charmers-next/ceph-radosgw $distro/ceph-radosgw -#charm pull cs:~openstack-charmers-next/cinder $distro/cinder -#charm pull cs:~openstack-charmers-next/cinder-ceph $distro/cinder-ceph -#charm pull cs:~openstack-charmers-next/glance $distro/glance -#charm pull cs:~openstack-charmers-next/keystone $distro/keystone -#charm pull cs:~openstack-charmers-next/percona-cluster $distro/percona-cluster -#charm pull cs:~openstack-charmers-next/neutron-api $distro/neutron-api -#charm pull cs:~openstack-charmers-next/neutron-gateway $distro/neutron-gateway -#charm pull cs:~openstack-charmers-next/neutron-openvswitch $distro/neutron-openvswitch -#charm pull cs:~openstack-charmers-next/nova-cloud-controller $distro/nova-cloud-controller -#charm pull cs:~openstack-charmers-next/nova-compute $distro/nova-compute -#charm pull cs:~openstack-charmers-next/openstack-dashboard $distro/openstack-dashboard -#charm pull cs:~openstack-charmers-next/rabbitmq-server $distro/rabbitmq-server -#charm pull cs:~openstack-charmers-next/heat $distro/heat -#charm pull cs:~openstack-charmers-next/lxd xenial/lxd +git clone https://github.com/Juniper/contrail-charms.git +cd contrail-charms/ +mv * ../$distro/ +cd ../ +rm -rf contrail-charms/ -# Controller specific charm -git clone https://git.opnfv.org/ovno.git -cd ovno/charms/trusty -mv * ../../../$distro/ -cd ../../../ -rm -rf ovno diff --git a/ci/opencontrail/juju-deployer/ovs-ocl-ha.yaml b/ci/opencontrail/juju-deployer/ovs-ocl-ha.yaml deleted file mode 120000 index 819993bd..00000000 --- a/ci/opencontrail/juju-deployer/ovs-ocl-ha.yaml +++ /dev/null @@ -1 +0,0 @@ -ovs-opencontrail-ha.yaml
\ No newline at end of file diff --git a/ci/opencontrail/juju-deployer/ovs-ocl-nonha.yaml b/ci/opencontrail/juju-deployer/ovs-ocl-nonha.yaml deleted file mode 120000 index dc2ea145..00000000 --- a/ci/opencontrail/juju-deployer/ovs-ocl-nonha.yaml +++ /dev/null @@ -1 +0,0 @@ -ovs-opencontrail-nonha.yaml
\ No newline at end of file diff --git a/ci/opencontrail/juju-deployer/ovs-ocl-tip.yaml b/ci/opencontrail/juju-deployer/ovs-ocl-tip.yaml deleted file mode 120000 index 509bf6cc..00000000 --- a/ci/opencontrail/juju-deployer/ovs-ocl-tip.yaml +++ /dev/null @@ -1 +0,0 @@ -ovs-opencontrail-tip.yaml
\ No newline at end of file diff --git a/ci/opencontrail/juju-deployer/ovs-opencontrail-ha.yaml b/ci/opencontrail/juju-deployer/ovs-opencontrail-ha.yaml deleted file mode 100644 index 18a80e24..00000000 --- a/ci/opencontrail/juju-deployer/ovs-opencontrail-ha.yaml +++ /dev/null @@ -1,392 +0,0 @@ -# vim: set ts=2 et: -trusty-mitaka-nodes: - inherits: openstack-phase1 - -trusty-mitaka: - inherits: contrail - overrides: - #os-data-network: 10.4.8.0/21 - #ceph-cluster-network: 10.4.0.0/21 - #prefer-ipv6: true - #enable-dvr: true - #l2-population: true - region: Canonical - #source: "cloud:trusty-mitaka" - openstack-origin: "cloud:trusty-mitaka" - #ceph-osd-replication-count: 2 - admin-role: admin - keystone-admin-role: admin - -openstack-phase1: - services: - nodes: - charm: "cs:trusty/ubuntu" - num_units: 5 - ntp: - charm: "local:trusty/ntp" - options: - source: "0.ubuntu.pool.ntp.org 1.ubuntu.pool.ntp.org 2.ubuntu.pool.ntp.org 3.ubuntu.pool.ntp.org" - auto_peers: false - zookeeper: - charm: local:precise/zookeeper - num_units: 3 - series: precise - to: - - "lxc:nodes=0" - - "lxc:nodes=1" - - "lxc:nodes=2" - cassandra: - charm: local:trusty/cassandra - num_units: 3 - to: - - "lxc:nodes=1" - - "lxc:nodes=2" - - "lxc:nodes=3" - options: - authenticator: AllowAllAuthenticator - relations: - - - "ntp:juju-info" - - "nodes:juju-info" - - - "ntp:juju-info" - - "nodes:juju-info" - -contrail: - inherits: openstack-phase2 - overrides: - admin-role: admin - relations: - - [ "contrail-configuration:cassandra", "cassandra:database" ] - - [ contrail-configuration, zookeeper ] - - [ contrail-configuration, rabbitmq-server ] - - [ contrail-configuration, keystone ] - - [ neutron-api-contrail, contrail-configuration ] - - [ neutron-api-contrail, keystone ] - - [ "contrail-control:contrail-api", "contrail-configuration:contrail-api" ] - - [ "contrail-control:contrail-discovery", "contrail-configuration:contrail-discovery" ] - - [ "contrail-control:contrail-ifmap", "contrail-configuration:contrail-ifmap" ] - - [ contrail-control, keystone ] - - [ "contrail-analytics:cassandra", "cassandra:database" ] - - [ "contrail-analytics:contrail-analytics-api", "contrail-configuration:contrail-analytics-api" ] - - [ "contrail-configuration:contrail-discovery", "contrail-analytics:contrail-discovery" ] - - [ contrail-webui, keystone ] - - [ "contrail-webui:contrail_api", "contrail-configuration:contrail-api" ] - - [ "contrail-webui:contrail_discovery", "contrail-configuration:contrail-discovery" ] - - [ "contrail-webui:cassandra", "cassandra:database" ] - - [ nova-compute, neutron-contrail ] - - [ "neutron-contrail:contrail-discovery", "contrail-configuration:contrail-discovery" ] - - [ "neutron-contrail:contrail-api", "contrail-configuration:contrail-api" ] - - [ neutron-contrail, keystone ] - - [ contrail-configuration, ntp ] - - [ contrail-control, ntp ] - - [ contrail-analytics, ntp ] - - [ contrail-configuration, haproxy ] - - [ contrail-analytics, haproxy ] - - [ contrail-webui, haproxy ] - - [ haproxy, keepalived ] - services: - contrail-configuration: - charm: local:trusty/contrail-configuration - num_units: 3 - options: - vip: 10.4.1.18 - to: - - "lxc:nodes=2" - - "lxc:nodes=3" - - "lxc:nodes=4" - contrail-control: - charm: local:trusty/contrail-control - num_units: 3 - to: - - "lxc:nodes=3" - - "lxc:nodes=4" - - "lxc:nodes=0" - contrail-analytics: - charm: local:trusty/contrail-analytics - num_units: 3 - to: - - "lxc:nodes=4" - - "lxc:nodes=0" - - "lxc:nodes=1" - contrail-webui: - charm: local:trusty/contrail-webui - num_units: 3 - to: - - "lxc:nodes=0" - - "lxc:nodes=1" - - "lxc:nodes=2" - neutron-api-contrail: - charm: local:trusty/neutron-api-contrail - neutron-contrail: - charm: local:trusty/neutron-contrail - haproxy: - charm: local:trusty/haproxy - num_units: 3 - options: - peering_mode: active-active - to: - - "lxc:nodes=1" - - "lxc:nodes=2" - - "lxc:nodes=3" - keepalived: - charm: local:trusty/keepalived - options: - virtual-ip: 10.4.1.19 - -openstack-phase2: - inherits: openstack-phase1 - relations: - - [ "mysql:ha", "hacluster-mysql:ha" ] - - [ "glance:ha", "hacluster-glance:ha" ] - - [ "keystone:ha", "hacluster-keystone:ha" ] - - [ "neutron-api:ha", "hacluster-neutron:ha" ] - - [ "nova-cloud-controller:ha", "hacluster-nova:ha" ] - - [ "openstack-dashboard:ha", "hacluster-horizon:ha" ] - - [ "ceilometer:ha", "hacluster-ceilometer:ha" ] - - [ keystone, mysql ] - - [ nova-cloud-controller, mysql ] - - [ nova-cloud-controller, rabbitmq-server ] - - [ nova-cloud-controller, glance ] - - [ nova-cloud-controller, keystone ] - - [ nova-compute, nova-cloud-controller ] - - [ "nova-compute:shared-db", "mysql:shared-db" ] - - [ "nova-compute:amqp", "rabbitmq-server:amqp" ] - - [ nova-compute, glance ] - - [ glance, mysql ] - - [ glance, keystone ] - - [ openstack-dashboard, keystone ] - - [ neutron-api, mysql ] - - [ neutron-api, rabbitmq-server ] - - [ neutron-api, nova-cloud-controller ] - - [ neutron-api, keystone ] - - [ neutron-api, neutron-api-contrail ] - - [ "ceilometer:amqp", "rabbitmq-server:amqp" ] - - [ "ceilometer-agent:ceilometer-service", "ceilometer:ceilometer-service" ] - - [ "ceilometer:identity-service", "keystone:identity-service" ] - - [ "ceilometer:identity-notifications", "keystone:identity-notifications" ] - - [ "ceilometer-agent:nova-ceilometer", "nova-compute:nova-ceilometer" ] - - [ "ceilometer:shared-db", "mongodb:database" ] - - [ "heat:shared-db", "mysql:shared-db" ] - - [ "heat:identity-service", "keystone:identity-service" ] - - [ "heat:amqp", "rabbitmq-server:amqp" ] - - [ "cinder:image-service", "glance:image-service" ] - - [ "cinder:amqp", "rabbitmq-server:amqp" ] - - [ "cinder:identity-service", "keystone:identity-service" ] - - [ "cinder:cinder-volume-service", "nova-cloud-controller:cinder-volume-service" ] - - [ "cinder-ceph:storage-backend", "cinder:storage-backend" ] - - [ "ceph:client", "nova-compute:ceph" ] - - [ "cinder:shared-db", "mysql:shared-db" ] - - [ "ceph:client", "cinder-ceph:ceph" ] - - [ "ceph:client", "glance:ceph" ] - - [ "ceph-osd:mon", "ceph:osd" ] - - [ "ceph-radosgw:mon", "ceph:radosgw" ] - - [ "ceph-radosgw:identity-service", "keystone:identity-service" ] - #- - nova-compute:lxd - #- lxd:lxd - - - congress:shared-db - - mysql:shared-db - - - congress:identity-service - - keystone:identity-service - - - congress:amqp - - rabbitmq-server:amqp - - services: - mysql: - charm: "local:trusty/percona-cluster" - num_units: 3 - options: - dataset-size: 2G - lp1366997-workaround: true - max-connections: 10000 - root-password: 293rhc395m - sst-password: 127rc14t51 - vip: 10.4.1.15 - to: - - "lxc:nodes=2" - - "lxc:nodes=3" - - "lxc:nodes=4" - hacluster-keystone: - charm: "local:trusty/hacluster" - options: - corosync_transport: unicast - cluster_count: 3 - hacluster-horizon: - charm: "local:trusty/hacluster" - options: - corosync_transport: unicast - cluster_count: 3 - hacluster-nova: - charm: "local:trusty/hacluster" - options: - corosync_transport: unicast - cluster_count: 3 - hacluster-neutron: - charm: "local:trusty/hacluster" - options: - corosync_transport: unicast - cluster_count: 3 - hacluster-glance: - charm: "local:trusty/hacluster" - options: - corosync_transport: unicast - cluster_count: 3 - hacluster-ceilometer: - charm: "local:trusty/hacluster" - options: - corosync_transport: unicast - cluster_count: 3 - hacluster-mysql: - charm: "local:trusty/hacluster" - options: - corosync_transport: unicast - cluster_count: 3 - ceilometer: - charm: "local:trusty/ceilometer" - num_units: 3 - options: - vip: 10.4.1.14 - to: - - "lxc:nodes=3" - - "lxc:nodes=4" - - "lxc:nodes=0" - ceilometer-agent: - charm: "local:trusty/ceilometer-agent" - mongodb: - charm: "cs:trusty/mongodb" - num_units: 1 - to: - - "lxc:nodes=0" - heat: - charm: "local:trusty/heat" - to: - - "lxc:nodes=0" - ceph: - charm: local:trusty/ceph - num_units: 3 - options: - fsid: 5a791d94-980b-11e4-b6f6-3c970e8b1cf7 - monitor-secret: AQAi5a9UeJXUExAA+By9u+GPhl8/XiUQ4nwI3A== - monitor-count: 3 -# osd-reformat: 'no' -# ceph-cluster-network: 192.168.0.0/24 -# ceph-public-network: 192.168.0.0/24 - to: - - "lxc:nodes=4" - - "lxc:nodes=0" - - "lxc:nodes=1" - ceph-osd: - charm: local:trusty/ceph-osd - num_units: 3 - options: - osd-devices: /srv - osd-reformat: 'yes' - to: - - "nodes=2" - - "nodes=3" - - "nodes=4" - ceph-radosgw: - charm: local:trusty/ceph-radosgw - options: - use-embedded-webserver: true - operator-roles: "Member,admin" - to: - - "lxc:nodes=0" - cinder: - charm: local:trusty/cinder - num_units: 3 - options: - block-device: None - glance-api-version: 2 - to: - - "lxc:nodes=0" - - "lxc:nodes=1" - - "lxc:nodes=2" - cinder-ceph: - charm: local:trusty/cinder-ceph - rabbitmq-server: - charm: local:trusty/rabbitmq-server - num_units: 3 - options: - vip: 10.4.1.10 - to: - - "lxc:nodes=1" - - "lxc:nodes=2" - - "lxc:nodes=3" - keystone: - charm: local:trusty/keystone - num_units: 3 - options: - admin-password: openstack - admin-token: admin - vip: 10.4.1.13 - to: - - "lxc:nodes=2" - - "lxc:nodes=3" - - "lxc:nodes=4" - openstack-dashboard: - charm: local:trusty/openstack-dashboard - num_units: 3 - options: - secret: admin - vip: 10.4.1.11 - webroot: / - to: - - "lxc:nodes=3" - - "lxc:nodes=4" - - "lxc:nodes=0" - nova-compute: - charm: local:trusty/nova-compute - num_units: 4 - options: - enable-live-migration: False - manage-neutron-plugin-legacy-mode: False - migration-auth-type: ssh - #hugepages: "50%" - #virt-type: lxd - to: - - "nodes=1" - - "nodes=2" - - "nodes=3" - - "nodes=4" - nova-cloud-controller: - charm: local:trusty/nova-cloud-controller - num_units: 3 - options: - console-access-protocol: novnc - network-manager: Neutron - service-guard: true - vip: 10.4.1.16 - to: - - "lxc:nodes=4" - - "lxc:nodes=0" - - "lxc:nodes=1" - neutron-api: - charm: local:trusty/neutron-api - num_units: 3 - options: - neutron-security-groups: True - manage-neutron-plugin-legacy-mode: False - vip: 10.4.1.17 - to: - - "lxc:nodes=0" - - "lxc:nodes=1" - - "lxc:nodes=2" - glance: - charm: local:trusty/glance - num_units: 3 - options: - vip: 10.4.1.12 - to: - - "lxc:nodes=1" - - "lxc:nodes=2" - - "lxc:nodes=3" - opnfv-promise: - charm: local:trusty/promise - num_units: 1 - to: - - "lxc:nodes=0" - congress: - charm: local:trusty/congress - options: - #source-branch: stable/mitaka - to: - - "lxc:nodes=0" diff --git a/ci/opencontrail/juju-deployer/ovs-opencontrail-nonha.yaml b/ci/opencontrail/juju-deployer/ovs-opencontrail-nonha.yaml deleted file mode 100644 index 176e59a1..00000000 --- a/ci/opencontrail/juju-deployer/ovs-opencontrail-nonha.yaml +++ /dev/null @@ -1,256 +0,0 @@ -# vim: set ts=2 et: -trusty-mitaka-nodes: - inherits: openstack-phase1 - -trusty-mitaka: - inherits: contrail - overrides: - #os-data-network: 10.4.8.0/21 - #ceph-cluster-network: 10.4.0.0/21 - #prefer-ipv6: true - #enable-dvr: true - #l2-population: true - region: Canonical - #source: "cloud:trusty-mitaka" - openstack-origin: "cloud:trusty-mitaka" - #ceph-osd-replication-count: 2 - admin-role: admin - keystone-admin-role: admin - -openstack-phase1: - services: - nodes: - charm: "cs:trusty/ubuntu" - num_units: 2 - ntp: - charm: "local:trusty/ntp" - options: - source: "0.ubuntu.pool.ntp.org 1.ubuntu.pool.ntp.org 2.ubuntu.pool.ntp.org 3.ubuntu.pool.ntp.org" - auto_peers: false - zookeeper: - charm: local:precise/zookeeper - series: precise - to: - - "lxc:nodes=0" - cassandra: - charm: local:trusty/cassandra - to: - - "lxc:nodes=1" - options: - authenticator: AllowAllAuthenticator - relations: - - - "ntp:juju-info" - - "nodes:juju-info" - - - "ntp:juju-info" - - "nodes:juju-info" - -contrail: - inherits: openstack-phase2 - overrides: - admin-role: admin - relations: - - [ "contrail-configuration:cassandra", "cassandra:database" ] - - [ contrail-configuration, zookeeper ] - - [ contrail-configuration, rabbitmq-server ] - - [ contrail-configuration, keystone ] - - [ neutron-api-contrail, contrail-configuration ] - - [ neutron-api-contrail, keystone ] - - [ "contrail-control:contrail-api", "contrail-configuration:contrail-api" ] - - [ "contrail-control:contrail-discovery", "contrail-configuration:contrail-discovery" ] - - [ "contrail-control:contrail-ifmap", "contrail-configuration:contrail-ifmap" ] - - [ contrail-control, keystone ] - - [ "contrail-analytics:cassandra", "cassandra:database" ] - - [ "contrail-analytics:contrail-analytics-api", "contrail-configuration:contrail-analytics-api" ] - - [ "contrail-configuration:contrail-discovery", "contrail-analytics:contrail-discovery" ] - - [ contrail-webui, keystone ] - - [ "contrail-webui:contrail_api", "contrail-configuration:contrail-api" ] - - [ "contrail-webui:contrail_discovery", "contrail-configuration:contrail-discovery" ] - - [ "contrail-webui:cassandra", "cassandra:database" ] - - [ nova-compute, neutron-contrail ] - - [ "neutron-contrail:contrail-discovery", "contrail-configuration:contrail-discovery" ] - - [ "neutron-contrail:contrail-api", "contrail-configuration:contrail-api" ] - - [ neutron-contrail, keystone ] - - [ contrail-configuration, ntp ] - - [ contrail-control, ntp ] - - [ contrail-analytics, ntp ] - services: - contrail-configuration: - charm: local:trusty/contrail-configuration - to: - - "lxc:nodes=0" - contrail-control: - charm: local:trusty/contrail-control - to: - - "lxc:nodes=1" - contrail-analytics: - charm: local:trusty/contrail-analytics - to: - - "lxc:nodes=0" - contrail-webui: - charm: local:trusty/contrail-webui - to: - - "lxc:nodes=1" - neutron-api-contrail: - charm: local:trusty/neutron-api-contrail - neutron-contrail: - charm: local:trusty/neutron-contrail - -openstack-phase2: - inherits: openstack-phase1 - relations: - - [ keystone, mysql ] - - [ nova-cloud-controller, mysql ] - - [ nova-cloud-controller, rabbitmq-server ] - - [ nova-cloud-controller, glance ] - - [ nova-cloud-controller, keystone ] - - [ nova-compute, nova-cloud-controller ] - - [ "nova-compute:shared-db", "mysql:shared-db" ] - - [ "nova-compute:amqp", "rabbitmq-server:amqp" ] - - [ nova-compute, glance ] - - [ glance, mysql ] - - [ glance, keystone ] - - [ openstack-dashboard, keystone ] - - [ neutron-api, mysql ] - - [ neutron-api, rabbitmq-server ] - - [ neutron-api, nova-cloud-controller ] - - [ neutron-api, keystone ] - - [ neutron-api, neutron-api-contrail ] - - [ "ceilometer:amqp", "rabbitmq-server:amqp" ] - - [ "ceilometer-agent:ceilometer-service", "ceilometer:ceilometer-service" ] - - [ "ceilometer:identity-service", "keystone:identity-service" ] - - [ "ceilometer:identity-notifications", "keystone:identity-notifications" ] - - [ "ceilometer-agent:nova-ceilometer", "nova-compute:nova-ceilometer" ] - - [ "ceilometer:shared-db", "mongodb:database" ] - - [ "heat:shared-db", "mysql:shared-db" ] - - [ "heat:identity-service", "keystone:identity-service" ] - - [ "heat:amqp", "rabbitmq-server:amqp" ] - - [ "cinder:image-service", "glance:image-service" ] - - [ "cinder:amqp", "rabbitmq-server:amqp" ] - - [ "cinder:identity-service", "keystone:identity-service" ] - - [ "cinder:cinder-volume-service", "nova-cloud-controller:cinder-volume-service" ] - - [ "cinder-ceph:storage-backend", "cinder:storage-backend" ] - - [ "ceph:client", "nova-compute:ceph" ] - - [ "cinder:shared-db", "mysql:shared-db" ] - - [ "ceph:client", "cinder-ceph:ceph" ] - - [ "ceph:client", "glance:ceph" ] - - [ "ceph-osd:mon", "ceph:osd" ] - - [ "ceph-radosgw:mon", "ceph:radosgw" ] - - [ "ceph-radosgw:identity-service", "keystone:identity-service"] - #- - nova-compute:lxd - #- lxd:lxd - - - congress:shared-db - - mysql:shared-db - - - congress:identity-service - - keystone:identity-service - - - congress:amqp - - rabbitmq-server:amqp - services: - mysql: - charm: "local:trusty/percona-cluster" - options: - dataset-size: 2G - max-connections: 10000 - to: - - "lxc:nodes=0" - mongodb: - charm: local:trusty/mongodb - to: - - "lxc:nodes=1" - ceilometer: - charm: "local:trusty/ceilometer" - to: - - "lxc:nodes=0" - ceilometer-agent: - charm: "local:trusty/ceilometer-agent" - heat: - charm: "local:trusty/heat" - to: - - "lxc:nodes=1" - ceph: - charm: "local:trusty/ceph" - num_units: 2 - options: - fsid: 5a791d94-980b-11e4-b6f6-3c970e8b1cf7 - monitor-secret: AQAi5a9UeJXUExAA+By9u+GPhl8/XiUQ4nwI3A== - monitor-count: 2 -# osd-reformat: 'no' -# ceph-cluster-network: 192.168.0.0/24 -# ceph-public-network: 192.168.0.0/24 - to: - - "lxc:nodes=0" - - "lxc:nodes=1" - ceph-osd: - charm: "local:trusty/ceph-osd" - num_units: 2 - options: - osd-devices: /srv - osd-reformat: 'yes' - to: - - "nodes=0" - - "nodes=1" - ceph-radosgw: - charm: local:trusty/ceph-radosgw - options: - use-embedded-webserver: true - operator-roles: "Member,admin" - to: - - "lxc:nodes=0" - cinder: - charm: local:trusty/cinder - options: - block-device: None - glance-api-version: 2 - to: - - "lxc:nodes=1" - cinder-ceph: - charm: local:trusty/cinder-ceph - rabbitmq-server: - charm: local:trusty/rabbitmq-server - to: - - "lxc:nodes=0" - keystone: - charm: local:trusty/keystone - options: - admin-password: openstack - admin-token: admin - to: - - "lxc:nodes=1" - openstack-dashboard: - charm: local:trusty/openstack-dashboard - options: - secret: admin - webroot: / - to: - - "lxc:nodes=0" - nova-compute: - charm: local:trusty/nova-compute - options: - manage-neutron-plugin-legacy-mode: False - to: - - "nodes=1" - nova-cloud-controller: - charm: local:trusty/nova-cloud-controller - options: - network-manager: Neutron - to: - - "lxc:nodes=1" - neutron-api: - charm: local:trusty/neutron-api - options: - manage-neutron-plugin-legacy-mode: False - to: - - "lxc:nodes=0" - glance: - charm: local:trusty/glance - to: - - "lxc:nodes=1" - opnfv-promise: - charm: local:trusty/promise - to: - - "lxc:nodes=0" - congress: - charm: local:trusty/congress - options: - #source-branch: stable/mitaka - to: - - "lxc:nodes=1" diff --git a/ci/opencontrail/juju-deployer/ovs-opencontrail-tip.yaml b/ci/opencontrail/juju-deployer/ovs-opencontrail-tip.yaml deleted file mode 100644 index a19d84a3..00000000 --- a/ci/opencontrail/juju-deployer/ovs-opencontrail-tip.yaml +++ /dev/null @@ -1,258 +0,0 @@ -# vim: set ts=2 et: -trusty-mitaka-nodes: - inherits: openstack-phase1 - -trusty-mitaka: - inherits: contrail - overrides: - #os-data-network: 10.4.8.0/21 - #ceph-cluster-network: 10.4.0.0/21 - #prefer-ipv6: true - #enable-dvr: true - #l2-population: true - region: Canonical - #source: "cloud:trusty-mitaka" - openstack-origin: "cloud:trusty-mitaka" - #ceph-osd-replication-count: 2 - admin-role: admin - keystone-admin-role: admin - openstack-origin-git: mitaka - -openstack-phase1: - services: - nodes: - charm: "cs:trusty/ubuntu" - num_units: 2 - ntp: - charm: "local:trusty/ntp" - options: - source: "0.ubuntu.pool.ntp.org 1.ubuntu.pool.ntp.org 2.ubuntu.pool.ntp.org 3.ubuntu.pool.ntp.org" - auto_peers: false - zookeeper: - charm: local:precise/zookeeper - series: precise - to: - - "lxc:nodes=0" - cassandra: - charm: local:trusty/cassandra - to: - - "lxc:nodes=1" - options: - authenticator: AllowAllAuthenticator - relations: - - - "ntp:juju-info" - - "nodes:juju-info" - - - "ntp:juju-info" - - "nodes:juju-info" - -contrail: - inherits: openstack-phase2 - overrides: - admin-role: admin - relations: - - [ "contrail-configuration:cassandra", "cassandra:database" ] - - [ contrail-configuration, zookeeper ] - - [ contrail-configuration, rabbitmq-server ] - - [ contrail-configuration, keystone ] - - [ neutron-api-contrail, contrail-configuration ] - - [ neutron-api-contrail, keystone ] - - [ "contrail-control:contrail-api", "contrail-configuration:contrail-api" ] - - [ "contrail-control:contrail-discovery", "contrail-configuration:contrail-discovery" ] - - [ "contrail-control:contrail-ifmap", "contrail-configuration:contrail-ifmap" ] - - [ contrail-control, keystone ] - - [ "contrail-analytics:cassandra", "cassandra:database" ] - - [ "contrail-analytics:contrail-analytics-api", "contrail-configuration:contrail-analytics-api" ] - - [ "contrail-configuration:contrail-discovery", "contrail-analytics:contrail-discovery" ] - - [ contrail-webui, keystone ] - - [ "contrail-webui:contrail_api", "contrail-configuration:contrail-api" ] - - [ "contrail-webui:contrail_discovery", "contrail-configuration:contrail-discovery" ] - - [ "contrail-webui:cassandra", "cassandra:database" ] - - [ nova-compute, neutron-contrail ] - - [ "neutron-contrail:contrail-discovery", "contrail-configuration:contrail-discovery" ] - - [ "neutron-contrail:contrail-api", "contrail-configuration:contrail-api" ] - - [ neutron-contrail, keystone ] - - [ contrail-configuration, ntp ] - - [ contrail-control, ntp ] - - [ contrail-analytics, ntp ] - services: - contrail-configuration: - charm: local:trusty/contrail-configuration - to: - - "lxc:nodes=0" - contrail-control: - charm: local:trusty/contrail-control - to: - - "lxc:nodes=1" - contrail-analytics: - charm: local:trusty/contrail-analytics - to: - - "lxc:nodes=0" - contrail-webui: - charm: local:trusty/contrail-webui - to: - - "lxc:nodes=1" - neutron-api-contrail: - charm: local:trusty/neutron-api-contrail - neutron-contrail: - charm: local:trusty/neutron-contrail - -openstack-phase2: - inherits: openstack-phase1 - relations: - - [ keystone, mysql ] - - [ nova-cloud-controller, mysql ] - - [ nova-cloud-controller, rabbitmq-server ] - - [ nova-cloud-controller, glance ] - - [ nova-cloud-controller, keystone ] - - [ nova-compute, nova-cloud-controller ] - - [ "nova-compute:shared-db", "mysql:shared-db" ] - - [ "nova-compute:amqp", "rabbitmq-server:amqp" ] - - [ nova-compute, glance ] - - [ glance, mysql ] - - [ glance, keystone ] - - [ openstack-dashboard, keystone ] - - [ neutron-api, mysql ] - - [ neutron-api, rabbitmq-server ] - - [ neutron-api, nova-cloud-controller ] - - [ neutron-api, keystone ] - - [ neutron-api, neutron-api-contrail ] - - [ "ceilometer:amqp", "rabbitmq-server:amqp" ] - - [ "ceilometer-agent:ceilometer-service", "ceilometer:ceilometer-service" ] - - [ "ceilometer:identity-service", "keystone:identity-service" ] - - [ "ceilometer:identity-notifications", "keystone:identity-notifications" ] - - [ "ceilometer-agent:nova-ceilometer", "nova-compute:nova-ceilometer" ] - - [ "ceilometer:shared-db", "mongodb:database" ] - - [ "heat:shared-db", "mysql:shared-db" ] - - [ "heat:identity-service", "keystone:identity-service" ] - - [ "heat:amqp", "rabbitmq-server:amqp" ] - - [ "cinder:image-service", "glance:image-service" ] - - [ "cinder:amqp", "rabbitmq-server:amqp" ] - - [ "cinder:identity-service", "keystone:identity-service" ] - - [ "cinder:cinder-volume-service", "nova-cloud-controller:cinder-volume-service" ] - - [ "cinder-ceph:storage-backend", "cinder:storage-backend" ] - - [ "ceph:client", "nova-compute:ceph" ] - - [ "cinder:shared-db", "mysql:shared-db" ] - - [ "ceph:client", "cinder-ceph:ceph" ] - - [ "ceph:client", "glance:ceph" ] - - [ "ceph-osd:mon", "ceph:osd" ] - - [ "ceph-radosgw:mon", "ceph:radosgw" ] - - [ "ceph-radosgw:identity-service", "keystone:identity-service"] - #- - nova-compute:lxd - #- lxd:lxd - - - congress:shared-db - - mysql:shared-db - - - congress:identity-service - - keystone:identity-service - - - congress:amqp - - rabbitmq-server:amqp - services: - mysql: - charm: "local:trusty/percona-cluster" - options: - dataset-size: 2G - max-connections: 10000 - to: - - "lxc:nodes=0" - mongodb: - charm: local:trusty/mongodb - to: - - "lxc:nodes=1" - ceilometer: - charm: "local:trusty/ceilometer" - to: - - "lxc:nodes=0" - ceilometer-agent: - charm: "local:trusty/ceilometer-agent" - heat: - charm: "local:trusty/heat" - to: - - "lxc:nodes=1" - ceph: - charm: "local:trusty/ceph" - num_units: 2 - options: - fsid: 5a791d94-980b-11e4-b6f6-3c970e8b1cf7 - monitor-secret: AQAi5a9UeJXUExAA+By9u+GPhl8/XiUQ4nwI3A== - osd-devices: "" - monitor-count: 1 -# osd-reformat: 'no' -# ceph-cluster-network: 192.168.0.0/24 -# ceph-public-network: 192.168.0.0/24 - to: - - "lxc:nodes=0" - - "lxc:nodes=1" - ceph-osd: - charm: "local:trusty/ceph-osd" - num_units: 2 - options: - osd-devices: /srv - osd-reformat: 'yes' - to: - - "nodes=0" - - "nodes=1" - ceph-radosgw: - charm: local:trusty/ceph-radosgw - options: - use-embedded-webserver: true - operator-roles: "Member,admin" - to: - - "lxc:nodes=0" - cinder: - charm: local:trusty/cinder - options: - block-device: None - glance-api-version: 2 - to: - - "lxc:nodes=1" - cinder-ceph: - charm: local:trusty/cinder-ceph - rabbitmq-server: - charm: local:trusty/rabbitmq-server - to: - - "lxc:nodes=0" - keystone: - charm: local:trusty/keystone - options: - admin-password: openstack - admin-token: admin - to: - - "lxc:nodes=1" - openstack-dashboard: - charm: local:trusty/openstack-dashboard - options: - secret: admin - webroot: / - to: - - "lxc:nodes=0" - nova-compute: - charm: local:trusty/nova-compute - options: - manage-neutron-plugin-legacy-mode: False - to: - - "nodes=1" - nova-cloud-controller: - charm: local:trusty/nova-cloud-controller - options: - network-manager: Neutron - to: - - "lxc:nodes=1" - neutron-api: - charm: local:trusty/neutron-api - options: - manage-neutron-plugin-legacy-mode: False - to: - - "lxc:nodes=0" - glance: - charm: local:trusty/glance - to: - - "lxc:nodes=1" - opnfv-promise: - charm: local:trusty/promise - to: - - "lxc:nodes=0" - congress: - charm: local:trusty/congress - options: - #source-branch: stable/mitaka - to: - - "lxc:nodes=1" diff --git a/ci/opencontrail/juju-deployer/scripts/cloud-setup.sh b/ci/opencontrail/juju-deployer/scripts/cloud-setup.sh deleted file mode 100755 index fab347cf..00000000 --- a/ci/opencontrail/juju-deployer/scripts/cloud-setup.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh -e - -. ~/admin-openrc - -# adjust tiny image -nova flavor-delete m1.tiny -nova flavor-create m1.tiny 1 512 8 1 - -# configure external network -neutron net-create --router:external=True public-net -neutron subnet-create --name public-subnet --no-gateway --allocation-pool start=10.0.10.2,end=10.0.10.254 --disable-dhcp public-net 10.0.10.0/24 - -# create vm network -neutron net-create ubuntu-net -neutron subnet-create --name ubuntu-subnet --gateway 10.0.5.1 ubuntu-net 10.0.5.0/24 - -# create pool of floating ips -i=0 -while [ $i -ne 10 ]; do - neutron floatingip-create public-net - i=$((i + 1)) -done - -# configure security groups -neutron security-group-rule-create --direction ingress --ethertype IPv4 --protocol icmp --remote-ip-prefix 0.0.0.0/0 default -neutron security-group-rule-create --direction ingress --ethertype IPv4 --protocol tcp --port-range-min 22 --port-range-max 22 --remote-ip-prefix 0.0.0.0/0 default - -# import key pair -nova keypair-add --pub-key id_rsa.pub ubuntu-keypair - -#http://docs.openstack.org/juno/install-guide/install/apt/content/launch-instance-neutron.html -# nova boot --flavor m1.small --image cirros-0.3.3-x86_64 --nic net-id=b65479a4-3638-4595-9245-6e41ccd8bfd8 --security-group default --key-name ubuntu-keypair demo-instance1 -# nova floating-ip-associate demo-instance1 10.5.8.35 diff --git a/ci/opencontrail/juju-deployer/scripts/glance.sh b/ci/opencontrail/juju-deployer/scripts/glance.sh deleted file mode 100755 index 467932ff..00000000 --- a/ci/opencontrail/juju-deployer/scripts/glance.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -e - -. ~/admin-openrc - -wget http://cloud-images.ubuntu.com/trusty/current/MD5SUMS - -wget http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img -glance image-create --name ubuntu-trusty-daily --disk-format qcow2 --container-format bare --owner admin --file trusty-server-cloudimg-amd64-disk1.img --checksum $(grep trusty-server-cloudimg-amd64-disk1.img MD5SUMS | cut -d " " -f 1) --is-public True diff --git a/ci/opencontrail/juju-deployer/scripts/openstack.sh b/ci/opencontrail/juju-deployer/scripts/openstack.sh deleted file mode 100755 index 8926a935..00000000 --- a/ci/opencontrail/juju-deployer/scripts/openstack.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh -ex - -configOpenrc() -{ - cat <<-EOF - export OS_USERNAME=$1 - export OS_PASSWORD=$2 - export OS_TENANT_NAME=$3 - export OS_AUTH_URL=$4 - export OS_REGION_NAME=$5 - EOF -} - -unitAddress() -{ - juju status | python -c "import yaml; import sys; print yaml.load(sys.stdin)[\"services\"][\"$1\"][\"units\"][\"$1/$2\"][\"public-address\"]" 2> /dev/null -} - -unitMachine() -{ - juju status | python -c "import yaml; import sys; print yaml.load(sys.stdin)[\"services\"][\"$1\"][\"units\"][\"$1/$2\"][\"machine\"]" 2> /dev/null -} - -mkdir -m 0700 -p cloud -controller_address=$(unitAddress keystone 0) -configOpenrc admin openstck admin http://$controller_address:5000/v2.0 RegionOne > cloud/admin-openrc -chmod 0600 cloud/admin-openrc - -machine=$(unitMachine nova-cloud-controller 0) -juju scp cloud-setup.sh cloud/admin-openrc ~/.ssh/id_rsa.pub $machine: -juju run --machine $machine ./cloud-setup.sh - -# setup contrail routing -juju set contrail-configuration "floating-ip-pools=[ { project: admin, network: public-net, pool-name: floatingip_pool, target-projects: [ admin ] } ]" -juju set neutron-contrail "virtual-gateways=[ { project: admin, network: public-net, interface: vgw, subnets: [ 10.0.10.0/24 ], routes: [ 0.0.0.0/0 ] } ]" - -machine=$(unitMachine glance 0) -juju scp glance.sh cloud/admin-openrc $machine: -juju run --machine $machine ./glance.sh - -# setup host routing -if [ -n "$CONFIGURE_HOST_ROUTING" ]; then - compute_address=$(dig +short $(unitAddress nova-compute 0) | tail -n 1) - sudo ip route replace 10.0.10.0/24 via $compute_address - sudo iptables -C FORWARD -s 10.0.10.0/24 -j ACCEPT 2> /dev/null || sudo iptables -I FORWARD 1 -s 10.0.10.0/24 -j ACCEPT - sudo iptables -C FORWARD -d 10.0.10.0/24 -j ACCEPT 2> /dev/null || sudo iptables -I FORWARD 2 -d 10.0.10.0/24 -j ACCEPT - sudo iptables -t nat -C POSTROUTING -s 10.0.10.0/24 ! -d 10.0.10.0/24 -j MASQUERADE 2> /dev/null || sudo iptables -t nat -A POSTROUTING -s 10.0.10.0/24 ! -d 10.0.10.0/24 -j MASQUERADE -fi |