---
# 05-manual.yml — hand-added hosts.
#
# This is the file you edit by hand. Anything here merges with the dynamic
# Kubernetes inventory from `inventory/k8s-nodes.sh` and the foundational
# groups in `00-static.yml`. Drop a server in the group(s) that fit it; vars
# from every group merge automatically.
#
# Two main use-cases:
#
# (1) NEW SERVERS BEING SET UP — put under one of the `manual_*` subgroups.
#     These hosts get `ansible_user: root` and connect directly to their
#     `public_ipv4` (no bastion / no ProxyJump) — see group_vars/manual.yml.
#     Once the host is configured and joined, move it to the right place:
#       - cluster nodes → leave it for kubectl to surface (delete the manual entry)
#       - bastions      → move under the top-level `bastion` group in 00-static.yml
#
# (2) STANDALONE SERVERS — anything else outside the cluster. Either invent
#     a new top-level group inline here, or use one of the existing tag
#     groups (`bare_metal`, `cloud_instance`, etc.) if the semantics fit.
#
# Required per host:
#   public_ipv4 (or ansible_host)   the address ansible targets
#
# Optional per host:
#   ansible_user                    override the group-level user
#   ansible_ssh_private_key_file    override the default key
#
# ============================================================================
# EXAMPLES — uncomment one, edit, save. The file stays valid YAML even when
# every example is commented out.
# ============================================================================

# manual_* groups live under `manual` in 00-static.yml; we add hosts INTO
# those existing groups here. Listing them under `manual.children` (not at the
# top level) keeps the inventory graph clean.
manual:
  children:
    # ---- A brand-new bastion being set up ---------------------------------
    # Once it's reachable and you've moved its key to your ~/.ssh, list it
    # under the top-level `bastion` group in 00-static.yml and remove from
    # here.
    manual_bastion:
      hosts: {}
        # mintfit-jump:
        #   public_ipv4: "49.13.68.111"

    # ---- A fresh control-plane to join mintfit-c01 ----------------------------
    manual_controlplane:
      hosts: {}
        # mintfit-c01-cp01:
        #   private_ipv4: "10.0.0.10"
        # mintfit-c01-cp02:
        #   private_ipv4: "10.0.0.11"
        # mintfit-c01-cp03:
          # private_ipv4: "10.0.0.8"
        # mintfit-rancher-k3s-01:
        #   private_ipv4: "10.0.0.6"
        # mintfit-rancher-k3s-02:
        #   private_ipv4: "10.0.0.2"
        # mintfit-rancher-k3s-03:
        #   private_ipv4: "10.0.0.7"

      

    # ---- A fresh worker (Cloud or Robot) ----------------------------------
    # For Robot bare-metal, also list under `bare_metal` (uncomment below)
    # so it picks up the VLAN netplan settings during setup.
    manual_worker:
      hosts: {}
        # mintfit-c01-adm01:
        #   private_ipv4: "10.0.0.9"
        # mintfit-c01-prw01:
        #   public_ipv4: "128.140.114.221"
        #   private_ipv4: "10.0.0.4"
        # mintfit-c01-w01:
        #   private_ipv4: "10.0.1.10"
        #   public_ipv4: "5.9.107.53"
        # mintfit-c01-w02:
        #   private_ipv4: "10.0.1.20"
        #   public_ipv4: "5.9.107.151"

# Tag groups and standalone hosts go at the top level:

bare_metal:
  hosts: {}
    # mintfit-c01-w01: {}    # cross-membership
    # mintfit-c01-w02: {}    # cross-membership

# Per-cluster VLAN overrides for the mintfit-c01 Robot workers live in
# group_vars/mintfit_c01_bare_metal.yml (vSwitch gateway 10.0.0.1, not gem's
# 10.0.1.1). Keeps bare_metal.yml as the shared/gem default.
mintfit_c01_bare_metal:
  hosts: {}
    # mintfit-c01-w01: {}
    # mintfit-c01-w02: {}

# A standalone VM unrelated to any cluster
# standalone:
#   hosts:
#     monitoring-01:
#       ansible_host: "78.46.123.45"
#       ansible_user: ubuntu
