Documentation ¶
Index ¶
- func New(scope ManagedClusterScope) *aso.Service[*asocontainerservicev1.ManagedCluster, ManagedClusterScope]
- type AADProfile
- type APIServerAccessProfile
- type AddonProfile
- type AutoScalerProfile
- type HTTPProxyConfig
- type LoadBalancerProfile
- type ManagedClusterScope
- type ManagedClusterSpec
- func (s *ManagedClusterSpec) GetAdditionalTags() infrav1.Tags
- func (*ManagedClusterSpec) GetDesiredTags(resource *asocontainerservicev1.ManagedCluster) infrav1.Tags
- func (s *ManagedClusterSpec) GetLoadBalancerProfile() (loadBalancerProfile *asocontainerservicev1.ManagedClusterLoadBalancerProfile)
- func (s *ManagedClusterSpec) Parameters(ctx context.Context, existing *asocontainerservicev1.ManagedCluster) (params *asocontainerservicev1.ManagedCluster, err error)
- func (s *ManagedClusterSpec) ResourceRef() *asocontainerservicev1.ManagedCluster
- func (*ManagedClusterSpec) SetTags(resource *asocontainerservicev1.ManagedCluster, tags infrav1.Tags)
- func (s *ManagedClusterSpec) WasManaged(resource *asocontainerservicev1.ManagedCluster) bool
- type OIDCIssuerProfile
- type SKU
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func New ¶ added in v0.5.2
func New(scope ManagedClusterScope) *aso.Service[*asocontainerservicev1.ManagedCluster, ManagedClusterScope]
New creates a new service.
Types ¶
type AADProfile ¶ added in v1.4.0
type AADProfile struct { // Managed defines whether to enable managed AAD. Managed bool // EnableAzureRBAC defines whether to enable Azure RBAC for Kubernetes authorization. EnableAzureRBAC bool // AdminGroupObjectIDs are the AAD group object IDs that will have admin role of the cluster. AdminGroupObjectIDs []string }
AADProfile is Azure Active Directory configuration to integrate with AKS, for aad authentication.
type APIServerAccessProfile ¶ added in v1.4.0
type APIServerAccessProfile struct { // AuthorizedIPRanges are the authorized IP Ranges to kubernetes API server. AuthorizedIPRanges []string // EnablePrivateCluster defines hether to create the cluster as a private cluster or not. EnablePrivateCluster *bool // PrivateDNSZone is the private dns zone for private clusters. PrivateDNSZone *string // EnablePrivateClusterPublicFQDN defines whether to create additional public FQDN for private cluster or not. EnablePrivateClusterPublicFQDN *bool }
APIServerAccessProfile is the access profile for AKS API server.
type AddonProfile ¶ added in v1.4.0
AddonProfile is the profile of a managed cluster add-on.
type AutoScalerProfile ¶ added in v1.7.0
type AutoScalerProfile struct { // BalanceSimilarNodeGroups - Valid values are 'true' and 'false' BalanceSimilarNodeGroups *string // Expander - If not specified, the default is 'random'. See [expanders](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#what-are-expanders) for more information. Expander *string // MaxEmptyBulkDelete - The default is 10. MaxEmptyBulkDelete *string // MaxGracefulTerminationSec - The default is 600. MaxGracefulTerminationSec *string // MaxNodeProvisionTime - The default is '15m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported. MaxNodeProvisionTime *string // MaxTotalUnreadyPercentage - The default is 45. The maximum is 100 and the minimum is 0. MaxTotalUnreadyPercentage *string // NewPodScaleUpDelay - For scenarios like burst/batch scale where you don't want CA to act before the kubernetes scheduler could schedule all the pods, you can tell CA to ignore unscheduled pods before they're a certain age. The default is '0s'. Values must be an integer followed by a unit ('s' for seconds, 'm' for minutes, 'h' for hours, etc). NewPodScaleUpDelay *string // OkTotalUnreadyCount - This must be an integer. The default is 3. OkTotalUnreadyCount *string // ScanInterval - The default is '10s'. Values must be an integer number of seconds. ScanInterval *string // ScaleDownDelayAfterAdd - The default is '10m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported. ScaleDownDelayAfterAdd *string // ScaleDownDelayAfterDelete - The default is the scan-interval. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported. ScaleDownDelayAfterDelete *string // ScaleDownDelayAfterFailure - The default is '3m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported. ScaleDownDelayAfterFailure *string // ScaleDownUnneededTime - The default is '10m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported. ScaleDownUnneededTime *string // ScaleDownUnreadyTime - The default is '20m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported. ScaleDownUnreadyTime *string // ScaleDownUtilizationThreshold - The default is '0.5'. ScaleDownUtilizationThreshold *string // SkipNodesWithLocalStorage - The default is true. SkipNodesWithLocalStorage *string // SkipNodesWithSystemPods - The default is true. SkipNodesWithSystemPods *string }
AutoScalerProfile parameters to be applied to the cluster-autoscaler when enabled.
type HTTPProxyConfig ¶ added in v1.11.0
type HTTPProxyConfig struct { // HTTPProxy is the HTTP proxy server endpoint to use. HTTPProxy *string `json:"httpProxy,omitempty"` // HTTPSProxy is the HTTPS proxy server endpoint to use. HTTPSProxy *string `json:"httpsProxy,omitempty"` // NoProxy is the endpoints that should not go through proxy. NoProxy []string `json:"noProxy,omitempty"` // TrustedCA is the Alternative CA cert to use for connecting to proxy servers. TrustedCA *string `json:"trustedCa,omitempty"` }
HTTPProxyConfig is the HTTP proxy configuration for the cluster.
type LoadBalancerProfile ¶ added in v1.4.0
type LoadBalancerProfile struct { // ManagedOutboundIPs are the desired managed outbound IPs for the cluster load balancer. ManagedOutboundIPs *int // OutboundIPPrefixes are the desired outbound IP Prefix resources for the cluster load balancer. OutboundIPPrefixes []string // OutboundIPs are the desired outbound IP resources for the cluster load balancer. OutboundIPs []string // AllocatedOutboundPorts are the desired number of allocated SNAT ports per VM. Allowed values must be in the range of 0 to 64000 (inclusive). The default value is 0 which results in Azure dynamically allocating ports. AllocatedOutboundPorts *int // IdleTimeoutInMinutes are the desired outbound flow idle timeout in minutes. Allowed values must be in the range of 4 to 120 (inclusive). The default value is 30 minutes. IdleTimeoutInMinutes *int }
LoadBalancerProfile is the profile of the cluster load balancer.
type ManagedClusterScope ¶ added in v0.5.2
type ManagedClusterScope interface { aso.Scope azure.Authorizer ManagedClusterSpec() azure.ASOResourceSpecGetter[*asocontainerservicev1.ManagedCluster] SetControlPlaneEndpoint(clusterv1.APIEndpoint) MakeEmptyKubeConfigSecret() corev1.Secret GetAdminKubeconfigData() []byte SetAdminKubeconfigData([]byte) GetUserKubeconfigData() []byte SetUserKubeconfigData([]byte) IsAADEnabled() bool AreLocalAccountsDisabled() bool SetOIDCIssuerProfileStatus(*infrav1.OIDCIssuerProfileStatus) MakeClusterCA() *corev1.Secret StoreClusterInfo(context.Context, []byte) error }
ManagedClusterScope defines the scope interface for a managed cluster.
type ManagedClusterSpec ¶ added in v1.4.0
type ManagedClusterSpec struct { // Name is the name of this AKS Cluster. Name string // Namespace is the namespace of the ASO ManagedCluster. Namespace string // ResourceGroup is the name of the Azure resource group for this AKS Cluster. ResourceGroup string // NodeResourceGroup is the name of the Azure resource group containing IaaS VMs. NodeResourceGroup string // ClusterName is the name of the owning Cluster API Cluster resource. ClusterName string // VnetSubnetID is the Azure Resource ID for the subnet which should contain nodes. VnetSubnetID string // Location is a string matching one of the canonical Azure region names. Examples: "westus2", "eastus". Location string // Tags is a set of tags to add to this cluster. Tags map[string]string // Version defines the desired Kubernetes version. Version string // LoadBalancerSKU for the managed cluster. Possible values include: 'Standard', 'Basic'. Defaults to Standard. LoadBalancerSKU string // NetworkPlugin used for building Kubernetes network. Possible values include: 'azure', 'kubenet'. Defaults to azure. NetworkPlugin string // NetworkPluginMode is the mode the network plugin should use. NetworkPluginMode *infrav1.NetworkPluginMode // NetworkPolicy used for building Kubernetes network. Possible values include: 'calico', 'azure'. NetworkPolicy string // OutboundType used for building Kubernetes network. Possible values include: 'loadBalancer', 'managedNATGateway', 'userAssignedNATGateway', 'userDefinedRouting'. OutboundType *infrav1.ManagedControlPlaneOutboundType // SSHPublicKey is a string literal containing an ssh public key. Will autogenerate and discard if not provided. SSHPublicKey string // GetAllAgentPools is a function that returns the list of agent pool specifications in this cluster. GetAllAgentPools func() ([]azure.ASOResourceSpecGetter[*asocontainerservicev1.ManagedClustersAgentPool], error) // PodCIDR is the CIDR block for IP addresses distributed to pods PodCIDR string // ServiceCIDR is the CIDR block for IP addresses distributed to services ServiceCIDR string // DNSServiceIP is an IP address assigned to the Kubernetes DNS service DNSServiceIP *string // AddonProfiles are the profiles of managed cluster add-on. AddonProfiles []AddonProfile // AADProfile is Azure Active Directory configuration to integrate with AKS, for aad authentication. AADProfile *AADProfile // SKU is the SKU of the AKS to be provisioned. SKU *SKU // LoadBalancerProfile is the profile of the cluster load balancer. LoadBalancerProfile *LoadBalancerProfile // APIServerAccessProfile is the access profile for AKS API server. APIServerAccessProfile *APIServerAccessProfile // AutoScalerProfile is the parameters to be applied to the cluster-autoscaler when enabled. AutoScalerProfile *AutoScalerProfile // Identity is the AKS control plane Identity configuration Identity *infrav1.Identity // KubeletUserAssignedIdentity is the user-assigned identity for kubelet to authenticate to ACR. KubeletUserAssignedIdentity string // HTTPProxyConfig is the HTTP proxy configuration for the cluster. HTTPProxyConfig *HTTPProxyConfig // OIDCIssuerProfile is the OIDC issuer profile of the Managed Cluster. OIDCIssuerProfile *OIDCIssuerProfile // DNSPrefix allows the user to customize dns prefix. DNSPrefix *string // DisableLocalAccounts disables getting static credentials for this cluster when set. Expected to only be used for AAD clusters. DisableLocalAccounts *bool }
ManagedClusterSpec contains properties to create a managed cluster.
func (*ManagedClusterSpec) GetAdditionalTags ¶ added in v1.12.0
func (s *ManagedClusterSpec) GetAdditionalTags() infrav1.Tags
GetAdditionalTags implements aso.TagsGetterSetter.
func (*ManagedClusterSpec) GetDesiredTags ¶ added in v1.12.0
func (*ManagedClusterSpec) GetDesiredTags(resource *asocontainerservicev1.ManagedCluster) infrav1.Tags
GetDesiredTags implements aso.TagsGetterSetter.
func (*ManagedClusterSpec) GetLoadBalancerProfile ¶ added in v1.10.0
func (s *ManagedClusterSpec) GetLoadBalancerProfile() (loadBalancerProfile *asocontainerservicev1.ManagedClusterLoadBalancerProfile)
GetLoadBalancerProfile returns an asocontainerservicev1.ManagedClusterLoadBalancerProfile from the information present in ManagedClusterSpec.LoadBalancerProfile.
func (*ManagedClusterSpec) Parameters ¶ added in v1.4.0
func (s *ManagedClusterSpec) Parameters(ctx context.Context, existing *asocontainerservicev1.ManagedCluster) (params *asocontainerservicev1.ManagedCluster, err error)
Parameters returns the parameters for the managed clusters.
func (*ManagedClusterSpec) ResourceRef ¶ added in v1.12.0
func (s *ManagedClusterSpec) ResourceRef() *asocontainerservicev1.ManagedCluster
ResourceRef implements azure.ASOResourceSpecGetter.
func (*ManagedClusterSpec) SetTags ¶ added in v1.12.0
func (*ManagedClusterSpec) SetTags(resource *asocontainerservicev1.ManagedCluster, tags infrav1.Tags)
SetTags implements aso.TagsGetterSetter.
func (*ManagedClusterSpec) WasManaged ¶ added in v1.12.0
func (s *ManagedClusterSpec) WasManaged(resource *asocontainerservicev1.ManagedCluster) bool
WasManaged implements azure.ASOResourceSpecGetter.
type OIDCIssuerProfile ¶ added in v1.11.0
type OIDCIssuerProfile struct { // Enabled is whether the OIDC issuer is enabled. Enabled *bool }
OIDCIssuerProfile is the OIDC issuer profile of the Managed Cluster.