api/v1alpha1/gatewayvmconfiguration_types.go (33 lines of code) (raw):
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
package v1alpha1
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN!
// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized.
// GatewayVMConfigurationSpec defines the desired state of GatewayVMConfiguration
type GatewayVMConfigurationSpec struct {
// INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
// Important: Run "make" to regenerate code after modifying this file
// Name of the gateway nodepool to apply the gateway configuration.
// +optional
GatewayNodepoolName string `json:"gatewayNodepoolName,omitempty"`
// Profile of the gateway VMSS to apply the gateway configuration.
// +optional
GatewayVmssProfile `json:"gatewayVmssProfile,omitempty"`
// Whether to provision public IP prefixes for outbound.
//+kubebuilder:default=true
ProvisionPublicIps bool `json:"provisionPublicIps"`
// BYO Resource ID of public IP prefix to be used as outbound.
// +optional
PublicIpPrefixId string `json:"publicIpPrefixId,omitempty"`
}
// GatewayVMConfigurationStatus defines the observed state of GatewayVMConfiguration
type GatewayVMConfigurationStatus struct {
// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
// Important: Run "make" to regenerate code after modifying this file
// The egress source IP for traffic using this configuration.
EgressIpPrefix string `json:"egressIpPrefix,omitempty"`
// Gateway VM profile
GatewayVMProfiles []GatewayVMProfile `json:"gatewayVMProfiles,omitempty"`
}
// GatewayVMProfile provides details about gateway VM side configuration.
type GatewayVMProfile struct {
NodeName string `json:"nodeName,omitempty"`
PrimaryIP string `json:"primaryIP,omitempty"`
SecondaryIP string `json:"secondaryIP,omitempty"`
}
//+kubebuilder:object:root=true
//+kubebuilder:subresource:status
// GatewayVMConfiguration is the Schema for the gatewayvmconfigurations API
type GatewayVMConfiguration struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec GatewayVMConfigurationSpec `json:"spec,omitempty"`
Status *GatewayVMConfigurationStatus `json:"status,omitempty"`
}
//+kubebuilder:object:root=true
// GatewayVMConfigurationList contains a list of GatewayVMConfiguration
type GatewayVMConfigurationList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []GatewayVMConfiguration `json:"items"`
}
func init() {
SchemeBuilder.Register(&GatewayVMConfiguration{}, &GatewayVMConfigurationList{})
}