api/v1alpha1/gatewaylbconfiguration_types.go (29 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.
// GatewayLBConfigurationSpec defines the desired state of GatewayLBConfiguration
type GatewayLBConfigurationSpec 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"`
}
// GatewayLBConfigurationStatus defines the observed state of GatewayLBConfiguration
type GatewayLBConfigurationStatus struct {
// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
// Important: Run "make" to regenerate code after modifying this file
// Gateway frontend IP.
FrontendIp string `json:"frontendIp,omitempty"`
// Listening port of the gateway server.
ServerPort int32 `json:"serverPort,omitempty"`
// Egress IP Prefix CIDR used for this gateway configuration.
EgressIpPrefix string `json:"egressIpPrefix,omitempty"`
}
//+kubebuilder:object:root=true
//+kubebuilder:subresource:status
// GatewayLBConfiguration is the Schema for the gatewaylbconfigurations API
type GatewayLBConfiguration struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec GatewayLBConfigurationSpec `json:"spec,omitempty"`
Status *GatewayLBConfigurationStatus `json:"status,omitempty"`
}
//+kubebuilder:object:root=true
// GatewayLBConfigurationList contains a list of GatewayLBConfiguration
type GatewayLBConfigurationList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []GatewayLBConfiguration `json:"items"`
}
func init() {
SchemeBuilder.Register(&GatewayLBConfiguration{}, &GatewayLBConfigurationList{})
}