api

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 23, 2017 License: MIT Imports: 11 Imported by: 251

Documentation

Overview

Package api stores an unversion api

Index

Constants

View Source
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
)

validation values

View Source
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

View Source
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

Variables

This section is empty.

Functions

func ConvertContainerServiceToV20160330

func ConvertContainerServiceToV20160330(api *ContainerService) *v20160330.ContainerService

ConvertContainerServiceToV20160330 converts an unversioned ContainerService to a v20160330 ContainerService

func ConvertContainerServiceToV20160930

func ConvertContainerServiceToV20160930(api *ContainerService) *v20160930.ContainerService

ConvertContainerServiceToV20160930 converts an unversioned ContainerService to a v20160930 ContainerService

func ConvertContainerServiceToV20170131

func ConvertContainerServiceToV20170131(api *ContainerService) *v20170131.ContainerService

ConvertContainerServiceToV20170131 converts an unversioned ContainerService to a v20170131 ContainerService

func ConvertContainerServiceToV20170701 added in v0.2.0

func ConvertContainerServiceToV20170701(api *ContainerService) *v20170701.ContainerService

ConvertContainerServiceToV20170701 converts an unversioned ContainerService to a v20170701 ContainerService

func ConvertContainerServiceToVLabs

func ConvertContainerServiceToVLabs(api *ContainerService) *vlabs.ContainerService

ConvertContainerServiceToVLabs converts an unversioned ContainerService to a vlabs ContainerService

func ConvertUpgradeContainerServiceToVLabs

func ConvertUpgradeContainerServiceToVLabs(api *UpgradeContainerService) *vlabs.UpgradeContainerService

ConvertUpgradeContainerServiceToVLabs converts an unversioned ContainerService to a vlabs ContainerService

func SerializeContainerService

func SerializeContainerService(containerService *ContainerService, version string) ([]byte, error)

SerializeContainerService takes an unversioned container service and returns the bytes

func SerializeUpgradeContainerService

func SerializeUpgradeContainerService(upgradeContainerService *UpgradeContainerService, version string) ([]byte, error)

SerializeUpgradeContainerService takes an unversioned container service and returns the bytes

Types

type AgentPoolProfile

type AgentPoolProfile struct {
	Name                string `json:"name"`
	Count               int    `json:"count"`
	VMSize              string `json:"vmSize"`
	OSDiskSizeGB        int    `json:"osDiskSizeGB,omitempty"`
	DNSPrefix           string `json:"dnsPrefix,omitempty"`
	OSType              OSType `json:"osType,omitempty"`
	Ports               []int  `json:"ports,omitempty"`
	AvailabilityProfile string `json:"availabilityProfile"`
	StorageProfile      string `json:"storageProfile,omitempty"`
	DiskSizesGB         []int  `json:"diskSizesGB,omitempty"`
	VnetSubnetID        string `json:"vnetSubnetID,omitempty"`
	Subnet              string `json:"subnet"`
	IPAddressCount      int    `json:"ipAddressCount,omitempty"`

	FQDN             string            `json:"fqdn,omitempty"`
	CustomNodeLabels map[string]string `json:"customNodeLabels,omitempty"`
}

AgentPoolProfile represents an agent pool definition

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) 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 disks

func (*AgentPoolProfile) IsStorageAccount

func (a *AgentPoolProfile) IsStorageAccount() bool

IsStorageAccount returns true if the customer specified storage account

func (*AgentPoolProfile) IsWindows

func (a *AgentPoolProfile) IsWindows() bool

IsWindows returns true if the agent pool is windows

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"`
}

CertificateProfile represents the definition of the master cluster

type ContainerService

type ContainerService struct {
	ID       string                `json:"id"`
	Location string                `json:"location"`
	Name     string                `json:"name"`
	Plan     *ResourcePurchasePlan `json:"plan,omitempty"`
	Tags     map[string]string     `json:"tags"`
	Type     string                `json:"type"`

	Properties *Properties `json:"properties,omitempty"`
}

ContainerService complies with the ARM model of resource definition in a JSON template.

func ConvertV20160330ContainerService

func ConvertV20160330ContainerService(v20160330 *v20160330.ContainerService) *ContainerService

ConvertV20160330ContainerService converts a v20160330 ContainerService to an unversioned ContainerService

func ConvertV20160930ContainerService

func ConvertV20160930ContainerService(v20160930 *v20160930.ContainerService) *ContainerService

ConvertV20160930ContainerService converts a v20160930 ContainerService to an unversioned ContainerService

func ConvertV20170131ContainerService

func ConvertV20170131ContainerService(v20170131 *v20170131.ContainerService) *ContainerService

ConvertV20170131ContainerService converts a v20170131 ContainerService to an unversioned ContainerService

func ConvertV20170701ContainerService added in v0.2.0

func ConvertV20170701ContainerService(v20170701 *v20170701.ContainerService) *ContainerService

ConvertV20170701ContainerService converts a v20170701 ContainerService to an unversioned ContainerService

func ConvertVLabsContainerService

func ConvertVLabsContainerService(vlabs *vlabs.ContainerService) *ContainerService

ConvertVLabsContainerService converts a vlabs ContainerService to an unversioned ContainerService

func DeserializeContainerService

func DeserializeContainerService(contents []byte) (*ContainerService, string, error)

DeserializeContainerService loads an ACS Cluster API Model, validates it, and returns the unversioned representation

func LoadContainerService

func LoadContainerService(contents []byte, version string) (*ContainerService, error)

LoadContainerService loads an ACS Cluster API Model, validates it, and returns the unversioned representation

func LoadContainerServiceFromFile

func LoadContainerServiceFromFile(jsonFile string) (*ContainerService, string, error)

LoadContainerServiceFromFile loads an ACS Cluster API Model from a JSON file

type CustomProfile

type CustomProfile struct {
	Orchestrator string `json:"orchestrator,omitempty"`
}

CustomProfile specifies custom properties that are used for cluster instantiation. Should not be used by most users.

type DiagnosticsProfile

type DiagnosticsProfile struct {
	VMDiagnostics *VMDiagnostics `json:"vmDiagnostics"`
}

DiagnosticsProfile setting to enable/disable capturing diagnostics for VMs hosting container cluster.

type JumpboxProfile

type JumpboxProfile struct {
	OSType    OSType `json:"osType"`
	DNSPrefix string `json:"dnsPrefix"`

	// Jumpbox 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"`
}

JumpboxProfile dscribes properties of the jumpbox setup in the ACS container cluster.

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 <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for the private key. Both of these files are .pem formatted. On windows the certificate will be saved in the specified store.

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 KubernetesConfig

type KubernetesConfig struct {
	KubernetesImageBase string `json:"kubernetesImageBase,omitempty"`
	ClusterSubnet       string `json:"clusterSubnet,omitempty"`
	NetworkPolicy       string `json:"networkPolicy,omitempty"`
}

KubernetesConfig contains the Kubernetes config structure, containing Kubernetes specific configuration

type LinuxProfile

type LinuxProfile struct {
	AdminUsername string `json:"adminUsername"`
	SSH           struct {
		PublicKeys []struct {
			KeyData string `json:"keyData"`
		} `json:"publicKeys"`
	} `json:"ssh"`
	Secrets []KeyVaultSecrets `json:"secrets,omitempty"`
}

LinuxProfile represents the linux parameters passed to the cluster

func (*LinuxProfile) HasSecrets

func (l *LinuxProfile) HasSecrets() bool

HasSecrets returns true if the customer specified secrets to install

type MasterProfile

type MasterProfile struct {
	Count                    int    `json:"count"`
	DNSPrefix                string `json:"dnsPrefix"`
	VMSize                   string `json:"vmSize"`
	OSDiskSizeGB             int    `json:"osDiskSizeGB,omitempty"`
	VnetSubnetID             string `json:"vnetSubnetID,omitempty"`
	FirstConsecutiveStaticIP string `json:"firstConsecutiveStaticIP,omitempty"`
	Subnet                   string `json:"subnet"`
	IPAddressCount           int    `json:"ipAddressCount,omitempty"`
	StorageProfile           string `json:"storageProfile,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"`
}

MasterProfile represents the definition of the master cluster

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) IsStorageAccount added in v0.2.0

func (m *MasterProfile) IsStorageAccount() bool

IsStorageAccount returns true if the master specified storage account

type OSType

type OSType string

OSType represents OS types of agents

const (
	Windows OSType = "Windows"
	Linux   OSType = "Linux"
)

the OSTypes supported by vlabs

type OrchestratorProfile

type OrchestratorProfile struct {
	OrchestratorType    OrchestratorType    `json:"orchestratorType"`
	OrchestratorVersion OrchestratorVersion `json:"orchestratorVersion"`
	KubernetesConfig    *KubernetesConfig   `json:"kubernetesConfig,omitempty"`
}

OrchestratorProfile contains Orchestrator properties

func (*OrchestratorProfile) IsDCOS added in v0.2.0

func (o *OrchestratorProfile) IsDCOS() bool

IsDCOS returns true if this template is for DCOS orchestrator

func (*OrchestratorProfile) IsKubernetes

func (o *OrchestratorProfile) IsKubernetes() bool

IsKubernetes returns true if this template is for Kubernetes orchestrator

func (*OrchestratorProfile) IsSwarmMode

func (o *OrchestratorProfile) IsSwarmMode() bool

IsSwarmMode returns true if this template is for Swarm Mode orchestrator

func (*OrchestratorProfile) IsVNETIntegrated

func (o *OrchestratorProfile) IsVNETIntegrated() bool

IsVNETIntegrated returns true if Azure VNET integration is enabled

type OrchestratorType

type OrchestratorType string

OrchestratorType defines orchestrators supported by ACS

const (
	// Mesos is the string constant for MESOS orchestrator type
	Mesos OrchestratorType = "Mesos"
	// DCOS is the string constant for DCOS orchestrator type and defaults to DCOS188
	DCOS OrchestratorType = "DCOS"
	// Swarm is the string constant for the Swarm orchestrator type
	Swarm OrchestratorType = "Swarm"
	// Kubernetes is the string constant for the Kubernetes orchestrator type
	Kubernetes OrchestratorType = "Kubernetes"
	// SwarmMode is the string constant for the Swarm Mode orchestrator type
	SwarmMode OrchestratorType = "SwarmMode"
)

the orchestrators supported by vlabs

type OrchestratorVersion

type OrchestratorVersion string

OrchestratorVersion defines the version for orchestratorType

const (
	// Kubernetes153 is the string constant for Kubernetes 1.5.3
	Kubernetes153 OrchestratorVersion = "1.5.3"
	// Kubernetes157 is the string constant for Kubernetes 1.5.7
	Kubernetes157 OrchestratorVersion = "1.5.7"
	// Kubernetes160 is the string constant for Kubernetes 1.6.0
	Kubernetes160 OrchestratorVersion = "1.6.0"
	// Kubernetes162 is the string constant for Kubernetes 1.6.2
	Kubernetes162 OrchestratorVersion = "1.6.2"
	// Kubernetes166 is the string constant for Kubernetes 1.6.6
	Kubernetes166 OrchestratorVersion = "1.6.6"
	// KubernetesLatest is the string constant for latest Kubernetes version
	KubernetesLatest OrchestratorVersion = Kubernetes166
)
const (
	// DCOS190 is the string constant for DCOS 1.9.0
	DCOS190 OrchestratorVersion = "1.9.0"
	// DCOS188 is the string constant for DCOS 1.8.8
	DCOS188 OrchestratorVersion = "1.8.8"
	// DCOS187 is the string constant for DCOS 1.8.7
	DCOS187 OrchestratorVersion = "1.8.7"
	// DCOS184 is the string constant for DCOS 1.8.4
	DCOS184 OrchestratorVersion = "1.8.4"
	// DCOS173 is the string constant for DCOS 1.7.3
	DCOS173 OrchestratorVersion = "1.7.3"
	// DCOSLatest is the string constant for latest DCOS version
	DCOSLatest OrchestratorVersion = DCOS190
)

type Properties

type Properties struct {
	ProvisioningState       ProvisioningState        `json:"provisioningState,omitempty"`
	OrchestratorProfile     *OrchestratorProfile     `json:"orchestratorProfile,omitempty"`
	MasterProfile           *MasterProfile           `json:"masterProfile,omitempty"`
	AgentPoolProfiles       []*AgentPoolProfile      `json:"agentPoolProfiles,omitempty"`
	LinuxProfile            *LinuxProfile            `json:"linuxProfile,omitempty"`
	WindowsProfile          *WindowsProfile          `json:"windowsProfile,omitempty"`
	DiagnosticsProfile      *DiagnosticsProfile      `json:"diagnosticsProfile,omitempty"`
	JumpboxProfile          *JumpboxProfile          `json:"jumpboxProfile,omitempty"`
	ServicePrincipalProfile *ServicePrincipalProfile `json:"servicePrincipalProfile,omitempty"`
	CertificateProfile      *CertificateProfile      `json:"certificateProfile,omitempty"`
	CustomProfile           *CustomProfile           `json:"customProfile,omitempty"`
}

Properties represents the ACS cluster definition

func (*Properties) HasManagedDisks

func (p *Properties) HasManagedDisks() bool

HasManagedDisks returns true if the cluster contains Managed Disks

func (*Properties) HasStorageAccountDisks added in v0.2.0

func (p *Properties) HasStorageAccountDisks() bool

HasStorageAccountDisks returns true if the cluster contains Storage Account Disks

func (*Properties) HasWindows

func (p *Properties) HasWindows() bool

HasWindows returns true if the cluster contains windows

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 ResourcePurchasePlan

type ResourcePurchasePlan struct {
	Name          string `json:"name"`
	Product       string `json:"product"`
	PromotionCode string `json:"promotionCode"`
	Publisher     string `json:"publisher"`
}

ResourcePurchasePlan defines resource plan as required by ARM for billing purposes.

type ServicePrincipalProfile

type ServicePrincipalProfile struct {
	ClientID string `json:"servicePrincipalClientID,omitempty"`
	Secret   string `json:"servicePrincipalClientSecret,omitempty"`
}

ServicePrincipalProfile contains the client and secret used by the cluster for Azure Resource CRUD

type TypeMeta

type TypeMeta struct {
	// APIVersion is on every object
	APIVersion string `json:"apiVersion"`
}

TypeMeta describes an individual API model object

type UpgradeContainerService

type UpgradeContainerService struct {
	OrchestratorProfile *OrchestratorProfile `json:"orchestratorProfile,omitempty"`
}

UpgradeContainerService API model

func ConvertVLabsUpgradeContainerService

func ConvertVLabsUpgradeContainerService(vlabs *vlabs.UpgradeContainerService) *UpgradeContainerService

ConvertVLabsUpgradeContainerService converts a vlabs UpgradeContainerService to an unversioned UpgradeContainerService

func DeserializeUpgradeContainerService

func DeserializeUpgradeContainerService(contents []byte) (*UpgradeContainerService, string, error)

DeserializeUpgradeContainerService loads an ACS Cluster API Model, validates it, and returns the unversioned representation

func LoadUpgradeContainerService

func LoadUpgradeContainerService(contents []byte, version string) (*UpgradeContainerService, error)

LoadUpgradeContainerService loads an ACS Cluster API Model, validates it, and returns the unversioned representation

func LoadUpgradeContainerServiceFromFile

func LoadUpgradeContainerServiceFromFile(jsonFile string) (*UpgradeContainerService, string, error)

LoadUpgradeContainerServiceFromFile loads an ACS Cluster API Model from a JSON file

type V20160330ARMContainerService

type V20160330ARMContainerService struct {
	TypeMeta
	*v20160330.ContainerService
}

V20160330ARMContainerService is the type we read and write from file needed because the json that is sent to ARM and acs-engine is different from the json that the ACS RP Api gets from ARM

type V20160930ARMContainerService

type V20160930ARMContainerService struct {
	TypeMeta
	*v20160930.ContainerService
}

V20160930ARMContainerService is the type we read and write from file needed because the json that is sent to ARM and acs-engine is different from the json that the ACS RP Api gets from ARM

type V20170131ARMContainerService

type V20170131ARMContainerService struct {
	TypeMeta
	*v20170131.ContainerService
}

V20170131ARMContainerService is the type we read and write from file needed because the json that is sent to ARM and acs-engine is different from the json that the ACS RP Api gets from ARM

type V20170701ARMContainerService added in v0.2.0

type V20170701ARMContainerService struct {
	TypeMeta
	*v20170701.ContainerService
}

V20170701ARMContainerService is the type we read and write from file needed because the json that is sent to ARM and acs-engine is different from the json that the ACS RP Api gets from ARM

type VMDiagnostics

type VMDiagnostics struct {
	Enabled bool `json:"enabled"`

	// Specifies storage account Uri where Boot Diagnostics (CRP &
	// VMSS BootDiagostics) and VM Diagnostics logs (using Linux
	// Diagnostics Extension) will be stored. Uri will be of standard
	// blob domain. i.e. https://storageaccount.blob.core.windows.net/
	// This field is readonly as ACS RP will create a storage account
	// for the customer.
	StorageURL *neturl.URL `json:"storageUrl"`
}

VMDiagnostics contains settings to on/off boot diagnostics collection in RD Host

type VlabsARMContainerService

type VlabsARMContainerService struct {
	TypeMeta
	*vlabs.ContainerService
}

VlabsARMContainerService is the type we read and write from file needed because the json that is sent to ARM and acs-engine is different from the json that the ACS RP Api gets from ARM

type VlabsUpgradeContainerService

type VlabsUpgradeContainerService struct {
	TypeMeta
	*vlabs.UpgradeContainerService
}

VlabsUpgradeContainerService is the type we read and write from file needed because the json that is sent to ARM and acs-engine is different from the json that the ACS RP Api gets from ARM

type WindowsProfile

type WindowsProfile struct {
	AdminUsername string            `json:"adminUsername"`
	AdminPassword string            `json:"adminPassword"`
	Secrets       []KeyVaultSecrets `json:"secrets,omitempty"`
}

WindowsProfile represents the windows parameters passed to the cluster

func (*WindowsProfile) HasSecrets

func (w *WindowsProfile) HasSecrets() bool

HasSecrets returns true if the customer specified secrets to install

Directories

Path Synopsis
Package v20160330 stores the api model for version "2016-03-30"
Package v20160330 stores the api model for version "2016-03-30"
Package v20160930 stores api model for version "2016-09-30"
Package v20160930 stores api model for version "2016-09-30"
Package v20170131 stores api model for version "2017-01-31"
Package v20170131 stores api model for version "2017-01-31"
Package v20170701 stores api model for version "2017-07-01"
Package v20170701 stores api model for version "2017-07-01"
Package vlabs stores an experimental api model for acs
Package vlabs stores an experimental api model for acs

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL