From 36eb3db8a9577d2fc2b02303b46ef42694f1d59b Mon Sep 17 00:00:00 2001 From: Jeremy Rickard Date: Tue, 24 Jul 2018 15:19:20 -0700 Subject: [PATCH] Adding network policy reference (#269) --- providers/azure/client/aci/client.go | 4 +- providers/azure/client/aci/client_test.go | 57 ++++++++++++++++++++++- providers/azure/client/aci/types.go | 10 ++++ 3 files changed, 67 insertions(+), 4 deletions(-) diff --git a/providers/azure/client/aci/client.go b/providers/azure/client/aci/client.go index 66aac3795..958759895 100644 --- a/providers/azure/client/aci/client.go +++ b/providers/azure/client/aci/client.go @@ -10,8 +10,8 @@ import ( const ( // BaseURI is the default URI used for compute services. baseURI = "https://management.azure.com" - userAgent = "virtual-kubelet/azure-arm-aci/2018-06-01" - apiVersion = "2018-06-01" + userAgent = "virtual-kubelet/azure-arm-aci/2018-07-01" + apiVersion = "2018-07-01" containerGroupURLPath = "subscriptions/{{.subscriptionId}}/resourceGroups/{{.resourceGroup}}/providers/Microsoft.ContainerInstance/containerGroups/{{.containerGroupName}}" containerGroupListURLPath = "subscriptions/{{.subscriptionId}}/providers/Microsoft.ContainerInstance/containerGroups" diff --git a/providers/azure/client/aci/client_test.go b/providers/azure/client/aci/client_test.go index 0fcaf5227..eb8fddf1b 100644 --- a/providers/azure/client/aci/client_test.go +++ b/providers/azure/client/aci/client_test.go @@ -1,6 +1,7 @@ package aci import ( + "fmt" "log" "os" "strings" @@ -13,13 +14,14 @@ import ( var ( client *Client - location = "eastus" + location = "eastus2euap" resourceGroup = "virtual-kubelet-tests" containerGroup = "virtual-kubelet-test-container-group" + subscriptionID string ) func init() { - // Create a resource group name with uuid. + //Create a resource group name with uuid. uid := uuid.New() resourceGroup += "-" + uid.String()[0:6] } @@ -32,6 +34,8 @@ func TestMain(m *testing.M) { log.Fatalf("Failed to load Azure authentication file: %v", err) } + subscriptionID = auth.SubscriptionID + // Check if the resource group exists and create it if not. rgCli, err := resourcegroups.NewClient(auth) if err != nil { @@ -195,6 +199,55 @@ func TestCreateContainerGroup(t *testing.T) { } } +func TestCreateContainerGroupWithBadVNetFails(t *testing.T) { + _, err := client.CreateContainerGroup(resourceGroup, containerGroup, ContainerGroup{ + Location: location, + ContainerGroupProperties: ContainerGroupProperties{ + OsType: Linux, + Containers: []Container{ + { + Name: "nginx", + ContainerProperties: ContainerProperties{ + Image: "nginx", + Command: []string{"nginx", "-g", "daemon off;"}, + Ports: []ContainerPort{ + { + Protocol: ContainerNetworkProtocolTCP, + Port: 80, + }, + }, + Resources: ResourceRequirements{ + Requests: &ResourceRequests{ + CPU: 1, + MemoryInGB: 1, + }, + Limits: &ResourceLimits{ + CPU: 1, + MemoryInGB: 1, + }, + }, + }, + }, + }, + NetworkProfile: &NetworkProfileDefinition{ + ID: fmt.Sprintf( + "/subscriptions/%s/resourceGroups/%s/providers"+ + "/Microsoft.Network/networkProfiles/%s", + subscriptionID, + resourceGroup, + "badNetworkProfile", + ), + }, + }, + }) + if err == nil { + t.Fatal("expected create container group to fail with NetworkProfileNotFound, but returned nil") + } + if !strings.Contains(err.Error(), "NetworkProfileNotFound") { + t.Fatalf("expected NetworkProfileNotFound to be in the error message but got: %v", err) + } +} + func TestGetContainerGroup(t *testing.T) { cg, err, _ := client.GetContainerGroup(resourceGroup, containerGroup) if err != nil { diff --git a/providers/azure/client/aci/types.go b/providers/azure/client/aci/types.go index 0abca698c..1969eea1c 100644 --- a/providers/azure/client/aci/types.go +++ b/providers/azure/client/aci/types.go @@ -93,7 +93,11 @@ type ContainerGroupProperties struct { OsType OperatingSystemTypes `json:"osType,omitempty"` Volumes []Volume `json:"volumes,omitempty"` InstanceView ContainerGroupPropertiesInstanceView `json:"instanceView,omitempty"` +<<<<<<< HEAD Diagnostics *ContainerGroupDiagnostics `json:"diagnostics,omitempty"` +======= + NetworkProfile *NetworkProfileDefinition `json:"networkProfile,omitempty"` +>>>>>>> Adding network policy reference (#269) } // ContainerGroupPropertiesInstanceView is the instance view of the container group. Only valid in response. @@ -102,6 +106,12 @@ type ContainerGroupPropertiesInstanceView struct { State string `json:"state,omitempty"` } +// NetworkProfileDefinition is the network profile definition. ID should be of the form +// /subscriptions/{subscriptionId} or /providers/{resourceProviderNamespace}/ +type NetworkProfileDefinition struct { + ID string `json:"id,omitempty"` +} + // ContainerGroupListResult is the container group list response that contains the container group properties. type ContainerGroupListResult struct { api.ResponseMetadata `json:"-"`