# Sample --providers-config file (not a Kubernetes manifest). In-cluster # this content lives in the providers-config ConfigMap # (config/manager/providers_config.yaml); for `make run-dev` a # kubernetes-only variant is at hack/providers-dev.yaml. # # Named provider instances: "gcp-eu" and "gcp-us" are two configs of the # same type. spec.provider on a Proxy refers to the name, not the type. providers: - name: kubernetes type: kubernetes # kubernetes: # image: ubuntu/squid:6.6-24.04_edge # the default - name: gcp-eu type: gcp gcp: project: my-project # network: default # VPC network name # networkTag: proxy-operator # firewall tag on created instances # diskSizeGb: 10 # auth: Application Default Credentials (workload identity # in-cluster, gcloud ADC locally). No key-file plumbing. - name: kvm-home type: kvm kvm: # SSH to each host with the libvirt unix socket forwarded through the # connection; nothing to open on the hypervisors beyond sshd. Both # files come from the optional kvm-ssh Secret mounted by # config/manager/manager.yaml — see docs/kvm-provider.md. sshKeyFile: /etc/proxy-operator/kvm/id_ed25519 knownHostsFile: /etc/proxy-operator/kvm/known_hosts # insecureIgnoreHostKey: true # skip host-key checks (not recommended) # diskSizeGb: 10 # per-VM overlay; cloud-init grows the root fs into it # installGuestAgent: false # skip the vendor-data script that installs qemu-guest-agent # vendorData: | # extra vendor-data, carried beside the agent script as a # #cloud-config # MIME multipart. The Proxy's own cloud-init is never rewritten. # ... images: # placement.image names a key here (or is an https:// URL directly). # Fetched into each host's pool on first use and cached there as # base-.qcow2; do not change an entry while Proxies use it. debian-13: url: https://cloud.debian.org/images/cloud/trixie/latest/debian-13-generic-amd64.qcow2 # sha256: "<64 hex>" # optional; verified after download # firmware: uefi # default; "bios" only for images with no EFI partition # # (Debian 13 hangs in GRUB under BIOS headless: Debian bug #1111240) ubuntu-24.04: url: https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img machineTypes: # placement.machineType names a key here small: {vcpus: 1, memoryMiB: 1024} medium: {vcpus: 2, memoryMiB: 2048} hosts: # placement.zone names a host; optional with one host - name: beelink address: beelink:22 user: novakj # must be in the libvirt group bridge: br0 # to a LAN with DHCP; the VM's IP comes from there # socket: /var/run/libvirt/libvirt-sock # pool: default # kvm2 takes the same block shape as kvm: an entry ports by changing type # to kvm2 and the block name to kvm2. kvm2 does not adopt domains made by # kvm, so delete those Proxies first. It caches its base images under # base--., so it downloads its own copy rather than # sharing kvm's; budget the pool space. See docs/kvm2-provider.md. # - name: kvm2-home # type: kvm2 # kvm2: # sshKeyFile: /etc/proxy-operator/kvm/id_ed25519 # knownHostsFile: /etc/proxy-operator/kvm/known_hosts # # insecureIgnoreHostKey: true # # diskSizeGb: 10 # # installGuestAgent: false # # vendorData: | # # #cloud-config # # ... # images: # debian-13: # url: https://cloud.debian.org/images/cloud/trixie/latest/debian-13-generic-amd64.qcow2 # # sha256: "<64 hex>" # # firmware: uefi # ubuntu-24.04: # url: https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img # machineTypes: # small: {vcpus: 1, memoryMiB: 1024} # medium: {vcpus: 2, memoryMiB: 2048} # hosts: # - name: beelink # address: beelink:22 # user: novakj # bridge: br0 # # socket: /var/run/libvirt/libvirt-sock # # pool: default