adding more flavors and nuo recipes
This commit is contained in:
104
recipes/nuo/provisionning/conf/common/templater.start
Normal file
104
recipes/nuo/provisionning/conf/common/templater.start
Normal file
@ -0,0 +1,104 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
#
|
||||
# Generate all the configuration files
|
||||
# Get all the values from the VLS_DIR
|
||||
# Process each template from the TPL_DIR with this values
|
||||
#
|
||||
|
||||
ENV_FILE=${ENV_FILE:-/var/run/one-context/one_env}
|
||||
TPL_DIR="/usr/share/builder/templates"
|
||||
VLS_DIR="/usr/share/builder/values"
|
||||
CONFIG=""
|
||||
|
||||
if [ -f "${ENV_FILE}" ]; then
|
||||
. ${ENV_FILE}
|
||||
fi
|
||||
|
||||
BTR="$(command -v btr)"
|
||||
if [ "${?}" -ne 0 ]; then
|
||||
echo "Warning: Nothing to do the templater is not installed"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ ! -e "${TPL_DIR}" ]; then
|
||||
echo "Error: The template dir is missing (${TPL_DIR})"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -e "${VLS_DIR}" ]; then
|
||||
echo "Error: The template dir is missing (${VLS_DIR})"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
jsonQuery() {
|
||||
local data="${1}"
|
||||
local query="${2}"
|
||||
echo "${data}" | jq -cr "${query}"
|
||||
}
|
||||
|
||||
# NAME: @jsonMerge
|
||||
# AIM: Merge two json structures
|
||||
# NOTES:
|
||||
# The last one has de last word
|
||||
# if you have the same key in A and B
|
||||
# this keeps the value of the B structure.
|
||||
# PARAMS:
|
||||
# $1: original JSON Structure
|
||||
# $2: updated JSON Structure
|
||||
jsonMerge() {
|
||||
local data="${1}"
|
||||
local data2="${2}"
|
||||
|
||||
echo "${data} ${data2}" | jq -cr -s ".[0] * .[1]"
|
||||
}
|
||||
|
||||
jsonUpdateVal() {
|
||||
local json="${1}"
|
||||
local key="${2}"
|
||||
local value="${3}"
|
||||
|
||||
echo "${json}" | jq --arg a "${value}" "${key} = \$a"
|
||||
}
|
||||
|
||||
getValues() {
|
||||
|
||||
local values=""
|
||||
|
||||
for file in $(find ${VLS_DIR} -name "*.json"); do
|
||||
values="${values}$(cat ${file})"
|
||||
done
|
||||
|
||||
if [ -n "${RAW_CONFIG}" ]; then
|
||||
values="$(jsonMerge ${values} ${RAW_CONFIG})"
|
||||
fi
|
||||
|
||||
for svc in $(echo ${values} | jq -cr '.Services|keys[]'); do
|
||||
for key in $(echo ${values} | jq -cr ".Services.${svc}.Vars|keys[]"); do
|
||||
ukey=${key^^}
|
||||
vkeys="$(echo ${values} | jq -cr \".Services.${svc}.Vars.${key}\|keys[]\")"
|
||||
if [ ${?} -eq 0 ]; then
|
||||
for var in $(echo ${values} | jq -cr ".Services.${svc}.Vars.${key}|keys[]"); do
|
||||
uvar=${var^^}
|
||||
val=$(eval echo "\$${ukey}_${uvar}")
|
||||
if [ -n "${val}" ]; then
|
||||
values=$(jsonUpdateVal "${values}" ".Services.${svc}.Vars.${key}.${var}" "${val}")
|
||||
fi
|
||||
done
|
||||
else
|
||||
values=$(jsonUpdateVal "${values}" ".Services.${svc}.Vars.${key}" "${!ukey}")
|
||||
fi
|
||||
done
|
||||
done
|
||||
echo ${values}
|
||||
}
|
||||
|
||||
processTemplates() {
|
||||
${BTR} -t ${TPL_DIR} -c "${1}"
|
||||
}
|
||||
|
||||
VALUES=$(getValues)
|
||||
file=$(mktemp)
|
||||
echo "${VALUES}" > "${file}"
|
||||
processTemplates "${file}"
|
||||
rm -rf "${file}"
|
64
recipes/nuo/provisionning/conf/harbor/init.d/harbor
Executable file
64
recipes/nuo/provisionning/conf/harbor/init.d/harbor
Executable file
@ -0,0 +1,64 @@
|
||||
#!/sbin/openrc-run
|
||||
|
||||
: ${SUBCFGDIR:=/srv}
|
||||
DOCKER_COMPOSE_UP_ARGS=${DOCKER_COMPOSE_UP_ARGS-"--no-build --no-recreate --no-deps"}
|
||||
|
||||
SUBSVC="${SVCNAME#*.}"
|
||||
[ -z "${SUBSVC}" ] && exit 1
|
||||
: ${SUBCFG:="${SUBCFGDIR}/${SUBSVC}/docker-compose.yml"}
|
||||
DOCOCMD="/usr/bin/docker-compose"
|
||||
export COMPOSE_HTTP_TIMEOUT=300
|
||||
|
||||
description="Manage docker services defined in ${SUBCFG}"
|
||||
extra_commands="configtest build"
|
||||
description_configtest="Check configuration via \"docker-compose -f ${SUBCFG} config\""
|
||||
description_build="Run \"docker-compose -f ${SUBCFG} build\""
|
||||
|
||||
depend() {
|
||||
need localmount net docker
|
||||
use dns
|
||||
after docker
|
||||
}
|
||||
|
||||
configtest() {
|
||||
if ! [ -f "${SUBCFG}" ]; then
|
||||
eerror "The config file ${SUBCFG} does not exist!"
|
||||
return 1
|
||||
fi
|
||||
if "${DOCOCMD}" -f "${SUBCFG}" config >&/dev/null; then
|
||||
einfo "config: ok"
|
||||
else
|
||||
eerror "config: error"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
build() {
|
||||
configtest || return 1
|
||||
ebegin "Building dockerservice ${SUBSVC}"
|
||||
"${DOCOCMD}" -f "${SUBCFG}" build
|
||||
eend $?
|
||||
}
|
||||
|
||||
start() {
|
||||
configtest || return 1
|
||||
ebegin "Starting dockerservice ${SUBSVC}"
|
||||
sleep 5
|
||||
"${DOCOCMD}" -f "${SUBCFG}" up -d ${DOCKER_COMPOSE_UP_ARGS}
|
||||
eend $?
|
||||
}
|
||||
|
||||
stop() {
|
||||
ebegin "Stopping dockerservice ${SUBSVC}"
|
||||
"${DOCOCMD}" -f "${SUBCFG}" stop --timeout=300
|
||||
eend $?
|
||||
}
|
||||
|
||||
status() {
|
||||
if [ "$("${DOCOCMD}" -f "${SUBCFG}" top | wc -l)" -gt "0" ]; then
|
||||
einfo "status: started"
|
||||
else
|
||||
einfo "status: stopped"
|
||||
return 3
|
||||
fi
|
||||
}
|
13
recipes/nuo/provisionning/conf/kind/initkind.start
Normal file
13
recipes/nuo/provisionning/conf/kind/initkind.start
Normal file
@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
|
||||
CLUSTER_NAME="nuo"
|
||||
|
||||
if [ $(kind get clusters -q | grep "${CLUSTER_NAME}") ];then
|
||||
podman start -f name="^${CLUSTER_NAME}"
|
||||
else
|
||||
kind create cluster --config /etc/cluster.yaml | tee -a /var/log/kind-init.log
|
||||
fi
|
||||
|
||||
if [ ! $(which kubectl) ];then
|
||||
apk add kubectl --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community
|
||||
fi
|
25
recipes/nuo/provisionning/conf/matchbox/initmatchbox.start
Normal file
25
recipes/nuo/provisionning/conf/matchbox/initmatchbox.start
Normal file
@ -0,0 +1,25 @@
|
||||
#!/bin/sh
|
||||
|
||||
FL_VERSIONS="current 3374.2.0"
|
||||
MATCHBOX_DIR="/var/lib/matchbox"
|
||||
ASSETS_DIR="${MATCHBOX_DIR}/assets/"
|
||||
|
||||
GPG_FNAME="Flatcar_Image_Signing_Key.asc"
|
||||
GPG_KEYS_URL="https://www.flatcar.org/security/image-signing-key/"
|
||||
|
||||
cd /tmp
|
||||
curl -L -O ${GPG_KEYS_URL}/${GPG_FNAME}
|
||||
gpg --import --keyid-format LONG ${GPG_FNAME}
|
||||
cd -
|
||||
|
||||
echo "Provisionning matchbox with flatcar images"
|
||||
tout=30
|
||||
for version in ${FL_VERSIONS}; do
|
||||
for i in $(seq 1 ${tout});do
|
||||
echo " * ${FL_VERSIONS} stable image (try ${i})"
|
||||
/usr/local/bin/get-flatcar stable ${version} ${ASSETS_DIR}
|
||||
if [[ "${?}" -eq 0 ]]; then
|
||||
break
|
||||
fi
|
||||
done
|
||||
done
|
10
recipes/nuo/provisionning/conf/matchbox/inittftp.start
Normal file
10
recipes/nuo/provisionning/conf/matchbox/inittftp.start
Normal file
@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
|
||||
dest="${1}"
|
||||
|
||||
ipxeEFISource="http://boot.ipxe.org/ipxe.efi"
|
||||
kpxeSource="http://boot.ipxe.org/undionly.kpxe"
|
||||
|
||||
cd "${dest}"
|
||||
wget "${ipxeEFISource}"
|
||||
wget "${kpxeSource}"
|
Reference in New Issue
Block a user