개발환경설정이 너무 귀찮지만. 한번 정리해두면 이후에 (포맷 등) 을 하게 되면 바로 세팅이 되니. 정리 해둡니다.
# brew를 이용하여 설치
brew install spaceship
# spaceship 설정을 zshrc 등록
echo "source $(brew --prefix)/opt/spaceship/spaceship.zsh" >>! ~/.zshrc
# spaceship.zsh 설정 파일 추가
touch ~/.config/spaceship.zsh
플러그인은 spaceship official site를 참고 하시면 됩니다.
spaceship add git
spaceship add aws
spaceship add kubectl
spaceship add terraform
spaceship add docker_context
현재까지 설정했던 ~/.zshrc
- 기존 설정은 모두 지우고 재설정 했습니다.
- 물론 이전 파일은 백업 해둬야 겠죠?
export ZSH=~/.oh-my-zsh
# theme
ZSH_THEME="ys"
# plugin
plugins=(git
zsh-completions
zsh-history-substring-search
zsh-syntax-highlighting
zsh-autosuggestions
autojump
kubectl
kubectx)
# source
source $ZSH/oh-my-zsh.sh
# jenv
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"
# terraform
autoload -U +X bashcompinit && bashcompinit
complete -o nospace -C /usr/local/bin/terraform terraform
# tfenv
export TFENV_VERSION=$(tfenv --version)
export TF_VERSION=$(terraform --version)
#complete -o nospace -C /opt/homebrew/Cellar/tfenv/$TFENV_VERSION/versions/$TF_VERSION/terraform terraf
tfv(){
terraform validate -var-file=vars/$(terraform workspace show).tfvars
}
tfp(){
terraform plan -var-file=vars/$(terraform workspace show).tfvars
}
tfa(){
terraform apply -var-file=vars/$(terraform workspace show).tfvars
}
tfc(){
terraform console -var-file=vars/$(terraform workspace show).tfvars
}
# ruby init
[[ -d ~/.rbenv ]] && \
export PATH=${HOME}/.rbenv/bin:${PATH} && \
eval "$(rbenv init -)"
# kubectl auto completion
source <(kubectl completion zsh)
# kubectl - k alias
alias k=kubectl
compdef __start_kubectl k
# kube_ps1
source "$(brew --prefix)/opt/kube-ps1/share/kube-ps1.sh"
PS1='$(kube_ps1)'$PS1
# vi to vim
#alias vi=vim
# alias to lsd
alias ls='lsd'
alias ll='ls -alhF'
# Terrafrom Alias
alias tf="terraform"
alias tfw="terraform workspace"
# cat to batcat
alias cat="bat --plain"
alias cls=clear
# pyenv setting
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
# pyenv-virtualenv setting
eval "$(pyenv virtualenv-init -)"
# Setting prefix and suffix for docker_context section
SPACESHIP_DOCKER_CONTEXT_PREFIX="on "
SPACESHIP_DOCKER_CONTEXT_SUFFIX="$SPACESHIP_PROMPT_DEFAULT_SUFFIX"
SPACESHIP_KUBECTL_CONTEXT_COLOR_GROUPS=(
# red if namespace is "kube-system"
red '\(kube-system)$'
# else, green if "dev-01" is anywhere in the context or namespace
green dev-01
# else, red if context name ends with ".k8s.local" _and_ namespace is "system"
red '\.k8s\.local \(system)$'
# else, yellow if the entire content is "test-" followed by digits, and no namespace is displayed
yellow '^test-[0-9]+$'
)
SPACESHIP_KUBECTL_SHOW=true
SPACESHIP_AWS_SHOW=true
SPACESHIP_DOCKER_COMPOSE_SHOW=true
SPACESHIP_GIT_STATUS_SHOW=true
source /opt/homebrew/opt/spaceship/spaceship.zsh
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
. /opt/homebrew/opt/asdf/libexec/asdf.sh
위의 내용에 대해 설명
- kubernetes namespace 가 kube-system 일 경우 red
- kubernetes namespace 가 dev-01 일 경우 geen
- kubernetes namespace 가 test- 일 경우 yellow