docs: fix roadmap and setup reference direction
Remove setup runbook references from prod roadmap docs so roadmap remains design intent only. Keep setup-to-roadmap links, but normalize them to explicit relative paths.
This commit is contained in:
parent
67f4c10c93
commit
8875af8e8a
@ -114,7 +114,7 @@ docker node update --label-add db-index=03 iklim-db-03
|
|||||||
|
|
||||||
> DB nodes are Swarm **workers** only — they never become managers.
|
> DB nodes are Swarm **workers** only — they never become managers.
|
||||||
> DB services are pinned to them via `node.labels.role == db` placement constraint.
|
> DB services are pinned to them via `node.labels.role == db` placement constraint.
|
||||||
> See `08-prod-db-cluster-setup.md` for DB stack deployment.
|
> DB services are deployed by the current root production stack `docker-stack-infra_db-prod.yml`.
|
||||||
|
|
||||||
## Step 6 — Verify
|
## Step 6 — Verify
|
||||||
|
|
||||||
@ -154,4 +154,4 @@ SWAG and cert-reloader are pinned to `iklim-app-01` (the Floating IP node) becau
|
|||||||
|
|
||||||
## Historical / Superseded by Setup
|
## Historical / Superseded by Setup
|
||||||
|
|
||||||
Older notes that referred to `docker-stack-infra.yml`, `docker-stack-infra.prod.yml`, or `docker-stack-db.prod.yml` as the active prod deployment model are superseded by `../../setup/08-prod-db-cluster-setup.md` and `../../setup/09-prod-runner-ha-and-swarm.md`.
|
Older notes that referred to `docker-stack-infra.yml`, `docker-stack-infra.prod.yml`, or `docker-stack-db.prod.yml` as the active prod deployment model are superseded by the current root production stack and workflow model.
|
||||||
|
|||||||
@ -58,7 +58,7 @@ To get the Floating IP: `terraform output prod_floating_ip`
|
|||||||
|
|
||||||
Logic: for each record, pipeline queries the current value via GoDaddy API. If already correct, it skips. Otherwise it creates/updates the record.
|
Logic: for each record, pipeline queries the current value via GoDaddy API. If already correct, it skips. Otherwise it creates/updates the record.
|
||||||
|
|
||||||
> The Floating IP is assigned to `iklim-app-01` (`06-prod-terraform-iac.md` — `floating_ip.tf`).
|
> The Floating IP is assigned to `iklim-app-01` by `terraform/hetzner/prod/floating_ip.tf`; use the production Terraform output for the `PROD_FLOATING_IP` value.
|
||||||
> If failover is needed, the Floating IP can be reassigned to another app node; DNS does not change.
|
> If failover is needed, the Floating IP can be reassigned to another app node; DNS does not change.
|
||||||
|
|
||||||
## Notes
|
## Notes
|
||||||
|
|||||||
@ -6,7 +6,6 @@ This document records the production infrastructure target that is now implement
|
|||||||
|
|
||||||
Current references:
|
Current references:
|
||||||
|
|
||||||
- Setup source: `../../setup/08-prod-db-cluster-setup.md` and `../../setup/09-prod-runner-ha-and-swarm.md`
|
|
||||||
- Main infra and DB stack: root `docker-stack-infra_db-prod.yml`
|
- Main infra and DB stack: root `docker-stack-infra_db-prod.yml`
|
||||||
- Vault stack: root `docker-stack-vault.yml`
|
- Vault stack: root `docker-stack-vault.yml`
|
||||||
- Vault bootstrap: root `init/vault/vault-bootstrap.sh`, called through `init-infra-prod.sh`
|
- Vault bootstrap: root `init/vault/vault-bootstrap.sh`, called through `init-infra-prod.sh`
|
||||||
@ -54,7 +53,7 @@ Grafana uses `/mnt/storagebox/grafana/data` through `GRAFANA_DATA_DIR` so dashbo
|
|||||||
|
|
||||||
APISIX uses the DB-node etcd cluster through overlay DNS aliases such as `etcd-01`, `etcd-02`, and `etcd-03`. Patroni and APISIX use different etcd prefixes, so their data does not collide.
|
APISIX uses the DB-node etcd cluster through overlay DNS aliases such as `etcd-01`, `etcd-02`, and `etcd-03`. Patroni and APISIX use different etcd prefixes, so their data does not collide.
|
||||||
|
|
||||||
The app subnet to DB subnet firewall rule for etcd client traffic is part of the current production firewall model. See `../../setup/06-prod-terraform-iac.md`.
|
The app subnet to DB subnet firewall rule for etcd client traffic is part of the current production firewall model in `terraform/hetzner/prod/firewall.tf`.
|
||||||
|
|
||||||
## Redis and RabbitMQ
|
## Redis and RabbitMQ
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## Context
|
## Context
|
||||||
|
|
||||||
Production uses the same SWAG template files as test, with production subdomain values and StorageBox-backed output directories. The current setup source is `../../setup/09-prod-runner-ha-and-swarm.md`.
|
Production uses the same SWAG template files as test, with production subdomain values and StorageBox-backed output directories.
|
||||||
|
|
||||||
## Required Environment Variables
|
## Required Environment Variables
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## Context
|
## Context
|
||||||
|
|
||||||
The production certificate flow is implemented in the current infra stack and setup runbooks. See `../../setup/09-prod-runner-ha-and-swarm.md`.
|
The production certificate flow is implemented by the current infra stack, cert services, and Vault stack.
|
||||||
|
|
||||||
## Current Flow
|
## Current Flow
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,6 @@ Production Vault is a 3-node Raft cluster, but it is no longer initialized throu
|
|||||||
|
|
||||||
Current references:
|
Current references:
|
||||||
|
|
||||||
- Setup source: `../../setup/09-prod-runner-ha-and-swarm.md`
|
|
||||||
- Stack file: root `docker-stack-vault.yml`
|
- Stack file: root `docker-stack-vault.yml`
|
||||||
- Bootstrap script: root `init/vault/vault-bootstrap.sh`
|
- Bootstrap script: root `init/vault/vault-bootstrap.sh`
|
||||||
- Template: root `init/vault/vault-template-v2.json`
|
- Template: root `init/vault/vault-template-v2.json`
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## Context
|
## Context
|
||||||
|
|
||||||
The production deploy pipeline is no longer a pending set of step additions. The current source of truth is the root `.gitea/workflows/deploy-prod.yml`, with the operational explanation in `../../setup/09-prod-runner-ha-and-swarm.md` and root `prod_env-ci_dc-pipeline.md`.
|
The production deploy pipeline is no longer a pending set of step additions. The current source of truth is the root `.gitea/workflows/deploy-prod.yml`, with the operational overview in root `prod_env-ci_dc-pipeline.md`.
|
||||||
|
|
||||||
## Current Pipeline Order
|
## Current Pipeline Order
|
||||||
|
|
||||||
@ -93,4 +93,4 @@ The following earlier plan items are superseded:
|
|||||||
- Storing prod env in `prod/secrets/iklim.co/.env.prod`.
|
- Storing prod env in `prod/secrets/iklim.co/.env.prod`.
|
||||||
- Deploying microservices with `docker-stack-service.yml` plus `docker-stack-service.prod.yml`.
|
- Deploying microservices with `docker-stack-service.yml` plus `docker-stack-service.prod.yml`.
|
||||||
|
|
||||||
Keep this file as a roadmap summary. For exact commands, use the root workflow and `../../setup/09-prod-runner-ha-and-swarm.md`.
|
Keep this file as a roadmap summary. For exact commands, use the root workflow and root operational documentation.
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## Context
|
## Context
|
||||||
|
|
||||||
Run these checks after a successful production pipeline deployment. The current setup source is `../../setup/09-prod-runner-ha-and-swarm.md`.
|
Run these checks after a successful production pipeline deployment. This roadmap keeps verification intent; exact execution belongs to the current production workflow and operational runbooks.
|
||||||
|
|
||||||
## 1 — Swarm Cluster Health
|
## 1 — Swarm Cluster Health
|
||||||
|
|
||||||
|
|||||||
@ -117,7 +117,7 @@ Before the deploy pipeline runs, the following template files must exist in the
|
|||||||
- `template/swag/site-confs/rabbitmq.conf.tpl`
|
- `template/swag/site-confs/rabbitmq.conf.tpl`
|
||||||
- `template/swag/site-confs/grafana.conf.tpl`
|
- `template/swag/site-confs/grafana.conf.tpl`
|
||||||
|
|
||||||
These files are created in the test environment (`test-env/04-swag-nginx-configs.md`); they are not created separately for prod. Template files are shared by both environments; prod-specific values are injected with environment variables during deploy.
|
These files are created in the test roadmap (`../roadmap/test-env/04-swag-nginx-configs.md`); they are not created separately for prod. Template files are shared by both environments; prod-specific values are injected with environment variables during deploy.
|
||||||
|
|
||||||
Verify that the `prod/secrets/iklim.co/.env` file on StorageBox contains the following variables:
|
Verify that the `prod/secrets/iklim.co/.env` file on StorageBox contains the following variables:
|
||||||
|
|
||||||
@ -141,7 +141,7 @@ The following prerequisites must be satisfied before deploy.
|
|||||||
|
|
||||||
#### init.sh SSL Block
|
#### init.sh SSL Block
|
||||||
|
|
||||||
The `ssls/1` PUT block and the `dev` SSL block inside `init/apisix-core/init.sh` must be removed. This change is made in the test environment (`test-env/05-apisix-remove-ssl.md`); the same `init.sh` file is also used in prod, so no separate change is required for prod.
|
The `ssls/1` PUT block and the `dev` SSL block inside `init/apisix-core/init.sh` must be removed. This change is tracked in the test roadmap (`../roadmap/test-env/05-apisix-remove-ssl.md`); the same `init.sh` file is also used in prod, so no separate change is required for prod.
|
||||||
|
|
||||||
#### Custom APISIX Image
|
#### Custom APISIX Image
|
||||||
|
|
||||||
@ -166,7 +166,7 @@ If the image requires a rebuild because `config.yaml` changed, run from the proj
|
|||||||
bash ops/push-harbor-custom-images.sh
|
bash ops/push-harbor-custom-images.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
During deploy, `init/apisix-core/init.sh` is run once by the pipeline. It writes the APISIX configuration to Patroni etcd with the `/apisix` prefix; the 3 replicas in prod read this etcd state commonly, so no separate init per replica is required. Detail: `roadmap/prod-env/05-apisix-remove-ssl.md`.
|
During deploy, `init/apisix-core/init.sh` is run once by the pipeline. It writes the APISIX configuration to Patroni etcd with the `/apisix` prefix; the 3 replicas in prod read this etcd state commonly, so no separate init per replica is required. Detail: `../roadmap/prod-env/05-apisix-remove-ssl.md`.
|
||||||
|
|
||||||
## Deploy Serialization with Gitea Concurrency
|
## Deploy Serialization with Gitea Concurrency
|
||||||
|
|
||||||
@ -416,7 +416,7 @@ SWAG connects to APISIX through the Docker Swarm service name with `proxy_pass h
|
|||||||
|
|
||||||
`Prometheus` is intentionally not exposed externally through SWAG. Access uses Grafana, whose internal connection is `http://prometheus:9090`, or an SSH tunnel.
|
`Prometheus` is intentionally not exposed externally through SWAG. Access uses Grafana, whose internal connection is `http://prometheus:9090`, or an SSH tunnel.
|
||||||
|
|
||||||
Detay: `Environment_Infrastructure/roadmap/prod-env/04-swag-nginx-configs.md`.
|
Detay: `../roadmap/prod-env/04-swag-nginx-configs.md`.
|
||||||
|
|
||||||
## Post-Deploy Verification
|
## Post-Deploy Verification
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user