Update Armada template for job cleanup

- Add delete hooks for jobs to UCP services
- Add a few additional configuration options
- Add 'helm init' to run tiller after genesis
- Add script to get a Keystone token if needed

Change-Id: Ie27c295c0f6803490dfdcf969a70aa9a886e072b
This commit is contained in:
Scott Hussey 2017-12-05 09:39:00 -06:00
parent c81b93d5f7
commit 31b616c5ae
4 changed files with 82 additions and 6 deletions

View File

@ -170,8 +170,9 @@ data:
labels:
node_selector_key: ucp-control-plane
node_selector_value: enabled
replicas:
server: 1
pod:
replicas:
server: 1
source:
type: git
location: https://git.openstack.org/openstack/openstack-helm
@ -288,7 +289,19 @@ data:
no_hooks: false
upgrade:
no_hooks: false
pre:
delete:
- type: 'job'
labels:
application: 'maas'
values:
images:
tags:
db_sync: ${MAAS_REGION_IMAGE}
maas_rack: ${MAAS_RACK_MAGE}
maas_region: ${MAAS_REGION_IMAGE}
export_api_key: ${MAAS_REGION_IMAGE}
maas_cache: ${MAAS_CACHE_IMAGE}
labels:
rack:
node_selector_key: ucp-control-plane
@ -308,6 +321,8 @@ data:
conf:
drydock:
bootaction_url: http://${DRYDOCK_NODE_IP}:${DRYDOCK_NODE_PORT}/api/v1.0/bootactions/nodes/
cache:
enabled: ${MAAS_CACHE_ENABLED}
maas:
credentials:
secret:
@ -346,6 +361,11 @@ data:
no_hooks: false
upgrade:
no_hooks: false
pre:
delete:
- type: 'job'
labels:
application: 'drydock'
values:
images:
tags:
@ -364,6 +384,8 @@ data:
port:
api:
nodeport: ${DRYDOCK_NODE_PORT}
replicas:
drydock: 1
conf:
drydock:
maasdriver:
@ -390,6 +412,11 @@ data:
no_hooks: false
upgrade:
no_hooks: false
pre:
delete:
- type: 'job'
labels:
application: 'deckhand'
values:
images:
tags:
@ -456,8 +483,21 @@ data:
no_hooks: false
upgrade:
no_hooks: false
pre:
delete:
- type: 'job'
labels:
application: 'shipyard'
- type: 'job'
labels:
application: 'airflow'
values:
prod_environment: true
prod_environment: ${SHIPYARD_PROD_DEPLOY}
pod:
mounts:
dag_path: ${AIRFLOW_PATH_DAG}
plugin_path: ${AIRFLOW_PATH_PLUGIN}
log_path: ${AIRFLOW_PATH_LOG}
images:
tags:
airflow: ${AIRFLOW_IMAGE}

View File

@ -29,6 +29,13 @@ export AIRFLOW_NODE_PORT=${AIRFLOW_NODE_PORT:-32080}
export SHIPYARD_NODE_PORT=${SHIPYARD_NODE_PORT:-31901}
export ARMADA_NODE_PORT=${ARMADA_NODE_PORT:-31903}
# UCP Service Config
export SHIPYARD_PROD_DEPLOY=${SHIPYARD_PROD_DEPLOY:-"true"}
export AIRFLOW_PATH_DAG=${AIRFLOW_PATH_DAG:-"/var/tmp/airflow/dags"}
export AIRFLOW_PATH_PLUGIN=${AIRFLOW_PATH_PLUGIN:-"/var/tmp/airflow/plugins"}
export AIRFLOW_PATH_LOG=${AIRFLOW_PATH_LOG:-"/var/tmp/airflow/logs"}
export MAAS_CACHE_ENABLED=${MAAS_CACHE_ENABLED:-"false"}
# Storage
export CEPH_OSD_DIR=${CEPH_OSD_DIR:-"/var/lib/openstack-helm/ceph/osd"}
export ETCD_KUBE_DATA_PATH=${ETCD_KUBE_DATA_PATH:-"/var/lib/etcd/kubernetes"}
@ -91,6 +98,9 @@ export PROMENADE_IMAGE=${PROMENADE_IMAGE:-"quay.io/attcomdev/promenade:master"}
export DECKHAND_IMAGE=${DECKHAND_IMAGE:-"quay.io/attcomdev/deckhand:master"}
export SHIPYARD_IMAGE=${SHIPYARD_IMAGE:-"quay.io/attcomdev/shipyard:master"}
export AIRFLOW_IMAGE=${AIRFLOW_IMAGE:-"quay.io/attcomdev/airflow:master"}
export MAAS_CACHE_IMAGE=${MAAS_CACHE_IMAGE:-"quay.io/attcomdev/maas-cache:master"}
export MAAS_REGION_IMAGE=${MAAS_REGION_IMAGE:-"quay.io/attcomdev/maas-region:master"}
export MAAS_RACK_IMAGE=${MAAS_RACK_IMAGE:-"quay.io/attcomdev/maas-rack:master"}
# Docker
export DOCKER_REPO_URL=${DOCKER_REPO_URL:-"http://apt.dockerproject.org/repo"}
@ -125,6 +135,9 @@ then
exit -1
fi
echo "Saving deployment environment to deploy-env.sh."
env | xargs -n 1 -d '\n' echo "export" >> deploy-env.sh
rm -rf configs
mkdir configs
chmod 777 configs
@ -149,6 +162,15 @@ then
echo " url: ${PROXY_ADDRESS}" >> configs/KubernetesNetwork.yaml
fi
# Support a custom deployment for shipyard developers
if [[ $SHIPYARD_PROD_DEPLOY == 'false' ]]
then
mkdir -p $AIRFLOW_PATH_DAG
mkdir -p $AIRFLOW_PATH_PLUGIN
mkdir -p $AIRFLOW_PATH_LOG
fi
# Install docker
apt -qq update
apt -y install docker.io jq
@ -187,6 +209,15 @@ mkdir ~/.kube
cp -r /etc/kubernetes/admin/pki ~/.kube/pki
cat /etc/kubernetes/admin/kubeconfig.yaml | sed -e 's/\/etc\/kubernetes\/admin/./' > ~/.kube/config
# Run helm init since promenade tears down temporary tiller
helm init
while [[ -z $(kubectl get pods -n kube-system | grep tiller | grep Running) ]]
do
echo 'Waiting for tiller to be ready.'
sleep 10
done
docker run -t -v ~/.kube:/armada/.kube -v $(pwd):/target --net=host ${ARMADA_IMAGE} apply /target/${ARMADA_CONFIG}
echo 'UCP control plane deployed.'

View File

@ -0,0 +1,4 @@
#!/bin/bash
TOKEN=$(docker run --rm --net=host -e 'OS_AUTH_URL=http://keystone-api.ucp.svc.cluster.local:80/v3' -e 'OS_PASSWORD=password' -e 'OS_PROJECT_DOMAIN_NAME=default' -e 'OS_PROJECT_NAME=service' -e 'OS_REGION_NAME=RegionOne' -e 'OS_USERNAME=drydock' -e 'OS_USER_DOMAIN_NAME=default' -e 'OS_IDENTITY_API_VERSION=3' kolla/ubuntu-source-keystone:3.0.3 openstack token issue -f shell | grep ^id | cut -d'=' -f2 | tr -d '"')
echo $TOKEN

View File

@ -1,9 +1,10 @@
# Known working integrations
# Example environment customization
export CEPH_CLUSTER_NET=172.24.1.0/24
export CEPH_PUBLIC_NET=172.24.1.0/24
export GENESIS_NODE_IP=172.24.1.100
export MASTER_NODE_IP=172.24.1.101
export NODE_NET_IFACE=ens3
export PROMENADE_IMAGE=quay.io/attcomdev/promenade:master
export ARMADA_IMAGE=quay.io/attcomdev/armada:v0.7.1
export DRYDOCK_IMAGE=sthussey/drydock:386668v14
export ARMADA_IMAGE=quay.io/attcomdev/armada:master
export DRYDOCK_IMAGE=sthussey/drydock:391039v1
export MAAS_CACHE_IMAGE=sthussey/maas-cache:cachetest