Documentation
¶
Overview ¶
Package v1 contains API Schema definitions for the kubewg v1 API group
Index ¶
- Variables
- type ExternalVPNSpec
- type FirewallRuleSpec
- type FirewallRulesSpec
- type FirewallSpec
- type InitSpec
- type NameSelectorSpec
- type Network
- type NetworkList
- type NetworkSpec
- type NetworkStatus
- type Peer
- type PeerList
- type PeerSpec
- type PeerStatus
- type Protocol
- type Router
- type RouterList
- type RouterSpec
- type RouterStatus
- type WireguardConnectionSpec
- type WireguardCredentialsSpec
- type WireguardKey
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "kubewg.net", Version: "v1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type ExternalVPNSpec ¶
type ExternalVPNSpec struct { // Connection is the Wireguard connection configuration Connection WireguardConnectionSpec `json:"connection"` // Credentials are the external VPN Wireguard credentials Credentials WireguardCredentialsSpec `json:"credentials"` }
ExternalVPNSpec defines the an external VPN connection
func (*ExternalVPNSpec) DeepCopy ¶
func (in *ExternalVPNSpec) DeepCopy() *ExternalVPNSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalVPNSpec.
func (*ExternalVPNSpec) DeepCopyInto ¶
func (in *ExternalVPNSpec) DeepCopyInto(out *ExternalVPNSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FirewallRuleSpec ¶
type FirewallRuleSpec struct { // Protocol is the network protocol // If not specified, the default protocol of ALL is used //+optional Protocol Protocol `json:"protocol"` // StartPort is the start port for a range of ports // If the end port is not specified, the default end port is the same as the start port StartPort uint16 `json:"startPort"` // EndPort is the end port for a range of ports // If not specified, the default end port is the same as the start port //+optional EndPort uint16 `json:"endPort,omitempty"` // IP is the IP address of the subject // Either an IP or CIDR must be specified //+optional IP string `json:"ip,omitempty"` // CIDR is the CIDR block of the subject // Either an IP or CIDR must be specified //+optional CIDR string `json:"cidr,omitempty"` }
FirewallRuleSpec defines a firewall rule
func (*FirewallRuleSpec) DeepCopy ¶
func (in *FirewallRuleSpec) DeepCopy() *FirewallRuleSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirewallRuleSpec.
func (*FirewallRuleSpec) DeepCopyInto ¶
func (in *FirewallRuleSpec) DeepCopyInto(out *FirewallRuleSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FirewallRulesSpec ¶
type FirewallRulesSpec struct { // Allow is a list of firewall rules to allow traffic //+optional Allow []FirewallRuleSpec `json:"allow,omitempty"` // Block is a list of firewall rules to block traffic //+optional Block []FirewallRuleSpec `json:"block,omitempty"` }
FirewallRulesSpec defines a list of firewall rules
func (*FirewallRulesSpec) DeepCopy ¶
func (in *FirewallRulesSpec) DeepCopy() *FirewallRulesSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirewallRulesSpec.
func (*FirewallRulesSpec) DeepCopyInto ¶
func (in *FirewallRulesSpec) DeepCopyInto(out *FirewallRulesSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FirewallSpec ¶
type FirewallSpec struct { // Enabled is a flag to enable the firewall. // The default firewall configuration is to block all non-VPN traffic, aka a kill switch. //+optional Enabled bool `json:"enabled"` // AllowWorkloadNetworkChanges is a flag to allow pods that could potentially make changes to the workload network // This is disabled by default and will reject any containers with the NET_RAW or NET_ADMIN capabilities as // these capabilities can be used to make changes to the network. Enabling this flag will allow containers with // these capabilities to be deployed. //+optional AllowWorkloadNetworkChanges bool `json:"allowWorkloadNetworkChanges,omitempty"` // Egress is a list of egress firewall rules // These rules are applied to traffic leaving the container // The default egress rules are to block all RFC1918 IPs and allow all other traffic //+optional Egress []FirewallRulesSpec `json:"egress,omitempty"` // Ingress is a list of ingress firewall rules // These rules are applied to traffic entering the container // The default ingress rules are to block all traffic //+optional Ingress []FirewallRulesSpec `json:"ingress,omitempty"` }
FirewallSpec defines the firewall configuration for a container
func (*FirewallSpec) DeepCopy ¶
func (in *FirewallSpec) DeepCopy() *FirewallSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirewallSpec.
func (*FirewallSpec) DeepCopyInto ¶
func (in *FirewallSpec) DeepCopyInto(out *FirewallSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InitSpec ¶
type InitSpec struct { // Image is the container image // If not specified, the default image of ghcr.io/usa-reddragon/wireguard:main is used //+optional Image string `json:"image,omitempty"` }
InitSpec defines the initial container configuration
func (*InitSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InitSpec.
func (*InitSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NameSelectorSpec ¶
type NameSelectorSpec struct { // Name is the name of the resource Name string `json:"name"` }
NameSelectorSpec defines a name selector for a resource
func (*NameSelectorSpec) DeepCopy ¶
func (in *NameSelectorSpec) DeepCopy() *NameSelectorSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NameSelectorSpec.
func (*NameSelectorSpec) DeepCopyInto ¶
func (in *NameSelectorSpec) DeepCopyInto(out *NameSelectorSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Network ¶
type Network struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec NetworkSpec `json:"spec,omitempty"` Status NetworkStatus `json:"status,omitempty"` }
Network is the Schema for the networks API
func (*Network) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Network.
func (*Network) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Network) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type NetworkList ¶
type NetworkList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Network `json:"items"` }
NetworkList contains a list of Network
func (*NetworkList) DeepCopy ¶
func (in *NetworkList) DeepCopy() *NetworkList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkList.
func (*NetworkList) DeepCopyInto ¶
func (in *NetworkList) DeepCopyInto(out *NetworkList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NetworkList) DeepCopyObject ¶
func (in *NetworkList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type NetworkSpec ¶
type NetworkSpec struct { // DNS is the optional DNS configuration //+optional DNS corev1.PodDNSConfig `json:"dns"` }
NetworkSpec defines the desired state of Network
func (*NetworkSpec) DeepCopy ¶
func (in *NetworkSpec) DeepCopy() *NetworkSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkSpec.
func (*NetworkSpec) DeepCopyInto ¶
func (in *NetworkSpec) DeepCopyInto(out *NetworkSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NetworkStatus ¶
type NetworkStatus struct { // Ready is a flag to indicate if the network is ready Ready bool `json:"ready"` // ID is the ID of the network ID string `json:"id,omitempty"` // Status is the status of the network Status uint8 `json:"status,omitempty"` }
NetworkStatus defines the observed state of Network
func (*NetworkStatus) DeepCopy ¶
func (in *NetworkStatus) DeepCopy() *NetworkStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkStatus.
func (*NetworkStatus) DeepCopyInto ¶
func (in *NetworkStatus) DeepCopyInto(out *NetworkStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Peer ¶
type Peer struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec PeerSpec `json:"spec,omitempty"` Status PeerStatus `json:"status,omitempty"` }
Peer is the Schema for the peers API
func (*Peer) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Peer.
func (*Peer) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Peer) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PeerList ¶
type PeerList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Peer `json:"items"` }
PeerList contains a list of Peer
func (*PeerList) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeerList.
func (*PeerList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PeerList) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PeerSpec ¶
type PeerSpec struct { // Network is the selector for the network this peer is a part of Network NameSelectorSpec `json:"network"` // Pods is the selector for the pods that are peers in the network Pods metav1.LabelSelector `json:"pods"` // Init is the optional initial container configuration that is applied to the peer //+optional Init InitSpec `json:"init,omitempty"` // Firewall is the optional firewall configuration that is applied to the peer //+optional Firewall FirewallSpec `json:"firewall,omitempty"` }
PeerSpec defines the desired state of Peer
func (*PeerSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeerSpec.
func (*PeerSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PeerStatus ¶
type PeerStatus struct { // Ready is a flag to indicate if the peer is ready Ready bool `json:"ready"` // ID is the ID of the peer ID string `json:"id,omitempty"` // Status is the status of the peer Status uint8 `json:"status,omitempty"` }
PeerStatus defines the observed state of Peer
func (*PeerStatus) DeepCopy ¶
func (in *PeerStatus) DeepCopy() *PeerStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeerStatus.
func (*PeerStatus) DeepCopyInto ¶
func (in *PeerStatus) DeepCopyInto(out *PeerStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Router ¶
type Router struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec RouterSpec `json:"spec,omitempty"` Status RouterStatus `json:"status,omitempty"` }
Router is the Schema for the routers API
func (*Router) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Router.
func (*Router) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Router) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type RouterList ¶
type RouterList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Router `json:"items"` }
RouterList contains a list of Router
func (*RouterList) DeepCopy ¶
func (in *RouterList) DeepCopy() *RouterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterList.
func (*RouterList) DeepCopyInto ¶
func (in *RouterList) DeepCopyInto(out *RouterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RouterList) DeepCopyObject ¶
func (in *RouterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type RouterSpec ¶
type RouterSpec struct { // Replicas is the number of router replicas // This defaults to 0, the same as disabling the router //+optional Replicas int32 `json:"replicas,omitempty"` // Network is the selector for the network this peer is a part of Network NameSelectorSpec `json:"network"` // Image is the container image for the router // This defaults to ghcr.io/usa-reddragon/wireguard:main Image string `json:"image,omitempty"` // DNS is the optional DNS configuration // This overrides the default DNS configuration from the Network //+optional DNS corev1.PodDNSConfig `json:"dns"` // ExternalVPN is the optional external VPN configuration // If specified, the router will route traffic through the external VPN // Paired with enabling the firewall, this can be used to create a VPN kill-switched // connection to an external VPN provider from all pods in the network //+optional ExternalVPN ExternalVPNSpec `json:"externalVPN,omitempty"` // Firewall is the optional firewall configuration that is applied to the peer //+optional Firewall FirewallSpec `json:"firewall,omitempty"` }
RouterSpec defines the desired state of Router
func (*RouterSpec) DeepCopy ¶
func (in *RouterSpec) DeepCopy() *RouterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterSpec.
func (*RouterSpec) DeepCopyInto ¶
func (in *RouterSpec) DeepCopyInto(out *RouterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RouterStatus ¶
type RouterStatus struct { // Ready is a flag to indicate if the network is ready Ready bool `json:"ready"` // ID is the ID of the network ID string `json:"id,omitempty"` // Status is the status of the network Status uint8 `json:"status,omitempty"` // Replicas is the number of router replicas Replicas int32 `json:"replicas"` // Selector is the selector for scaling the router pods Selector string `json:"selector"` }
RouterStatus defines the observed state of Router
func (*RouterStatus) DeepCopy ¶
func (in *RouterStatus) DeepCopy() *RouterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterStatus.
func (*RouterStatus) DeepCopyInto ¶
func (in *RouterStatus) DeepCopyInto(out *RouterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WireguardConnectionSpec ¶
type WireguardConnectionSpec struct { // Address is the IP address or hostname of the Wireguard server //+optional Address string `json:"address,omitempty"` // Port is the port of the Wireguard server //+optional Port uint16 `json:"port,omitempty"` // Secret is the selector for the secret containing the Wireguard connection configuration in the keys "address" and "port" //+optional Secret NameSelectorSpec `json:"secret,omitempty"` }
WireguardConnectionSpec defines a Wireguard connection
func (*WireguardConnectionSpec) DeepCopy ¶
func (in *WireguardConnectionSpec) DeepCopy() *WireguardConnectionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WireguardConnectionSpec.
func (*WireguardConnectionSpec) DeepCopyInto ¶
func (in *WireguardConnectionSpec) DeepCopyInto(out *WireguardConnectionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WireguardCredentialsSpec ¶
type WireguardCredentialsSpec struct { // PrivateKey is the 44-character private key for the Wireguard client in base64 format PrivateKey WireguardKey `json:"privateKey,omitempty"` // PeerPublicKey is the 44-character public key for the peer in base64 format PeerPublicKey WireguardKey `json:"peerPublicKey,omitempty"` //+optional PreSharedKey string `json:"preSharedKey,omitempty"` // Secret is the name of the secret containing the Wireguard credentials in the keys "privateKey", "peerPublicKey", and "preSharedKey" //+optional Secret NameSelectorSpec `json:"secret,omitempty"` }
WireguardCredentialsSpec defines a set of Wireguard credentials
func (*WireguardCredentialsSpec) DeepCopy ¶
func (in *WireguardCredentialsSpec) DeepCopy() *WireguardCredentialsSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WireguardCredentialsSpec.
func (*WireguardCredentialsSpec) DeepCopyInto ¶
func (in *WireguardCredentialsSpec) DeepCopyInto(out *WireguardCredentialsSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WireguardKey ¶
type WireguardKey string
WireguardKey is a 44-character base64-encoded Wireguard key