protected override ManagedCluster BuildNewCluster() { BeforeBuildNewCluster(); var pubKey = new List <ContainerServiceSshPublicKey> { new ContainerServiceSshPublicKey(SshKeyValue) }; var linuxProfile = new ContainerServiceLinuxProfile(LinuxProfileAdminUserName, new ContainerServiceSshConfiguration(pubKey)); var acsServicePrincipal = EnsureServicePrincipal(ClientIdAndSecret?.UserName, ClientIdAndSecret?.Password?.ToString()); var spProfile = new ManagedClusterServicePrincipalProfile( acsServicePrincipal.SpId, acsServicePrincipal.ClientSecret); var aadProfile = GetAadProfile(); var defaultAgentPoolProfile = GetAgentPoolProfile(); var windowsProfile = GetWindowsProfile(); var networkProfile = GetNetworkProfile(); WriteVerbose(string.Format(Resources.DeployingYourManagedKubeCluster, AcsSpFilePath)); var managedCluster = new ManagedCluster( Location, name: Name, tags: TagsConversionHelper.CreateTagDictionary(Tag, true), dnsPrefix: DnsNamePrefix, kubernetesVersion: KubernetesVersion, agentPoolProfiles: new List <ManagedClusterAgentPoolProfile> { defaultAgentPoolProfile }, linuxProfile: linuxProfile, windowsProfile: windowsProfile, servicePrincipalProfile: spProfile, aadProfile: aadProfile, networkProfile: networkProfile); if (EnableRbac.IsPresent) { managedCluster.EnableRBAC = EnableRbac; } //if(EnablePodSecurityPolicy.IsPresent) //{ // managedCluster.EnablePodSecurityPolicy = EnablePodSecurityPolicy; //} if (this.IsParameterBound(c => c.AcrNameToAttach)) { AddAcrRoleAssignment(AcrNameToAttach, acsServicePrincipal); } return(managedCluster); }
protected ManagedCluster BuildNewCluster() { if (!string.IsNullOrEmpty(ResourceGroupName) && string.IsNullOrEmpty(Location)) { var rg = RmClient.ResourceGroups.Get(ResourceGroupName); Location = rg.Location; WriteVerbose(string.Format(Resources.UsingLocationFromTheResourceGroup, Location, ResourceGroupName)); } if (string.IsNullOrEmpty(DnsNamePrefix)) { DnsNamePrefix = DefaultDnsPrefix(); } WriteVerbose(string.Format(Resources.UsingDnsNamePrefix, DnsNamePrefix)); SshKeyValue = GetSshKey(SshKeyValue); var defaultAgentPoolProfile = new ContainerServiceAgentPoolProfile( "default", NodeVmSize, NodeCount, NodeOsDiskSize, DnsNamePrefix); var pubKey = new List <ContainerServiceSshPublicKey> { new ContainerServiceSshPublicKey(SshKeyValue) }; var linuxProfile = new ContainerServiceLinuxProfile(AdminUserName, new ContainerServiceSshConfiguration(pubKey)); var acsServicePrincipal = EnsureServicePrincipal(ClientIdAndSecret?.UserName, ClientIdAndSecret?.Password?.ToString()); var spProfile = new ContainerServiceServicePrincipalProfile( acsServicePrincipal.SpId, acsServicePrincipal.ClientSecret); WriteVerbose(string.Format(Resources.DeployingYourManagedKubeCluster, AcsSpFilePath)); var managedCluster = new ManagedCluster( Location, name: Name, tags: TagsConversionHelper.CreateTagDictionary(Tag, true), dnsPrefix: DnsNamePrefix, kubernetesVersion: KubernetesVersion, agentPoolProfiles: new List <ContainerServiceAgentPoolProfile> { defaultAgentPoolProfile }, linuxProfile: linuxProfile, servicePrincipalProfile: spProfile); return(managedCluster); }
protected virtual ManagedCluster BuildNewCluster() { BeforeBuildNewCluster(); var defaultAgentPoolProfile = new ManagedClusterAgentPoolProfile( name: NodeName ?? "default", count: NodeCount, vmSize: NodeVmSize, osDiskSizeGB: NodeOsDiskSize); if (this.IsParameterBound(c => c.NodeMinCount)) { defaultAgentPoolProfile.MinCount = NodeMinCount; } if (this.IsParameterBound(c => c.NodeMaxCount)) { defaultAgentPoolProfile.MaxCount = NodeMaxCount; } if (EnableNodeAutoScaling.IsPresent) { defaultAgentPoolProfile.EnableAutoScaling = EnableNodeAutoScaling.ToBool(); } var pubKey = new List <ContainerServiceSshPublicKey> { new ContainerServiceSshPublicKey(SshKeyValue) }; var linuxProfile = new ContainerServiceLinuxProfile(LinuxProfileAdminUserName, new ContainerServiceSshConfiguration(pubKey)); var acsServicePrincipal = EnsureServicePrincipal(ServicePrincipalIdAndSecret?.UserName, ServicePrincipalIdAndSecret?.Password?.ConvertToString()); var spProfile = new ManagedClusterServicePrincipalProfile( acsServicePrincipal.SpId, acsServicePrincipal.ClientSecret); WriteVerbose(string.Format(Resources.DeployingYourManagedKubeCluster, AcsSpFilePath)); var managedCluster = new ManagedCluster( Location, name: Name, tags: TagsConversionHelper.CreateTagDictionary(Tag, true), dnsPrefix: DnsNamePrefix, kubernetesVersion: KubernetesVersion, agentPoolProfiles: new List <ManagedClusterAgentPoolProfile> { defaultAgentPoolProfile }, linuxProfile: linuxProfile, servicePrincipalProfile: spProfile); return(managedCluster); }
private void Run() { // OrchestratorProfile ContainerServiceOrchestratorProfile vOrchestratorProfile = null; // CustomProfile ContainerServiceCustomProfile vCustomProfile = null; // ServicePrincipalProfile ContainerServiceServicePrincipalProfile vServicePrincipalProfile = null; // MasterProfile ContainerServiceMasterProfile vMasterProfile = null; // WindowsProfile ContainerServiceWindowsProfile vWindowsProfile = null; // LinuxProfile ContainerServiceLinuxProfile vLinuxProfile = null; // DiagnosticsProfile ContainerServiceDiagnosticsProfile vDiagnosticsProfile = null; if (this.IsParameterBound(c => c.OrchestratorType)) { if (vOrchestratorProfile == null) { vOrchestratorProfile = new ContainerServiceOrchestratorProfile(); } vOrchestratorProfile.OrchestratorType = this.OrchestratorType.Value; } if (this.IsParameterBound(c => c.CustomProfileOrchestrator)) { if (vCustomProfile == null) { vCustomProfile = new ContainerServiceCustomProfile(); } vCustomProfile.Orchestrator = this.CustomProfileOrchestrator; } if (this.IsParameterBound(c => c.ServicePrincipalProfileClientId)) { if (vServicePrincipalProfile == null) { vServicePrincipalProfile = new ContainerServiceServicePrincipalProfile(); } vServicePrincipalProfile.ClientId = this.ServicePrincipalProfileClientId; } if (this.IsParameterBound(c => c.ServicePrincipalProfileSecret)) { if (vServicePrincipalProfile == null) { vServicePrincipalProfile = new ContainerServiceServicePrincipalProfile(); } vServicePrincipalProfile.Secret = this.ServicePrincipalProfileSecret; } if (this.IsParameterBound(c => c.MasterCount)) { if (vMasterProfile == null) { vMasterProfile = new ContainerServiceMasterProfile(); } vMasterProfile.Count = this.MasterCount; } if (this.IsParameterBound(c => c.MasterDnsPrefix)) { if (vMasterProfile == null) { vMasterProfile = new ContainerServiceMasterProfile(); } vMasterProfile.DnsPrefix = this.MasterDnsPrefix; } if (this.IsParameterBound(c => c.WindowsProfileAdminUsername)) { if (vWindowsProfile == null) { vWindowsProfile = new ContainerServiceWindowsProfile(); } vWindowsProfile.AdminUsername = this.WindowsProfileAdminUsername; } if (this.IsParameterBound(c => c.WindowsProfileAdminPassword)) { if (vWindowsProfile == null) { vWindowsProfile = new ContainerServiceWindowsProfile(); } vWindowsProfile.AdminPassword = this.WindowsProfileAdminPassword; } if (this.IsParameterBound(c => c.AdminUsername)) { if (vLinuxProfile == null) { vLinuxProfile = new ContainerServiceLinuxProfile(); } vLinuxProfile.AdminUsername = this.AdminUsername; } if (this.IsParameterBound(c => c.SshPublicKey)) { if (vLinuxProfile == null) { vLinuxProfile = new ContainerServiceLinuxProfile(); } if (vLinuxProfile.Ssh == null) { vLinuxProfile.Ssh = new ContainerServiceSshConfiguration(); } if (vLinuxProfile.Ssh.PublicKeys == null) { vLinuxProfile.Ssh.PublicKeys = new List <ContainerServiceSshPublicKey>(); } foreach (var element in this.SshPublicKey) { var vPublicKeys = new ContainerServiceSshPublicKey(); vPublicKeys.KeyData = element; vLinuxProfile.Ssh.PublicKeys.Add(vPublicKeys); } } if (vDiagnosticsProfile == null) { vDiagnosticsProfile = new ContainerServiceDiagnosticsProfile(); } if (vDiagnosticsProfile.VmDiagnostics == null) { vDiagnosticsProfile.VmDiagnostics = new ContainerServiceVMDiagnostics(); } vDiagnosticsProfile.VmDiagnostics.Enabled = this.VmDiagnosticsEnabled; var vContainerService = new PSContainerService { Location = this.IsParameterBound(c => c.Location) ? this.Location : null, Tags = this.IsParameterBound(c => c.Tag) ? this.Tag.Cast <DictionaryEntry>().ToDictionary(ht => (string)ht.Key, ht => (string)ht.Value) : null, AgentPoolProfiles = this.IsParameterBound(c => c.AgentPoolProfile) ? this.AgentPoolProfile : null, OrchestratorProfile = vOrchestratorProfile, CustomProfile = vCustomProfile, ServicePrincipalProfile = vServicePrincipalProfile, MasterProfile = vMasterProfile, WindowsProfile = vWindowsProfile, LinuxProfile = vLinuxProfile, DiagnosticsProfile = vDiagnosticsProfile, }; WriteObject(vContainerService); }
protected ManagedCluster BuildNewCluster() { if (!string.IsNullOrEmpty(ResourceGroupName) && string.IsNullOrEmpty(Location)) { var rg = RmClient.ResourceGroups.Get(ResourceGroupName); Location = rg.Location; var validLocations = RmClient.Providers.Get("Microsoft.ContainerService").ResourceTypes.ToList().Find(x => x.ResourceType.Equals("managedClusters")).Locations; validLocations = validLocations.Select(l => l.Replace(" ", string.Empty).Replace("-", string.Empty).ToLower()).ToList(); // If the ResourceGroup location name is not valid, use "East US" if (!validLocations.Contains(rg.Location)) { // Add check in case East US is removed from the list of valid locations if (validLocations.Contains("eastus")) { Location = "eastus"; } else { Location = validLocations[0]; } WriteVerbose(string.Format(Resources.UsingDefaultLocation, Location)); } else { WriteVerbose(string.Format(Resources.UsingLocationFromTheResourceGroup, Location, ResourceGroupName)); } } if (string.IsNullOrEmpty(DnsNamePrefix)) { DnsNamePrefix = DefaultDnsPrefix(); } WriteVerbose(string.Format(Resources.UsingDnsNamePrefix, DnsNamePrefix)); SshKeyValue = GetSshKey(SshKeyValue); var defaultAgentPoolProfile = new ContainerServiceAgentPoolProfile( "default", NodeVmSize, NodeCount, NodeOsDiskSize, DnsNamePrefix); var pubKey = new List <ContainerServiceSshPublicKey> { new ContainerServiceSshPublicKey(SshKeyValue) }; var linuxProfile = new ContainerServiceLinuxProfile(AdminUserName, new ContainerServiceSshConfiguration(pubKey)); var acsServicePrincipal = EnsureServicePrincipal(ClientIdAndSecret?.UserName, ClientIdAndSecret?.Password?.ToString()); var spProfile = new ContainerServiceServicePrincipalProfile( acsServicePrincipal.SpId, acsServicePrincipal.ClientSecret); WriteVerbose(string.Format(Resources.DeployingYourManagedKubeCluster, AcsSpFilePath)); var managedCluster = new ManagedCluster( Location, name: Name, tags: TagsConversionHelper.CreateTagDictionary(Tag, true), dnsPrefix: DnsNamePrefix, kubernetesVersion: KubernetesVersion, agentPoolProfiles: new List <ContainerServiceAgentPoolProfile> { defaultAgentPoolProfile }, linuxProfile: linuxProfile, servicePrincipalProfile: spProfile); return(managedCluster); }
private ManagedCluster BuildNewCluster() { BeforeBuildNewCluster(); var pubKey = new List <ContainerServiceSshPublicKey> { new ContainerServiceSshPublicKey(SshKeyValue) }; var linuxProfile = new ContainerServiceLinuxProfile(LinuxProfileAdminUserName, new ContainerServiceSshConfiguration(pubKey)); acsServicePrincipal = EnsureServicePrincipal(ServicePrincipalIdAndSecret?.UserName, ServicePrincipalIdAndSecret?.Password?.ConvertToString()); var spProfile = new ManagedClusterServicePrincipalProfile( acsServicePrincipal.SpId, acsServicePrincipal.ClientSecret); var aadProfile = GetAadProfile(); var defaultAgentPoolProfile = GetAgentPoolProfile(); var windowsProfile = GetWindowsProfile(); var networkProfile = GetNetworkProfile(); var apiServerAccessProfile = CreateOrUpdateApiServerAccessProfile(null); var addonProfiles = CreateAddonsProfiles(); WriteVerbose(string.Format(Resources.DeployingYourManagedKubeCluster, AcsSpFilePath)); var managedCluster = new ManagedCluster( Location, name: Name, tags: TagsConversionHelper.CreateTagDictionary(Tag, true), dnsPrefix: DnsNamePrefix, kubernetesVersion: KubernetesVersion, agentPoolProfiles: new List <ManagedClusterAgentPoolProfile> { defaultAgentPoolProfile }, linuxProfile: linuxProfile, windowsProfile: windowsProfile, servicePrincipalProfile: spProfile, aadProfile: aadProfile, addonProfiles: addonProfiles, networkProfile: networkProfile, apiServerAccessProfile: apiServerAccessProfile); if (EnableRbac.IsPresent) { managedCluster.EnableRBAC = EnableRbac; } if (this.IsParameterBound(c => c.FqdnSubdomain)) { managedCluster.FqdnSubdomain = FqdnSubdomain; } //if(EnablePodSecurityPolicy.IsPresent) //{ // managedCluster.EnablePodSecurityPolicy = EnablePodSecurityPolicy; //} return(managedCluster); }