Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 314510cafb | |||
| d99bbc3add | |||
| bead6184f5 | |||
| b267bdfe5f | |||
| 8b07a8e8fd | |||
| 58e3a64fe7 | |||
| f2e6137ae5 | |||
| fd45b39062 | |||
| 12f3d8e26f |
@@ -1,75 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"os"
|
|
||||||
|
|
||||||
"github.com/spf13/cobra"
|
|
||||||
|
|
||||||
"git.jpi.io/amery/jpictl/pkg/cluster"
|
|
||||||
"git.jpi.io/amery/jpictl/pkg/dns"
|
|
||||||
)
|
|
||||||
|
|
||||||
func newDNSManager(m *cluster.Cluster) (*dns.Manager, error) {
|
|
||||||
domain := m.Domain
|
|
||||||
if m.Name != "" {
|
|
||||||
domain = m.Name + "." + domain
|
|
||||||
}
|
|
||||||
|
|
||||||
mgr, err := dns.NewManager(dns.WithDomain(domain), dns.WithLogger(log))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
m.ForEachZone(func(z *cluster.Zone) bool {
|
|
||||||
z.ForEachMachine(func(p *cluster.Machine) bool {
|
|
||||||
err = mgr.AddHost(context.TODO(), z.Name, p.ID, true, p.PublicAddresses...)
|
|
||||||
return err != nil
|
|
||||||
})
|
|
||||||
|
|
||||||
return err != nil
|
|
||||||
})
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, r := range m.Regions {
|
|
||||||
err := mgr.AddRegion(context.TODO(), r.Name, r.Zones()...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return mgr, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Command
|
|
||||||
var dnsCmd = &cobra.Command{
|
|
||||||
Use: "dns",
|
|
||||||
}
|
|
||||||
|
|
||||||
var dnsWriteCmd = &cobra.Command{
|
|
||||||
Use: "write",
|
|
||||||
PreRun: setVerbosity,
|
|
||||||
RunE: func(_ *cobra.Command, _ []string) error {
|
|
||||||
m, err := cfg.LoadZones(true)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
mgr, err := newDNSManager(m)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err = mgr.WriteTo(os.Stdout)
|
|
||||||
return err
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
rootCmd.AddCommand(dnsCmd)
|
|
||||||
|
|
||||||
dnsCmd.AddCommand(dnsWriteCmd)
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user