Documentation
¶
Overview ¶
Package vlabs stores an experimental api model for acs
Index ¶
- Constants
- Variables
- type AADProfile
- type AgentPoolProfile
- func (a *AgentPoolProfile) GetSubnet() string
- func (a *AgentPoolProfile) HasAvailabilityZones() bool
- func (a *AgentPoolProfile) HasDisks() bool
- func (a *AgentPoolProfile) IsAvailabilitySets() bool
- func (a *AgentPoolProfile) IsCoreOS() bool
- func (a *AgentPoolProfile) IsCustomVNET() bool
- func (a *AgentPoolProfile) IsLinux() bool
- func (a *AgentPoolProfile) IsManagedDisks() bool
- func (a *AgentPoolProfile) IsNSeriesSKU() bool
- func (a *AgentPoolProfile) IsRHEL() bool
- func (a *AgentPoolProfile) IsStorageAccount() bool
- func (a *AgentPoolProfile) IsVirtualMachineScaleSets() bool
- func (a *AgentPoolProfile) IsWindows() bool
- func (a *AgentPoolProfile) SetSubnet(subnet string)
- type AgentPoolProfileRole
- type AzProfile
- type BootstrapProfile
- type CertificateProfile
- type ContainerService
- type CustomFile
- type CustomNodesDNS
- type CustomSearchDomain
- type DcosConfig
- type Distro
- type Extension
- type ExtensionProfile
- type FeatureFlags
- type ImageReference
- type KeyVaultCertificate
- type KeyVaultID
- type KeyVaultSecrets
- type KeyvaultSecretRef
- type KubernetesAddon
- type KubernetesConfig
- type KubernetesContainerSpec
- type LinuxProfile
- type MasterProfile
- func (m *MasterProfile) GetSubnet() string
- func (m *MasterProfile) HasAvailabilityZones() bool
- func (m *MasterProfile) IsCoreOS() bool
- func (m *MasterProfile) IsCustomVNET() bool
- func (m *MasterProfile) IsManagedDisks() bool
- func (m *MasterProfile) IsRHEL() bool
- func (m *MasterProfile) IsStorageAccount() bool
- func (m *MasterProfile) IsVirtualMachineScaleSets() bool
- func (m *MasterProfile) SetSubnet(subnet string)
- type OSType
- type OpenShiftConfig
- type OrchestratorProfile
- type OrchestratorVersionProfile
- type OrchestratorVersionProfileList
- type PoolUpgradeProfile
- type PrivateCluster
- type PrivateJumpboxProfile
- type Properties
- func (p *Properties) HasAvailabilityZones() bool
- func (p *Properties) HasWindows() bool
- func (p *Properties) HasZonesForAllAgentPools() bool
- func (p *Properties) IsClusterAllVirtualMachineScaleSets() bool
- func (p *Properties) MastersAndAgentsUseAvailabilityZones() bool
- func (a *Properties) Validate(isUpdate bool) error
- type ProvisioningState
- type PublicKey
- type ResourcePurchasePlan
- type ServicePrincipalProfile
- type UpgradeProfile
- type WindowsProfile
Constants ¶
const ( // DCOS is the string constant for DCOS orchestrator type and defaults to DCOS188 DCOS string = "DCOS" // Swarm is the string constant for the Swarm orchestrator type Swarm string = "Swarm" // Kubernetes is the string constant for the Kubernetes orchestrator type Kubernetes string = "Kubernetes" // SwarmMode is the string constant for the Swarm Mode orchestrator type SwarmMode string = "SwarmMode" // OpenShift is the string constant for the OpenShift orchestrator type OpenShift string = "OpenShift" )
the orchestrators supported by vlabs
const ( // MinAgentCount are the minimum number of agents per agent pool MinAgentCount = 1 // MaxAgentCount are the maximum number of agents per agent pool MaxAgentCount = 100 // MinPort specifies the minimum tcp port to open MinPort = 1 // MaxPort specifies the maximum tcp port to open MaxPort = 65535 // MaxDisks specifies the maximum attached disks to add to the cluster MaxDisks = 4 // MinDiskSizeGB specifies the minimum attached disk size MinDiskSizeGB = 1 // MaxDiskSizeGB specifies the maximum attached disk size MaxDiskSizeGB = 1023 // MinIPAddressCount specifies the minimum number of IP addresses per network interface MinIPAddressCount = 1 // MaxIPAddressCount specifies the maximum number of IP addresses per network interface MaxIPAddressCount = 256 )
validation values
const ( // AvailabilitySet means that the vms are in an availability set AvailabilitySet = "AvailabilitySet" // VirtualMachineScaleSets means that the vms are in a virtual machine scaleset VirtualMachineScaleSets = "VirtualMachineScaleSets" )
Availability profiles
const ( // StorageAccount means that the nodes use raw storage accounts for their os and attached volumes StorageAccount = "StorageAccount" // ManagedDisks means that the nodes use managed disks for their os and attached volumes ManagedDisks = "ManagedDisks" )
storage profiles
const ( // DefaultNetworkPlugin defines the network plugin to use by default DefaultNetworkPlugin = "azure" // DefaultNetworkPluginWindows defines the network plugin to use by default for clusters with Windows agent pools DefaultNetworkPluginWindows = "azure" // DefaultNetworkPolicy defines the network policy to use by default DefaultNetworkPolicy = "" )
vlabs default configuration
const (
// APIVersion is the version of this API
APIVersion = "vlabs"
)
const (
// KubernetesMinMaxPods is the minimum valid value for MaxPods, necessary for running kube-system pods
KubernetesMinMaxPods = 5
)
Kubernetes configuration
Variables ¶
var ( // NetworkPluginValues holds the valid values for network plugin implementation NetworkPluginValues = [...]string{"", "kubenet", "azure", "cilium", "flannel"} // NetworkPolicyValues holds the valid values for a network policy // "azure" and "none" are there for backwards-compatibility NetworkPolicyValues = [...]string{"", "calico", "cilium", "azure", "none"} // ContainerRuntimeValues holds the valid values for container runtimes ContainerRuntimeValues = [...]string{"", "docker", "clear-containers", "kata-containers", "containerd"} )
Functions ¶
This section is empty.
Types ¶
type AADProfile ¶ added in v0.6.0
type AADProfile struct {
// The client AAD application ID.
ClientAppID string `json:"clientAppID,omitempty"`
// The server AAD application ID.
ServerAppID string `json:"serverAppID,omitempty"`
// The AAD tenant ID to use for authentication.
// If not specified, will use the tenant of the deployment subscription.
// Optional
TenantID string `json:"tenantID,omitempty"`
// The Azure Active Directory Group Object ID that will be assigned the
// cluster-admin RBAC role.
// Optional
AdminGroupID string `json:"adminGroupID,omitempty"`
}
AADProfile specifies attributes for AAD integration
type AgentPoolProfile ¶
type AgentPoolProfile struct {
Name string `json:"name" validate:"required"`
Count int `json:"count" validate:"required,min=1,max=100"`
VMSize string `json:"vmSize" validate:"required"`
OSDiskSizeGB int `json:"osDiskSizeGB,omitempty" validate:"min=0,max=1023"`
DNSPrefix string `json:"dnsPrefix,omitempty"`
OSType OSType `json:"osType,omitempty"`
Ports []int `json:"ports,omitempty" validate:"dive,min=1,max=65535"`
AvailabilityProfile string `json:"availabilityProfile"`
ScaleSetPriority string `json:"scaleSetPriority,omitempty" validate:"eq=Regular|eq=Low|len=0"`
ScaleSetEvictionPolicy string `json:"scaleSetEvictionPolicy,omitempty" validate:"eq=Delete|eq=Deallocate|len=0"`
StorageProfile string `json:"storageProfile" validate:"eq=StorageAccount|eq=ManagedDisks|len=0"`
DiskSizesGB []int `json:"diskSizesGB,omitempty" validate:"max=4,dive,min=1,max=1023"`
VnetSubnetID string `json:"vnetSubnetID,omitempty"`
IPAddressCount int `json:"ipAddressCount,omitempty" validate:"min=0,max=256"`
Distro Distro `json:"distro,omitempty"`
KubernetesConfig *KubernetesConfig `json:"kubernetesConfig,omitempty"`
ImageRef *ImageReference `json:"imageReference,omitempty"`
Role AgentPoolProfileRole `json:"role,omitempty"`
AcceleratedNetworkingEnabled *bool `json:"acceleratedNetworkingEnabled,omitempty"`
AcceleratedNetworkingEnabledWindows *bool `json:"acceleratedNetworkingEnabledWindows,omitempty"`
FQDN string `json:"fqdn"`
CustomNodeLabels map[string]string `json:"customNodeLabels,omitempty"`
PreProvisionExtension *Extension `json:"preProvisionExtension"`
Extensions []Extension `json:"extensions"`
SinglePlacementGroup *bool `json:"singlePlacementGroup,omitempty"`
AvailabilityZones []string `json:"availabilityZones,omitempty"`
// contains filtered or unexported fields
}
AgentPoolProfile represents an agent pool definition
func (*AgentPoolProfile) GetSubnet ¶
func (a *AgentPoolProfile) GetSubnet() string
GetSubnet returns the read-only subnet for the agent pool
func (*AgentPoolProfile) HasAvailabilityZones ¶ added in v0.22.0
func (a *AgentPoolProfile) HasAvailabilityZones() bool
HasAvailabilityZones returns true if the agent pool has availability zones
func (*AgentPoolProfile) HasDisks ¶
func (a *AgentPoolProfile) HasDisks() bool
HasDisks returns true if the customer specified disks
func (*AgentPoolProfile) IsAvailabilitySets ¶
func (a *AgentPoolProfile) IsAvailabilitySets() bool
IsAvailabilitySets returns true if the customer specified disks
func (*AgentPoolProfile) IsCoreOS ¶ added in v0.10.0
func (a *AgentPoolProfile) IsCoreOS() bool
IsCoreOS returns true if the agent specified a CoreOS distro
func (*AgentPoolProfile) IsCustomVNET ¶
func (a *AgentPoolProfile) IsCustomVNET() bool
IsCustomVNET returns true if the customer brought their own VNET
func (*AgentPoolProfile) IsLinux ¶
func (a *AgentPoolProfile) IsLinux() bool
IsLinux returns true if the agent pool is linux
func (*AgentPoolProfile) IsManagedDisks ¶
func (a *AgentPoolProfile) IsManagedDisks() bool
IsManagedDisks returns true if the customer specified managed disks
func (*AgentPoolProfile) IsNSeriesSKU ¶ added in v0.18.0
func (a *AgentPoolProfile) IsNSeriesSKU() bool
IsNSeriesSKU returns true if the agent pool contains an N-series (NVIDIA GPU) VM
func (*AgentPoolProfile) IsRHEL ¶ added in v0.7.0
func (a *AgentPoolProfile) IsRHEL() bool
IsRHEL returns true if the agent pool specified a RHEL distro
func (*AgentPoolProfile) IsStorageAccount ¶
func (a *AgentPoolProfile) IsStorageAccount() bool
IsStorageAccount returns true if the customer specified storage account
func (*AgentPoolProfile) IsVirtualMachineScaleSets ¶ added in v0.17.0
func (a *AgentPoolProfile) IsVirtualMachineScaleSets() bool
IsVirtualMachineScaleSets returns true if the agent pool availability profile is VMSS
func (*AgentPoolProfile) IsWindows ¶
func (a *AgentPoolProfile) IsWindows() bool
IsWindows returns true if the agent pool is windows
func (*AgentPoolProfile) SetSubnet ¶
func (a *AgentPoolProfile) SetSubnet(subnet string)
SetSubnet sets the read-only subnet for the agent pool
type AgentPoolProfileRole ¶ added in v0.17.0
type AgentPoolProfileRole string
AgentPoolProfileRole represents an agent role
const ( // AgentPoolProfileRoleEmpty is the empty role AgentPoolProfileRoleEmpty AgentPoolProfileRole = "" // AgentPoolProfileRoleInfra is the infra role AgentPoolProfileRoleInfra AgentPoolProfileRole = "infra" )
type AzProfile ¶ added in v0.17.0
type AzProfile struct {
TenantID string `json:"tenantId,omitempty"`
SubscriptionID string `json:"subscriptionId,omitempty"`
ResourceGroup string `json:"resourceGroup,omitempty"`
Location string `json:"location,omitempty"`
}
AzProfile holds the azure context for where the cluster resides
type BootstrapProfile ¶ added in v0.17.0
type BootstrapProfile struct {
VMSize string `json:"vmSize,omitempty"`
OSDiskSizeGB int `json:"osDiskSizeGB,omitempty"`
OAuthEnabled bool `json:"oauthEnabled,omitempty"`
StaticIP string `json:"staticIP,omitempty"`
Subnet string `json:"subnet,omitempty"`
}
BootstrapProfile represents the definition of the DCOS bootstrap node used to deploy the cluster
type CertificateProfile ¶
type CertificateProfile struct {
// CaCertificate is the certificate authority certificate.
CaCertificate string `json:"caCertificate,omitempty"`
// CaPrivateKey is the certificate authority key.
CaPrivateKey string `json:"caPrivateKey,omitempty"`
// ApiServerCertificate is the rest api server certificate, and signed by the CA
APIServerCertificate string `json:"apiServerCertificate,omitempty"`
// ApiServerPrivateKey is the rest api server private key, and signed by the CA
APIServerPrivateKey string `json:"apiServerPrivateKey,omitempty"`
// ClientCertificate is the certificate used by the client kubelet services and signed by the CA
ClientCertificate string `json:"clientCertificate,omitempty"`
// ClientPrivateKey is the private key used by the client kubelet services and signed by the CA
ClientPrivateKey string `json:"clientPrivateKey,omitempty"`
// KubeConfigCertificate is the client certificate used for kubectl cli and signed by the CA
KubeConfigCertificate string `json:"kubeConfigCertificate,omitempty"`
// KubeConfigPrivateKey is the client private key used for kubectl cli and signed by the CA
KubeConfigPrivateKey string `json:"kubeConfigPrivateKey,omitempty"`
// EtcdServerCertificate is the server certificate for etcd, and signed by the CA
EtcdServerCertificate string `json:"etcdServerCertificate,omitempty"`
// EtcdServerPrivateKey is the server private key for etcd, and signed by the CA
EtcdServerPrivateKey string `json:"etcdServerPrivateKey,omitempty"`
// EtcdClientCertificate is etcd client certificate, and signed by the CA
EtcdClientCertificate string `json:"etcdClientCertificate,omitempty"`
// EtcdClientPrivateKey is the etcd client private key, and signed by the CA
EtcdClientPrivateKey string `json:"etcdClientPrivateKey,omitempty"`
// EtcdPeerCertificates is list of etcd peer certificates, and signed by the CA
EtcdPeerCertificates []string `json:"etcdPeerCertificates,omitempty"`
// EtcdPeerPrivateKeys is list of etcd peer private keys, and signed by the CA
EtcdPeerPrivateKeys []string `json:"etcdPeerPrivateKeys,omitempty"`
}
CertificateProfile represents the definition of the master cluster
The JSON parameters could be either a plain text, or referenced to a secret in a keyvault.
In the latter case, the format of the parameter's value should be
"/subscriptions/
is the subscription ID of the keyvault is the resource group of the keyvault is the name of the keyvault is the name of the secret (optional) is the version of the secret (default: the latest version)
type ContainerService ¶
type ContainerService struct {
ID string `json:"id,omitempty"`
Location string `json:"location,omitempty"`
Name string `json:"name,omitempty"`
Plan *ResourcePurchasePlan `json:"plan,omitempty"`
Tags map[string]string `json:"tags,omitempty"`
Type string `json:"type,omitempty"`
Properties *Properties `json:"properties"`
}
ContainerService complies with the ARM model of resource definition in a JSON template.
func (*ContainerService) Merge ¶ added in v0.6.0
func (cs *ContainerService) Merge(ecs *ContainerService) error
Merge existing containerService attribute into cs
type CustomFile ¶ added in v0.19.0
type CustomFile struct {
Source string `json:"source,omitempty"`
Dest string `json:"dest,omitempty"`
}
CustomFile has source as the full absolute source path to a file and dest is the full absolute desired destination path to put the file on a master node
type CustomNodesDNS ¶ added in v0.18.0
type CustomNodesDNS struct {
DNSServer string `json:"dnsServer,omitempty"`
}
CustomNodesDNS represents the Search Domain
type CustomSearchDomain ¶ added in v0.18.0
type CustomSearchDomain struct {
Name string `json:"name,omitempty"`
RealmUser string `json:"realmUser,omitempty"`
RealmPassword string `json:"realmPassword,omitempty"`
}
CustomSearchDomain represents the Search Domain when the custom vnet has a windows server DNS as a nameserver.
type DcosConfig ¶ added in v0.7.0
type DcosConfig struct {
DcosBootstrapURL string `json:"dcosBootstrapURL,omitempty"`
DcosWindowsBootstrapURL string `json:"dcosWindowsBootstrapURL,omitempty"`
Registry string `json:"registry,omitempty"`
RegistryUser string `json:"registryUser,omitempty"`
RegistryPass string `json:"registryPassword,omitempty"`
DcosRepositoryURL string `json:"dcosRepositoryURL,omitempty"` // For CI use, you need to specify
DcosClusterPackageListID string `json:"dcosClusterPackageListID,omitempty"` // all three of these items
DcosProviderPackageID string `json:"dcosProviderPackageID,omitempty"` // repo url is the location of the build,
BootstrapProfile *BootstrapProfile `json:"bootstrapProfile,omitempty"`
}
DcosConfig Configuration for DC/OS
type Distro ¶ added in v0.7.0
type Distro string
Distro represents Linux distro to use for Linux VMs
type Extension ¶ added in v0.6.0
type Extension struct {
Name string `json:"name"`
SingleOrAll string `json:"singleOrAll"`
Template string `json:"template"`
}
Extension represents an extension definition in the master or agentPoolProfile
type ExtensionProfile ¶ added in v0.6.0
type ExtensionProfile struct {
Name string `json:"name"`
Version string `json:"version"`
ExtensionParameters string `json:"extensionParameters,omitempty"`
ExtensionParametersKeyVaultRef *KeyvaultSecretRef `json:"parametersKeyvaultSecretRef,omitempty"`
RootURL string `json:"rootURL,omitempty"`
// This is only needed for preprovision extensions and it needs to be a bash script
Script string `json:"script,omitempty"`
URLQuery string `json:"urlQuery,omitempty"`
}
ExtensionProfile represents an extension definition
type FeatureFlags ¶ added in v0.25.0
type FeatureFlags struct {
EnableCSERunInBackground bool `json:"enableCSERunInBackground,omitempty"`
BlockOutboundInternet bool `json:"blockOutboundInternet,omitempty"`
}
FeatureFlags defines feature-flag restricted functionality
type ImageReference ¶ added in v0.16.0
type ImageReference struct {
Name string `json:"name,omitempty"`
ResourceGroup string `json:"resourceGroup,omitempty"`
}
ImageReference represents a reference to an Image resource in Azure.
type KeyVaultCertificate ¶
type KeyVaultCertificate struct {
CertificateURL string `json:"certificateUrl,omitempty"`
CertificateStore string `json:"certificateStore,omitempty"`
}
KeyVaultCertificate specifies a certificate to install
On Linux, the certificate file is placed under the /var/lib/waagent directory
with the file name
type KeyVaultID ¶
type KeyVaultID struct {
ID string `json:"id,omitempty"`
}
KeyVaultID specifies a key vault
type KeyVaultSecrets ¶
type KeyVaultSecrets struct {
SourceVault *KeyVaultID `json:"sourceVault,omitempty"`
VaultCertificates []KeyVaultCertificate `json:"vaultCertificates,omitempty"`
}
KeyVaultSecrets specifies certificates to install on the pool of machines from a given key vault the key vault specified must have been granted read permissions to CRP
type KeyvaultSecretRef ¶ added in v0.6.0
type KeyvaultSecretRef struct {
VaultID string `json:"vaultID" validate:"required"`
SecretName string `json:"secretName" validate:"required"`
SecretVersion string `json:"version,omitempty"`
}
KeyvaultSecretRef is a reference to a secret in a keyvault.
The format of 'VaultID' value should be
"/subscriptions/
is the subscription ID of the keyvault is the resource group of the keyvault is the name of the keyvault
The 'SecretName' is the name of the secret in the keyvault The 'SecretVersion' (optional) is the version of the secret (default: the latest version)
type KubernetesAddon ¶ added in v0.9.4
type KubernetesAddon struct {
Name string `json:"name,omitempty"`
Enabled *bool `json:"enabled,omitempty"`
Containers []KubernetesContainerSpec `json:"containers,omitempty"`
Config map[string]string `json:"config,omitempty"`
Data string `json:"data,omitempty"`
}
KubernetesAddon defines a list of addons w/ configuration to include with the cluster deployment
func (*KubernetesAddon) IsEnabled ¶ added in v0.9.4
func (a *KubernetesAddon) IsEnabled(ifNil bool) bool
IsEnabled returns if the addon is explicitly enabled, or the user-provided default if non explicitly enabled
type KubernetesConfig ¶
type KubernetesConfig struct {
KubernetesImageBase string `json:"kubernetesImageBase,omitempty"`
ClusterSubnet string `json:"clusterSubnet,omitempty"`
DNSServiceIP string `json:"dnsServiceIP,omitempty"`
ServiceCidr string `json:"serviceCidr,omitempty"`
NetworkPolicy string `json:"networkPolicy,omitempty"`
NetworkPlugin string `json:"networkPlugin,omitempty"`
ContainerRuntime string `json:"containerRuntime,omitempty"`
MaxPods int `json:"maxPods,omitempty"`
DockerBridgeSubnet string `json:"dockerBridgeSubnet,omitempty"`
UseManagedIdentity bool `json:"useManagedIdentity,omitempty"`
UserAssignedID string `json:"userAssignedID,omitempty"`
UserAssignedClientID string `json:"userAssignedClientID,omitempty"` //Note: cannot be provided in config. Used *only* for transferring this to azure.json.
CustomHyperkubeImage string `json:"customHyperkubeImage,omitempty"`
DockerEngineVersion string `json:"dockerEngineVersion,omitempty"` // Deprecated
CustomCcmImage string `json:"customCcmImage,omitempty"`
UseCloudControllerManager *bool `json:"useCloudControllerManager,omitempty"`
CustomWindowsPackageURL string `json:"customWindowsPackageURL,omitempty"`
WindowsNodeBinariesURL string `json:"windowsNodeBinariesURL,omitempty"`
UseInstanceMetadata *bool `json:"useInstanceMetadata,omitempty"`
EnableRbac *bool `json:"enableRbac,omitempty"`
EnableSecureKubelet *bool `json:"enableSecureKubelet,omitempty"`
EnableAggregatedAPIs bool `json:"enableAggregatedAPIs,omitempty"`
PrivateCluster *PrivateCluster `json:"privateCluster,omitempty"`
GCHighThreshold int `json:"gchighthreshold,omitempty"`
GCLowThreshold int `json:"gclowthreshold,omitempty"`
EtcdVersion string `json:"etcdVersion,omitempty"`
EtcdDiskSizeGB string `json:"etcdDiskSizeGB,omitempty"`
EtcdEncryptionKey string `json:"etcdEncryptionKey,omitempty"`
EnableDataEncryptionAtRest *bool `json:"enableDataEncryptionAtRest,omitempty"`
EnableEncryptionWithExternalKms *bool `json:"enableEncryptionWithExternalKms,omitempty"`
EnablePodSecurityPolicy *bool `json:"enablePodSecurityPolicy,omitempty"`
Addons []KubernetesAddon `json:"addons,omitempty"`
KubeletConfig map[string]string `json:"kubeletConfig,omitempty"`
ControllerManagerConfig map[string]string `json:"controllerManagerConfig,omitempty"`
CloudControllerManagerConfig map[string]string `json:"cloudControllerManagerConfig,omitempty"`
APIServerConfig map[string]string `json:"apiServerConfig,omitempty"`
SchedulerConfig map[string]string `json:"schedulerConfig,omitempty"`
PodSecurityPolicyConfig map[string]string `json:"podSecurityPolicyConfig,omitempty"`
CloudProviderBackoff *bool `json:"cloudProviderBackoff,omitempty"`
CloudProviderBackoffRetries int `json:"cloudProviderBackoffRetries,omitempty"`
CloudProviderBackoffJitter float64 `json:"cloudProviderBackoffJitter,omitempty"`
CloudProviderBackoffDuration int `json:"cloudProviderBackoffDuration,omitempty"`
CloudProviderBackoffExponent float64 `json:"cloudProviderBackoffExponent,omitempty"`
CloudProviderRateLimit *bool `json:"cloudProviderRateLimit,omitempty"`
CloudProviderRateLimitQPS float64 `json:"cloudProviderRateLimitQPS,omitempty"`
CloudProviderRateLimitBucket int `json:"cloudProviderRateLimitBucket,omitempty"`
LoadBalancerSku string `json:"loadBalancerSku,omitempty"`
ExcludeMasterFromStandardLB *bool `json:"excludeMasterFromStandardLB,omitempty"`
AzureCNIVersion string `json:"azureCNIVersion,omitempty"`
AzureCNIURLLinux string `json:"azureCNIURLLinux,omitempty"`
AzureCNIURLWindows string `json:"azureCNIURLWindows,omitempty"`
}
KubernetesConfig contains the Kubernetes config structure, containing Kubernetes specific configuration
func (*KubernetesConfig) RequiresDocker ¶ added in v0.19.0
func (k *KubernetesConfig) RequiresDocker() bool
RequiresDocker returns if the kubernetes settings require docker binary to be installed.
type KubernetesContainerSpec ¶ added in v0.9.4
type KubernetesContainerSpec struct {
Name string `json:"name,omitempty"`
Image string `json:"image,omitempty"`
CPURequests string `json:"cpuRequests,omitempty"`
MemoryRequests string `json:"memoryRequests,omitempty"`
CPULimits string `json:"cpuLimits,omitempty"`
MemoryLimits string `json:"memoryLimits,omitempty"`
}
KubernetesContainerSpec defines configuration for a container spec
type LinuxProfile ¶
type LinuxProfile struct {
AdminUsername string `json:"adminUsername" validate:"required"`
SSH struct {
PublicKeys []PublicKey `json:"publicKeys" validate:"required,len=1"`
} `json:"ssh" validate:"required"`
Secrets []KeyVaultSecrets `json:"secrets,omitempty"`
ScriptRootURL string `json:"scriptroot,omitempty"`
CustomSearchDomain *CustomSearchDomain `json:"customSearchDomain,omitempty"`
CustomNodesDNS *CustomNodesDNS `json:"customNodesDNS,omitempty"`
}
LinuxProfile represents the linux parameters passed to the cluster
func (*LinuxProfile) HasCustomNodesDNS ¶ added in v0.18.0
func (l *LinuxProfile) HasCustomNodesDNS() bool
HasCustomNodesDNS returns true if the customer specified secrets to install
func (*LinuxProfile) HasSearchDomain ¶ added in v0.18.0
func (l *LinuxProfile) HasSearchDomain() bool
HasSearchDomain returns true if the customer specified secrets to install
type MasterProfile ¶
type MasterProfile struct {
Count int `json:"count" validate:"required,eq=1|eq=3|eq=5"`
DNSPrefix string `json:"dnsPrefix" validate:"required"`
SubjectAltNames []string `json:"subjectAltNames"`
VMSize string `json:"vmSize" validate:"required"`
OSDiskSizeGB int `json:"osDiskSizeGB,omitempty" validate:"min=0,max=1023"`
VnetSubnetID string `json:"vnetSubnetID,omitempty"`
VnetCidr string `json:"vnetCidr,omitempty"`
AgentVnetSubnetID string `json:"agentVnetSubnetID,omitempty"`
FirstConsecutiveStaticIP string `json:"firstConsecutiveStaticIP,omitempty"`
IPAddressCount int `json:"ipAddressCount,omitempty" validate:"min=0,max=256"`
StorageProfile string `json:"storageProfile,omitempty" validate:"eq=StorageAccount|eq=ManagedDisks|len=0"`
HTTPSourceAddressPrefix string `json:"HTTPSourceAddressPrefix,omitempty"`
OAuthEnabled bool `json:"oauthEnabled"`
PreProvisionExtension *Extension `json:"preProvisionExtension"`
Extensions []Extension `json:"extensions"`
Distro Distro `json:"distro,omitempty"`
KubernetesConfig *KubernetesConfig `json:"kubernetesConfig,omitempty"`
ImageRef *ImageReference `json:"imageReference,omitempty"`
CustomFiles *[]CustomFile `json:"customFiles,omitempty"`
AvailabilityProfile string `json:"availabilityProfile"`
AgentSubnet string `json:"agentSubnet,omitempty"`
AvailabilityZones []string `json:"availabilityZones,omitempty"`
SinglePlacementGroup *bool `json:"singlePlacementGroup,omitempty"`
// Master LB public endpoint/FQDN with port
// The format will be FQDN:2376
// Not used during PUT, returned as part of GET
FQDN string `json:"fqdn,omitempty"`
// contains filtered or unexported fields
}
MasterProfile represents the definition of the master cluster
func (*MasterProfile) GetSubnet ¶
func (m *MasterProfile) GetSubnet() string
GetSubnet returns the read-only subnet for the master
func (*MasterProfile) HasAvailabilityZones ¶ added in v0.23.0
func (m *MasterProfile) HasAvailabilityZones() bool
HasAvailabilityZones returns true if the master profile has availability zones
func (*MasterProfile) IsCoreOS ¶ added in v0.10.0
func (m *MasterProfile) IsCoreOS() bool
IsCoreOS returns true if the master specified a CoreOS distro
func (*MasterProfile) IsCustomVNET ¶
func (m *MasterProfile) IsCustomVNET() bool
IsCustomVNET returns true if the customer brought their own VNET
func (*MasterProfile) IsManagedDisks ¶ added in v0.2.0
func (m *MasterProfile) IsManagedDisks() bool
IsManagedDisks returns true if the master specified managed disks
func (*MasterProfile) IsRHEL ¶ added in v0.7.0
func (m *MasterProfile) IsRHEL() bool
IsRHEL returns true if the master specified a RHEL distro
func (*MasterProfile) IsStorageAccount ¶ added in v0.2.0
func (m *MasterProfile) IsStorageAccount() bool
IsStorageAccount returns true if the master specified storage account
func (*MasterProfile) IsVirtualMachineScaleSets ¶ added in v0.23.0
func (m *MasterProfile) IsVirtualMachineScaleSets() bool
IsVirtualMachineScaleSets returns true if the master availability profile is VMSS
func (*MasterProfile) SetSubnet ¶
func (m *MasterProfile) SetSubnet(subnet string)
SetSubnet sets the read-only subnet for the master
type OpenShiftConfig ¶ added in v0.17.0
type OpenShiftConfig struct {
KubernetesConfig *KubernetesConfig `json:"kubernetesConfig,omitempty"`
// ClusterUsername and ClusterPassword are temporary, do not rely on them.
ClusterUsername string `json:"clusterUsername,omitempty"`
ClusterPassword string `json:"clusterPassword,omitempty"`
// EnableAADAuthentication is temporary, do not rely on it.
EnableAADAuthentication bool `json:"enableAADAuthentication,omitempty"`
ConfigBundles map[string][]byte `json:"configBundles,omitempty"`
}
OpenShiftConfig holds configuration for OpenShift
func (*OpenShiftConfig) Validate ¶ added in v0.18.0
func (o *OpenShiftConfig) Validate() error
Validate OpenShiftConfig ensures that the OpenShiftConfig is valid.
type OrchestratorProfile ¶
type OrchestratorProfile struct {
OrchestratorType string `json:"orchestratorType" validate:"required"`
OrchestratorRelease string `json:"orchestratorRelease,omitempty"`
OrchestratorVersion string `json:"orchestratorVersion,omitempty"`
KubernetesConfig *KubernetesConfig `json:"kubernetesConfig,omitempty"`
OpenShiftConfig *OpenShiftConfig `json:"openshiftConfig,omitempty"`
DcosConfig *DcosConfig `json:"dcosConfig,omitempty"`
}
OrchestratorProfile contains Orchestrator properties
func (*OrchestratorProfile) IsSwarmMode ¶
func (o *OrchestratorProfile) IsSwarmMode() bool
IsSwarmMode returns true if this template is for Swarm Mode orchestrator
func (*OrchestratorProfile) UnmarshalJSON ¶ added in v0.5.0
func (o *OrchestratorProfile) UnmarshalJSON(b []byte) error
UnmarshalJSON unmarshal json using the default behavior And do fields manipulation, such as populating default value
type OrchestratorVersionProfile ¶ added in v0.6.0
type OrchestratorVersionProfile struct {
OrchestratorProfile
Default bool `json:"default,omitempty"`
Upgrades []*OrchestratorProfile `json:"upgrades,omitempty"`
}
OrchestratorVersionProfile contains information of a supported orchestrator version:
- orchestrator type and version
- whether this orchestrator version is deployed by default if orchestrator release is not specified
- list of available upgrades for this orchestrator version
type OrchestratorVersionProfileList ¶ added in v0.6.0
type OrchestratorVersionProfileList struct {
Orchestrators []*OrchestratorVersionProfile `json:"orchestrators"`
}
OrchestratorVersionProfileList contains list of version profiles for supported orchestrators
type PoolUpgradeProfile ¶ added in v0.8.0
type PoolUpgradeProfile struct {
OrchestratorProfile
Name string `json:"name,omitempty"`
OSType OSType `json:"osType,omitempty"`
Upgrades []*OrchestratorProfile `json:"upgrades,omitempty"`
}
PoolUpgradeProfile contains pool properties:
- orchestrator type and version
- pool name (for agent pool)
- OS type of the VMs in the pool
- list of applicable upgrades
type PrivateCluster ¶ added in v0.14.0
type PrivateCluster struct {
Enabled *bool `json:"enabled,omitempty"`
JumpboxProfile *PrivateJumpboxProfile `json:"jumpboxProfile,omitempty"`
}
PrivateCluster defines the configuration for a private cluster
type PrivateJumpboxProfile ¶ added in v0.14.0
type PrivateJumpboxProfile struct {
Name string `json:"name" validate:"required"`
VMSize string `json:"vmSize" validate:"required"`
OSDiskSizeGB int `json:"osDiskSizeGB,omitempty" validate:"min=0,max=1023"`
Username string `json:"username,omitempty"`
PublicKey string `json:"publicKey" validate:"required"`
StorageProfile string `json:"storageProfile,omitempty"`
}
PrivateJumpboxProfile represents a jumpbox definition
type Properties ¶
type Properties struct {
ProvisioningState ProvisioningState `json:"provisioningState,omitempty"`
OrchestratorProfile *OrchestratorProfile `json:"orchestratorProfile,omitempty" validate:"required"`
MasterProfile *MasterProfile `json:"masterProfile,omitempty" validate:"required"`
AgentPoolProfiles []*AgentPoolProfile `json:"agentPoolProfiles,omitempty" validate:"dive,required"`
LinuxProfile *LinuxProfile `json:"linuxProfile,omitempty" validate:"required"`
ExtensionProfiles []*ExtensionProfile `json:"extensionProfiles,omitempty"`
WindowsProfile *WindowsProfile `json:"windowsProfile,omitempty"`
ServicePrincipalProfile *ServicePrincipalProfile `json:"servicePrincipalProfile,omitempty"`
CertificateProfile *CertificateProfile `json:"certificateProfile,omitempty"`
AADProfile *AADProfile `json:"aadProfile,omitempty"`
AzProfile *AzProfile `json:"azProfile,omitempty"`
FeatureFlags *FeatureFlags `json:"featureFlags,omitempty"`
}
Properties represents the ACS cluster definition
func (*Properties) HasAvailabilityZones ¶ added in v0.22.0
func (p *Properties) HasAvailabilityZones() bool
HasAvailabilityZones returns true if the cluster contains any profile with zones
func (*Properties) HasWindows ¶
func (p *Properties) HasWindows() bool
HasWindows returns true if the cluster contains windows
func (*Properties) HasZonesForAllAgentPools ¶ added in v0.23.0
func (p *Properties) HasZonesForAllAgentPools() bool
HasZonesForAllAgentPools returns true if all of the agent pools have zones
func (*Properties) IsClusterAllVirtualMachineScaleSets ¶ added in v0.23.0
func (p *Properties) IsClusterAllVirtualMachineScaleSets() bool
IsClusterAllVirtualMachineScaleSets returns true if the cluster contains only Virtual Machine Scale Sets
func (*Properties) MastersAndAgentsUseAvailabilityZones ¶ added in v0.23.0
func (p *Properties) MastersAndAgentsUseAvailabilityZones() bool
MastersAndAgentsUseAvailabilityZones returns true if the cluster contains AZs for all agents and masters profiles
func (*Properties) Validate ¶
func (a *Properties) Validate(isUpdate bool) error
Validate implements APIObject
type ProvisioningState ¶
type ProvisioningState string
ProvisioningState represents the current state of container service resource.
const ( // Creating means ContainerService resource is being created. Creating ProvisioningState = "Creating" // Updating means an existing ContainerService resource is being updated Updating ProvisioningState = "Updating" // Failed means resource is in failed state Failed ProvisioningState = "Failed" // Succeeded means resource created succeeded during last create/update Succeeded ProvisioningState = "Succeeded" // Deleting means resource is in the process of being deleted Deleting ProvisioningState = "Deleting" // Migrating means resource is being migrated from one subscription or // resource group to another Migrating ProvisioningState = "Migrating" )
type PublicKey ¶ added in v0.4.0
type PublicKey struct {
KeyData string `json:"keyData"`
}
PublicKey represents an SSH key for LinuxProfile
type ResourcePurchasePlan ¶
type ResourcePurchasePlan struct {
Name string `json:"name,omitempty"`
Product string `json:"product,omitempty"`
PromotionCode string `json:"promotionCode,omitempty"`
Publisher string `json:"publisher,omitempty"`
}
ResourcePurchasePlan defines resource plan as required by ARM for billing purposes.
type ServicePrincipalProfile ¶
type ServicePrincipalProfile struct {
ClientID string `json:"clientId,omitempty"`
Secret string `json:"secret,omitempty"`
ObjectID string `json:"objectId,omitempty"`
KeyvaultSecretRef *KeyvaultSecretRef `json:"keyvaultSecretRef,omitempty"`
}
ServicePrincipalProfile contains the client and secret used by the cluster for Azure Resource CRUD The 'Secret' and 'KeyvaultSecretRef' parameters are mutually exclusive The 'Secret' parameter should be a secret in plain text. The 'KeyvaultSecretRef' parameter is a reference to a secret in a keyvault.
type UpgradeProfile ¶ added in v0.8.0
type UpgradeProfile struct {
ControlPlaneProfile *PoolUpgradeProfile `json:"controlPlaneProfile"`
AgentPoolProfiles []*PoolUpgradeProfile `json:"agentPoolProfiles"`
}
UpgradeProfile contains cluster properties:
- orchestrator type and version for the cluster
- list of pool profiles, constituting the cluster
type WindowsProfile ¶
type WindowsProfile struct {
AdminUsername string `json:"adminUsername,omitempty"`
AdminPassword string `json:"adminPassword,omitempty"`
ImageVersion string `json:"imageVersion,omitempty"`
WindowsImageSourceURL string `json:"WindowsImageSourceUrl"`
WindowsPublisher string `json:"WindowsPublisher"`
WindowsOffer string `json:"WindowsOffer"`
WindowsSku string `json:"WindowsSku"`
WindowsDockerVersion string `json:"windowsDockerVersion"`
Secrets []KeyVaultSecrets `json:"secrets,omitempty"`
}
WindowsProfile represents the windows parameters passed to the cluster
func (*WindowsProfile) Validate ¶ added in v0.9.2
func (w *WindowsProfile) Validate(orchestratorType string) error
Validate ensures that the WindowsProfile is valid