# Deploy guide (nelm + Jenkins, no werf) Charts live under each Bitbucket repo’s `.helm/`. Jenkins **clones those repos on every job** — it does not deploy from a hand-copied folder on disk. ## Lab URLs | What | URL / host | Creds | |------|------------|-------| | Bitbucket UI (Gitea) | https://bitbucket.valdemorte.online | `bbadmin` / `admin123` | | Jenkins | https://jenkins.valdemorte.online | `admin` / `admin123` | | Compose | `ubuntu@192.168.10.68:~/ci-stack` | — | Repos: `bbadmin/{postgres,seaweedfs,ollama,keycloak,vllm}`. Job: **`nelm-deploy`**. Contexts: `lab-cluster-{dev,preprod,prod}`. ## How Jenkins gets the code 1. Parameters include `GIT_BASE_URL` (default `http://192.168.10.68:7990/bbadmin`) and `GIT_BRANCH` (`main`). 2. Job runs `jenkins/checkout-repos.sh` → fresh clone into `$WORKSPACE/repos/`. 3. Build/deploy use **only** that checkout (`.helm/`, `Dockerfile`). Agent still holds non-git secrets/tools only: - `~/nelm-work/.nelm_secret_key` - `~/nelm-work/.git_user` + `.git_token` - `~/kube-deploy.config` - `~/nelm-work/jenkins/checkout-repos.sh` (CI helper; prefer keeping the same scripts in a `nelm-ci` Bitbucket repo in production) See **`CLIENT-SETUP.ru.md`** for client rollout and **`NELM-CLOSED-LOOP.ru.md`** for closed-loop chart/Dockerfile changes. ## Tools on the agent ```bash export NELM_SECRET_KEY=$(cat ~/nelm-work/.nelm_secret_key) export PATH="$HOME/bin:$PATH" export KUBECONFIG=$HOME/kube-deploy.config ``` ## Images - Default `values.yaml` → internal registry (`192.168.10.68:5000/...` in lab). - Lab smoke test: job flag `USE_PUBLIC_IMAGES=true` → `values-public.yaml`. - Client closed loop: `USE_PUBLIC_IMAGES=false`. ## Deploy SA ```bash ./create-deploy-sa.sh ``` ## Manual deploy (after git clone) ```bash git clone http://192.168.10.68:7990/bbadmin/postgres.git export NELM_SECRET_KEY=$(cat .nelm_secret_key) nelm release install -n dev -r postgres-dev \ --set env=dev --set global.cluster=dev \ --values postgres/.helm/values-public.yaml \ postgres/.helm ``` ## Jenkins parameters | Parameter | Meaning | |-----------|---------| | `SERVICE` | postgres … vllm / all | | `ENV` | dev / preprod / prod | | `ACTION` | build / deploy / build-and-deploy | | `USE_PUBLIC_IMAGES` | lab overlay | | `GIT_BASE_URL` | Bitbucket project base | | `GIT_BRANCH` | branch to deploy | | `REGISTRY` | push target for build | Pipeline sources: root `Jenkinsfile` + `jenkins/*.groovy` + `jenkins/checkout-repos.sh`.