Documentation ¶
Index ¶
- Constants
- Variables
- func GetVMNameIndex(osType compute.OperatingSystemTypes, vmName string) (int, error)
- func LinuxVMNameParts(vmName string) (orchestrator string, poolIdentifier string, nameSuffix string, agentIndex int, ...)
- func ResourceName(ID string) (string, error)
- func SplitBlobURI(URI string) (string, string, string, error)
- func WindowsVMNameParts(vmName string) (poolPrefix string, acsStr string, poolIndex int, agentIndex int, err error)
- type ACSEngineClient
- type ACSStorageClient
- type AzureClient
- func NewAzureClientWithClientCertificate(env azure.Environment, subscriptionID, clientID string, ...) (*AzureClient, error)
- func NewAzureClientWithClientCertificateFile(env azure.Environment, ...) (*AzureClient, error)
- func NewAzureClientWithClientSecret(env azure.Environment, subscriptionID, clientID, clientSecret string) (*AzureClient, error)
- func NewAzureClientWithDeviceAuth(env azure.Environment, subscriptionID string) (*AzureClient, error)
- func (az *AzureClient) AddAcceptLanguages(languages []string)
- func (az *AzureClient) CheckDeploymentExistence(resourceGroupName string, deploymentName string) (result autorest.Response, err error)
- func (az *AzureClient) CheckResourceGroupExistence(name string) (result autorest.Response, err error)
- func (az *AzureClient) CreateApp(appName, appURL string) (applicationID, servicePrincipalObjectID, servicePrincipalClientSecret string, ...)
- func (az *AzureClient) CreateGraphApplication(applicationCreateParameters graphrbac.ApplicationCreateParameters) (graphrbac.Application, error)
- func (az *AzureClient) CreateGraphPrincipal(servicePrincipalCreateParameters graphrbac.ServicePrincipalCreateParameters) (graphrbac.ServicePrincipal, error)
- func (az *AzureClient) CreateRoleAssignment(scope string, roleAssignmentName string, ...) (authorization.RoleAssignment, error)
- func (az *AzureClient) CreateRoleAssignmentSimple(resourceGroup, servicePrincipalObjectID string) error
- func (az *AzureClient) DeleteManagedDisk(resourceGroupName string, diskName string, cancel <-chan struct{}) (<-chan disk.OperationStatusResponse, <-chan error)
- func (az *AzureClient) DeleteNetworkInterface(resourceGroup, nicName string, cancel <-chan struct{}) (<-chan autorest.Response, <-chan error)
- func (az *AzureClient) DeleteResourceGroup(name string, cancel chan struct{}) (<-chan autorest.Response, <-chan error)
- func (az *AzureClient) DeleteVirtualMachine(resourceGroup, name string, cancel <-chan struct{}) (<-chan compute.OperationStatusResponse, <-chan error)
- func (az *AzureClient) DeployTemplate(resourceGroupName, deploymentName string, template map[string]interface{}, ...) (*resources.DeploymentExtended, error)
- func (az *AzureClient) EnsureResourceGroup(name, location string) (resourceGroup *resources.Group, err error)
- func (az *AzureClient) GetDeployment(resourceGroupName, deploymentName string) (result resources.DeploymentExtended, err error)
- func (az *AzureClient) GetStorageClient(resourceGroup, accountName string) (ACSStorageClient, error)
- func (az *AzureClient) GetVirtualMachine(resourceGroup, name string) (compute.VirtualMachine, error)
- func (az *AzureClient) ListDeploymentOperations(resourceGroupName string, deploymentName string, top *int32) (result resources.DeploymentOperationsListResult, err error)
- func (az *AzureClient) ListDeploymentOperationsNextResults(lastResults resources.DeploymentOperationsListResult) (result resources.DeploymentOperationsListResult, err error)
- func (az *AzureClient) ListManagedDisksByResourceGroup(resourceGroupName string) (result disk.ListType, err error)
- func (az *AzureClient) ListVirtualMachineScaleSets(resourceGroup string) (compute.VirtualMachineScaleSetListResult, error)
- func (az *AzureClient) ListVirtualMachines(resourceGroup string) (compute.VirtualMachineListResult, error)
- func (az *AzureClient) ValidateTemplate(resourceGroupName string, deploymentName string, ...) (result resources.DeploymentValidateResult, err error)
- type AzureStorageClient
- type MockACSEngineClient
- func (mc *MockACSEngineClient) AddAcceptLanguages(languages []string)
- func (mc *MockACSEngineClient) CreateApp(applicationName, applicationURL string) (applicationID, servicePrincipalObjectID, secret string, err error)
- func (mc *MockACSEngineClient) CreateGraphApplication(applicationCreateParameters graphrbac.ApplicationCreateParameters) (graphrbac.Application, error)
- func (mc *MockACSEngineClient) CreateGraphPrincipal(servicePrincipalCreateParameters graphrbac.ServicePrincipalCreateParameters) (graphrbac.ServicePrincipal, error)
- func (mc *MockACSEngineClient) CreateRoleAssignment(scope string, roleAssignmentName string, ...) (authorization.RoleAssignment, error)
- func (mc *MockACSEngineClient) CreateRoleAssignmentSimple(applicationID, roleID string) error
- func (mc *MockACSEngineClient) DeleteManagedDisk(resourceGroupName string, diskName string, cancel <-chan struct{}) (<-chan disk.OperationStatusResponse, <-chan error)
- func (mc *MockACSEngineClient) DeleteNetworkInterface(resourceGroup, nicName string, cancel <-chan struct{}) (<-chan autorest.Response, <-chan error)
- func (mc *MockACSEngineClient) DeleteVirtualMachine(resourceGroup, name string, cancel <-chan struct{}) (<-chan compute.OperationStatusResponse, <-chan error)
- func (mc *MockACSEngineClient) DeployTemplate(resourceGroup, name string, template, parameters map[string]interface{}, ...) (*resources.DeploymentExtended, error)
- func (mc *MockACSEngineClient) EnsureResourceGroup(resourceGroup, location string) (*resources.Group, error)
- func (mc *MockACSEngineClient) GetStorageClient(resourceGroup, accountName string) (ACSStorageClient, error)
- func (mc *MockACSEngineClient) GetVirtualMachine(resourceGroup, name string) (compute.VirtualMachine, error)
- func (mc *MockACSEngineClient) ListManagedDisksByResourceGroup(resourceGroupName string) (result disk.ListType, err error)
- func (mc *MockACSEngineClient) ListVirtualMachineScaleSets(resourceGroup string) (compute.VirtualMachineScaleSetListResult, error)
- func (mc *MockACSEngineClient) ListVirtualMachines(resourceGroup string) (compute.VirtualMachineListResult, error)
- type MockStorageClient
Constants ¶
const ( // AcsEngineClientID is the AAD ClientID for the CLI native application AcsEngineClientID = "76e0feec-6b7f-41f0-81a7-b1b944520261" // ApplicationDir is the name of the dir where the token is cached ApplicationDir = ".acsengine" )
const ( // AADContributorRoleID is the role id that exists in every subscription for 'Contributor' AADContributorRoleID = "b24988ac-6180-42a0-ab88-20f7382dd24c" // AADRoleReferenceTemplate is a template for a roleDefinitionId AADRoleReferenceTemplate = "/subscriptions/%s/providers/Microsoft.Authorization/roleDefinitions/%s" // AADRoleResourceGroupScopeTemplate is a template for a roleDefinition scope AADRoleResourceGroupScopeTemplate = "/subscriptions/%s/resourceGroups/%s" )
Variables ¶
var ( // RequiredResourceProviders is the list of Azure Resource Providers needed for ACS-Engine to function RequiredResourceProviders = []string{"Microsoft.Compute", "Microsoft.Storage", "Microsoft.Network"} )
Functions ¶
func GetVMNameIndex ¶
func GetVMNameIndex(osType compute.OperatingSystemTypes, vmName string) (int, error)
GetVMNameIndex return VM index of a node in the Kubernetes cluster
func LinuxVMNameParts ¶
func LinuxVMNameParts(vmName string) (orchestrator string, poolIdentifier string, nameSuffix string, agentIndex int, err error)
LinuxVMNameParts returns parts of Linux VM name e.g: k8s-agentpool1-11290731-0
func ResourceName ¶
ResourceName returns the last segment (the resource name) for the specified resource identifier.
func SplitBlobURI ¶
SplitBlobURI returns a decomposed blob URI parts: accountName, containerName, blobName.
Types ¶
type ACSEngineClient ¶
type ACSEngineClient interface { //AddAcceptLanguages sets the list of languages to accept on this request AddAcceptLanguages(languages []string) // DeployTemplate can deploy a template into Azure ARM DeployTemplate(resourceGroup, name string, template, parameters map[string]interface{}, cancel <-chan struct{}) (*resources.DeploymentExtended, error) // EnsureResourceGroup ensures the specified resource group exists in the specified location EnsureResourceGroup(resourceGroup, location string) (*resources.Group, error) // List lists VM resources ListVirtualMachines(resourceGroup string) (compute.VirtualMachineListResult, error) // GetVirtualMachine retrieves the specified virtual machine. GetVirtualMachine(resourceGroup, name string) (compute.VirtualMachine, error) // DeleteVirtualMachine deletes the specified virtual machine. DeleteVirtualMachine(resourceGroup, name string, cancel <-chan struct{}) (<-chan compute.OperationStatusResponse, <-chan error) // ListVirtualMachineScaleSets lists the vmss resources in the resource group ListVirtualMachineScaleSets(resourceGroup string) (compute.VirtualMachineScaleSetListResult, error) // GetStorageClient uses SRP to retrieve keys, and then an authenticated client for talking to the specified storage // account. GetStorageClient(resourceGroup, accountName string) (ACSStorageClient, error) // DeleteNetworkInterface deletes the specified network interface. DeleteNetworkInterface(resourceGroup, nicName string, cancel <-chan struct{}) (<-chan autorest.Response, <-chan error) // CreateGraphAppliction creates an application via the graphrbac client CreateGraphApplication(applicationCreateParameters graphrbac.ApplicationCreateParameters) (graphrbac.Application, error) // CreateGraphPrincipal creates a service principal via the graphrbac client CreateGraphPrincipal(servicePrincipalCreateParameters graphrbac.ServicePrincipalCreateParameters) (graphrbac.ServicePrincipal, error) CreateApp(applicationName, applicationURL string) (applicationID, servicePrincipalObjectID, secret string, err error) // RBAC CreateRoleAssignment(scope string, roleAssignmentName string, parameters authorization.RoleAssignmentCreateParameters) (authorization.RoleAssignment, error) CreateRoleAssignmentSimple(applicationID, roleID string) error // MANAGED DISKS DeleteManagedDisk(resourceGroupName string, diskName string, cancel <-chan struct{}) (<-chan disk.OperationStatusResponse, <-chan error) ListManagedDisksByResourceGroup(resourceGroupName string) (result disk.ListType, err error) }
ACSEngineClient is the interface used to talk to an Azure environment. This interface exposes just the subset of Azure APIs and clients needed for ACS-Engine.
type ACSStorageClient ¶
type ACSStorageClient interface { // DeleteBlob deletes the specified blob in the specified container. DeleteBlob(container, blob string) error }
ACSStorageClient interface models the azure storage client
type AzureClient ¶
type AzureClient struct {
// contains filtered or unexported fields
}
AzureClient implements the `ACSEngineClient` interface. This client is backed by real Azure clients talking to an ARM endpoint.
func NewAzureClientWithClientCertificate ¶
func NewAzureClientWithClientCertificate(env azure.Environment, subscriptionID, clientID string, certificate *x509.Certificate, privateKey *rsa.PrivateKey) (*AzureClient, error)
NewAzureClientWithClientCertificate returns an AzureClient via client_id and jwt certificate assertion
func NewAzureClientWithClientCertificateFile ¶ added in v0.2.0
func NewAzureClientWithClientCertificateFile(env azure.Environment, subscriptionID, clientID, certificatePath, privateKeyPath string) (*AzureClient, error)
NewAzureClientWithClientCertificateFile returns an AzureClient via client_id and jwt certificate assertion
func NewAzureClientWithClientSecret ¶
func NewAzureClientWithClientSecret(env azure.Environment, subscriptionID, clientID, clientSecret string) (*AzureClient, error)
NewAzureClientWithClientSecret returns an AzureClient via client_id and client_secret
func NewAzureClientWithDeviceAuth ¶
func NewAzureClientWithDeviceAuth(env azure.Environment, subscriptionID string) (*AzureClient, error)
NewAzureClientWithDeviceAuth returns an AzureClient by having a user complete a device authentication flow
func (*AzureClient) AddAcceptLanguages ¶ added in v0.2.0
func (az *AzureClient) AddAcceptLanguages(languages []string)
AddAcceptLanguages sets the list of languages to accept on this request
func (*AzureClient) CheckDeploymentExistence ¶ added in v0.2.0
func (az *AzureClient) CheckDeploymentExistence(resourceGroupName string, deploymentName string) (result autorest.Response, err error)
CheckDeploymentExistence returns if the deployment already exists
func (*AzureClient) CheckResourceGroupExistence ¶ added in v0.3.0
func (az *AzureClient) CheckResourceGroupExistence(name string) (result autorest.Response, err error)
CheckResourceGroupExistence return if the resource group exists
func (*AzureClient) CreateApp ¶ added in v0.4.0
func (az *AzureClient) CreateApp(appName, appURL string) (applicationID, servicePrincipalObjectID, servicePrincipalClientSecret string, err error)
CreateApp is a simpler method for creating an application
func (*AzureClient) CreateGraphApplication ¶ added in v0.4.0
func (az *AzureClient) CreateGraphApplication(applicationCreateParameters graphrbac.ApplicationCreateParameters) (graphrbac.Application, error)
CreateGraphApplication creates an application via the graphrbac client
func (*AzureClient) CreateGraphPrincipal ¶ added in v0.4.0
func (az *AzureClient) CreateGraphPrincipal(servicePrincipalCreateParameters graphrbac.ServicePrincipalCreateParameters) (graphrbac.ServicePrincipal, error)
CreateGraphPrincipal creates a service principal via the graphrbac client
func (*AzureClient) CreateRoleAssignment ¶ added in v0.4.0
func (az *AzureClient) CreateRoleAssignment(scope string, roleAssignmentName string, parameters authorization.RoleAssignmentCreateParameters) (authorization.RoleAssignment, error)
CreateRoleAssignment creates a role assignment via the authorization client
func (*AzureClient) CreateRoleAssignmentSimple ¶ added in v0.4.0
func (az *AzureClient) CreateRoleAssignmentSimple(resourceGroup, servicePrincipalObjectID string) error
CreateRoleAssignmentSimple is a wrapper around RoleAssignmentsClient.Create
func (*AzureClient) DeleteManagedDisk ¶ added in v0.4.0
func (az *AzureClient) DeleteManagedDisk(resourceGroupName string, diskName string, cancel <-chan struct{}) (<-chan disk.OperationStatusResponse, <-chan error)
DeleteManagedDisk deletes a managed disk.
func (*AzureClient) DeleteNetworkInterface ¶
func (az *AzureClient) DeleteNetworkInterface(resourceGroup, nicName string, cancel <-chan struct{}) (<-chan autorest.Response, <-chan error)
DeleteNetworkInterface deletes the specified network interface.
func (*AzureClient) DeleteResourceGroup ¶
func (az *AzureClient) DeleteResourceGroup(name string, cancel chan struct{}) (<-chan autorest.Response, <-chan error)
DeleteResourceGroup delete the named resource group
func (*AzureClient) DeleteVirtualMachine ¶
func (az *AzureClient) DeleteVirtualMachine(resourceGroup, name string, cancel <-chan struct{}) (<-chan compute.OperationStatusResponse, <-chan error)
DeleteVirtualMachine handles deletion of a CRP/VMAS VM (aka, not a VMSS VM).
func (*AzureClient) DeployTemplate ¶
func (az *AzureClient) DeployTemplate(resourceGroupName, deploymentName string, template map[string]interface{}, parameters map[string]interface{}, cancel <-chan struct{}) (*resources.DeploymentExtended, error)
DeployTemplate implements the TemplateDeployer interface for the AzureClient client
func (*AzureClient) EnsureResourceGroup ¶
func (az *AzureClient) EnsureResourceGroup(name, location string) (resourceGroup *resources.Group, err error)
EnsureResourceGroup ensures the named resouce group exists in the given location.
func (*AzureClient) GetDeployment ¶
func (az *AzureClient) GetDeployment(resourceGroupName, deploymentName string) (result resources.DeploymentExtended, err error)
GetDeployment returns the template deployment
func (*AzureClient) GetStorageClient ¶
func (az *AzureClient) GetStorageClient(resourceGroup, accountName string) (ACSStorageClient, error)
GetStorageClient returns an authenticated client for the specified account.
func (*AzureClient) GetVirtualMachine ¶
func (az *AzureClient) GetVirtualMachine(resourceGroup, name string) (compute.VirtualMachine, error)
GetVirtualMachine returns the specified machine in the specified resource group.
func (*AzureClient) ListDeploymentOperations ¶ added in v0.2.0
func (az *AzureClient) ListDeploymentOperations(resourceGroupName string, deploymentName string, top *int32) (result resources.DeploymentOperationsListResult, err error)
ListDeploymentOperations gets all deployments operations for a deployment.
func (*AzureClient) ListDeploymentOperationsNextResults ¶ added in v0.2.0
func (az *AzureClient) ListDeploymentOperationsNextResults(lastResults resources.DeploymentOperationsListResult) (result resources.DeploymentOperationsListResult, err error)
ListDeploymentOperationsNextResults retrieves the next set of results, if any.
func (*AzureClient) ListManagedDisksByResourceGroup ¶ added in v0.4.0
func (az *AzureClient) ListManagedDisksByResourceGroup(resourceGroupName string) (result disk.ListType, err error)
ListManagedDisksByResourceGroup lists managed disks in a resource group.
func (*AzureClient) ListVirtualMachineScaleSets ¶ added in v0.1.2
func (az *AzureClient) ListVirtualMachineScaleSets(resourceGroup string) (compute.VirtualMachineScaleSetListResult, error)
ListVirtualMachineScaleSets returns (the first page of) the vmss resources in the specified resource group.
func (*AzureClient) ListVirtualMachines ¶
func (az *AzureClient) ListVirtualMachines(resourceGroup string) (compute.VirtualMachineListResult, error)
ListVirtualMachines returns (the first page of) the machines in the specified resource group.
func (*AzureClient) ValidateTemplate ¶
func (az *AzureClient) ValidateTemplate( resourceGroupName string, deploymentName string, template map[string]interface{}, parameters map[string]interface{}) (result resources.DeploymentValidateResult, err error)
ValidateTemplate validate the template and parameters
type AzureStorageClient ¶
type AzureStorageClient struct {
// contains filtered or unexported fields
}
AzureStorageClient implements the StorageClient interface and wraps the Azure storage client.
func (*AzureStorageClient) DeleteBlob ¶
func (as *AzureStorageClient) DeleteBlob(vhdContainer, vhdBlob string) error
DeleteBlob deletes the specified blob TODO(colemick): why doesn't SDK give a way to just delete a blob by URI? it's what it ends up doing internally anyway...
type MockACSEngineClient ¶
type MockACSEngineClient struct { FailDeployTemplate bool FailEnsureResourceGroup bool FailListVirtualMachines bool FailListVirtualMachineScaleSets bool FailGetVirtualMachine bool FailDeleteVirtualMachine bool FailGetStorageClient bool FailDeleteNetworkInterface bool }
MockACSEngineClient is an implementation of ACSEngineClient where all requests error out
func (*MockACSEngineClient) AddAcceptLanguages ¶ added in v0.2.0
func (mc *MockACSEngineClient) AddAcceptLanguages(languages []string)
AddAcceptLanguages mock
func (*MockACSEngineClient) CreateApp ¶ added in v0.4.0
func (mc *MockACSEngineClient) CreateApp(applicationName, applicationURL string) (applicationID, servicePrincipalObjectID, secret string, err error)
CreateApp is a simpler method for creating an application
func (*MockACSEngineClient) CreateGraphApplication ¶ added in v0.4.0
func (mc *MockACSEngineClient) CreateGraphApplication(applicationCreateParameters graphrbac.ApplicationCreateParameters) (graphrbac.Application, error)
CreateGraphApplication creates an application via the graphrbac client
func (*MockACSEngineClient) CreateGraphPrincipal ¶ added in v0.4.0
func (mc *MockACSEngineClient) CreateGraphPrincipal(servicePrincipalCreateParameters graphrbac.ServicePrincipalCreateParameters) (graphrbac.ServicePrincipal, error)
CreateGraphPrincipal creates a service principal via the graphrbac client
func (*MockACSEngineClient) CreateRoleAssignment ¶ added in v0.4.0
func (mc *MockACSEngineClient) CreateRoleAssignment(scope string, roleAssignmentName string, parameters authorization.RoleAssignmentCreateParameters) (authorization.RoleAssignment, error)
CreateRoleAssignment creates a role assignment via the authorization client
func (*MockACSEngineClient) CreateRoleAssignmentSimple ¶ added in v0.4.0
func (mc *MockACSEngineClient) CreateRoleAssignmentSimple(applicationID, roleID string) error
CreateRoleAssignmentSimple is a wrapper around RoleAssignmentsClient.Create
func (*MockACSEngineClient) DeleteManagedDisk ¶ added in v0.4.0
func (mc *MockACSEngineClient) DeleteManagedDisk(resourceGroupName string, diskName string, cancel <-chan struct{}) (<-chan disk.OperationStatusResponse, <-chan error)
DeleteManagedDisk is a wrapper around disksClient.Delete
func (*MockACSEngineClient) DeleteNetworkInterface ¶
func (mc *MockACSEngineClient) DeleteNetworkInterface(resourceGroup, nicName string, cancel <-chan struct{}) (<-chan autorest.Response, <-chan error)
DeleteNetworkInterface mock
func (*MockACSEngineClient) DeleteVirtualMachine ¶
func (mc *MockACSEngineClient) DeleteVirtualMachine(resourceGroup, name string, cancel <-chan struct{}) (<-chan compute.OperationStatusResponse, <-chan error)
DeleteVirtualMachine mock
func (*MockACSEngineClient) DeployTemplate ¶
func (mc *MockACSEngineClient) DeployTemplate(resourceGroup, name string, template, parameters map[string]interface{}, cancel <-chan struct{}) (*resources.DeploymentExtended, error)
DeployTemplate mock
func (*MockACSEngineClient) EnsureResourceGroup ¶
func (mc *MockACSEngineClient) EnsureResourceGroup(resourceGroup, location string) (*resources.Group, error)
EnsureResourceGroup mock
func (*MockACSEngineClient) GetStorageClient ¶
func (mc *MockACSEngineClient) GetStorageClient(resourceGroup, accountName string) (ACSStorageClient, error)
GetStorageClient mock
func (*MockACSEngineClient) GetVirtualMachine ¶
func (mc *MockACSEngineClient) GetVirtualMachine(resourceGroup, name string) (compute.VirtualMachine, error)
GetVirtualMachine mock
func (*MockACSEngineClient) ListManagedDisksByResourceGroup ¶ added in v0.4.0
func (mc *MockACSEngineClient) ListManagedDisksByResourceGroup(resourceGroupName string) (result disk.ListType, err error)
ListManagedDisksByResourceGroup is a wrapper around disksClient.ListManagedDisksByResourceGroup
func (*MockACSEngineClient) ListVirtualMachineScaleSets ¶ added in v0.1.2
func (mc *MockACSEngineClient) ListVirtualMachineScaleSets(resourceGroup string) (compute.VirtualMachineScaleSetListResult, error)
ListVirtualMachineScaleSets mock
func (*MockACSEngineClient) ListVirtualMachines ¶
func (mc *MockACSEngineClient) ListVirtualMachines(resourceGroup string) (compute.VirtualMachineListResult, error)
ListVirtualMachines mock
type MockStorageClient ¶
type MockStorageClient struct{}
MockStorageClient mock implementation of StorageClient
func (*MockStorageClient) DeleteBlob ¶
func (msc *MockStorageClient) DeleteBlob(container, blob string) error
DeleteBlob mock