Merge ~hopem/stsstack-bundles:cleanup-k8-channel-commit into stsstack-bundles:master

Proposed by Edward Hope-Morley
Status: Merged
Approved by: Edward Hope-Morley
Approved revision: adf5a83c41bd3ad1592fbc1b5e12fd4f911ce9f9
Merged at revision: adf5a83c41bd3ad1592fbc1b5e12fd4f911ce9f9
Proposed branch: ~hopem/stsstack-bundles:cleanup-k8-channel-commit
Merge into: stsstack-bundles:master
Diff against target: 298 lines (+44/-52)
8 files modified
ceph/generate-bundle.sh (+4/-3)
common/generate-bundle-base.sh (+11/-35)
common/helpers.sh (+3/-1)
kubernetes/generate-bundle.sh (+13/-4)
kubernetes/kubernetes.yaml.template (+1/-1)
landscape/generate-bundle.sh (+4/-2)
openstack/generate-bundle.sh (+4/-3)
swift/generate-bundle.sh (+4/-3)
Reviewer Review Type Date Requested Status
Rodrigo Barbieri (community) Approve
Felipe Reyes Pending
Review via email: mp+369026@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Rodrigo Barbieri (rodrigo-barbieri2010) wrote :

LGTM now, thanks Ed!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/ceph/generate-bundle.sh b/ceph/generate-bundle.sh
index 72298d0..6f8ef1a 100755
--- a/ceph/generate-bundle.sh
+++ b/ceph/generate-bundle.sh
@@ -1,10 +1,10 @@
1#!/bin/bash -eu1#!/bin/bash -eu
2CACHED_STDIN=( $@ )
3# imports2# imports
4LIB_COMMON=`dirname $0`/common3LIB_COMMON=`dirname $0`/common
5. $LIB_COMMON/helpers.sh4. $LIB_COMMON/helpers.sh
65
7# vars6# This list provides a way to set "internal opts" i.e. the ones accepted by
7# the top-level generate-bundle.sh. The need to modify these should be rare.
8opts=(8opts=(
9--internal-template ceph.yaml.template9--internal-template ceph.yaml.template
10--internal-generator-path $010--internal-generator-path $0
@@ -23,7 +23,8 @@ declare -A app_versions=( [firefly]=icehouse
23EOF23EOF
24cat $LIB_COMMON/openstack_release_info.sh >> $f_rel_info24cat $LIB_COMMON/openstack_release_info.sh >> $f_rel_info
2525
26# defaults26# Bundle template parameters. These should correspond to variables set at the top
27# of yaml bundle and overlay templates.
27parameters[__NUM_CEPH_MON_UNITS__]=128parameters[__NUM_CEPH_MON_UNITS__]=1
28parameters[__NUM_VAULT_UNITS__]=1 # there are > 1 vault* overlay so need to use a global with default29parameters[__NUM_VAULT_UNITS__]=1 # there are > 1 vault* overlay so need to use a global with default
29parameters[__SSL_CA__]=30parameters[__SSL_CA__]=
diff --git a/common/generate-bundle-base.sh b/common/generate-bundle-base.sh
index cd09f55..4975e3e 100644
--- a/common/generate-bundle-base.sh
+++ b/common/generate-bundle-base.sh
@@ -1,26 +1,16 @@
1#!/bin/bash -eu1#!/bin/bash -eu
2#2#
3# Author: edward.hope-morley@canonical.com3# PLEASE AVOID PUTTING BUNDLE-SPECIFIC CODE IN HERE. INSTEAD USE THE INDIVIDUAL
4#4# BUNDLE GENERATORS.
5# Description: Use this tool to generate a Juju (2.x) native-format bundle e.g.
6#
7# Xenial + Queens UCA: ./generate-bundle.sh --series xenial --release queens
8#
9# Bionic (Queens) Proposed: ./generate-bundle.sh --series bionic --pocket proposed
10#
11# Bionic + Stein UCA: ./generate-bundle.sh --release stein
12#
13#5#
14series_provided=false6series_provided=false
15pocket=7pocket=
16template=8template=
17path=9path=
18k8s_channel="latest/stable"
19charm_channel=10charm_channel=
20params_path=11params_path=
21bundle_name=12bundle_name=
22replay=false13replay=false
23is_k8s=false
24run_command=false14run_command=false
25list_bundles=false15list_bundles=false
26create_model=false16create_model=false
@@ -35,6 +25,10 @@ release=`get_release`
35while (($# > 0))25while (($# > 0))
36do26do
37 case "$1" in27 case "$1" in
28 --charm-channel)
29 charm_channel=$2
30 shift
31 ;;
38 --create-model)32 --create-model)
39 # creates a model using the value provided by --name33 # creates a model using the value provided by --name
40 create_model=true34 create_model=true
@@ -53,11 +47,6 @@ do
53 pocket=$247 pocket=$2
54 shift48 shift
55 ;;49 ;;
56 --k8s-channel)
57 # which Kubernetes channel to set on deployment
58 k8s_channel=$2
59 shift
60 ;;
61 --name|-n)50 --name|-n)
62 # give bundle set a name and store under named dir51 # give bundle set a name and store under named dir
63 bundle_name=$252 bundle_name=$2
@@ -67,10 +56,6 @@ do
67 # replay the last recorded command if exists56 # replay the last recorded command if exists
68 replay=true57 replay=true
69 ;;58 ;;
70 --K8S)
71 # marks this as a K8S deployment to use --channel=edge by default
72 is_k8s=true
73 ;;
74 --list)59 --list)
75 list_bundles=true60 list_bundles=true
76 ;;61 ;;
@@ -115,10 +100,6 @@ do
115 shift100 shift
116done101done
117102
118if ! $use_stable_charms && $is_k8s; then
119 charm_channel="edge"
120fi
121
122if $create_model; then103if $create_model; then
123 if [ -z "$bundle_name" ]; then104 if [ -z "$bundle_name" ]; then
124 echo "ERROR: no --name provided so cannot create Juju model" 105 echo "ERROR: no --name provided so cannot create Juju model"
@@ -253,13 +234,9 @@ os_origin=$source
253234
254render () {235render () {
255# generic replacements236# generic replacements
256tmp_path=$1237sed -i -e "s,__SERIES__,$series,g" \
257fixed_channel=$(echo "$k8s_channel" | sed 's/\//\\\//g')238 -e "s,__OS_ORIGIN__,$os_origin,g" \
258fixed_channel=$(echo "$fixed_channel" | sed 's/\./\\\./g')239 -e "s,__SOURCE__,$source,g" $1
259sed -i -e "s/__SERIES__/$series/g" \
260 -e "s/__OS_ORIGIN__/$os_origin/g" \
261 -e "s/__SOURCE__/$source/g" \
262 -e "s/__CHANNEL__/$fixed_channel/g" $tmp_path
263240
264# service-specific replacements241# service-specific replacements
265if [ -n "$params_path" ]; then242if [ -n "$params_path" ]; then
@@ -272,7 +249,7 @@ fi
272}249}
273250
274dtmp=`mktemp -d`251dtmp=`mktemp -d`
275fout=$dtmp/`basename $template| sed 's/.template//'`252fout=$dtmp/`basename $template| sed 's,.template,,'`
276cp $template $fout253cp $template $fout
277render $fout254render $fout
278255
@@ -310,10 +287,9 @@ else
310fi287fi
311288
312channel_param=289channel_param=
313
314if [ -n "$charm_channel" ]; then290if [ -n "$charm_channel" ]; then
315 channel_param="--channel=$charm_channel"291 channel_param="--channel=$charm_channel"
316fi292fi
317293
318echo -e "juju deploy ${result} ${_overlays[@]:-} $channel_param \n " > ${bundles_dir}/command294echo -e "juju deploy ${result} ${_overlays[@]:-\b} ${channel_param}\n " > ${bundles_dir}/command
319finish295finish
diff --git a/common/helpers.sh b/common/helpers.sh
index 5d0712f..177b55a 100644
--- a/common/helpers.sh
+++ b/common/helpers.sh
@@ -10,6 +10,8 @@ cat << EOF
10USAGE: `basename $0` INTERNAL_OPTS OPTIONS [OVERLAYS]10USAGE: `basename $0` INTERNAL_OPTS OPTIONS [OVERLAYS]
1111
12OPTIONS:12OPTIONS:
13 --charm-channel
14 Charm channel to deploy from (if supported).
13 --create-model15 --create-model
14 Create Juju model using --name. Switches to model if it already16 Create Juju model using --name. Switches to model if it already
15 exists. If this is not provided then the current Juju model is used.17 exists. If this is not provided then the current Juju model is used.
@@ -137,7 +139,7 @@ generate()
137 ftmp=`mktemp`139 ftmp=`mktemp`
138 echo -n "sed -i " > $ftmp140 echo -n "sed -i " > $ftmp
139 for p in ${!parameters[@]}; do141 for p in ${!parameters[@]}; do
140 echo -n "-e 's/$p/${parameters[$p]}/g' " >> $ftmp142 echo -n "-e 's,$p,${parameters[$p]},g' " >> $ftmp
141 done143 done
142 opts+=( "--internal-bundle-params $ftmp" )144 opts+=( "--internal-bundle-params $ftmp" )
143 fi145 fi
diff --git a/kubernetes/generate-bundle.sh b/kubernetes/generate-bundle.sh
index 32c9883..9f43fe1 100755
--- a/kubernetes/generate-bundle.sh
+++ b/kubernetes/generate-bundle.sh
@@ -3,11 +3,11 @@
3LIB_COMMON=`dirname $0`/common3LIB_COMMON=`dirname $0`/common
4. $LIB_COMMON/helpers.sh4. $LIB_COMMON/helpers.sh
55
6# vars6# This list provides a way to set "internal opts" i.e. the ones accepted by
7# the top-level generate-bundle.sh. The need to modify these should be rare.
7opts=(8opts=(
8--internal-template kubernetes.yaml.template9--internal-template kubernetes.yaml.template
9--internal-generator-path $010--internal-generator-path $0
10--K8S
11)11)
12f_rel_info=`mktemp`12f_rel_info=`mktemp`
1313
@@ -21,14 +21,23 @@ declare -A nonlts=( [cosmic]=cdk
21 [disco]=cdk )21 [disco]=cdk )
22EOF22EOF
2323
24# defaults24# Bundle template parameters. These should correspond to variables set at the top
25# defaults25# of yaml bundle and overlay templates.
26parameters[__NUM_CEPH_MON_UNITS__]=126parameters[__NUM_CEPH_MON_UNITS__]=1
27parameters[__K8S_CHANNEL__]="latest/stable"
28if ! `has_opt '--use-stable-charms' ${CACHED_STDIN[@]:-""}`; then
29 opts+=( "--charm-channel edge" )
30fi
2731
28trap_help ${CACHED_STDIN[@]:-""}32trap_help ${CACHED_STDIN[@]:-""}
29while (($# > 0))33while (($# > 0))
30do34do
31 case "$1" in35 case "$1" in
36 --k8s-channel)
37 # which Kubernetes channel to set on deployment
38 parameters[__K8S_CHANNEL__]="$2"
39 shift
40 ;;
32 --ceph)41 --ceph)
33 overlays+=( "ceph.yaml" )42 overlays+=( "ceph.yaml" )
34 overlays+=( "k8s-ceph.yaml" )43 overlays+=( "k8s-ceph.yaml" )
diff --git a/kubernetes/kubernetes.yaml.template b/kubernetes/kubernetes.yaml.template
index 7ef5d56..005e35f 100644
--- a/kubernetes/kubernetes.yaml.template
+++ b/kubernetes/kubernetes.yaml.template
@@ -1,5 +1,5 @@
11
2k8s_channel: &k8s_channel __CHANNEL__2k8s_channel: &k8s_channel __K8S_CHANNEL__
33
4description: A highly-available, production-grade Kubernetes cluster.4description: A highly-available, production-grade Kubernetes cluster.
5series: bionic5series: bionic
diff --git a/landscape/generate-bundle.sh b/landscape/generate-bundle.sh
index cad65f0..3a0b1eb 100755
--- a/landscape/generate-bundle.sh
+++ b/landscape/generate-bundle.sh
@@ -3,7 +3,8 @@
3LIB_COMMON=`dirname $0`/common3LIB_COMMON=`dirname $0`/common
4. $LIB_COMMON/helpers.sh4. $LIB_COMMON/helpers.sh
55
6# vars6# This list provides a way to set "internal opts" i.e. the ones accepted by
7# the top-level generate-bundle.sh. The need to modify these should be rare.
7opts=(8opts=(
8--internal-template landscape.yaml.template9--internal-template landscape.yaml.template
9--internal-generator-path $010--internal-generator-path $0
@@ -21,7 +22,8 @@ declare -A nonlts=( [cosmic]=landscape
21 [disco]=landscape )22 [disco]=landscape )
22EOF23EOF
2324
24# defaults25# Bundle template parameters. These should correspond to variables set at the top
26# of yaml bundle and overlay templates.
25parameters[__LANDSCAPE_VERSION__]="19.01"27parameters[__LANDSCAPE_VERSION__]="19.01"
2628
27trap_help ${CACHED_STDIN[@]:-""}29trap_help ${CACHED_STDIN[@]:-""}
diff --git a/openstack/generate-bundle.sh b/openstack/generate-bundle.sh
index 3c35dba..d67fb84 100755
--- a/openstack/generate-bundle.sh
+++ b/openstack/generate-bundle.sh
@@ -1,10 +1,10 @@
1#!/bin/bash -eu1#!/bin/bash -eu
2CACHED_STDIN=( $@ )
3# imports2# imports
4LIB_COMMON=`dirname $0`/common3LIB_COMMON=`dirname $0`/common
5. $LIB_COMMON/helpers.sh4. $LIB_COMMON/helpers.sh
65
7# vars6# This list provides a way to set "internal opts" i.e. the ones accepted by
7# the top-level generate-bundle.sh. The need to modify these should be rare.
8opts=(8opts=(
9--internal-template openstack.yaml.template9--internal-template openstack.yaml.template
10--internal-generator-path $010--internal-generator-path $0
@@ -20,7 +20,8 @@ cat << 'EOF' > $f_rel_info
20EOF20EOF
21cat $LIB_COMMON/openstack_release_info.sh >> $f_rel_info21cat $LIB_COMMON/openstack_release_info.sh >> $f_rel_info
2222
23# defaults23# Bundle template parameters. These should correspond to variables set at the top
24# of yaml bundle and overlay templates.
24parameters[__NUM_COMPUTE_UNITS__]=125parameters[__NUM_COMPUTE_UNITS__]=1
25parameters[__NUM_CEPH_MON_UNITS__]=126parameters[__NUM_CEPH_MON_UNITS__]=1
26parameters[__NUM_NEUTRON_GATEWAY_UNITS__]=127parameters[__NUM_NEUTRON_GATEWAY_UNITS__]=1
diff --git a/swift/generate-bundle.sh b/swift/generate-bundle.sh
index 9f386ce..763d75e 100755
--- a/swift/generate-bundle.sh
+++ b/swift/generate-bundle.sh
@@ -1,10 +1,10 @@
1#!/bin/bash -eu1#!/bin/bash -eu
2CACHED_STDIN=( $@ )
3# imports2# imports
4LIB_COMMON=`dirname $0`/common3LIB_COMMON=`dirname $0`/common
5. $LIB_COMMON/helpers.sh4. $LIB_COMMON/helpers.sh
65
7# vars6# This list provides a way to set "internal opts" i.e. the ones accepted by
7# the top-level generate-bundle.sh. The need to modify these should be rare.
8opts=(8opts=(
9--internal-template swift.yaml.template9--internal-template swift.yaml.template
10--internal-generator-path $010--internal-generator-path $0
@@ -19,7 +19,8 @@ cat << 'EOF' > $f_rel_info
19EOF19EOF
20cat $LIB_COMMON/openstack_release_info.sh >> $f_rel_info20cat $LIB_COMMON/openstack_release_info.sh >> $f_rel_info
2121
22# defaults22# Bundle template parameters. These should correspond to variables set at the top
23# of yaml bundle and overlay templates.
23parameters[__NUM_VAULT_UNITS__]=1 # there are > 1 vault* overlay so need to use a global with default24parameters[__NUM_VAULT_UNITS__]=1 # there are > 1 vault* overlay so need to use a global with default
24parameters[__SSL_CA__]=25parameters[__SSL_CA__]=
25parameters[__SSL_CERT__]=26parameters[__SSL_CERT__]=

Subscribers

People subscribed via source and target branches