Update debian ip

This commit is contained in:
juvdiaz 2026-06-26 22:50:19 -06:00
parent 2f290b8ce2
commit 84b60979f2
18 changed files with 31 additions and 31 deletions

View File

@ -16,12 +16,12 @@ jobs:
find . -mindepth 1 -maxdepth 1 -exec rm -rf -- {} + find . -mindepth 1 -maxdepth 1 -exec rm -rf -- {} +
git init git init
git remote add origin https://lab2025.duckdns.org/git/jv/my-homelab-configs.git git remote add origin ssh://git@192.168.100.73:32222/jv/my-homelab-configs.git
git fetch --prune origin +refs/heads/main:refs/remotes/origin/main +refs/tags/*:refs/tags/* git fetch --prune origin +refs/heads/main:refs/remotes/origin/main +refs/tags/*:refs/tags/*
git checkout --force "${{ gitea.sha }}" git checkout --force "${{ gitea.sha }}"
git config --global --add safe.directory "$PWD" git config --global --add safe.directory "$PWD"
- name: Block automatic deploy for Raspberry Pi Gitea changes - name: Block automatic deploy for external Gitea changes
run: | run: |
set -euo pipefail set -euo pipefail
@ -115,7 +115,7 @@ jobs:
if [[ -n "${blocked_files}" ]]; then if [[ -n "${blocked_files}" ]]; then
printf '%s\n' "${blocked_files}" printf '%s\n' "${blocked_files}"
echo "Raspberry Pi Gitea service changes require a manual Debian run." echo "External Gitea service changes require a manual Debian run."
exit 1 exit 1
fi fi

View File

@ -286,7 +286,7 @@ duplicate those PV manifests when you want storage on another node.
`homelab.dev/workload-class=control-plane` on the Debian control plane `homelab.dev/workload-class=control-plane` on the Debian control plane
- `homelab.dev/node-role=edge-app`, `homelab.dev/storage=local`, and - `homelab.dev/node-role=edge-app`, `homelab.dev/storage=local`, and
`homelab.dev/workload-class=edge` on the Raspberry Pi worker `homelab.dev/workload-class=edge` on the Raspberry Pi worker
- `homelab.dev/node-role=app`, `homelab.dev/storage=nvme`, and - `homelab.dev/node-role=app`, `homelab.dev/storage=ssd`, and
`homelab.dev/workload-class=platform` on automated Pimox worker clones when `homelab.dev/workload-class=platform` on automated Pimox worker clones when
those workers are enabled those workers are enabled
@ -389,8 +389,8 @@ are clean, individual policies can be promoted to `Enforce` in
`apps/supply-chain-policy` adds a separate Kyverno `ImageValidatingPolicy` for `apps/supply-chain-policy` adds a separate Kyverno `ImageValidatingPolicy` for
the images built by this repo and pushed to the local registry. The policy the images built by this repo and pushed to the local registry. The policy
targets `192.168.100.68:30500/php-website:*` and targets `192.168.100.73:30500/php-website:*` and
`192.168.100.68:30500/demos-static:*`, mutates admitted pods to image digests, `192.168.100.73:30500/demos-static:*`, mutates admitted pods to image digests,
and audits whether the image has both: and audits whether the image has both:
- a valid Cosign signature from the homelab signing key - a valid Cosign signature from the homelab signing key
@ -512,7 +512,7 @@ than a `/heimdall/` path.
The `n8n` app runs in the `n8n` namespace with retained OpenEBS storage and is The `n8n` app runs in the `n8n` namespace with retained OpenEBS storage and is
exposed at `https://n8n.lab2025.duckdns.org`. It receives exposed at `https://n8n.lab2025.duckdns.org`. It receives
`OLLAMA_BASE_URL=http://192.168.100.68:11434` so workflows can call the existing `OLLAMA_BASE_URL=http://192.168.100.73:11434` so workflows can call the existing
Debian-host Ollama API for translation prewarming and batch jobs. Debian-host Ollama API for translation prewarming and batch jobs.
The `arr-stack` app runs Prowlarr, Sonarr, Radarr, qBittorrent, Kapowarr, The `arr-stack` app runs Prowlarr, Sonarr, Radarr, qBittorrent, Kapowarr,
@ -712,7 +712,7 @@ website image that points at it:
``` ```
Ollama must also listen on the Debian host LAN address so Kubernetes pods on Ollama must also listen on the Debian host LAN address so Kubernetes pods on
other nodes can reach `OLLAMA_HOST=http://192.168.100.68:11434`: other nodes can reach `OLLAMA_HOST=http://192.168.100.73:11434`:
```bash ```bash
./lab.sh website-ollama-listen ./lab.sh website-ollama-listen
@ -746,7 +746,7 @@ immutable. The Kyverno supply-chain policy mutates admitted pods to the verified
image digest, so the workload runs the same digest that was signed and attested. image digest, so the workload runs the same digest that was signed and attested.
After `./lab.sh apps`, the live deployment image should be a content-hash tag, After `./lab.sh apps`, the live deployment image should be a content-hash tag,
for example `192.168.100.68:30500/php-website:src-...`. If it still shows for example `192.168.100.73:30500/php-website:src-...`. If it still shows
`php-website:latest`, Argo CD has not rendered the current Application source. `php-website:latest`, Argo CD has not rendered the current Application source.
Check the `website-production` Application source, sync status, and repository Check the `website-production` Application source, sync status, and repository
access before restarting pods. access before restarting pods.

View File

@ -25,7 +25,7 @@ spec:
fsGroupChangePolicy: OnRootMismatch fsGroupChangePolicy: OnRootMismatch
containers: containers:
- name: demos-static - name: demos-static
image: 192.168.100.68:30500/demos-static:latest image: 192.168.100.73:30500/demos-static:latest
imagePullPolicy: Always imagePullPolicy: Always
securityContext: securityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false

View File

@ -69,7 +69,7 @@ spec:
- name: N8N_RUNNERS_ENABLED - name: N8N_RUNNERS_ENABLED
value: "true" value: "true"
- name: OLLAMA_BASE_URL - name: OLLAMA_BASE_URL
value: http://192.168.100.68:11434 value: http://192.168.100.73:11434
ports: ports:
- containerPort: 5678 - containerPort: 5678
name: http name: http

View File

@ -32,8 +32,8 @@ spec:
resources: resources:
- pods - pods
matchImageReferences: matchImageReferences:
- glob: "192.168.100.68:30500/php-website:*" - glob: "192.168.100.73:30500/php-website:*"
- glob: "192.168.100.68:30500/demos-static:*" - glob: "192.168.100.73:30500/demos-static:*"
validationConfigurations: validationConfigurations:
mutateDigest: true mutateDigest: true
required: true required: true

View File

@ -86,7 +86,7 @@ RUN rm -f /var/www/localhost/htdocs/index.html && \
chmod 0755 /usr/local/bin/start-website chmod 0755 /usr/local/bin/start-website
ENV WEBSITE_LANG_WRITE_DIR=/var/www/localhost/htdocs/db/lang ENV WEBSITE_LANG_WRITE_DIR=/var/www/localhost/htdocs/db/lang
ENV OLLAMA_HOST=http://192.168.100.68:11434 ENV OLLAMA_HOST=http://192.168.100.73:11434
ENV OLLAMA_MODEL=website-translator ENV OLLAMA_MODEL=website-translator
USER apache USER apache

View File

@ -64,7 +64,7 @@ translations back to Redis with a TTL, then returns results in the original
order. The browser never calls the private Ollama address directly. order. The browser never calls the private Ollama address directly.
n8n is deployed separately at `https://n8n.lab2025.duckdns.org` and receives n8n is deployed separately at `https://n8n.lab2025.duckdns.org` and receives
`OLLAMA_BASE_URL=http://192.168.100.68:11434` so workflows can prewarm `OLLAMA_BASE_URL=http://192.168.100.73:11434` so workflows can prewarm
translations or run batch jobs against the Debian-host Ollama API. translations or run batch jobs against the Debian-host Ollama API.
## Translation Observability ## Translation Observability

View File

@ -1,4 +1,4 @@
[registry."192.168.100.68:30500"] [registry."192.168.100.73:30500"]
http = true http = true
insecure = true insecure = true

View File

@ -181,7 +181,7 @@ $blogHref = 'blog.php?lang=' . urlencode($lang);
<rect class="tree-trunk" x="468" y="650" width="104" height="142" rx="12"></rect> <rect class="tree-trunk" x="468" y="650" width="104" height="142" rx="12"></rect>
<text class="tree-trunk-text" x="520" y="700">Debian</text> <text class="tree-trunk-text" x="520" y="700">Debian</text>
<text class="tree-trunk-text tree-small" x="520" y="722">control plane</text> <text class="tree-trunk-text tree-small" x="520" y="722">control plane</text>
<text class="tree-trunk-text tree-small" x="520" y="744">192.168.100.68</text> <text class="tree-trunk-text tree-small" x="520" y="744">192.168.100.73</text>
<path class="tree-root" d="M520 790 C456 814 390 822 310 822"></path> <path class="tree-root" d="M520 790 C456 814 390 822 310 822"></path>
<path class="tree-root" d="M520 790 C584 816 660 824 740 822"></path> <path class="tree-root" d="M520 790 C584 816 660 824 740 822"></path>

View File

@ -211,7 +211,7 @@ if (!$texts || count($texts) > 240 || $totalLength > 80000) {
translate_response(400, ['error' => 'Invalid translation batch']); translate_response(400, ['error' => 'Invalid translation batch']);
} }
$ollamaHost = rtrim(getenv('OLLAMA_HOST') ?: 'http://192.168.100.68:11434', '/'); $ollamaHost = rtrim(getenv('OLLAMA_HOST') ?: 'http://192.168.100.73:11434', '/');
$ollamaModel = getenv('OLLAMA_MODEL') ?: 'llama3.2:3b'; $ollamaModel = getenv('OLLAMA_MODEL') ?: 'llama3.2:3b';
$cachePrefix = getenv('TRANSLATION_CACHE_PREFIX') ?: 'translation:v1'; $cachePrefix = getenv('TRANSLATION_CACHE_PREFIX') ?: 'translation:v1';
$cacheKeys = []; $cacheKeys = [];

View File

@ -69,7 +69,7 @@ spec:
- name: WEBSITE_IDEAS_WRITE_DIR - name: WEBSITE_IDEAS_WRITE_DIR
value: /var/www/localhost/htdocs/db/ideas value: /var/www/localhost/htdocs/db/ideas
- name: OLLAMA_HOST - name: OLLAMA_HOST
value: http://192.168.100.68:11434 value: http://192.168.100.73:11434
- name: OLLAMA_MODEL - name: OLLAMA_MODEL
value: website-translator value: website-translator
- name: TRANSLATION_REDIS_HOST - name: TRANSLATION_REDIS_HOST

View File

@ -10,7 +10,7 @@ variable "argocd_namespace" {
variable "gitops_repo_url" { variable "gitops_repo_url" {
type = string type = string
default = "ssh://git@192.168.100.89:32222/jv/my-homelab-configs.git" default = "ssh://git@192.168.100.73:32222/jv/my-homelab-configs.git"
} }
variable "website_image_ref" { variable "website_image_ref" {

View File

@ -14,7 +14,7 @@ variable "control_plane_node_labels" {
variable "control_plane_advertise_address" { variable "control_plane_advertise_address" {
type = string type = string
default = "192.168.100.68" default = "192.168.100.73"
} }
variable "pod_network_cidr" { variable "pod_network_cidr" {
@ -34,7 +34,7 @@ variable "kubeconfig_owner" {
variable "registry_endpoint" { variable "registry_endpoint" {
type = string type = string
default = "192.168.100.68:30500" default = "192.168.100.73:30500"
} }
variable "node_dns_servers" { variable "node_dns_servers" {

View File

@ -20,7 +20,7 @@ variable "calico_operator_node_name" {
variable "gitops_repo_url" { variable "gitops_repo_url" {
type = string type = string
default = "ssh://git@192.168.100.89:32222/jv/my-homelab-configs.git" default = "ssh://git@192.168.100.73:32222/jv/my-homelab-configs.git"
} }
variable "gitops_ssh_key_path" { variable "gitops_ssh_key_path" {

View File

@ -60,7 +60,7 @@ generates a unique fallback name using `TF_VAR_clone_hostname_prefix`.
Create an arm64 VM in Pimox with UEFI firmware, a virtio disk, and a NIC on the same LAN as the Debian provisioning host. Put network boot first. Create an arm64 VM in Pimox with UEFI firmware, a virtio disk, and a NIC on the same LAN as the Debian provisioning host. Put network boot first.
PXE should load `grubaa64.efi`, boot the Debian installer, fetch the preseed from `http://192.168.100.68:8088/preseed/debian13-arm64-worker.cfg`, and install the golden image. PXE should load `grubaa64.efi`, boot the Debian installer, fetch the preseed from `http://192.168.100.73:8088/preseed/debian13-arm64-worker.cfg`, and install the golden image.
If your Pimox firmware needs a different Debian arm64 EFI loader, override `TF_VAR_pxe_boot_file`. If your Pimox firmware needs a different Debian arm64 EFI loader, override `TF_VAR_pxe_boot_file`.

View File

@ -1,6 +1,6 @@
variable "provisioning_host" { variable "provisioning_host" {
type = string type = string
default = "192.168.100.68" default = "192.168.100.73"
} }
variable "provisioning_user" { variable "provisioning_user" {
@ -29,7 +29,7 @@ variable "proxy_dhcp_range" {
variable "http_host" { variable "http_host" {
type = string type = string
default = "192.168.100.68" default = "192.168.100.73"
} }
variable "http_port" { variable "http_port" {
@ -138,7 +138,7 @@ variable "kernel_cgroup_boot_options" {
variable "registry_endpoint" { variable "registry_endpoint" {
type = string type = string
default = "192.168.100.68:30500" default = "192.168.100.73:30500"
} }
variable "node_dns_servers" { variable "node_dns_servers" {

View File

@ -32,7 +32,7 @@ Argo CD does not read from the Gitea SSH port. It reads from the
Debian bare GitOps mirror through `gitops_repo_url`, normally: Debian bare GitOps mirror through `gitops_repo_url`, normally:
```text ```text
ssh://jv@192.168.100.68/home/jv/git-server/my-homelab-configs.git ssh://jv@192.168.100.73/home/jv/git-server/my-homelab-configs.git
``` ```
The platform bootstrap registers that repo secret and updates The platform bootstrap registers that repo secret and updates

6
lab.sh
View File

@ -212,7 +212,7 @@ adopt_apps_existing_resources() {
ensure_homelab_node_labels() { ensure_homelab_node_labels() {
local control_plane_node="${LAB_CONTROL_PLANE_NODE_NAME:-debian}" local control_plane_node="${LAB_CONTROL_PLANE_NODE_NAME:-debian}"
local raspberry_node="${LAB_RASPBERRY_NODE_NAME:-raspberry}" local raspberry_node="${LAB_RASPBERRY_NODE_NAME:-raspberry}"
local prometheus_selector="homelab.dev/node-role=app,homelab.dev/storage=nvme" local prometheus_selector="homelab.dev/node-role=app,homelab.dev/storage=ssd"
local node local node
local target_nodes local target_nodes
@ -236,7 +236,7 @@ ensure_homelab_node_labels() {
if [[ "${node}" == pimox-worker-* ]]; then if [[ "${node}" == pimox-worker-* ]]; then
kubectl --kubeconfig "${KUBECONFIG_PATH}" label node "${node}" \ kubectl --kubeconfig "${KUBECONFIG_PATH}" label node "${node}" \
homelab.dev/node-role=app \ homelab.dev/node-role=app \
homelab.dev/storage=nvme \ homelab.dev/storage=ssd \
homelab.dev/workload-class=platform \ homelab.dev/workload-class=platform \
--overwrite --overwrite
elif [[ "${node}" == "${raspberry_node}" ]]; then elif [[ "${node}" == "${raspberry_node}" ]]; then
@ -813,7 +813,7 @@ write_cluster_worker_var_file() {
LAB_RASPBERRY_NODE_NAME="${LAB_RASPBERRY_NODE_NAME:-raspberry}" \ LAB_RASPBERRY_NODE_NAME="${LAB_RASPBERRY_NODE_NAME:-raspberry}" \
LAB_RASPBERRY_SSH_KEY_PATH="${LAB_RASPBERRY_SSH_KEY_PATH:-/home/jv/.ssh/id_ed25519}" \ LAB_RASPBERRY_SSH_KEY_PATH="${LAB_RASPBERRY_SSH_KEY_PATH:-/home/jv/.ssh/id_ed25519}" \
LAB_RASPBERRY_NODE_LABELS_JSON="${LAB_RASPBERRY_NODE_LABELS_JSON:-{\"node-role.kubernetes.io/worker\":\"worker\",\"homelab.dev/node-role\":\"edge-app\",\"homelab.dev/storage\":\"local\",\"homelab.dev/workload-class\":\"edge\"}}" \ LAB_RASPBERRY_NODE_LABELS_JSON="${LAB_RASPBERRY_NODE_LABELS_JSON:-{\"node-role.kubernetes.io/worker\":\"worker\",\"homelab.dev/node-role\":\"edge-app\",\"homelab.dev/storage\":\"local\",\"homelab.dev/workload-class\":\"edge\"}}" \
LAB_PIMOX_WORKER_NODE_LABELS_JSON="${LAB_PIMOX_WORKER_NODE_LABELS_JSON:-{\"node-role.kubernetes.io/worker\":\"worker\",\"homelab.dev/node-role\":\"app\",\"homelab.dev/storage\":\"nvme\",\"homelab.dev/workload-class\":\"platform\"}}" \ LAB_PIMOX_WORKER_NODE_LABELS_JSON="${LAB_PIMOX_WORKER_NODE_LABELS_JSON:-{\"node-role.kubernetes.io/worker\":\"worker\",\"homelab.dev/node-role\":\"app\",\"homelab.dev/storage\":\"ssd\",\"homelab.dev/workload-class\":\"platform\"}}" \
python3 - "${spec_file}" "${var_file}" <<'PY' python3 - "${spec_file}" "${var_file}" <<'PY'
import json import json
import os import os