Files
truecharts/clustertool/pkg/charts/valuesYaml/addonValues.go
T
2024-10-19 15:18:05 +02:00

61 lines
4.0 KiB
Go

package valuesYaml
// Addons represents the schema for the 'addons' section.
type Addons struct {
Codeserver Codeserver `yaml:"codeserver,omitempty" schema:"additional_attrs:true,type:dict"`
Netshoot Netshoot `yaml:"netshoot,omitempty" schema:"additional_attrs:true,type:dict"`
VPN VPN `yaml:"vpn,omitempty" schema:"additional_attrs:true,type:dict"`
}
// Codeserver represents the schema for the 'codeserver' addon.
type Codeserver struct {
Enabled bool `yaml:"enabled" schema:"type:boolean,default:false,show_subquestions_if:true"`
Service ServiceConfiguration `yaml:"service,omitempty" schema:"additional_attrs:true,type:dict"`
Ingress IngressConfiguration `yaml:"ingress,omitempty" schema:"additional_attrs:true,type:dict"`
EnvList []EnvList `yaml:"envList,omitempty" schema:"type:list,default:[],items:type:dict,show_if:[[type,!=,disabled]]"`
}
// Netshoot represents the schema for the 'netshoot' addon.
type Netshoot struct {
Enabled bool `yaml:"enabled" schema:"type:boolean,default:false,show_subquestions_if:true"`
EnvList []EnvList `yaml:"envList,omitempty" schema:"type:list,default:[],items:type:dict,show_if:[['type','!=','disabled']]"`
}
// VPN represents the schema for the 'vpn' addon.
type VPN struct {
Type string `yaml:"type,omitempty" schema:"type:string,default:disabled,enum:,disabled,gluetun,tailscale,openvpn,wireguard"`
OpenVPN OpenVPNSettings `yaml:"openvpn,omitempty" schema:"additional_attrs:true,type:dict,show_if:[[type,=,openvpn]]"`
Tailscale TailscaleSettings `yaml:"tailscale,omitempty" schema:"additional_attrs:true,type:dict,show_if:[[type,=,tailscale]]"`
KillSwitch bool `yaml:"killSwitch" schema:"type:boolean,show_if:[[type,!=,disabled]],default:true"`
ExcludedNetworksIPv4 []ExcludedNetwork `yaml:"excludedNetworks_IPv4,omitempty" schema:"type:list,default:[],items:type:dict,show_if:[[type,!=,disabled]]"`
ExcludedNetworksIPv6 []ExcludedNetwork `yaml:"excludedNetworks_IPv6,omitempty" schema:"type:list,default:[],items:type:dict,show_if:[[type,!=,disabled]]"`
ConfigFile string `yaml:"configFile,omitempty" schema:"type:string,show_if:[[type,!=,disabled]]"`
EnvList []EnvList `yaml:"envList,omitempty" schema:"type:list,default:[],items:type:dict,show_if:[['type','!=','disabled']]"`
}
// OpenVPNSettings represents the schema for OpenVPN settings.
type OpenVPNSettings struct {
Username string `yaml:"username,omitempty" schema:"type:string,default:''"`
Password string `yaml:"password,omitempty" schema:"type:string,show_if:[[username,!=,]],default:''"`
}
// TailscaleSettings represents the schema for Tailscale settings.
type TailscaleSettings struct {
AuthKey string `yaml:"authkey,omitempty" schema:"type:string,private:true,default:''"`
AuthOnce bool `yaml:"auth_once,omitempty" schema:"type:boolean,default:true"`
AcceptDNS bool `yaml:"accept_dns,omitempty" schema:"type:boolean,default:false"`
Userspace bool `yaml:"userspace,omitempty" schema:"type:boolean,default:false"`
Routes string `yaml:"routes,omitempty" schema:"type:string,default:''"`
DestIP string `yaml:"dest_ip,omitempty" schema:"type:string,default:''"`
Sock5Server string `yaml:"sock5_server,omitempty" schema:"type:string,default:''"`
OutboundHTTPProxyListen string `yaml:"outbound_http_proxy_listen,omitempty" schema:"type:string,default:''"`
ExtraArgs string `yaml:"extra_args,omitempty" schema:"type:string,default:''"`
DaemonExtraArgs string `yaml:"daemon_extra_args,omitempty" schema:"type:string,default:''"`
}
// ExcludedNetwork represents the schema for an excluded network in the killswitch.
type ExcludedNetwork struct {
NetworkV4 string `yaml:"networkv4,omitempty" schema:"type:string,required:true"`
NetworkV6 string `yaml:"networkv6,omitempty" schema:"type:string,required:true"`
}