env-manager: dynamically generate cidr for new env (#85)

* env-manager: allocate env cidrs dynamically

* fix: net.IP to netip.Addr conversion

* bootstrapper: generate empty env-cidrs.yaml

* fix: net.IP to netip.Addr conversion for IP pool

* infra: expose provided startIP subnet via tailscale proxy

* headscale: pass private network ip subnet to expose to api service

* dns: make ingress IP configurable

---------

Co-authored-by: Giorgi Lekveishvili <lekva@gl-mbp-m1-max.local>
diff --git a/core/installer/bootstrapper.go b/core/installer/bootstrapper.go
index 7ac86c1..71b18d4 100644
--- a/core/installer/bootstrapper.go
+++ b/core/installer/bootstrapper.go
@@ -427,6 +427,9 @@
 	if err := repo.WriteYaml("config.yaml", env); err != nil {
 		return err
 	}
+	if err := repo.WriteYaml("env-cidrs.yaml", EnvCIDRs{}); err != nil {
+		return err
+	}
 	kust := NewKustomization()
 	kust.AddResources(
 		fmt.Sprintf("%s-flux", env.Name),