Documentation ¶
Index ¶
- Variables
- type Azure
- func (azure *Azure) CreateEndpoint(request *types.CreateEndpointRequest) (*types.Endpoint, error)
- func (azure *Azure) DeleteEndpoint(ctx context.Context, endpointID string) error
- func (azure *Azure) DeleteSecurityGroup(ctx context.Context, securityGroupID string) error
- func (azure *Azure) FindMySubnetID(metadata *Instance) (string, error)
- func (azure *Azure) GetEndpoint(request *types.CreateEndpointRequest) (*types.Endpoint, error)
- func (azure *Azure) GetMetadata() (types.Metadata, error)
- func (azure *Azure) GetProvider() types.Vendor
- func (azure *Azure) InstanceMetadata() (*Instance, error)
- type AzureJson
- type Compute
- type IPAddress
- type IPv4
- type IPv6
- type Instance
- type Interface
- type Network
- type OsProfile
- type Subnet
Constants ¶
This section is empty.
Variables ¶
View Source
var ( DefaultCredFilePathLinux = "/etc/kubernetes/azure.json" DefaultCredFilePathWindows = "C:\\k\\azure.json" )
Functions ¶
This section is empty.
Types ¶
type Azure ¶
type Azure struct {
// contains filtered or unexported fields
}
func (*Azure) CreateEndpoint ¶
func (*Azure) DeleteEndpoint ¶
1. Delete Endpoint
func (*Azure) DeleteSecurityGroup ¶ added in v0.2.1
func (*Azure) FindMySubnetID ¶ added in v0.1.11
func (*Azure) GetEndpoint ¶ added in v0.1.11
func (*Azure) GetProvider ¶ added in v0.1.11
func (*Azure) InstanceMetadata ¶
InstanceMetadata - get instance metadata
type AzureJson ¶ added in v0.1.19
type AzureJson struct { // The cloud environment identifier. Takes values from https://github.com/Azure/go-autorest/blob/ec5f4903f77ed9927ac95b19ab8e44ada64c1356/autorest/azure/environments.go#L13 Cloud string `json:"cloud,omitempty" yaml:"cloud,omitempty"` // The AAD Tenant ID for the Subscription that the cluster is deployed in TenantID string `json:"tenantId,omitempty" yaml:"tenantId,omitempty"` // The ID of the Azure Subscription that the cluster is deployed in SubscriptionID string `json:"subscriptionId,omitempty" yaml:"subscriptionId,omitempty"` // The ClientID for an AAD application with RBAC access to talk to Azure RM APIs AADClientID string `json:"aadClientId,omitempty" yaml:"aadClientId,omitempty"` // The ClientSecret for an AAD application with RBAC access to talk to Azure RM APIs AADClientSecret string `json:"aadClientSecret,omitempty" yaml:"aadClientSecret,omitempty" datapolicy:"token"` // The path of a client certificate for an AAD application with RBAC access to talk to Azure RM APIs AADClientCertPath string `json:"aadClientCertPath,omitempty" yaml:"aadClientCertPath,omitempty"` // The password of the client certificate for an AAD application with RBAC access to talk to Azure RM APIs AADClientCertPassword string `json:"aadClientCertPassword,omitempty" yaml:"aadClientCertPassword,omitempty" datapolicy:"password"` // Use managed service identity for the virtual machine to access Azure ARM APIs UseManagedIdentityExtension bool `json:"useManagedIdentityExtension,omitempty" yaml:"useManagedIdentityExtension,omitempty"` // UserAssignedIdentityID contains the Client ID of the user assigned MSI which is assigned to the underlying VMs. If empty the user assigned identity is not used. // More details of the user assigned identity can be found at: https://docs.microsoft.com/en-us/azure/active-directory/managed-service-identity/overview // For the user assigned identity specified here to be used, the UseManagedIdentityExtension has to be set to true. UserAssignedIdentityID string `json:"userAssignedIdentityID,omitempty" yaml:"userAssignedIdentityID,omitempty"` // IdentitySystem indicates the identity provider. Relevant only to hybrid clouds (Azure Stack). // Allowed values are 'azure_ad' (default), 'adfs'. IdentitySystem string `json:"identitySystem,omitempty" yaml:"identitySystem,omitempty"` // ResourceManagerEndpoint is the cloud's resource manager endpoint. If set, cloud provider queries this endpoint // in order to generate an autorest.Environment instance instead of using one of the pre-defined Environments. ResourceManagerEndpoint string `json:"resourceManagerEndpoint,omitempty" yaml:"resourceManagerEndpoint,omitempty"` // The AAD Tenant ID for the Subscription that the network resources are deployed in NetworkResourceTenantID string `json:"networkResourceTenantID,omitempty" yaml:"networkResourceTenantID,omitempty"` // The ID of the Azure Subscription that the network resources are deployed in NetworkResourceSubscriptionID string `json:"networkResourceSubscriptionID,omitempty" yaml:"networkResourceSubscriptionID,omitempty"` // The name of the resource group that the cluster is deployed in ResourceGroup string `json:"resourceGroup,omitempty" yaml:"resourceGroup,omitempty"` // The location of the resource group that the cluster is deployed in Location string `json:"location,omitempty" yaml:"location,omitempty"` // The name of site where the cluster will be deployed to that is more granular than the region specified by the "location" field. // Currently only public ip, load balancer and managed disks support this. ExtendedLocationName string `json:"extendedLocationName,omitempty" yaml:"extendedLocationName,omitempty"` // The type of site that is being targeted. // Currently only public ip, load balancer and managed disks support this. ExtendedLocationType string `json:"extendedLocationType,omitempty" yaml:"extendedLocationType,omitempty"` // The name of the VNet that the cluster is deployed in VnetName string `json:"vnetName,omitempty" yaml:"vnetName,omitempty"` // The name of the resource group that the Vnet is deployed in VnetResourceGroup string `json:"vnetResourceGroup,omitempty" yaml:"vnetResourceGroup,omitempty"` // The name of the subnet that the cluster is deployed in SubnetName string `json:"subnetName,omitempty" yaml:"subnetName,omitempty"` // The name of the security group attached to the cluster's subnet SecurityGroupName string `json:"securityGroupName,omitempty" yaml:"securityGroupName,omitempty"` // The name of the resource group that the security group is deployed in SecurityGroupResourceGroup string `json:"securityGroupResourceGroup,omitempty" yaml:"securityGroupResourceGroup,omitempty"` // (Optional in 1.6) The name of the route table attached to the subnet that the cluster is deployed in RouteTableName string `json:"routeTableName,omitempty" yaml:"routeTableName,omitempty"` // The name of the resource group that the RouteTable is deployed in RouteTableResourceGroup string `json:"routeTableResourceGroup,omitempty" yaml:"routeTableResourceGroup,omitempty"` // (Optional) The name of the availability set that should be used as the load balancer backend // If this is set, the Azure cloudprovider will only add nodes from that availability set to the load // balancer backend pool. If this is not set, and multiple agent pools (availability sets) are used, then // the cloudprovider will try to add all nodes to a single backend pool which is forbidden. // In other words, if you use multiple agent pools (availability sets), you MUST set this field. PrimaryAvailabilitySetName string `json:"primaryAvailabilitySetName,omitempty" yaml:"primaryAvailabilitySetName,omitempty"` // The type of azure nodes. Candidate values are: vmss and standard. // If not set, it will be default to standard. VMType string `json:"vmType,omitempty" yaml:"vmType,omitempty"` // The name of the scale set that should be used as the load balancer backend. // If this is set, the Azure cloudprovider will only add nodes from that scale set to the load // balancer backend pool. If this is not set, and multiple agent pools (scale sets) are used, then // the cloudprovider will try to add all nodes to a single backend pool which is forbidden. // In other words, if you use multiple agent pools (scale sets), you MUST set this field. PrimaryScaleSetName string `json:"primaryScaleSetName,omitempty" yaml:"primaryScaleSetName,omitempty"` // Tags determines what tags shall be applied to the shared resources managed by controller manager, which // includes load balancer, security group and route table. The supported format is `a=b,c=d,...`. After updated // this config, the old tags would be replaced by the new ones. Tags string `json:"tags,omitempty" yaml:"tags,omitempty"` // SystemTags determines the tag keys managed by cloud provider. If it is not set, no tags would be deleted if // the `Tags` is changed. However, the old tags would be deleted if they are neither included in `Tags` nor // in `SystemTags` after the update of `Tags`. SystemTags string `json:"systemTags,omitempty" yaml:"systemTags,omitempty"` // Sku of Load Balancer and Public IP. Candidate values are: basic and standard. // If not set, it will be default to basic. LoadBalancerSku string `json:"loadBalancerSku,omitempty" yaml:"loadBalancerSku,omitempty"` // LoadBalancerName determines the specific name of the load balancer user want to use, working with // LoadBalancerResourceGroup LoadBalancerName string `json:"loadBalancerName,omitempty" yaml:"loadBalancerName,omitempty"` // LoadBalancerResourceGroup determines the specific resource group of the load balancer user want to use, working // with LoadBalancerName LoadBalancerResourceGroup string `json:"loadBalancerResourceGroup,omitempty" yaml:"loadBalancerResourceGroup,omitempty"` // PreConfiguredBackendPoolLoadBalancerTypes determines whether the LoadBalancer BackendPool has been preconfigured. // Candidate values are: // "": exactly with today (not pre-configured for any LBs) // "internal": for internal LoadBalancer // "external": for external LoadBalancer // "all": for both internal and external LoadBalancer PreConfiguredBackendPoolLoadBalancerTypes string `json:"preConfiguredBackendPoolLoadBalancerTypes,omitempty" yaml:"preConfiguredBackendPoolLoadBalancerTypes,omitempty"` // DisableAvailabilitySetNodes disables VMAS nodes support when "VMType" is set to "vmss". DisableAvailabilitySetNodes bool `json:"disableAvailabilitySetNodes,omitempty" yaml:"disableAvailabilitySetNodes,omitempty"` // DisableAzureStackCloud disables AzureStackCloud support. It should be used // when setting AzureAuthConfig.Cloud with "AZURESTACKCLOUD" to customize ARM endpoints // while the cluster is not running on AzureStack. DisableAzureStackCloud bool `json:"disableAzureStackCloud,omitempty" yaml:"disableAzureStackCloud,omitempty"` // Enable exponential backoff to manage resource request retries CloudProviderBackoff bool `json:"cloudProviderBackoff,omitempty" yaml:"cloudProviderBackoff,omitempty"` // Use instance metadata service where possible UseInstanceMetadata bool `json:"useInstanceMetadata,omitempty" yaml:"useInstanceMetadata,omitempty"` // EnableMultipleStandardLoadBalancers determines the behavior of the standard load balancer. If set to true // there would be one standard load balancer per VMAS or VMSS, which is similar with the behavior of the basic // load balancer. Users could select the specific standard load balancer for their service by the service // annotation `service.beta.kubernetes.io/azure-load-balancer-mode`, If set to false, the same standard load balancer // would be shared by all services in the cluster. In this case, the mode selection annotation would be ignored. EnableMultipleStandardLoadBalancers bool `json:"enableMultipleStandardLoadBalancers,omitempty" yaml:"enableMultipleStandardLoadBalancers,omitempty"` // NodePoolsWithoutDedicatedSLB stores the VMAS/VMSS names that share the primary standard load balancer instead // of having a dedicated one. This is useful only when EnableMultipleStandardLoadBalancers is set to true. NodePoolsWithoutDedicatedSLB string `json:"nodePoolsWithoutDedicatedSLB,omitempty" yaml:"nodePoolsWithoutDedicatedSLB,omitempty"` // Backoff exponent CloudProviderBackoffExponent float64 `json:"cloudProviderBackoffExponent,omitempty" yaml:"cloudProviderBackoffExponent,omitempty"` // Backoff jitter CloudProviderBackoffJitter float64 `json:"cloudProviderBackoffJitter,omitempty" yaml:"cloudProviderBackoffJitter,omitempty"` // ExcludeMasterFromStandardLB excludes master nodes from standard load balancer. // If not set, it will be default to true. ExcludeMasterFromStandardLB *bool `json:"excludeMasterFromStandardLB,omitempty" yaml:"excludeMasterFromStandardLB,omitempty"` // DisableOutboundSNAT disables the outbound SNAT for public load balancer rules. // It should only be set when loadBalancerSku is standard. If not set, it will be default to false. DisableOutboundSNAT *bool `json:"disableOutboundSNAT,omitempty" yaml:"disableOutboundSNAT,omitempty"` // Maximum allowed LoadBalancer Rule Count is the limit enforced by Azure Load balancer MaximumLoadBalancerRuleCount int `json:"maximumLoadBalancerRuleCount,omitempty" yaml:"maximumLoadBalancerRuleCount,omitempty"` // Backoff retry limit CloudProviderBackoffRetries int `json:"cloudProviderBackoffRetries,omitempty" yaml:"cloudProviderBackoffRetries,omitempty"` // Backoff duration CloudProviderBackoffDuration int `json:"cloudProviderBackoffDuration,omitempty" yaml:"cloudProviderBackoffDuration,omitempty"` // AvailabilitySetNodesCacheTTLInSeconds sets the Cache TTL for availabilitySetNodesCache // if not set, will use default value AvailabilitySetNodesCacheTTLInSeconds int `json:"availabilitySetNodesCacheTTLInSeconds,omitempty" yaml:"availabilitySetNodesCacheTTLInSeconds,omitempty"` // VmssCacheTTLInSeconds sets the cache TTL for VMSS VmssCacheTTLInSeconds int `json:"vmssCacheTTLInSeconds,omitempty" yaml:"vmssCacheTTLInSeconds,omitempty"` // VmssVirtualMachinesCacheTTLInSeconds sets the cache TTL for vmssVirtualMachines VmssVirtualMachinesCacheTTLInSeconds int `json:"vmssVirtualMachinesCacheTTLInSeconds,omitempty" yaml:"vmssVirtualMachinesCacheTTLInSeconds,omitempty"` // VmCacheTTLInSeconds sets the cache TTL for vm VMCacheTTLInSeconds int `json:"vmCacheTTLInSeconds,omitempty" yaml:"vmCacheTTLInSeconds,omitempty"` // LoadBalancerCacheTTLInSeconds sets the cache TTL for load balancer LoadBalancerCacheTTLInSeconds int `json:"loadBalancerCacheTTLInSeconds,omitempty" yaml:"loadBalancerCacheTTLInSeconds,omitempty"` // NsgCacheTTLInSeconds sets the cache TTL for network security group NsgCacheTTLInSeconds int `json:"nsgCacheTTLInSeconds,omitempty" yaml:"nsgCacheTTLInSeconds,omitempty"` // RouteTableCacheTTLInSeconds sets the cache TTL for route table RouteTableCacheTTLInSeconds int `json:"routeTableCacheTTLInSeconds,omitempty" yaml:"routeTableCacheTTLInSeconds,omitempty"` // AvailabilitySetsCacheTTLInSeconds sets the cache TTL for VMAS AvailabilitySetsCacheTTLInSeconds int `json:"availabilitySetsCacheTTLInSeconds,omitempty" yaml:"availabilitySetsCacheTTLInSeconds,omitempty"` // RouteUpdateWaitingInSeconds is the delay time for waiting route updates to take effect. This waiting delay is added // because the routes are not taken effect when the async route updating operation returns success. Default is 30 seconds. RouteUpdateWaitingInSeconds int `json:"routeUpdateWaitingInSeconds,omitempty" yaml:"routeUpdateWaitingInSeconds,omitempty"` }
Config holds the configuration parsed from the --cloud-config flag All fields are required unless otherwise specified NOTE: Cloud config files should follow the same Kubernetes deprecation policy as flags or CLIs. Config fields should not change behavior in incompatible ways and should be deprecated for at least 2 release prior to removing. See https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecating-a-flag-or-cli for more details.
type Compute ¶
type Compute struct { AzEnvironment string `json:"azEnvironment"` IsHostCompatibilityLayerVM string `json:"isHostCompatibilityLayerVm"` LicenseType string `json:"licenseType,omitempty"` Location string `json:"location"` Name string `json:"name"` Offer string `json:"offer"` OsProfile OsProfile `json:"osProfile"` OsType string `json:"osType"` PlacementGroupID string `json:"placementGroupId"` // plan // platformUpdateDomain // platformFaultDomain // provider // publicKeys // publisher ResourceGroupName string `json:"resourceGroupName"` ResourceID string `json:"resourceId"` Sku string `json:"sku"` // securityProfile // storageProfile SubscriptionID uuid.UUID `json:"subscriptionId"` Tags string `json:"tags"` // tagsList Version string `json:"version"` VMID uuid.UUID `json:"vmId"` VMScaleSetName string `json:"vmScaleSetName"` VMSize string `json:"vmSize"` Zone string `json:"zone"` }
Compute - describe Azure compute element
type IPAddress ¶
type IPAddress struct { PrivateIPAddress string `json:"privateIpAddress"` PublicIPAddress string `json:"publicIpAddress"` }
IPAddress - IP address configuration
type Interface ¶
type Interface struct { IPv4 IPv4 `json:"ipv4"` IPv6 IPv6 `json:"ipv6"` MacAddress string `json:"macAddress"` }
Interface description
Click to show internal directories.
Click to hide internal directories.