From 5a9f1df663613756b4f6de4e770bc2e6f578cb71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Wed, 21 May 2025 19:25:43 +0000 Subject: [PATCH] added vscode devcontainer with kubectl add wyoming-whisper k3s deplyoment --- .devcontainer/.zshrc | 109 ++++++++++++++++++ .devcontainer/devcontainer.json | 48 ++++++++ .devcontainer/scripts/postCreate.sh | 4 + .gitignore | 1 + README.md | 2 + ...orkspace => casa.full-stack.code-workspace | 10 +- .../whisper.kubernetes-deployment.yaml | 43 +++++++ 7 files changed, 212 insertions(+), 5 deletions(-) create mode 100644 .devcontainer/.zshrc create mode 100644 .devcontainer/devcontainer.json create mode 100644 .devcontainer/scripts/postCreate.sh rename .vscode/casa.full-stack.code-workspace => casa.full-stack.code-workspace (80%) create mode 100644 services/wyoming/whisper.kubernetes-deployment.yaml diff --git a/.devcontainer/.zshrc b/.devcontainer/.zshrc new file mode 100644 index 0000000..f267201 --- /dev/null +++ b/.devcontainer/.zshrc @@ -0,0 +1,109 @@ +# If you come from bash you might have to change your $PATH. +# export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:$PATH + +# Path to your Oh My Zsh installation. +export ZSH="$HOME/.oh-my-zsh" + +# Set name of the theme to load --- if set to "random", it will +# load a random theme each time Oh My Zsh is loaded, in which case, +# to know which specific one was loaded, run: echo $RANDOM_THEME +# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes +ZSH_THEME="gnzh" + +# Set list of themes to pick from when loading at random +# Setting this variable when ZSH_THEME="devcontainers" +# a theme from this variable instead of looking in $ZSH/themes/ +# If set to an empty array, this variable will have no effect. +# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) + +# Uncomment the following line to use case-sensitive completion. +# CASE_SENSITIVE="true" + +# Uncomment the following line to use hyphen-insensitive completion. +# Case-sensitive completion must be off. _ and - will be interchangeable. +# HYPHEN_INSENSITIVE="true" + +# Uncomment one of the following lines to change the auto-update behavior +# zstyle ':omz:update' mode disabled # disable automatic updates +# zstyle ':omz:update' mode auto # update automatically without asking +# zstyle ':omz:update' mode reminder # just remind me to update when it's time + +# Uncomment the following line to change how often to auto-update (in days). +# zstyle ':omz:update' frequency 13 + +# Uncomment the following line if pasting URLs and other text is messed up. +# DISABLE_MAGIC_FUNCTIONS="true" + +# Uncomment the following line to disable colors in ls. +# DISABLE_LS_COLORS="true" + +# Uncomment the following line to disable auto-setting terminal title. +# DISABLE_AUTO_TITLE="true" + +# Uncomment the following line to enable command auto-correction. +# ENABLE_CORRECTION="true" + +# Uncomment the following line to display red dots whilst waiting for completion. +# You can also set it to another string to have that shown instead of the default red dots. +# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f" +# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765) +# COMPLETION_WAITING_DOTS="true" + +# Uncomment the following line if you want to disable marking untracked files +# under VCS as dirty. This makes repository status check for large repositories +# much, much faster. +# DISABLE_UNTRACKED_FILES_DIRTY="true" + +# Uncomment the following line if you want to change the command execution time +# stamp shown in the history command output. +# You can set one of the optional three formats: +# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" +# or set a custom format using the strftime function format specifications, +# see 'man strftime' for details. +# HIST_STAMPS="mm/dd/yyyy" + +# Would you like to use another custom folder than $ZSH/custom? +# ZSH_CUSTOM=/path/to/new-custom-folder + +# Which plugins would you like to load? +# Standard plugins can be found in $ZSH/plugins/ +# Custom plugins may be added to $ZSH_CUSTOM/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +plugins=(git timer web-search ssh kubectl helm colorize zsh-autosuggestions rclone ansible) +ZSH_COLORIZE_TOOL=chroma + +source $ZSH/oh-my-zsh.sh + +# User configuration + +# export MANPATH="/usr/local/man:$MANPATH" + +# You may need to manually set your language environment +# export LANG=en_US.UTF-8 + +# Preferred editor for local and remote sessions +# if [[ -n $SSH_CONNECTION ]]; then +# export EDITOR='vim' +# else +# export EDITOR='nvim' +# fi + +# Compilation flags +# export ARCHFLAGS="-arch $(uname -m)" + +# Set personal aliases, overriding those provided by Oh My Zsh libs, +# plugins, and themes. Aliases can be placed here, though Oh My Zsh +# users are encouraged to define aliases within a top-level file in +# the $ZSH_CUSTOM folder, with .zsh extension. Examples: +# - $ZSH_CUSTOM/aliases.zsh +# - $ZSH_CUSTOM/macos.zsh +# For a full list of active aliases, run `alias`. +# +# Example aliases +# alias zshconfig="mate ~/.zshrc" +# alias ohmyzsh="mate ~/.oh-my-zsh" +DISABLE_AUTO_UPDATE=true +DISABLE_UPDATE_PROMPT=true + +export PATH=$PATH:/home/vscode/lib \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..c874a35 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,48 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +// README at: https://github.com/devcontainers/templates/tree/main/src/ubuntu +{ + "name": "casa-dev", + // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile + "image": "mcr.microsoft.com/devcontainers/base:jammy", + "features": { + "ghcr.io/devcontainers/features/kubectl-helm-minikube:1": {}, + "ghcr.io/devcontainers-extra/features/ansible": {}, + "ghcr.io/devcontainers/features/docker-outside-of-docker": {}, + }, + // "features": {}, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + // Configure tool-specific properties. + // "customizations": {}, + + "mounts": [ + "source=/var/run/docker.sock,target=/var/run/docker-host.sock,type=bind", + "source=${localWorkspaceFolder}/.devcontainer/.zshrc,target=/home/vscode/.zshrc,type=bind", + "source=${localWorkspaceFolder}/../lms,target=/workspaces/lms,type=bind", + "source=${localWorkspaceFolder}/../homeAssistant,target=/workspaces/homeAssistant,type=bind", + "source=${localWorkspaceFolder}/../mosquitto,target=/workspaces/mosquitto,type=bind", + "source=${localWorkspaceFolder}/../kb,target=/workspaces/kb,type=bind", + "source=${localWorkspaceFolder}/.env.d/kube,target=/home/vscode/.kube,type=bind", + "source=${localEnv:HOME}/.gitconfig,target=/home/vscode/.gitconfig,type=bind,consistency=cached", + "source=${localEnv:HOME}/.ssh/id_ed25519,target=/home/vscode/.ssh/id_ed25519,type=bind,consistency=cached" + ], + "postCreateCommand": "bash .devcontainer/scripts/postCreate.sh", + "customizations": { + "vscode": { + "extensions": [ + "ms-kubernetes-tools.vscode-kubernetes-tools", + "redhat.ansible", + "mtxr.sqltools-driver-mysql", + "stateful.runme", + "yzhang.markdown-all-in-one", + "davidanson.vscode-markdownlint", + "eamodio.gitlens" + ], + "settings": { + "terminal.integrated.defaultProfile.linux": "zsh" + + } + } + } +} diff --git a/.devcontainer/scripts/postCreate.sh b/.devcontainer/scripts/postCreate.sh new file mode 100644 index 0000000..72e6b5b --- /dev/null +++ b/.devcontainer/scripts/postCreate.sh @@ -0,0 +1,4 @@ +#setup chroma for zsh colorize +chmod +x /home/vscode/lib/chroma +curl https://rclone.org/install.sh | sudo bash + diff --git a/.gitignore b/.gitignore index 6e5daff..65f71a5 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ gitignore/* **.local .secrets ansible/inventory.yml +.env.d/* diff --git a/README.md b/README.md index 90de0cd..03dd32c 100644 --- a/README.md +++ b/README.md @@ -94,6 +94,8 @@ For more information about home assistant integration [check home assistant repo Continuous deploy [gitea action](.gitea/workflows/deploy-wyoming.yml). +Because of performance wyoming whisper is currently hosted on chimera kubernetes cluster [deployment](./services/wyoming/whisper.kubernetes-deployment.yaml) + Links: - [https://github.com/home-assistant/addons/blob/master/whisper/DOCS.md](https://github.com/home-assistant/addons/blob/master/whisper/DOCS.md) diff --git a/.vscode/casa.full-stack.code-workspace b/casa.full-stack.code-workspace similarity index 80% rename from .vscode/casa.full-stack.code-workspace rename to casa.full-stack.code-workspace index 9ec061a..0fbeae9 100644 --- a/.vscode/casa.full-stack.code-workspace +++ b/casa.full-stack.code-workspace @@ -2,21 +2,21 @@ { "folders": [ { - "path": "../", + "path": "./", "name": "homesrv01" }, { - "path": "../../homeAssistant" + "path": "../homeAssistant" }, { - "path": "../../lms" + "path": "../lms" }, { - "path": "../../mosquitto" + "path": "../mosquitto" }, { "name": "kb", - "path": "../../kb" + "path": "../kb" }, // { // "name": "kb/kb", diff --git a/services/wyoming/whisper.kubernetes-deployment.yaml b/services/wyoming/whisper.kubernetes-deployment.yaml new file mode 100644 index 0000000..9f980ea --- /dev/null +++ b/services/wyoming/whisper.kubernetes-deployment.yaml @@ -0,0 +1,43 @@ +# currently hosted on chimera k3s cluster + +apiVersion: apps/v1 +kind: Deployment +metadata: + namespace: casa-services + name: wyoming-whisper + labels: + app: wyoming-whisper +spec: + replicas: 1 + selector: + matchLabels: + app: wyoming-whisper + template: + metadata: + labels: + app: wyoming-whisper + spec: + containers: + - name: wyoming-whisper + image: linuxserver/faster-whisper + ports: + - containerPort: 10300 + hostPort: 10300 + env: + - name: WHISPER_MODEL + value: small-int8 # turbo + - name: WHISPER_LANG + value: pt + - name: OMP_NUM_THREADS + value: "4" + - name: BEAM + value: "4" + + # args: ["--threads", "8"] + # resources: + # requests: + # cpu: "500m" + # memory: "1Gi" + # limits: + # cpu: "1" + # memory: "2Gi"