# 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 # vendorData: | # default installs qemu-guest-agent for IP discovery # #cloud-config # ... 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 does not boot via BIOS, see docs/kvm-provider.md) 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: nas1 address: nas1.home.lan:22 user: virt # 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