91 lines
2.6 KiB
Bash
91 lines
2.6 KiB
Bash
namespace=test
|
|
|
|
dry_run=true
|
|
if [[ $dry_run == true ]]; then
|
|
dry_run_params="--dry-run=client"
|
|
else
|
|
dry_run_params=""
|
|
fi
|
|
|
|
target="input.cpu input.disk input.diskio input.docker input.kernel input.kernel_vmstat input.linux_sysctl_fs input.mem input.net input.netstat input.processes input.system input.kubernetes"
|
|
|
|
function install() {
|
|
#config.toml
|
|
kubectl create cm categraf-config -n $namespace --from-file=../conf/config.toml --from-file=../conf/logs.toml ${dry_run_params}
|
|
|
|
#input.xxx
|
|
for dir in $(echo $target | sed 's/ /\n/g')
|
|
do
|
|
name=$(echo $dir | sed -e 's/\./-/g' -e 's/_/\-/g' -e 's/ //g')
|
|
relative=$(echo $dir | sed -e 's/ //g')
|
|
kubectl create cm $name -n $namespace --from-file=../conf/$dir ${dry_run_params}
|
|
if [[ "X$mount" == "X" ]] ; then
|
|
mount=$(echo " - mountPath: /etc/categraf/conf/$relative\n name: $name")
|
|
else
|
|
mount=$(echo "$mount\n - mountPath: /etc/categraf/conf/$relative\n name: $name")
|
|
fi
|
|
if [[ "X$volume" == "X" ]]; then
|
|
volume=$(echo " - name: $name\n configMap:\n name: $name")
|
|
else
|
|
volume=$(echo "$volume\n - name: $name\n configMap:\n name: $name")
|
|
fi
|
|
done
|
|
|
|
#daemonset
|
|
sed -e "s#MOUNTS#$mount#g" -e "s#VOLUMES#$volume#g" categraf.tpl | kubectl apply -n $namespace ${dry_run_params} -f -
|
|
|
|
}
|
|
|
|
function uninstall() {
|
|
# config.toml
|
|
kubectl delete cm categraf-config -n $namespace ${dry_run_params}
|
|
# input.xxx
|
|
for dir in $(echo $target | sed 's/ /\n/g')
|
|
do
|
|
name=$(echo $dir | sed -e 's/\./-/g' -e 's/_/\-/g' -e 's/ //g')
|
|
kubectl delete cm -n $namespace $name ${dry_run_params}
|
|
done
|
|
# daemonset
|
|
kubectl delete ds -n $namespace nightingale-categraf ${dry_run_params}
|
|
|
|
}
|
|
|
|
function exp() {
|
|
echo "" > categraf.yaml
|
|
# config.toml
|
|
kubectl get cm categraf-config -n $namespace -o yaml | sed -e '/creationTimestamp:/d' -e '/namespace:/d' -e '/resourceVersion:/d' -e '/uid:/d' >> categraf.yaml
|
|
# input.xxx
|
|
for dir in $(echo $target | sed 's/ /\n/g')
|
|
do
|
|
name=$(echo $dir | sed -e 's/\./-/g' -e 's/_/\-/g' -e 's/ //g')
|
|
kubectl get cm -n $namespace $name -o yaml >> categraf.yaml
|
|
done
|
|
# daemonset
|
|
kubectl get ds -n $namespace nightingale-categraf -o yaml >> categraf.yaml
|
|
|
|
}
|
|
|
|
## usage
|
|
function usage() {
|
|
echo "** install categraf daemonset, default namespace:test, default action with --dry-run=client **"
|
|
echo "usage: $0 install|uninstall"
|
|
}
|
|
|
|
|
|
action=$1
|
|
case $action in
|
|
"install" )
|
|
install
|
|
;;
|
|
"uninstall" )
|
|
uninstall
|
|
;;
|
|
"export" )
|
|
exp
|
|
;;
|
|
* )
|
|
usage
|
|
;;
|
|
esac
|
|
|