Skip to content

Commit 3b865dd

Browse files
author
Mandeep Dhami
committed
Added scripts for container build and aim ctrl
1 parent c6c84b0 commit 3b865dd

File tree

3 files changed

+139
-88
lines changed

3 files changed

+139
-88
lines changed

tripleo-ciscoaci/files/build_ciscoaci_containers.sh

Lines changed: 0 additions & 88 deletions
This file was deleted.
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#!/bin/bash
2+
set -eu
3+
4+
# Parse Args
5+
script=$(basename "$0")
6+
action=${1:-''}
7+
if [ "${action}" != 'start' -a "${action}" != 'stop' -a "${action}" != 'status' ] ; then
8+
echo "USAGE: ${script} <action> (where action is one of start, stop, or status)"
9+
echo "Invalid argument: '${action}'" 1>&2
10+
exit 1
11+
fi
12+
13+
# check for correct openstack env, will exit if env is not set
14+
echo "Validating overcloud env ..."
15+
nova list 3>/dev/null 2>&1 1>&3
16+
17+
# get list of controllers
18+
echo "Finding an available overcloud server ..."
19+
ocloud_server_str=$(openstack server list -f json 2>/dev/null | jq .[0].Networks 2>/dev/null)
20+
if [ "${ocloud_server_str}" != "null" ] ; then
21+
echo "Using overcloud server from: ${ocloud_server_str}"
22+
ocloud_server=$(echo ${ocloud_server_str} | tr -d '"' | cut -d= -f2)
23+
echo "Finding all overcloud controllers ..."
24+
ocloud_ctrls_str=$(ssh -q -o 'UserKnownHostsFile /dev/null' -o 'StrictHostKeyChecking no' \
25+
heat-admin@${ocloud_server} sudo cat /etc/puppet/hieradata/all_nodes.json | \
26+
jq .controller_node_ips)
27+
if [ "${ocloud_ctrls_str}" != "null" ] ; then
28+
echo "Using overcloud ctrls from: ${ocloud_ctrls_str}"
29+
ocloud_ctrls_list=$(echo ${ocloud_ctrls_str} | tr -d '"')
30+
for ctrl in $(echo ${ocloud_ctrls_list} | tr ',' '\n') ; do
31+
echo "Overcloud controller: ${ctrl} ..."
32+
ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
33+
heat-admin@${ctrl} \
34+
"sudo systemctl ${action} aim-event-service-rpc; \
35+
sudo systemctl ${action} aim-aid; \
36+
sudo systemctl ${action} aim-event-service-polling" ;
37+
done
38+
else
39+
echo "No overcloud controller found." 1>&2
40+
exit 3
41+
fi
42+
else
43+
echo "No overcloud controller found" 1>&2
44+
exit 2
45+
fi
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
#!/bin/bash
2+
set -eu
3+
4+
# Process Args, use defaults for common case
5+
CISCOACI_YAML=${1:-'/home/stack/templates/cisco_containers.yaml'}
6+
CISCOACI_RPMDIR=${2:-'/var/www/html/acirepo'}
7+
SCRIPT_NAME=$(basename $0)
8+
9+
# functions to build images
10+
function build_tag_push() {
11+
CONTAINER_DIR=$1
12+
CONTAINER_NAME=$2
13+
(
14+
cd ${CONTAINER_DIR}
15+
sudo docker build ./ -t ${CISCOACI_TAG}
16+
IMAGE_ID=`sudo docker images -q ${CISCOACI_TAG}`
17+
sudo docker tag ${IMAGE_ID} ${LOCAL_REGISTRY_ADDRESS}/${CONTAINER_NAME}:${CISCOACI_TAG}
18+
sudo docker push ${LOCAL_REGISTRY_ADDRESS}/${CONTAINER_NAME}:${CISCOACI_TAG}
19+
)
20+
}
21+
22+
function build_heat_engine_image() {
23+
# create the build dir
24+
CONTAINER_BUILD_DIR=$(mktemp -d /tmp/ciscoaci_XXXX)
25+
cp ${CISCOACI_RPMDIR}/openstack-heat-gbp-*.rpm ${CONTAINER_BUILD_DIR}
26+
cp ${CISCOACI_RPMDIR}/python-gbpclient-*.rpm ${CONTAINER_BUILD_DIR}
27+
cat > ${CONTAINER_BUILD_DIR}/Dockerfile <<EOF
28+
FROM registry.access.redhat.com/rhosp12/openstack-heat-engine:${UPSTREAM_TAG}
29+
MAINTAINER Cisco Systems
30+
LABEL name="rhosp12/openstack-heat-engine-ciscoaci" vendor="Cisco Systems" version="12.0" release="1"
31+
USER root
32+
COPY openstack-heat-gbp-*.rpm /tmp
33+
COPY python-gbpclient-*.rpm /tmp
34+
RUN rpm -ihv /tmp/*.rpm --nodeps
35+
RUN mkdir -p /usr/lib/heat
36+
RUN cp -r /usr/lib/python2.7/site-packages/gbpautomation /usr/lib/heat
37+
EOF
38+
39+
# build, tag and push latest build image and push to local registry
40+
build_tag_push ${CONTAINER_BUILD_DIR} openstack-heat-engine-ciscoaci
41+
rm -rf ${CONTAINER_BUILD_DIR}
42+
}
43+
44+
function build_horizon_image() {
45+
# create the build dir
46+
CONTAINER_BUILD_DIR=$(mktemp -d /tmp/ciscoaci_XXXX)
47+
cp ${CISCOACI_RPMDIR}/openstack-dashboard-gbp-*.rpm ${CONTAINER_BUILD_DIR}
48+
cp ${CISCOACI_RPMDIR}/python-django-horizon-gbp-*.rpm ${CONTAINER_BUILD_DIR}
49+
cp ${CISCOACI_RPMDIR}/python-gbpclient-*.rpm ${CONTAINER_BUILD_DIR}
50+
cat > ${CONTAINER_BUILD_DIR}/Dockerfile <<EOF
51+
FROM registry.access.redhat.com/rhosp12/openstack-horizon:${UPSTREAM_TAG}
52+
MAINTAINER Cisco Systems
53+
LABEL name="rhosp12/openstack-horizon-ciscoaci" vendor="Cisco Systems" version="12.0" release="1"
54+
USER root
55+
COPY openstack-dashboard-gbp-*.rpm /tmp
56+
COPY python-django-horizon-gbp-*.rpm /tmp
57+
COPY python-gbpclient-*.rpm /tmp
58+
RUN rpm -ivh /tmp/*.rpm
59+
RUN cp /usr/share/openstack-dashboard/openstack_dashboard/enabled/_*gbp* /usr/lib/python2.7/site-packages/openstack_dashboard/local/enabled
60+
EOF
61+
62+
# build, tag and push latest build image and push to local registry
63+
build_tag_push ${CONTAINER_BUILD_DIR} openstack-horizon-ciscoaci
64+
rm -rf ${CONTAINER_BUILD_DIR}
65+
}
66+
67+
function create_cisco_yaml() {
68+
cat > ${CISCOACI_YAML} <<EOF
69+
parameter_defaults:
70+
DockerHorizonImage: ${LOCAL_REGISTRY_ADDRESS}/openstack-horizon-ciscoaci:${CISCOACI_TAG}
71+
DockerHeatEngineImage: ${LOCAL_REGISTRY_ADDRESS}/openstack-heat-engine-ciscoaci:${CISCOACI_TAG}
72+
EOF
73+
}
74+
75+
# main()
76+
echo ""
77+
echo "Running as: ${SCRIPT_NAME} ${CISCOACI_YAML} ${CISCOACI_RPMDIR}"
78+
echo ""
79+
80+
# Local variables
81+
LOCAL_REGISTRY_ADDRESS=$(docker images | grep -v redhat.com | grep -o '^.*rhosp12' | sort -u)
82+
UPSTREAM_TAG=$(sudo openstack overcloud container image tag discover \
83+
--image registry.access.redhat.com/rhosp12/openstack-base:latest \
84+
--tag-from-label version-release)
85+
CISCOACI_TAG=${UPSTREAM_TAG}
86+
87+
build_horizon_image
88+
build_heat_engine_image
89+
create_cisco_yaml
90+
91+
echo ""
92+
echo "Created Openstack director env file: ${CISCOACI_YAML}"
93+
echo "Please include '${CISCOACI_YAML}' as the last env file when deploying OSD"
94+
echo ""

0 commit comments

Comments
 (0)