feat: tooling cleanup, first bootstrap draft, argo tweaks
This commit is contained in:
parent
daf70c9bfb
commit
c8dd7fd2cc
admin
charts
44
admin/cluster_bootstrap.sh
Executable file
44
admin/cluster_bootstrap.sh
Executable file
@ -0,0 +1,44 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -eEx
|
||||||
|
set -o pipefail
|
||||||
|
set -x
|
||||||
|
|
||||||
|
VALUES=$1
|
||||||
|
|
||||||
|
WORKDIR=$(mktemp -p /tmp -d kubezero.XXX)
|
||||||
|
[ -z "$DEBUG" ] && trap 'rm -rf $WORKDIR' ERR EXIT
|
||||||
|
|
||||||
|
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||||
|
# shellcheck disable=SC1091
|
||||||
|
. "$SCRIPT_DIR"/libhelm.sh
|
||||||
|
CHARTS="$(dirname $SCRIPT_DIR)/charts"
|
||||||
|
|
||||||
|
KUBE_VERSION="$(get_kube_version)"
|
||||||
|
PLATFORM="$(get_kubezero_platform)"
|
||||||
|
|
||||||
|
if [ -z "$KUBE_VERSION" ]; then
|
||||||
|
echo "Cannot contact cluster, cannot parse version!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Upload values into kubezero-values
|
||||||
|
kubectl create ns kubezero || true
|
||||||
|
kubectl create cm -n kubezero kubezero-values \
|
||||||
|
--from-file values.yaml=$VALUES || \
|
||||||
|
kubectl get cm -n kubezero kubezero-values -o=yaml | \
|
||||||
|
yq e ".data.\"values.yaml\" |= load_str($1)" | \
|
||||||
|
kubectl replace -f -
|
||||||
|
|
||||||
|
### Main
|
||||||
|
get_kubezero_values $ARGOCD
|
||||||
|
|
||||||
|
# Always use embedded kubezero chart
|
||||||
|
helm template $CHARTS/kubezero -f $WORKDIR/kubezero-values.yaml --kube-version $KUBE_VERSION --name-template kubezero --version ~$KUBE_VERSION --devel --output-dir $WORKDIR
|
||||||
|
|
||||||
|
ARTIFACTS=(network addons cert-manager storage argo)
|
||||||
|
|
||||||
|
for t in ${ARTIFACTS[@]}; do
|
||||||
|
_helm crds $t || true
|
||||||
|
_helm apply $t || true
|
||||||
|
done
|
@ -9,34 +9,23 @@ ARGOCD="${3:-true}"
|
|||||||
|
|
||||||
LOCAL_DEV=1
|
LOCAL_DEV=1
|
||||||
|
|
||||||
#VERSION="latest"
|
|
||||||
KUBE_VERSION="$(kubectl version -o json | jq -r .serverVersion.gitVersion)"
|
|
||||||
|
|
||||||
WORKDIR=$(mktemp -p /tmp -d kubezero.XXX)
|
WORKDIR=$(mktemp -p /tmp -d kubezero.XXX)
|
||||||
[ -z "$DEBUG" ] && trap 'rm -rf $WORKDIR' ERR EXIT
|
[ -z "$DEBUG" ] && trap 'rm -rf $WORKDIR' ERR EXIT
|
||||||
|
|
||||||
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||||
|
|
||||||
# shellcheck disable=SC1091
|
# shellcheck disable=SC1091
|
||||||
. "$SCRIPT_DIR"/libhelm.sh
|
. "$SCRIPT_DIR"/libhelm.sh
|
||||||
CHARTS="$(dirname $SCRIPT_DIR)/charts"
|
CHARTS="$(dirname $SCRIPT_DIR)/charts"
|
||||||
|
|
||||||
# Guess platform from current context
|
KUBE_VERSION="$(get_kube_version)"
|
||||||
_auth_cmd=$(kubectl config view | yq .users[0].user.exec.command)
|
PLATFORM="$(get_kubezero_platform)"
|
||||||
if [ "$_auth_cmd" == "gke-gcloud-auth-plugin" ]; then
|
|
||||||
PLATFORM=gke
|
if [ -z "$KUBE_VERSION" ]; then
|
||||||
elif [ "$_auth_cmd" == "aws-iam-authenticator" ]; then
|
echo "Cannot contact cluster, cannot parse version!"
|
||||||
PLATFORM=aws
|
exit 1
|
||||||
else
|
|
||||||
PLATFORM=nocloud
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
parse_version() {
|
|
||||||
echo $([[ $1 =~ ^v[0-9]+\.[0-9]+\.[0-9]+ ]] && echo "${BASH_REMATCH[0]//v/}")
|
|
||||||
}
|
|
||||||
|
|
||||||
KUBE_VERSION=$(parse_version $KUBE_VERSION)
|
|
||||||
|
|
||||||
|
|
||||||
### Main
|
### Main
|
||||||
get_kubezero_values $ARGOCD
|
get_kubezero_values $ARGOCD
|
||||||
|
|
||||||
|
@ -320,7 +320,7 @@ apply_module() {
|
|||||||
get_kubezero_values $ARGOCD
|
get_kubezero_values $ARGOCD
|
||||||
|
|
||||||
# Always use embedded kubezero chart
|
# Always use embedded kubezero chart
|
||||||
helm template $CHARTS/kubezero -f $WORKDIR/kubezero-values.yaml --version ~$KUBE_VERSION --devel --output-dir $WORKDIR
|
helm template $CHARTS/kubezero -f $WORKDIR/kubezero-values.yaml --kube-version $KUBE_VERSION --name-template kubezero --version ~$KUBE_VERSION --devel --output-dir $WORKDIR
|
||||||
|
|
||||||
# CRDs first
|
# CRDs first
|
||||||
for t in $MODULES; do
|
for t in $MODULES; do
|
||||||
|
@ -44,6 +44,25 @@ function field_manager() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function get_kube_version() {
|
||||||
|
local git_version="$(kubectl version -o json | jq -r .serverVersion.gitVersion)"
|
||||||
|
echo $([[ $git_version =~ ^v[0-9]+\.[0-9]+\.[0-9]+ ]] && echo "${BASH_REMATCH[0]//v/}")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function get_kubezero_platform() {
|
||||||
|
_auth_cmd=$(kubectl config view | yq .users[0].user.exec.command)
|
||||||
|
if [ "$_auth_cmd" == "gke-gcloud-auth-plugin" ]; then
|
||||||
|
PLATFORM=gke
|
||||||
|
elif [ "$_auth_cmd" == "aws-iam-authenticator" ]; then
|
||||||
|
PLATFORM=aws
|
||||||
|
else
|
||||||
|
PLATFORM=nocloud
|
||||||
|
fi
|
||||||
|
echo $PLATFORM
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function get_secret_val() {
|
function get_secret_val() {
|
||||||
local ns=$1
|
local ns=$1
|
||||||
local secret=$2
|
local secret=$2
|
||||||
@ -83,6 +102,7 @@ function get_kubezero_values() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# Overwrite kubezero-values CM with file
|
# Overwrite kubezero-values CM with file
|
||||||
function update_kubezero_cm() {
|
function update_kubezero_cm() {
|
||||||
kubectl get cm -n kubezero kubezero-values -o=yaml | \
|
kubectl get cm -n kubezero kubezero-values -o=yaml | \
|
||||||
@ -90,6 +110,7 @@ function update_kubezero_cm() {
|
|||||||
kubectl replace -f -
|
kubectl replace -f -
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# sync kubezero-values CM from ArgoCD app
|
# sync kubezero-values CM from ArgoCD app
|
||||||
function sync_kubezero_cm_from_argo() {
|
function sync_kubezero_cm_from_argo() {
|
||||||
get_kubezero_values true
|
get_kubezero_values true
|
||||||
@ -258,6 +279,7 @@ function _helm() {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function all_nodes_upgrade() {
|
function all_nodes_upgrade() {
|
||||||
CMD="$1"
|
CMD="$1"
|
||||||
|
|
||||||
|
@ -9,5 +9,5 @@ metadata:
|
|||||||
type: Opaque
|
type: Opaque
|
||||||
stringData:
|
stringData:
|
||||||
admin.password: {{ index .Values "argo-cd" "configs" "secret" "argocdServerAdminPassword" }}
|
admin.password: {{ index .Values "argo-cd" "configs" "secret" "argocdServerAdminPassword" }}
|
||||||
admin.passwordMtime: {{ default (dateInZone "2006-01-02T15:04:05Z" (now) "UTC") }}
|
admin.passwordMtime: "2006-01-02T15:04:05Z"
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@ -19,7 +19,7 @@ keycloak:
|
|||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
#cpu: 750m
|
#cpu: 750m
|
||||||
memory: 768Mi
|
memory: 1024Mi
|
||||||
requests:
|
requests:
|
||||||
cpu: 100m
|
cpu: 100m
|
||||||
memory: 512Mi
|
memory: 512Mi
|
||||||
|
Loading…
x
Reference in New Issue
Block a user