hack: compile istio manifests as well (#137)
- compile k8s manifests to release/kubernetes-manifests.yaml - compile istio manifests to release/istio-manifests.yaml
This commit is contained in:
parent
31df60f050
commit
0dcd8cd947
1 changed files with 37 additions and 20 deletions
|
@ -14,43 +14,60 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
# injects new image/tag into the images in ./release/kubernetes-manifests/demo.yaml
|
# This script compiles manifest files with the image tags and places them in
|
||||||
|
# /release/...
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
[[ -n "${DEBUG:-}" ]] && set -x
|
||||||
|
|
||||||
log() { echo "$1" >&2; }
|
log() { echo "$1" >&2; }
|
||||||
|
|
||||||
TAG="${TAG?TAG env variable must be specified}"
|
TAG="${TAG?TAG env variable must be specified}"
|
||||||
REPO_PREFIX="${REPO_PREFIX?REPO_PREFIX env variable must be specified}"
|
REPO_PREFIX="${REPO_PREFIX?REPO_PREFIX env variable must be specified}"
|
||||||
out_file="${SCRIPTDIR}/../release/kubernetes-manifests/demo.yaml"
|
OUT_DIR="${OUT_DIR:-${SCRIPTDIR}/../release}"
|
||||||
|
|
||||||
read_manifests() {
|
read_manifests() {
|
||||||
local src_manifest_dir
|
local dir
|
||||||
src_manifest_dir="${SCRIPTDIR}/../kubernetes-manifests"
|
dir="$1"
|
||||||
|
|
||||||
while IFS= read -d $'\0' -r file; do
|
while IFS= read -d $'\0' -r file; do
|
||||||
cat "${file}"
|
cat "${file}"
|
||||||
echo "---"
|
echo "---"
|
||||||
done < <(find "${src_manifest_dir}" -name '*.yaml' -type f -print0)
|
done < <(find "${dir}" -name '*.yaml' -type f -print0)
|
||||||
}
|
}
|
||||||
|
|
||||||
# read and merge all manifests
|
mk_kubernetes_manifests() {
|
||||||
out_manifest="$(read_manifests)"
|
out_manifest="$(read_manifests "${SCRIPTDIR}/../kubernetes-manifests")"
|
||||||
|
|
||||||
# replace "image" repo, tag for each service
|
# replace "image" repo, tag for each service
|
||||||
for dir in ./src/*/
|
for dir in ./src/*/
|
||||||
do
|
do
|
||||||
svcname="$(basename "${dir}")"
|
svcname="$(basename "${dir}")"
|
||||||
image="$REPO_PREFIX/$svcname:$TAG"
|
image="$REPO_PREFIX/$svcname:$TAG"
|
||||||
|
|
||||||
pattern="^(\s*)image:\s.*$svcname(.*)(\s*)"
|
pattern="^(\s*)image:\s.*$svcname(.*)(\s*)"
|
||||||
replace="\1image: $image\3"
|
replace="\1image: $image\3"
|
||||||
out_manifest="$(gsed -r "s|$pattern|$replace|g" <(echo "${out_manifest}") )"
|
out_manifest="$(gsed -r "s|$pattern|$replace|g" <(echo "${out_manifest}") )"
|
||||||
done
|
done
|
||||||
|
echo "${out_manifest}"
|
||||||
|
}
|
||||||
|
|
||||||
rm -rf -- "${out_file}"
|
mk_istio_manifests() {
|
||||||
mkdir -p "$(dirname "${out_file}")"
|
read_manifests "${SCRIPTDIR}/../istio-manifests"
|
||||||
echo "${out_manifest}" > "${out_file}"
|
}
|
||||||
|
|
||||||
log "Successfully saved merged manifests to ${out_file}."
|
main() {
|
||||||
|
mkdir -p "${OUT_DIR}"
|
||||||
|
local k8s_manifests_file istio_manifests_file
|
||||||
|
|
||||||
|
k8s_manifests_file="${OUT_DIR}/kubernetes-manifests.yaml"
|
||||||
|
mk_kubernetes_manifests > "${k8s_manifests_file}"
|
||||||
|
log "Written ${k8s_manifests_file}"
|
||||||
|
|
||||||
|
istio_manifests_file="${OUT_DIR}/istio-manifests.yaml"
|
||||||
|
mk_istio_manifests > "${istio_manifests_file}"
|
||||||
|
log "Written ${istio_manifests_file}"
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
||||||
|
|
Loading…
Reference in a new issue