---
# 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: {}
      # gem-jump-new:
      #   public_ipv4: "203.0.113.10"

    # ---- A fresh control-plane to join gem-c01 ----------------------------
    manual_controlplane:
      hosts: {}
      # gem-c01-cp04:
      #   public_ipv4: "203.0.113.20"

    # ---- 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: {}
        # gem-c01-w03:
        #   public_ipv4: "178.105.200.132"
        #   private_ipv4: "10.0.0.13"

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

# bare_metal:
#   hosts:
#     gem-c01-w03-ex101: {}    # cross-membership

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