Rename repo #4

Closed
opened 2026-08-14 19:58:42 -07:00 by tepichord · 2 comments
Owner
  • Repository will need to be renamed from evolved-npcs-infra to milner
  • The goal of the repository will change to instead define the cluster as a whole which will host a variety of different pods not limited to evolved-npcs-infra
  • For now though it will start with a hashicorp vault pod and a woodpecker ci pod (will get into later)
  • Reference the origin repo's that we build infrastructure for as a point of reference. For example, evolved-npcs is located at: https://git.gloom.garden/tepichord/evolved-npcs
- Repository will need to be renamed from `evolved-npcs-infra` to `milner` - The goal of the repository will change to instead define the cluster as a whole which will host a variety of different pods not limited to evolved-npcs-infra - For now though it will start with a hashicorp vault pod and a woodpecker ci pod (will get into later) - Reference the origin repo's that we build infrastructure for as a point of reference. For example, evolved-npcs is located at: https://git.gloom.garden/tepichord/evolved-npcs
tepichord added this to the MVP project 2026-08-14 19:58:42 -07:00
Author
Owner

Naina:
Updated on 2026-08-17 based on maintainer feedback.

Overview

Rename the repository from evolved-npcs-infra to milner and update all internal references to reflect the new identity. The repo's scope expands from a single-project infrastructure definition to a general-purpose cluster definition that hosts multiple pods (Vault, Woodpecker CI, and future workloads). The Forgejo repo rename itself will be done manually by the owner; this issue covers updating internal references, documentation, and scaffolding Woodpecker CI.

Technical Approach

  1. Update Terraform cluster name defaults

    control-plane/main.tf:

    variable "cluster_name" {
      description = "The name of the Talos cluster"
      type        = string
      default     = "milner-cluster"   # was "evolved-npcs-cluster"
    }
    

    control-plane/terraform.tfvars:

    cluster_name = "milner"   # was "evo-npcs-clust"
    
  2. Align Talos versions between control-plane and worker

    worker/vm-setup/create-worker-vm.sh:

    TALOS_ISO_URL="https://github.com/siderolabs/talos/releases/download/v1.11.1/metal-arm64.iso"
    # was v1.11.0 — align with control-plane's v1.11.1
    
  3. Rewrite top-level README.md to describe milner's scope:

    # Milner
    
    General-purpose Talos Linux cluster definition on libvirt/QEMU. Hosts multiple pods:
    - [HashiCorp Vault](hc-vault/) — secrets management
    - [Woodpecker CI](woodpecker/) — CI/CD (coming soon)
    
    ## Origin Repos
    - [evolved-npcs](https://git.gloom.garden/tepichord/evolved-npcs) — the application this cluster supports
    
  4. Update AGENTS.md — change title, scope description, and repo map:

    # Milner
    
    ## Project Overview
    General-purpose Talos Linux Kubernetes cluster definition on local libvirt/QEMU (macOS arm64). Hosts Vault, Woodpecker CI, and future workloads.
    
    ## Repo Map
    | Directory           | Purpose                                               |
    |---------------------|-------------------------------------------------------|
    | `control-plane/`    | Terraform: Talos control-plane VM on libvirt          |
    | `hc-vault/`         | Vault via podman-compose + nginx TLS proxy            |
    | `worker/`           | Shell scripts + patches for Talos worker VMs          |
    | `woodpecker/`       | Woodpecker CI Helm values (coming soon)               |
    
  5. Update PLAN.md — replace TeamCity with Woodpecker CI, update identity:

    # Milner — Plan
    
    ## Vision
    Local-first Kubernetes cluster for multiple workloads.
    Stack: Talos Linux, HashiCorp Vault, Woodpecker CI, QEMU/libvirt on macOS arm64.
    

    Phase 3 becomes:

    ### Phase 3: Woodpecker CI 🚧
    Helm chart deployment. Directory: `woodpecker/` with values skeleton.
    
  6. Add woodpecker/ directory skeleton:

    woodpecker/
    ├── README.md          # Brief setup notes + link to official Helm chart
    └── values.yaml        # Helm values template
    

    woodpecker/README.md:

    # Woodpecker CI
    
    Deploy via the official Helm chart:
    ```bash
    helm repo add woodpecker https://woodpecker-ci.org/
    kubectl create namespace woodpecker
    helm install woodpecker woodpecker/woodpecker -n woodpecker -f values.yaml
    
    
    `woodpecker/values.yaml`:
    ```yaml
    server:
      persistentVolume:
        storageClass: local-path
    agent:
      replicas: 2
      env:
        WOODPECKER_BACKEND: kubernetes
        WOODPECKER_BACKEND_K8S_NAMESPACE: woodpecker
        WOODPECKER_BACKEND_K8S_STORAGE_CLASS: local-path
    

Implementation Details

Files to modify:

  • control-plane/main.tf — change default = "evolved-npcs-cluster""milner-cluster"
  • control-plane/terraform.tfvars — change cluster_name = "evo-npcs-clust""milner"
  • worker/vm-setup/create-worker-vm.sh — change Talos version v1.11.0v1.11.1
  • README.md — rewrite to describe milner scope and link origin repos
  • AGENTS.md — update title, scope, repo map (replace teamcity-agent/ with woodpecker/)
  • PLAN.md — replace TeamCity with Woodpecker CI, update project identity

Files to create:

  • woodpecker/README.md — deployment instructions
  • woodpecker/values.yaml — Helm values template

Files NOT modified (out of scope):

  • hc-vault/docker-compose.ymltepichord/vault:latest image namespace is independent of repo rename
  • hc-vault/example.yaml — auto-generated from podman, contains hardcoded paths
  • control-plane/README.md — generic setup instructions, no repo-specific naming
  • hc-vault/README.md — generic setup instructions, no repo-specific naming

Dependencies:

  • Owner will rename the Forgejo repo manually (not via API)
  • After rename: local clones must run git remote set-url origin ssh://git@clone.gloom.garden/tepichord/milner.git

Constraints:

  • Forgejo auto-redirects HTTP URLs but NOT SSH URLs after rename
  • tepichord/ image namespace is a user namespace, not tied to repo name

Acceptance Criteria

  • control-plane/main.tf default cluster name changed to milner-cluster
  • control-plane/terraform.tfvars cluster name changed to milner
  • worker/vm-setup/create-worker-vm.sh Talos version aligned to v1.11.1
  • Top-level README.md describes milner scope and links to origin repos
  • AGENTS.md updated with new title, scope, and repo map
  • PLAN.md updated to replace TeamCity with Woodpecker CI
  • woodpecker/ directory exists with README and Helm values skeleton
  • No references to evolved-npcs-infra or evo-npcs-clust remain in tracked files

Testing Plan

  • grep -r "evolved-npcs-infra\|evo-npcs-clust" . returns zero matches after all changes
  • terraform validate passes in control-plane/
  • Woodpecker Helm chart renders cleanly: helm template woodpecker woodpecker/woodpecker -f woodpecker/values.yaml
Naina: *Updated on 2026-08-17 based on maintainer feedback.* #### Overview Rename the repository from `evolved-npcs-infra` to `milner` and update all internal references to reflect the new identity. The repo's scope expands from a single-project infrastructure definition to a general-purpose cluster definition that hosts multiple pods (Vault, Woodpecker CI, and future workloads). The Forgejo repo rename itself will be done manually by the owner; this issue covers updating internal references, documentation, and scaffolding Woodpecker CI. #### Technical Approach 1. **Update Terraform cluster name defaults** `control-plane/main.tf`: ```hcl variable "cluster_name" { description = "The name of the Talos cluster" type = string default = "milner-cluster" # was "evolved-npcs-cluster" } ``` `control-plane/terraform.tfvars`: ```hcl cluster_name = "milner" # was "evo-npcs-clust" ``` 2. **Align Talos versions** between control-plane and worker `worker/vm-setup/create-worker-vm.sh`: ```bash TALOS_ISO_URL="https://github.com/siderolabs/talos/releases/download/v1.11.1/metal-arm64.iso" # was v1.11.0 — align with control-plane's v1.11.1 ``` 3. **Rewrite top-level `README.md`** to describe milner's scope: ```markdown # Milner General-purpose Talos Linux cluster definition on libvirt/QEMU. Hosts multiple pods: - [HashiCorp Vault](hc-vault/) — secrets management - [Woodpecker CI](woodpecker/) — CI/CD (coming soon) ## Origin Repos - [evolved-npcs](https://git.gloom.garden/tepichord/evolved-npcs) — the application this cluster supports ``` 4. **Update `AGENTS.md`** — change title, scope description, and repo map: ```markdown # Milner ## Project Overview General-purpose Talos Linux Kubernetes cluster definition on local libvirt/QEMU (macOS arm64). Hosts Vault, Woodpecker CI, and future workloads. ## Repo Map | Directory | Purpose | |---------------------|-------------------------------------------------------| | `control-plane/` | Terraform: Talos control-plane VM on libvirt | | `hc-vault/` | Vault via podman-compose + nginx TLS proxy | | `worker/` | Shell scripts + patches for Talos worker VMs | | `woodpecker/` | Woodpecker CI Helm values (coming soon) | ``` 5. **Update `PLAN.md`** — replace TeamCity with Woodpecker CI, update identity: ```markdown # Milner — Plan ## Vision Local-first Kubernetes cluster for multiple workloads. Stack: Talos Linux, HashiCorp Vault, Woodpecker CI, QEMU/libvirt on macOS arm64. ``` Phase 3 becomes: ```markdown ### Phase 3: Woodpecker CI 🚧 Helm chart deployment. Directory: `woodpecker/` with values skeleton. ``` 6. **Add `woodpecker/` directory skeleton**: ``` woodpecker/ ├── README.md # Brief setup notes + link to official Helm chart └── values.yaml # Helm values template ``` `woodpecker/README.md`: ```markdown # Woodpecker CI Deploy via the official Helm chart: ```bash helm repo add woodpecker https://woodpecker-ci.org/ kubectl create namespace woodpecker helm install woodpecker woodpecker/woodpecker -n woodpecker -f values.yaml ``` ``` `woodpecker/values.yaml`: ```yaml server: persistentVolume: storageClass: local-path agent: replicas: 2 env: WOODPECKER_BACKEND: kubernetes WOODPECKER_BACKEND_K8S_NAMESPACE: woodpecker WOODPECKER_BACKEND_K8S_STORAGE_CLASS: local-path ``` #### Implementation Details **Files to modify:** - `control-plane/main.tf` — change `default = "evolved-npcs-cluster"` → `"milner-cluster"` - `control-plane/terraform.tfvars` — change `cluster_name = "evo-npcs-clust"` → `"milner"` - `worker/vm-setup/create-worker-vm.sh` — change Talos version `v1.11.0` → `v1.11.1` - `README.md` — rewrite to describe milner scope and link origin repos - `AGENTS.md` — update title, scope, repo map (replace `teamcity-agent/` with `woodpecker/`) - `PLAN.md` — replace TeamCity with Woodpecker CI, update project identity **Files to create:** - `woodpecker/README.md` — deployment instructions - `woodpecker/values.yaml` — Helm values template **Files NOT modified (out of scope):** - `hc-vault/docker-compose.yml` — `tepichord/vault:latest` image namespace is independent of repo rename - `hc-vault/example.yaml` — auto-generated from podman, contains hardcoded paths - `control-plane/README.md` — generic setup instructions, no repo-specific naming - `hc-vault/README.md` — generic setup instructions, no repo-specific naming **Dependencies:** - Owner will rename the Forgejo repo manually (not via API) - After rename: local clones must run `git remote set-url origin ssh://git@clone.gloom.garden/tepichord/milner.git` **Constraints:** - Forgejo auto-redirects HTTP URLs but NOT SSH URLs after rename - `tepichord/` image namespace is a user namespace, not tied to repo name #### Acceptance Criteria - [ ] `control-plane/main.tf` default cluster name changed to `milner-cluster` - [ ] `control-plane/terraform.tfvars` cluster name changed to `milner` - [ ] `worker/vm-setup/create-worker-vm.sh` Talos version aligned to `v1.11.1` - [ ] Top-level `README.md` describes milner scope and links to origin repos - [ ] `AGENTS.md` updated with new title, scope, and repo map - [ ] `PLAN.md` updated to replace TeamCity with Woodpecker CI - [ ] `woodpecker/` directory exists with README and Helm values skeleton - [ ] No references to `evolved-npcs-infra` or `evo-npcs-clust` remain in tracked files #### Testing Plan - `grep -r "evolved-npcs-infra\|evo-npcs-clust" .` returns zero matches after all changes - `terraform validate` passes in `control-plane/` - Woodpecker Helm chart renders cleanly: `helm template woodpecker woodpecker/woodpecker -f woodpecker/values.yaml` #### Related Issues/PRs - Origin repo: https://git.gloom.garden/tepichord/evolved-npcs
Author
Owner
  • I will rename the repo myself, don’t do it via API
  • update plan to accommodate new PLAN.md and AGENTS.md files
- I will rename the repo myself, don’t do it via API - update plan to accommodate new PLAN.md and AGENTS.md files
tepichord referenced this issue from a commit 2026-08-18 10:16:00 -07:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
tepichord/milner#4
No description provided.