예제 #1
0
        public async Task <object> CreateAKS(string subid, string resourceGroupName, CreateAKSModel createAKSModel,
                                             string clientId, string clientSecret, string access_token)
        {
            CreateRequestJObject createRequestJObject = new CreateRequestJObject();
            var    requestmodel = createRequestJObject.CreateAKSRequestJObject(createAKSModel, clientId, clientSecret);
            string url          = string.Format("{0}/resourceGroups/{1}/providers/Microsoft.ContainerService" +
                                                "/managedClusters/{2}?api-version=2019-10-01", subid, resourceGroupName, createAKSModel.name);
            var request = new HttpRequestMessage(HttpMethod.Put, url);
            var client  = this._clientFactory.CreateClient("chinacloudapi");

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", access_token);
            string requestbody = JsonConvert.SerializeObject(requestmodel);

            request.Content = new StringContent(requestbody, UnicodeEncoding.UTF8, "application/json");
            var response = await client.SendAsync(request);

            string result = await response.Content.ReadAsStringAsync();

            if (response.IsSuccessStatusCode)
            {
                return(JsonConvert.DeserializeObject(result));
            }
            else
            {
                return(response.ReasonPhrase);
            }
        }
        public JObject CreateAKSRequestJObject(CreateAKSModel AKSModel, string clientId, string clientSecret)
        {
            var requestmodel = new JObject
            {
                { "location", AKSModel.location }
            };
            var properties = new JObject
            {
                { "kubernetesVersion", AKSModel.Properties.kubernetesVersion },
                { "dnsPrefix", AKSModel.Properties.dnsPrefix }
            };
            var agentPoolProfiles = new JArray
            {
                new JObject
                {
                    { "name", "nodepool1" },
                    { "count", AKSModel.Properties.agentPoolProfiles[0].count },
                    { "vmSize", AKSModel.Properties.agentPoolProfiles[0].vmSize }
                }
            };
            var networkProfile = new JObject
            {
                { "loadBalancerSku", AKSModel.Properties.networkProfile.loadBalancerSku },
                { "outboundType", "loadBalancer" }
            };
            var servicePrincipalProfile = new JObject
            {
                { "clientId", clientId },
                { "secret", clientSecret }
            };

            properties.Add("agentPoolProfiles", agentPoolProfiles);
            properties.Add("networkProfile", networkProfile);
            properties.Add("servicePrincipalProfile", servicePrincipalProfile);
            requestmodel.Add("properties", properties);
            return(requestmodel);
        }
예제 #3
0
        public async Task <object> CreateAKS(string email, string subid, string resourceGroupName, CreateAKSModel createAKSModel)
        {
            string           access_token     = _tokenDto.GetTokenString(email, _tokenResource.Value.manage);
            ServicePrinciple servicePrinciple = _accountDao.GetCurrentService(email);

            return(await this._aKSDto.CreateAKS(subid, resourceGroupName, createAKSModel, servicePrinciple.ClientId, servicePrinciple.ClientSecret, access_token));
        }
예제 #4
0
 public async Task <object> CreateAKS(string email, string subid, string resourceGroupName, [FromBody] CreateAKSModel createAKSModel)
 {
     return(await this._aKSBus.CreateAKS(email, subid, resourceGroupName, createAKSModel));
 }