Merge pull request 'Agent: translate per-device L2/misc long-tail' (#6) from benvin/agent-longtail-l2 into main
Reviewed-on: #6
This commit was merged in pull request #6.
This commit is contained in:
@@ -25,6 +25,59 @@ type RenderedConfig struct {
|
||||
Providers []RenderedProvider `yaml:"providers,omitempty" json:"providers,omitempty"`
|
||||
Routes []RenderedRoute `yaml:"routes,omitempty" json:"routes,omitempty"`
|
||||
RoutingRules []RenderedRoutingRule `yaml:"routing_rules,omitempty" json:"routing_rules,omitempty"`
|
||||
Tunnels []RenderedTunnel `yaml:"tunnels,omitempty" json:"tunnels,omitempty"`
|
||||
StoppedRules []RenderedStoppedRule `yaml:"stopped_rules,omitempty" json:"stopped_rules,omitempty"`
|
||||
ProxyARP []RenderedProxy `yaml:"proxy_arp,omitempty" json:"proxy_arp,omitempty"`
|
||||
ProxyNDP []RenderedProxy `yaml:"proxy_ndp,omitempty" json:"proxy_ndp,omitempty"`
|
||||
ArpRules []RenderedArpRule `yaml:"arp_rules,omitempty" json:"arp_rules,omitempty"`
|
||||
Maclist []RenderedMaclist `yaml:"maclist,omitempty" json:"maclist,omitempty"`
|
||||
}
|
||||
|
||||
type RenderedTunnel struct {
|
||||
Type string `yaml:"type" json:"type"`
|
||||
Zone string `yaml:"zone" json:"zone"`
|
||||
Gateways []string `yaml:"gateways,omitempty" json:"gateways,omitempty"`
|
||||
GatewayZones []string `yaml:"gateway_zones,omitempty" json:"gateway_zones,omitempty"`
|
||||
Port int `yaml:"port,omitempty" json:"port,omitempty"`
|
||||
Comment string `yaml:"comment,omitempty" json:"comment,omitempty"`
|
||||
}
|
||||
|
||||
type RenderedStoppedRule struct {
|
||||
Action string `yaml:"action" json:"action"`
|
||||
Source string `yaml:"source,omitempty" json:"source,omitempty"`
|
||||
Dest string `yaml:"dest,omitempty" json:"dest,omitempty"`
|
||||
Proto string `yaml:"proto,omitempty" json:"proto,omitempty"`
|
||||
DPort []string `yaml:"dport,omitempty" json:"dport,omitempty"`
|
||||
SPort []string `yaml:"sport,omitempty" json:"sport,omitempty"`
|
||||
Comment string `yaml:"comment,omitempty" json:"comment,omitempty"`
|
||||
}
|
||||
|
||||
type RenderedProxy struct {
|
||||
Address string `yaml:"address" json:"address"`
|
||||
Interface string `yaml:"interface,omitempty" json:"interface,omitempty"`
|
||||
External string `yaml:"external" json:"external"`
|
||||
HaveRoute bool `yaml:"haveroute,omitempty" json:"haveroute,omitempty"`
|
||||
Persistent bool `yaml:"persistent,omitempty" json:"persistent,omitempty"`
|
||||
Comment string `yaml:"comment,omitempty" json:"comment,omitempty"`
|
||||
}
|
||||
|
||||
type RenderedArpRule struct {
|
||||
Action string `yaml:"action" json:"action"`
|
||||
ActionAddress string `yaml:"action_address,omitempty" json:"action_address,omitempty"`
|
||||
ActionMAC string `yaml:"action_mac,omitempty" json:"action_mac,omitempty"`
|
||||
Source string `yaml:"source,omitempty" json:"source,omitempty"`
|
||||
Dest string `yaml:"dest,omitempty" json:"dest,omitempty"`
|
||||
Opcode int `yaml:"opcode,omitempty" json:"opcode,omitempty"`
|
||||
Comment string `yaml:"comment,omitempty" json:"comment,omitempty"`
|
||||
}
|
||||
|
||||
type RenderedMaclist struct {
|
||||
Action string `yaml:"action" json:"action"`
|
||||
Interface string `yaml:"interface" json:"interface"`
|
||||
MAC string `yaml:"mac,omitempty" json:"mac,omitempty"`
|
||||
Addresses []string `yaml:"addresses,omitempty" json:"addresses,omitempty"`
|
||||
Log string `yaml:"log,omitempty" json:"log,omitempty"`
|
||||
Comment string `yaml:"comment,omitempty" json:"comment,omitempty"`
|
||||
}
|
||||
|
||||
type RenderedHost struct {
|
||||
|
||||
@@ -106,6 +106,43 @@ func Translate(rc *RenderedConfig) (*config.Config, error) {
|
||||
})
|
||||
}
|
||||
|
||||
for _, t := range rc.Tunnels {
|
||||
cfg.Tunnels = append(cfg.Tunnels, config.Tunnel{
|
||||
Type: t.Type, Zone: t.Zone, Gateways: t.Gateways,
|
||||
GatewayZones: t.GatewayZones, Port: t.Port, Comment: t.Comment,
|
||||
})
|
||||
}
|
||||
for _, r := range rc.StoppedRules {
|
||||
cfg.StoppedRules = append(cfg.StoppedRules, config.StoppedRule{
|
||||
Action: config.StoppedAction(r.Action), Source: r.Source, Dest: r.Dest,
|
||||
Proto: r.Proto, DPort: config.PortSpec(r.DPort), SPort: config.PortSpec(r.SPort), Comment: r.Comment,
|
||||
})
|
||||
}
|
||||
for _, p := range rc.ProxyARP {
|
||||
cfg.ProxyARP = append(cfg.ProxyARP, config.ProxyARP{
|
||||
Address: p.Address, Interface: p.Interface, External: p.External,
|
||||
HaveRoute: p.HaveRoute, Persistent: p.Persistent, Comment: p.Comment,
|
||||
})
|
||||
}
|
||||
for _, p := range rc.ProxyNDP {
|
||||
cfg.ProxyNDP = append(cfg.ProxyNDP, config.ProxyNDP{
|
||||
Address: p.Address, Interface: p.Interface, External: p.External,
|
||||
HaveRoute: p.HaveRoute, Persistent: p.Persistent, Comment: p.Comment,
|
||||
})
|
||||
}
|
||||
for _, a := range rc.ArpRules {
|
||||
cfg.ArpRules = append(cfg.ArpRules, config.ArpRule{
|
||||
Action: config.ArpAction(a.Action), ActionAddress: a.ActionAddress, ActionMAC: a.ActionMAC,
|
||||
Source: a.Source, Dest: a.Dest, Opcode: a.Opcode, Comment: a.Comment,
|
||||
})
|
||||
}
|
||||
for _, m := range rc.Maclist {
|
||||
cfg.Maclist = append(cfg.Maclist, config.MaclistEntry{
|
||||
Action: config.MaclistAction(m.Action), Interface: m.Interface, MAC: m.MAC,
|
||||
Addresses: m.Addresses, Log: m.Log, Comment: m.Comment,
|
||||
})
|
||||
}
|
||||
|
||||
return cfg, nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user