mirror of
https://github.com/1Panel-dev/KubePi.git
synced 2025-10-07 08:11:04 +08:00
60 lines
1.3 KiB
Bash
60 lines
1.3 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
echo "export TERM=xterm-256color" >> /root/.bashrc
|
|
echo "source /usr/share/bash-completion/bash_completion" >> /root/.bashrc
|
|
echo 'source <(kubectl completion bash)' >> /root/.bashrc
|
|
echo 'complete -F __start_kubectl k' >> /root/.bashrc
|
|
|
|
if [ "${WELCOME_BANNER}" ]; then
|
|
echo ${WELCOME_BANNER}
|
|
fi
|
|
|
|
arg1=$1
|
|
|
|
|
|
mkdir -p /nonexistent
|
|
mount -t tmpfs -o size=10m tmpfs /nonexistent
|
|
cd /nonexistent
|
|
cp /root/.bashrc ./
|
|
cp /etc/vim/vimrc.local .vimrc
|
|
echo 'source /opt/kubectl-aliases/.kubectl_aliases' >> .bashrc
|
|
mkdir -p .kube
|
|
|
|
export HOME=/nonexistent
|
|
|
|
|
|
code=`curl -w %{http_code} -s -o ~/.kube/config http://localhost/kubepi/api/v1/webkubectl/session?token=${arg1}`
|
|
|
|
if [[ $code -ne '200' ]];then
|
|
echo "download kubeconfig failed"
|
|
cat .kube/config
|
|
exit
|
|
fi
|
|
|
|
current_context=`kubectl config current-context`
|
|
cluster=${current_context%@*}
|
|
username=${current_context#*@}
|
|
|
|
echo -e PS1=\"'['${username}@${cluster}']$ '\" >> .bashrc
|
|
|
|
echo "Welcome to kubepi web terminal, try kubectl --help."
|
|
|
|
|
|
|
|
chown -R nobody:nogroup .kube
|
|
export TMPDIR=/nonexistent
|
|
|
|
envs=`env`
|
|
for env in ${envs[@]}; do
|
|
if [[ $env == GOTTY* ]];
|
|
then
|
|
unset ${env%%=*}
|
|
fi
|
|
done
|
|
|
|
unset WELCOME_BANNER PPROF_ENABLED KUBECTL_INSECURE_SKIP_TLS_VERIFY SESSION_STORAGE_SIZE KUBECTL_VERSION
|
|
|
|
exec su -s /bin/bash nobody
|
|
exec /bin/bash
|