Managed Cluster Args
Managed cluster. Uses Azure REST API version 2024-10-01. In version 2.x of the Azure Native provider, it used API version 2023-04-01. Other available API versions: 2019-11-01, 2020-01-01, 2020-02-01, 2020-03-01, 2020-04-01, 2020-06-01, 2020-07-01, 2020-09-01, 2020-11-01, 2020-12-01, 2021-02-01, 2021-03-01, 2021-05-01, 2021-07-01, 2021-08-01, 2021-09-01, 2021-10-01, 2021-11-01-preview, 2022-01-01, 2022-01-02-preview, 2022-02-01, 2022-02-02-preview, 2022-03-01, 2022-03-02-preview, 2022-04-01, 2022-04-02-preview, 2022-05-02-preview, 2022-06-01, 2022-06-02-preview, 2022-07-01, 2022-07-02-preview, 2022-08-02-preview, 2022-08-03-preview, 2022-09-01, 2022-09-02-preview, 2022-10-02-preview, 2022-11-01, 2022-11-02-preview, 2023-01-01, 2023-01-02-preview, 2023-02-01, 2023-02-02-preview, 2023-03-01, 2023-03-02-preview, 2023-04-01, 2023-04-02-preview, 2023-05-01, 2023-05-02-preview, 2023-06-01, 2023-06-02-preview, 2023-07-01, 2023-07-02-preview, 2023-08-01, 2023-08-02-preview, 2023-09-01, 2023-09-02-preview, 2023-10-01, 2023-10-02-preview, 2023-11-01, 2023-11-02-preview, 2024-01-01, 2024-01-02-preview, 2024-02-01, 2024-02-02-preview, 2024-03-02-preview, 2024-04-02-preview, 2024-05-01, 2024-05-02-preview, 2024-06-02-preview, 2024-07-01, 2024-07-02-preview, 2024-08-01, 2024-09-01, 2024-09-02-preview, 2024-10-02-preview, 2025-01-01. These can be accessed by generating a local SDK package using the CLI command pulumi package add azure-native containerservice [ApiVersion]
. See the ../../../version-guide/#accessing-any-api-version-via-local-packages for details. When creating a managed cluster you must define at least one agent pool inline via the agentPoolProfiles
property. The Azure API does not currently allow this property to be updated directly. Instead, additional agent pools can be defined via the AgentPool
resource. If needing to change the initial agent pool profile property, you can either trigger the whole cluster to be re-created by using the replaceOnChanges resource option, or make the change directly in Azure then use pulumi refresh
to update the stack's stack to match.
Example Usage
Create Managed Cluster using an agent pool snapshot
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ContainerService.ManagedCluster("managedCluster", new()
{
AddonProfiles = null,
AgentPoolProfiles = new[]
{
new AzureNative.ContainerService.Inputs.ManagedClusterAgentPoolProfileArgs
{
Count = 3,
CreationData = new AzureNative.ContainerService.Inputs.CreationDataArgs
{
SourceResourceId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.ContainerService/snapshots/snapshot1",
},
EnableFIPS = true,
EnableNodePublicIP = true,
Mode = AzureNative.ContainerService.AgentPoolMode.System,
Name = "nodepool1",
OsType = AzureNative.ContainerService.OSType.Linux,
Type = AzureNative.ContainerService.AgentPoolType.VirtualMachineScaleSets,
VmSize = "Standard_DS2_v2",
},
},
AutoScalerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterPropertiesAutoScalerProfileArgs
{
ScaleDownDelayAfterAdd = "15m",
ScanInterval = "20s",
},
DiskEncryptionSetID = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
DnsPrefix = "dnsprefix1",
EnablePodSecurityPolicy = false,
EnableRBAC = true,
KubernetesVersion = "",
LinuxProfile = new AzureNative.ContainerService.Inputs.ContainerServiceLinuxProfileArgs
{
AdminUsername = "azureuser",
Ssh = new AzureNative.ContainerService.Inputs.ContainerServiceSshConfigurationArgs
{
PublicKeys = new[]
{
new AzureNative.ContainerService.Inputs.ContainerServiceSshPublicKeyArgs
{
KeyData = "keydata",
},
},
},
},
Location = "location1",
NetworkProfile = new AzureNative.ContainerService.Inputs.ContainerServiceNetworkProfileArgs
{
LoadBalancerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileArgs
{
ManagedOutboundIPs = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs
{
Count = 2,
},
},
LoadBalancerSku = AzureNative.ContainerService.LoadBalancerSku.Standard,
OutboundType = AzureNative.ContainerService.OutboundType.LoadBalancer,
},
ResourceGroupName = "rg1",
ResourceName = "clustername1",
ServicePrincipalProfile = new AzureNative.ContainerService.Inputs.ManagedClusterServicePrincipalProfileArgs
{
ClientId = "clientid",
Secret = "secret",
},
Sku = new AzureNative.ContainerService.Inputs.ManagedClusterSKUArgs
{
Name = "Basic",
Tier = AzureNative.ContainerService.ManagedClusterSKUTier.Free,
},
Tags =
{
{ "archv2", "" },
{ "tier", "production" },
},
WindowsProfile = new AzureNative.ContainerService.Inputs.ManagedClusterWindowsProfileArgs
{
AdminPassword = "replacePassword1234$",
AdminUsername = "azureuser",
},
});
});
package main
import (
containerservice "github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := containerservice.NewManagedCluster(ctx, "managedCluster", &containerservice.ManagedClusterArgs{
AddonProfiles: containerservice.ManagedClusterAddonProfileMap{},
AgentPoolProfiles: containerservice.ManagedClusterAgentPoolProfileArray{
&containerservice.ManagedClusterAgentPoolProfileArgs{
Count: pulumi.Int(3),
CreationData: &containerservice.CreationDataArgs{
SourceResourceId: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.ContainerService/snapshots/snapshot1"),
},
EnableFIPS: pulumi.Bool(true),
EnableNodePublicIP: pulumi.Bool(true),
Mode: pulumi.String(containerservice.AgentPoolModeSystem),
Name: pulumi.String("nodepool1"),
OsType: pulumi.String(containerservice.OSTypeLinux),
Type: pulumi.String(containerservice.AgentPoolTypeVirtualMachineScaleSets),
VmSize: pulumi.String("Standard_DS2_v2"),
},
},
AutoScalerProfile: &containerservice.ManagedClusterPropertiesAutoScalerProfileArgs{
ScaleDownDelayAfterAdd: pulumi.String("15m"),
ScanInterval: pulumi.String("20s"),
},
DiskEncryptionSetID: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des"),
DnsPrefix: pulumi.String("dnsprefix1"),
EnablePodSecurityPolicy: pulumi.Bool(false),
EnableRBAC: pulumi.Bool(true),
KubernetesVersion: pulumi.String(""),
LinuxProfile: &containerservice.ContainerServiceLinuxProfileArgs{
AdminUsername: pulumi.String("azureuser"),
Ssh: &containerservice.ContainerServiceSshConfigurationArgs{
PublicKeys: containerservice.ContainerServiceSshPublicKeyArray{
&containerservice.ContainerServiceSshPublicKeyArgs{
KeyData: pulumi.String("keydata"),
},
},
},
},
Location: pulumi.String("location1"),
NetworkProfile: &containerservice.ContainerServiceNetworkProfileArgs{
LoadBalancerProfile: &containerservice.ManagedClusterLoadBalancerProfileArgs{
ManagedOutboundIPs: &containerservice.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs{
Count: pulumi.Int(2),
},
},
LoadBalancerSku: pulumi.String(containerservice.LoadBalancerSkuStandard),
OutboundType: pulumi.String(containerservice.OutboundTypeLoadBalancer),
},
ResourceGroupName: pulumi.String("rg1"),
ResourceName: pulumi.String("clustername1"),
ServicePrincipalProfile: &containerservice.ManagedClusterServicePrincipalProfileArgs{
ClientId: pulumi.String("clientid"),
Secret: pulumi.String("secret"),
},
Sku: &containerservice.ManagedClusterSKUArgs{
Name: pulumi.String("Basic"),
Tier: pulumi.String(containerservice.ManagedClusterSKUTierFree),
},
Tags: pulumi.StringMap{
"archv2": pulumi.String(""),
"tier": pulumi.String("production"),
},
WindowsProfile: &containerservice.ManagedClusterWindowsProfileArgs{
AdminPassword: pulumi.String("replacePassword1234$"),
AdminUsername: pulumi.String("azureuser"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.containerservice.ManagedCluster;
import com.pulumi.azurenative.containerservice.ManagedClusterArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAgentPoolProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.CreationDataArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterPropertiesAutoScalerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceLinuxProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceSshConfigurationArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceNetworkProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterServicePrincipalProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSKUArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterWindowsProfileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.addonProfiles()
.agentPoolProfiles(ManagedClusterAgentPoolProfileArgs.builder()
.count(3)
.creationData(CreationDataArgs.builder()
.sourceResourceId("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.ContainerService/snapshots/snapshot1")
.build())
.enableFIPS(true)
.enableNodePublicIP(true)
.mode("System")
.name("nodepool1")
.osType("Linux")
.type("VirtualMachineScaleSets")
.vmSize("Standard_DS2_v2")
.build())
.autoScalerProfile(ManagedClusterPropertiesAutoScalerProfileArgs.builder()
.scaleDownDelayAfterAdd("15m")
.scanInterval("20s")
.build())
.diskEncryptionSetID("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
.dnsPrefix("dnsprefix1")
.enablePodSecurityPolicy(false)
.enableRBAC(true)
.kubernetesVersion("")
.linuxProfile(ContainerServiceLinuxProfileArgs.builder()
.adminUsername("azureuser")
.ssh(ContainerServiceSshConfigurationArgs.builder()
.publicKeys(ContainerServiceSshPublicKeyArgs.builder()
.keyData("keydata")
.build())
.build())
.build())
.location("location1")
.networkProfile(ContainerServiceNetworkProfileArgs.builder()
.loadBalancerProfile(ManagedClusterLoadBalancerProfileArgs.builder()
.managedOutboundIPs(ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs.builder()
.count(2)
.build())
.build())
.loadBalancerSku("standard")
.outboundType("loadBalancer")
.build())
.resourceGroupName("rg1")
.resourceName("clustername1")
.servicePrincipalProfile(ManagedClusterServicePrincipalProfileArgs.builder()
.clientId("clientid")
.secret("secret")
.build())
.sku(ManagedClusterSKUArgs.builder()
.name("Basic")
.tier("Free")
.build())
.tags(Map.ofEntries(
Map.entry("archv2", ""),
Map.entry("tier", "production")
))
.windowsProfile(ManagedClusterWindowsProfileArgs.builder()
.adminPassword("replacePassword1234$")
.adminUsername("azureuser")
.build())
.build());
}
}
Create Managed Cluster with AKS-managed NAT gateway as outbound type
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ContainerService.ManagedCluster("managedCluster", new()
{
AddonProfiles = null,
AgentPoolProfiles = new[]
{
new AzureNative.ContainerService.Inputs.ManagedClusterAgentPoolProfileArgs
{
Count = 3,
EnableNodePublicIP = false,
Mode = AzureNative.ContainerService.AgentPoolMode.System,
Name = "nodepool1",
OsType = AzureNative.ContainerService.OSType.Linux,
Type = AzureNative.ContainerService.AgentPoolType.VirtualMachineScaleSets,
VmSize = "Standard_DS2_v2",
},
},
AutoScalerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterPropertiesAutoScalerProfileArgs
{
ScaleDownDelayAfterAdd = "15m",
ScanInterval = "20s",
},
DiskEncryptionSetID = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
DnsPrefix = "dnsprefix1",
EnablePodSecurityPolicy = true,
EnableRBAC = true,
KubernetesVersion = "",
LinuxProfile = new AzureNative.ContainerService.Inputs.ContainerServiceLinuxProfileArgs
{
AdminUsername = "azureuser",
Ssh = new AzureNative.ContainerService.Inputs.ContainerServiceSshConfigurationArgs
{
PublicKeys = new[]
{
new AzureNative.ContainerService.Inputs.ContainerServiceSshPublicKeyArgs
{
KeyData = "keydata",
},
},
},
},
Location = "location1",
NetworkProfile = new AzureNative.ContainerService.Inputs.ContainerServiceNetworkProfileArgs
{
LoadBalancerSku = AzureNative.ContainerService.LoadBalancerSku.Standard,
NatGatewayProfile = new AzureNative.ContainerService.Inputs.ManagedClusterNATGatewayProfileArgs
{
ManagedOutboundIPProfile = new AzureNative.ContainerService.Inputs.ManagedClusterManagedOutboundIPProfileArgs
{
Count = 2,
},
},
OutboundType = AzureNative.ContainerService.OutboundType.ManagedNATGateway,
},
ResourceGroupName = "rg1",
ResourceName = "clustername1",
ServicePrincipalProfile = new AzureNative.ContainerService.Inputs.ManagedClusterServicePrincipalProfileArgs
{
ClientId = "clientid",
Secret = "secret",
},
Sku = new AzureNative.ContainerService.Inputs.ManagedClusterSKUArgs
{
Name = "Basic",
Tier = AzureNative.ContainerService.ManagedClusterSKUTier.Free,
},
Tags =
{
{ "archv2", "" },
{ "tier", "production" },
},
WindowsProfile = new AzureNative.ContainerService.Inputs.ManagedClusterWindowsProfileArgs
{
AdminPassword = "replacePassword1234$",
AdminUsername = "azureuser",
},
});
});
package main
import (
containerservice "github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := containerservice.NewManagedCluster(ctx, "managedCluster", &containerservice.ManagedClusterArgs{
AddonProfiles: containerservice.ManagedClusterAddonProfileMap{},
AgentPoolProfiles: containerservice.ManagedClusterAgentPoolProfileArray{
&containerservice.ManagedClusterAgentPoolProfileArgs{
Count: pulumi.Int(3),
EnableNodePublicIP: pulumi.Bool(false),
Mode: pulumi.String(containerservice.AgentPoolModeSystem),
Name: pulumi.String("nodepool1"),
OsType: pulumi.String(containerservice.OSTypeLinux),
Type: pulumi.String(containerservice.AgentPoolTypeVirtualMachineScaleSets),
VmSize: pulumi.String("Standard_DS2_v2"),
},
},
AutoScalerProfile: &containerservice.ManagedClusterPropertiesAutoScalerProfileArgs{
ScaleDownDelayAfterAdd: pulumi.String("15m"),
ScanInterval: pulumi.String("20s"),
},
DiskEncryptionSetID: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des"),
DnsPrefix: pulumi.String("dnsprefix1"),
EnablePodSecurityPolicy: pulumi.Bool(true),
EnableRBAC: pulumi.Bool(true),
KubernetesVersion: pulumi.String(""),
LinuxProfile: &containerservice.ContainerServiceLinuxProfileArgs{
AdminUsername: pulumi.String("azureuser"),
Ssh: &containerservice.ContainerServiceSshConfigurationArgs{
PublicKeys: containerservice.ContainerServiceSshPublicKeyArray{
&containerservice.ContainerServiceSshPublicKeyArgs{
KeyData: pulumi.String("keydata"),
},
},
},
},
Location: pulumi.String("location1"),
NetworkProfile: &containerservice.ContainerServiceNetworkProfileArgs{
LoadBalancerSku: pulumi.String(containerservice.LoadBalancerSkuStandard),
NatGatewayProfile: &containerservice.ManagedClusterNATGatewayProfileArgs{
ManagedOutboundIPProfile: &containerservice.ManagedClusterManagedOutboundIPProfileArgs{
Count: pulumi.Int(2),
},
},
OutboundType: pulumi.String(containerservice.OutboundTypeManagedNATGateway),
},
ResourceGroupName: pulumi.String("rg1"),
ResourceName: pulumi.String("clustername1"),
ServicePrincipalProfile: &containerservice.ManagedClusterServicePrincipalProfileArgs{
ClientId: pulumi.String("clientid"),
Secret: pulumi.String("secret"),
},
Sku: &containerservice.ManagedClusterSKUArgs{
Name: pulumi.String("Basic"),
Tier: pulumi.String(containerservice.ManagedClusterSKUTierFree),
},
Tags: pulumi.StringMap{
"archv2": pulumi.String(""),
"tier": pulumi.String("production"),
},
WindowsProfile: &containerservice.ManagedClusterWindowsProfileArgs{
AdminPassword: pulumi.String("replacePassword1234$"),
AdminUsername: pulumi.String("azureuser"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.containerservice.ManagedCluster;
import com.pulumi.azurenative.containerservice.ManagedClusterArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAgentPoolProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterPropertiesAutoScalerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceLinuxProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceSshConfigurationArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceNetworkProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterNATGatewayProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterManagedOutboundIPProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterServicePrincipalProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSKUArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterWindowsProfileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.addonProfiles()
.agentPoolProfiles(ManagedClusterAgentPoolProfileArgs.builder()
.count(3)
.enableNodePublicIP(false)
.mode("System")
.name("nodepool1")
.osType("Linux")
.type("VirtualMachineScaleSets")
.vmSize("Standard_DS2_v2")
.build())
.autoScalerProfile(ManagedClusterPropertiesAutoScalerProfileArgs.builder()
.scaleDownDelayAfterAdd("15m")
.scanInterval("20s")
.build())
.diskEncryptionSetID("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
.dnsPrefix("dnsprefix1")
.enablePodSecurityPolicy(true)
.enableRBAC(true)
.kubernetesVersion("")
.linuxProfile(ContainerServiceLinuxProfileArgs.builder()
.adminUsername("azureuser")
.ssh(ContainerServiceSshConfigurationArgs.builder()
.publicKeys(ContainerServiceSshPublicKeyArgs.builder()
.keyData("keydata")
.build())
.build())
.build())
.location("location1")
.networkProfile(ContainerServiceNetworkProfileArgs.builder()
.loadBalancerSku("standard")
.natGatewayProfile(ManagedClusterNATGatewayProfileArgs.builder()
.managedOutboundIPProfile(ManagedClusterManagedOutboundIPProfileArgs.builder()
.count(2)
.build())
.build())
.outboundType("managedNATGateway")
.build())
.resourceGroupName("rg1")
.resourceName("clustername1")
.servicePrincipalProfile(ManagedClusterServicePrincipalProfileArgs.builder()
.clientId("clientid")
.secret("secret")
.build())
.sku(ManagedClusterSKUArgs.builder()
.name("Basic")
.tier("Free")
.build())
.tags(Map.ofEntries(
Map.entry("archv2", ""),
Map.entry("tier", "production")
))
.windowsProfile(ManagedClusterWindowsProfileArgs.builder()
.adminPassword("replacePassword1234$")
.adminUsername("azureuser")
.build())
.build());
}
}
Create Managed Cluster with Azure KeyVault Secrets Provider Addon
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ContainerService.ManagedCluster("managedCluster", new()
{
AddonProfiles =
{
{ "azureKeyvaultSecretsProvider", new AzureNative.ContainerService.Inputs.ManagedClusterAddonProfileArgs
{
Config =
{
{ "enableSecretRotation", "true" },
{ "rotationPollInterval", "2m" },
},
Enabled = true,
} },
},
AgentPoolProfiles = new[]
{
new AzureNative.ContainerService.Inputs.ManagedClusterAgentPoolProfileArgs
{
Count = 3,
EnableNodePublicIP = true,
Mode = AzureNative.ContainerService.AgentPoolMode.System,
Name = "nodepool1",
OsType = AzureNative.ContainerService.OSType.Linux,
Type = AzureNative.ContainerService.AgentPoolType.VirtualMachineScaleSets,
VmSize = "Standard_DS2_v2",
},
},
AutoScalerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterPropertiesAutoScalerProfileArgs
{
ScaleDownDelayAfterAdd = "15m",
ScanInterval = "20s",
},
DiskEncryptionSetID = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
DnsPrefix = "dnsprefix1",
EnablePodSecurityPolicy = true,
EnableRBAC = true,
KubernetesVersion = "",
LinuxProfile = new AzureNative.ContainerService.Inputs.ContainerServiceLinuxProfileArgs
{
AdminUsername = "azureuser",
Ssh = new AzureNative.ContainerService.Inputs.ContainerServiceSshConfigurationArgs
{
PublicKeys = new[]
{
new AzureNative.ContainerService.Inputs.ContainerServiceSshPublicKeyArgs
{
KeyData = "keydata",
},
},
},
},
Location = "location1",
NetworkProfile = new AzureNative.ContainerService.Inputs.ContainerServiceNetworkProfileArgs
{
LoadBalancerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileArgs
{
ManagedOutboundIPs = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs
{
Count = 2,
},
},
LoadBalancerSku = AzureNative.ContainerService.LoadBalancerSku.Standard,
OutboundType = AzureNative.ContainerService.OutboundType.LoadBalancer,
},
ResourceGroupName = "rg1",
ResourceName = "clustername1",
ServicePrincipalProfile = new AzureNative.ContainerService.Inputs.ManagedClusterServicePrincipalProfileArgs
{
ClientId = "clientid",
Secret = "secret",
},
Sku = new AzureNative.ContainerService.Inputs.ManagedClusterSKUArgs
{
Name = "Basic",
Tier = AzureNative.ContainerService.ManagedClusterSKUTier.Free,
},
Tags =
{
{ "archv2", "" },
{ "tier", "production" },
},
WindowsProfile = new AzureNative.ContainerService.Inputs.ManagedClusterWindowsProfileArgs
{
AdminPassword = "replacePassword1234$",
AdminUsername = "azureuser",
},
});
});
package main
import (
containerservice "github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := containerservice.NewManagedCluster(ctx, "managedCluster", &containerservice.ManagedClusterArgs{
AddonProfiles: containerservice.ManagedClusterAddonProfileMap{
"azureKeyvaultSecretsProvider": &containerservice.ManagedClusterAddonProfileArgs{
Config: pulumi.StringMap{
"enableSecretRotation": pulumi.String("true"),
"rotationPollInterval": pulumi.String("2m"),
},
Enabled: pulumi.Bool(true),
},
},
AgentPoolProfiles: containerservice.ManagedClusterAgentPoolProfileArray{
&containerservice.ManagedClusterAgentPoolProfileArgs{
Count: pulumi.Int(3),
EnableNodePublicIP: pulumi.Bool(true),
Mode: pulumi.String(containerservice.AgentPoolModeSystem),
Name: pulumi.String("nodepool1"),
OsType: pulumi.String(containerservice.OSTypeLinux),
Type: pulumi.String(containerservice.AgentPoolTypeVirtualMachineScaleSets),
VmSize: pulumi.String("Standard_DS2_v2"),
},
},
AutoScalerProfile: &containerservice.ManagedClusterPropertiesAutoScalerProfileArgs{
ScaleDownDelayAfterAdd: pulumi.String("15m"),
ScanInterval: pulumi.String("20s"),
},
DiskEncryptionSetID: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des"),
DnsPrefix: pulumi.String("dnsprefix1"),
EnablePodSecurityPolicy: pulumi.Bool(true),
EnableRBAC: pulumi.Bool(true),
KubernetesVersion: pulumi.String(""),
LinuxProfile: &containerservice.ContainerServiceLinuxProfileArgs{
AdminUsername: pulumi.String("azureuser"),
Ssh: &containerservice.ContainerServiceSshConfigurationArgs{
PublicKeys: containerservice.ContainerServiceSshPublicKeyArray{
&containerservice.ContainerServiceSshPublicKeyArgs{
KeyData: pulumi.String("keydata"),
},
},
},
},
Location: pulumi.String("location1"),
NetworkProfile: &containerservice.ContainerServiceNetworkProfileArgs{
LoadBalancerProfile: &containerservice.ManagedClusterLoadBalancerProfileArgs{
ManagedOutboundIPs: &containerservice.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs{
Count: pulumi.Int(2),
},
},
LoadBalancerSku: pulumi.String(containerservice.LoadBalancerSkuStandard),
OutboundType: pulumi.String(containerservice.OutboundTypeLoadBalancer),
},
ResourceGroupName: pulumi.String("rg1"),
ResourceName: pulumi.String("clustername1"),
ServicePrincipalProfile: &containerservice.ManagedClusterServicePrincipalProfileArgs{
ClientId: pulumi.String("clientid"),
Secret: pulumi.String("secret"),
},
Sku: &containerservice.ManagedClusterSKUArgs{
Name: pulumi.String("Basic"),
Tier: pulumi.String(containerservice.ManagedClusterSKUTierFree),
},
Tags: pulumi.StringMap{
"archv2": pulumi.String(""),
"tier": pulumi.String("production"),
},
WindowsProfile: &containerservice.ManagedClusterWindowsProfileArgs{
AdminPassword: pulumi.String("replacePassword1234$"),
AdminUsername: pulumi.String("azureuser"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.containerservice.ManagedCluster;
import com.pulumi.azurenative.containerservice.ManagedClusterArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAgentPoolProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterPropertiesAutoScalerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceLinuxProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceSshConfigurationArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceNetworkProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterServicePrincipalProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSKUArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterWindowsProfileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.addonProfiles(Map.of("azureKeyvaultSecretsProvider", Map.ofEntries(
Map.entry("config", Map.ofEntries(
Map.entry("enableSecretRotation", "true"),
Map.entry("rotationPollInterval", "2m")
)),
Map.entry("enabled", true)
)))
.agentPoolProfiles(ManagedClusterAgentPoolProfileArgs.builder()
.count(3)
.enableNodePublicIP(true)
.mode("System")
.name("nodepool1")
.osType("Linux")
.type("VirtualMachineScaleSets")
.vmSize("Standard_DS2_v2")
.build())
.autoScalerProfile(ManagedClusterPropertiesAutoScalerProfileArgs.builder()
.scaleDownDelayAfterAdd("15m")
.scanInterval("20s")
.build())
.diskEncryptionSetID("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
.dnsPrefix("dnsprefix1")
.enablePodSecurityPolicy(true)
.enableRBAC(true)
.kubernetesVersion("")
.linuxProfile(ContainerServiceLinuxProfileArgs.builder()
.adminUsername("azureuser")
.ssh(ContainerServiceSshConfigurationArgs.builder()
.publicKeys(ContainerServiceSshPublicKeyArgs.builder()
.keyData("keydata")
.build())
.build())
.build())
.location("location1")
.networkProfile(ContainerServiceNetworkProfileArgs.builder()
.loadBalancerProfile(ManagedClusterLoadBalancerProfileArgs.builder()
.managedOutboundIPs(ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs.builder()
.count(2)
.build())
.build())
.loadBalancerSku("standard")
.outboundType("loadBalancer")
.build())
.resourceGroupName("rg1")
.resourceName("clustername1")
.servicePrincipalProfile(ManagedClusterServicePrincipalProfileArgs.builder()
.clientId("clientid")
.secret("secret")
.build())
.sku(ManagedClusterSKUArgs.builder()
.name("Basic")
.tier("Free")
.build())
.tags(Map.ofEntries(
Map.entry("archv2", ""),
Map.entry("tier", "production")
))
.windowsProfile(ManagedClusterWindowsProfileArgs.builder()
.adminPassword("replacePassword1234$")
.adminUsername("azureuser")
.build())
.build());
}
}
Create Managed Cluster with Capacity Reservation Group
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ContainerService.ManagedCluster("managedCluster", new()
{
AddonProfiles = null,
AgentPoolProfiles = new[]
{
new AzureNative.ContainerService.Inputs.ManagedClusterAgentPoolProfileArgs
{
CapacityReservationGroupID = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/capacityReservationGroups/crg1",
Count = 3,
EnableNodePublicIP = true,
Mode = AzureNative.ContainerService.AgentPoolMode.System,
Name = "nodepool1",
OsType = AzureNative.ContainerService.OSType.Linux,
Type = AzureNative.ContainerService.AgentPoolType.VirtualMachineScaleSets,
VmSize = "Standard_DS2_v2",
},
},
AutoScalerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterPropertiesAutoScalerProfileArgs
{
ScaleDownDelayAfterAdd = "15m",
ScanInterval = "20s",
},
DiskEncryptionSetID = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
DnsPrefix = "dnsprefix1",
EnablePodSecurityPolicy = true,
EnableRBAC = true,
KubernetesVersion = "",
LinuxProfile = new AzureNative.ContainerService.Inputs.ContainerServiceLinuxProfileArgs
{
AdminUsername = "azureuser",
Ssh = new AzureNative.ContainerService.Inputs.ContainerServiceSshConfigurationArgs
{
PublicKeys = new[]
{
new AzureNative.ContainerService.Inputs.ContainerServiceSshPublicKeyArgs
{
KeyData = "keydata",
},
},
},
},
Location = "location1",
NetworkProfile = new AzureNative.ContainerService.Inputs.ContainerServiceNetworkProfileArgs
{
LoadBalancerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileArgs
{
ManagedOutboundIPs = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs
{
Count = 2,
},
},
LoadBalancerSku = AzureNative.ContainerService.LoadBalancerSku.Standard,
OutboundType = AzureNative.ContainerService.OutboundType.LoadBalancer,
},
ResourceGroupName = "rg1",
ResourceName = "clustername1",
ServicePrincipalProfile = new AzureNative.ContainerService.Inputs.ManagedClusterServicePrincipalProfileArgs
{
ClientId = "clientid",
Secret = "secret",
},
Sku = new AzureNative.ContainerService.Inputs.ManagedClusterSKUArgs
{
Name = "Basic",
Tier = AzureNative.ContainerService.ManagedClusterSKUTier.Free,
},
Tags =
{
{ "archv2", "" },
{ "tier", "production" },
},
WindowsProfile = new AzureNative.ContainerService.Inputs.ManagedClusterWindowsProfileArgs
{
AdminPassword = "replacePassword1234$",
AdminUsername = "azureuser",
},
});
});
package main
import (
containerservice "github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := containerservice.NewManagedCluster(ctx, "managedCluster", &containerservice.ManagedClusterArgs{
AddonProfiles: containerservice.ManagedClusterAddonProfileMap{},
AgentPoolProfiles: containerservice.ManagedClusterAgentPoolProfileArray{
&containerservice.ManagedClusterAgentPoolProfileArgs{
CapacityReservationGroupID: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/capacityReservationGroups/crg1"),
Count: pulumi.Int(3),
EnableNodePublicIP: pulumi.Bool(true),
Mode: pulumi.String(containerservice.AgentPoolModeSystem),
Name: pulumi.String("nodepool1"),
OsType: pulumi.String(containerservice.OSTypeLinux),
Type: pulumi.String(containerservice.AgentPoolTypeVirtualMachineScaleSets),
VmSize: pulumi.String("Standard_DS2_v2"),
},
},
AutoScalerProfile: &containerservice.ManagedClusterPropertiesAutoScalerProfileArgs{
ScaleDownDelayAfterAdd: pulumi.String("15m"),
ScanInterval: pulumi.String("20s"),
},
DiskEncryptionSetID: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des"),
DnsPrefix: pulumi.String("dnsprefix1"),
EnablePodSecurityPolicy: pulumi.Bool(true),
EnableRBAC: pulumi.Bool(true),
KubernetesVersion: pulumi.String(""),
LinuxProfile: &containerservice.ContainerServiceLinuxProfileArgs{
AdminUsername: pulumi.String("azureuser"),
Ssh: &containerservice.ContainerServiceSshConfigurationArgs{
PublicKeys: containerservice.ContainerServiceSshPublicKeyArray{
&containerservice.ContainerServiceSshPublicKeyArgs{
KeyData: pulumi.String("keydata"),
},
},
},
},
Location: pulumi.String("location1"),
NetworkProfile: &containerservice.ContainerServiceNetworkProfileArgs{
LoadBalancerProfile: &containerservice.ManagedClusterLoadBalancerProfileArgs{
ManagedOutboundIPs: &containerservice.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs{
Count: pulumi.Int(2),
},
},
LoadBalancerSku: pulumi.String(containerservice.LoadBalancerSkuStandard),
OutboundType: pulumi.String(containerservice.OutboundTypeLoadBalancer),
},
ResourceGroupName: pulumi.String("rg1"),
ResourceName: pulumi.String("clustername1"),
ServicePrincipalProfile: &containerservice.ManagedClusterServicePrincipalProfileArgs{
ClientId: pulumi.String("clientid"),
Secret: pulumi.String("secret"),
},
Sku: &containerservice.ManagedClusterSKUArgs{
Name: pulumi.String("Basic"),
Tier: pulumi.String(containerservice.ManagedClusterSKUTierFree),
},
Tags: pulumi.StringMap{
"archv2": pulumi.String(""),
"tier": pulumi.String("production"),
},
WindowsProfile: &containerservice.ManagedClusterWindowsProfileArgs{
AdminPassword: pulumi.String("replacePassword1234$"),
AdminUsername: pulumi.String("azureuser"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.containerservice.ManagedCluster;
import com.pulumi.azurenative.containerservice.ManagedClusterArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAgentPoolProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterPropertiesAutoScalerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceLinuxProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceSshConfigurationArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceNetworkProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterServicePrincipalProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSKUArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterWindowsProfileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.addonProfiles()
.agentPoolProfiles(ManagedClusterAgentPoolProfileArgs.builder()
.capacityReservationGroupID("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/capacityReservationGroups/crg1")
.count(3)
.enableNodePublicIP(true)
.mode("System")
.name("nodepool1")
.osType("Linux")
.type("VirtualMachineScaleSets")
.vmSize("Standard_DS2_v2")
.build())
.autoScalerProfile(ManagedClusterPropertiesAutoScalerProfileArgs.builder()
.scaleDownDelayAfterAdd("15m")
.scanInterval("20s")
.build())
.diskEncryptionSetID("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
.dnsPrefix("dnsprefix1")
.enablePodSecurityPolicy(true)
.enableRBAC(true)
.kubernetesVersion("")
.linuxProfile(ContainerServiceLinuxProfileArgs.builder()
.adminUsername("azureuser")
.ssh(ContainerServiceSshConfigurationArgs.builder()
.publicKeys(ContainerServiceSshPublicKeyArgs.builder()
.keyData("keydata")
.build())
.build())
.build())
.location("location1")
.networkProfile(ContainerServiceNetworkProfileArgs.builder()
.loadBalancerProfile(ManagedClusterLoadBalancerProfileArgs.builder()
.managedOutboundIPs(ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs.builder()
.count(2)
.build())
.build())
.loadBalancerSku("standard")
.outboundType("loadBalancer")
.build())
.resourceGroupName("rg1")
.resourceName("clustername1")
.servicePrincipalProfile(ManagedClusterServicePrincipalProfileArgs.builder()
.clientId("clientid")
.secret("secret")
.build())
.sku(ManagedClusterSKUArgs.builder()
.name("Basic")
.tier("Free")
.build())
.tags(Map.ofEntries(
Map.entry("archv2", ""),
Map.entry("tier", "production")
))
.windowsProfile(ManagedClusterWindowsProfileArgs.builder()
.adminPassword("replacePassword1234$")
.adminUsername("azureuser")
.build())
.build());
}
}
Create Managed Cluster with Dedicated Host Group
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ContainerService.ManagedCluster("managedCluster", new()
{
AddonProfiles = null,
AgentPoolProfiles = new[]
{
new AzureNative.ContainerService.Inputs.ManagedClusterAgentPoolProfileArgs
{
Count = 3,
EnableNodePublicIP = true,
HostGroupID = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg/providers/Microsoft.Compute/hostGroups/hostgroup1",
Name = "nodepool1",
OsType = AzureNative.ContainerService.OSType.Linux,
Type = AzureNative.ContainerService.AgentPoolType.VirtualMachineScaleSets,
VmSize = "Standard_DS2_v2",
},
},
AutoScalerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterPropertiesAutoScalerProfileArgs
{
ScaleDownDelayAfterAdd = "15m",
ScanInterval = "20s",
},
DiskEncryptionSetID = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
DnsPrefix = "dnsprefix1",
EnablePodSecurityPolicy = false,
EnableRBAC = true,
KubernetesVersion = "",
LinuxProfile = new AzureNative.ContainerService.Inputs.ContainerServiceLinuxProfileArgs
{
AdminUsername = "azureuser",
Ssh = new AzureNative.ContainerService.Inputs.ContainerServiceSshConfigurationArgs
{
PublicKeys = new[]
{
new AzureNative.ContainerService.Inputs.ContainerServiceSshPublicKeyArgs
{
KeyData = "keydata",
},
},
},
},
Location = "location1",
NetworkProfile = new AzureNative.ContainerService.Inputs.ContainerServiceNetworkProfileArgs
{
LoadBalancerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileArgs
{
ManagedOutboundIPs = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs
{
Count = 2,
},
},
LoadBalancerSku = AzureNative.ContainerService.LoadBalancerSku.Standard,
OutboundType = AzureNative.ContainerService.OutboundType.LoadBalancer,
},
ResourceGroupName = "rg1",
ResourceName = "clustername1",
ServicePrincipalProfile = new AzureNative.ContainerService.Inputs.ManagedClusterServicePrincipalProfileArgs
{
ClientId = "clientid",
Secret = "secret",
},
Sku = new AzureNative.ContainerService.Inputs.ManagedClusterSKUArgs
{
Name = "Basic",
Tier = AzureNative.ContainerService.ManagedClusterSKUTier.Free,
},
Tags =
{
{ "archv2", "" },
{ "tier", "production" },
},
WindowsProfile = new AzureNative.ContainerService.Inputs.ManagedClusterWindowsProfileArgs
{
AdminPassword = "replacePassword1234$",
AdminUsername = "azureuser",
},
});
});
package main
import (
containerservice "github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := containerservice.NewManagedCluster(ctx, "managedCluster", &containerservice.ManagedClusterArgs{
AddonProfiles: containerservice.ManagedClusterAddonProfileMap{},
AgentPoolProfiles: containerservice.ManagedClusterAgentPoolProfileArray{
&containerservice.ManagedClusterAgentPoolProfileArgs{
Count: pulumi.Int(3),
EnableNodePublicIP: pulumi.Bool(true),
HostGroupID: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg/providers/Microsoft.Compute/hostGroups/hostgroup1"),
Name: pulumi.String("nodepool1"),
OsType: pulumi.String(containerservice.OSTypeLinux),
Type: pulumi.String(containerservice.AgentPoolTypeVirtualMachineScaleSets),
VmSize: pulumi.String("Standard_DS2_v2"),
},
},
AutoScalerProfile: &containerservice.ManagedClusterPropertiesAutoScalerProfileArgs{
ScaleDownDelayAfterAdd: pulumi.String("15m"),
ScanInterval: pulumi.String("20s"),
},
DiskEncryptionSetID: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des"),
DnsPrefix: pulumi.String("dnsprefix1"),
EnablePodSecurityPolicy: pulumi.Bool(false),
EnableRBAC: pulumi.Bool(true),
KubernetesVersion: pulumi.String(""),
LinuxProfile: &containerservice.ContainerServiceLinuxProfileArgs{
AdminUsername: pulumi.String("azureuser"),
Ssh: &containerservice.ContainerServiceSshConfigurationArgs{
PublicKeys: containerservice.ContainerServiceSshPublicKeyArray{
&containerservice.ContainerServiceSshPublicKeyArgs{
KeyData: pulumi.String("keydata"),
},
},
},
},
Location: pulumi.String("location1"),
NetworkProfile: &containerservice.ContainerServiceNetworkProfileArgs{
LoadBalancerProfile: &containerservice.ManagedClusterLoadBalancerProfileArgs{
ManagedOutboundIPs: &containerservice.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs{
Count: pulumi.Int(2),
},
},
LoadBalancerSku: pulumi.String(containerservice.LoadBalancerSkuStandard),
OutboundType: pulumi.String(containerservice.OutboundTypeLoadBalancer),
},
ResourceGroupName: pulumi.String("rg1"),
ResourceName: pulumi.String("clustername1"),
ServicePrincipalProfile: &containerservice.ManagedClusterServicePrincipalProfileArgs{
ClientId: pulumi.String("clientid"),
Secret: pulumi.String("secret"),
},
Sku: &containerservice.ManagedClusterSKUArgs{
Name: pulumi.String("Basic"),
Tier: pulumi.String(containerservice.ManagedClusterSKUTierFree),
},
Tags: pulumi.StringMap{
"archv2": pulumi.String(""),
"tier": pulumi.String("production"),
},
WindowsProfile: &containerservice.ManagedClusterWindowsProfileArgs{
AdminPassword: pulumi.String("replacePassword1234$"),
AdminUsername: pulumi.String("azureuser"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.containerservice.ManagedCluster;
import com.pulumi.azurenative.containerservice.ManagedClusterArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAgentPoolProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterPropertiesAutoScalerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceLinuxProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceSshConfigurationArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceNetworkProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterServicePrincipalProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSKUArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterWindowsProfileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.addonProfiles()
.agentPoolProfiles(ManagedClusterAgentPoolProfileArgs.builder()
.count(3)
.enableNodePublicIP(true)
.hostGroupID("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg/providers/Microsoft.Compute/hostGroups/hostgroup1")
.name("nodepool1")
.osType("Linux")
.type("VirtualMachineScaleSets")
.vmSize("Standard_DS2_v2")
.build())
.autoScalerProfile(ManagedClusterPropertiesAutoScalerProfileArgs.builder()
.scaleDownDelayAfterAdd("15m")
.scanInterval("20s")
.build())
.diskEncryptionSetID("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
.dnsPrefix("dnsprefix1")
.enablePodSecurityPolicy(false)
.enableRBAC(true)
.kubernetesVersion("")
.linuxProfile(ContainerServiceLinuxProfileArgs.builder()
.adminUsername("azureuser")
.ssh(ContainerServiceSshConfigurationArgs.builder()
.publicKeys(ContainerServiceSshPublicKeyArgs.builder()
.keyData("keydata")
.build())
.build())
.build())
.location("location1")
.networkProfile(ContainerServiceNetworkProfileArgs.builder()
.loadBalancerProfile(ManagedClusterLoadBalancerProfileArgs.builder()
.managedOutboundIPs(ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs.builder()
.count(2)
.build())
.build())
.loadBalancerSku("standard")
.outboundType("loadBalancer")
.build())
.resourceGroupName("rg1")
.resourceName("clustername1")
.servicePrincipalProfile(ManagedClusterServicePrincipalProfileArgs.builder()
.clientId("clientid")
.secret("secret")
.build())
.sku(ManagedClusterSKUArgs.builder()
.name("Basic")
.tier("Free")
.build())
.tags(Map.ofEntries(
Map.entry("archv2", ""),
Map.entry("tier", "production")
))
.windowsProfile(ManagedClusterWindowsProfileArgs.builder()
.adminPassword("replacePassword1234$")
.adminUsername("azureuser")
.build())
.build());
}
}
Create Managed Cluster with EncryptionAtHost enabled
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ContainerService.ManagedCluster("managedCluster", new()
{
AddonProfiles = null,
AgentPoolProfiles = new[]
{
new AzureNative.ContainerService.Inputs.ManagedClusterAgentPoolProfileArgs
{
Count = 3,
EnableEncryptionAtHost = true,
EnableNodePublicIP = true,
Mode = AzureNative.ContainerService.AgentPoolMode.System,
Name = "nodepool1",
OsType = AzureNative.ContainerService.OSType.Linux,
Type = AzureNative.ContainerService.AgentPoolType.VirtualMachineScaleSets,
VmSize = "Standard_DS2_v2",
},
},
AutoScalerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterPropertiesAutoScalerProfileArgs
{
ScaleDownDelayAfterAdd = "15m",
ScanInterval = "20s",
},
DiskEncryptionSetID = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
DnsPrefix = "dnsprefix1",
EnablePodSecurityPolicy = true,
EnableRBAC = true,
KubernetesVersion = "",
LinuxProfile = new AzureNative.ContainerService.Inputs.ContainerServiceLinuxProfileArgs
{
AdminUsername = "azureuser",
Ssh = new AzureNative.ContainerService.Inputs.ContainerServiceSshConfigurationArgs
{
PublicKeys = new[]
{
new AzureNative.ContainerService.Inputs.ContainerServiceSshPublicKeyArgs
{
KeyData = "keydata",
},
},
},
},
Location = "location1",
NetworkProfile = new AzureNative.ContainerService.Inputs.ContainerServiceNetworkProfileArgs
{
LoadBalancerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileArgs
{
ManagedOutboundIPs = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs
{
Count = 2,
},
},
LoadBalancerSku = AzureNative.ContainerService.LoadBalancerSku.Standard,
OutboundType = AzureNative.ContainerService.OutboundType.LoadBalancer,
},
ResourceGroupName = "rg1",
ResourceName = "clustername1",
ServicePrincipalProfile = new AzureNative.ContainerService.Inputs.ManagedClusterServicePrincipalProfileArgs
{
ClientId = "clientid",
Secret = "secret",
},
Sku = new AzureNative.ContainerService.Inputs.ManagedClusterSKUArgs
{
Name = "Basic",
Tier = AzureNative.ContainerService.ManagedClusterSKUTier.Free,
},
Tags =
{
{ "archv2", "" },
{ "tier", "production" },
},
WindowsProfile = new AzureNative.ContainerService.Inputs.ManagedClusterWindowsProfileArgs
{
AdminPassword = "replacePassword1234$",
AdminUsername = "azureuser",
},
});
});
package main
import (
containerservice "github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := containerservice.NewManagedCluster(ctx, "managedCluster", &containerservice.ManagedClusterArgs{
AddonProfiles: containerservice.ManagedClusterAddonProfileMap{},
AgentPoolProfiles: containerservice.ManagedClusterAgentPoolProfileArray{
&containerservice.ManagedClusterAgentPoolProfileArgs{
Count: pulumi.Int(3),
EnableEncryptionAtHost: pulumi.Bool(true),
EnableNodePublicIP: pulumi.Bool(true),
Mode: pulumi.String(containerservice.AgentPoolModeSystem),
Name: pulumi.String("nodepool1"),
OsType: pulumi.String(containerservice.OSTypeLinux),
Type: pulumi.String(containerservice.AgentPoolTypeVirtualMachineScaleSets),
VmSize: pulumi.String("Standard_DS2_v2"),
},
},
AutoScalerProfile: &containerservice.ManagedClusterPropertiesAutoScalerProfileArgs{
ScaleDownDelayAfterAdd: pulumi.String("15m"),
ScanInterval: pulumi.String("20s"),
},
DiskEncryptionSetID: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des"),
DnsPrefix: pulumi.String("dnsprefix1"),
EnablePodSecurityPolicy: pulumi.Bool(true),
EnableRBAC: pulumi.Bool(true),
KubernetesVersion: pulumi.String(""),
LinuxProfile: &containerservice.ContainerServiceLinuxProfileArgs{
AdminUsername: pulumi.String("azureuser"),
Ssh: &containerservice.ContainerServiceSshConfigurationArgs{
PublicKeys: containerservice.ContainerServiceSshPublicKeyArray{
&containerservice.ContainerServiceSshPublicKeyArgs{
KeyData: pulumi.String("keydata"),
},
},
},
},
Location: pulumi.String("location1"),
NetworkProfile: &containerservice.ContainerServiceNetworkProfileArgs{
LoadBalancerProfile: &containerservice.ManagedClusterLoadBalancerProfileArgs{
ManagedOutboundIPs: &containerservice.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs{
Count: pulumi.Int(2),
},
},
LoadBalancerSku: pulumi.String(containerservice.LoadBalancerSkuStandard),
OutboundType: pulumi.String(containerservice.OutboundTypeLoadBalancer),
},
ResourceGroupName: pulumi.String("rg1"),
ResourceName: pulumi.String("clustername1"),
ServicePrincipalProfile: &containerservice.ManagedClusterServicePrincipalProfileArgs{
ClientId: pulumi.String("clientid"),
Secret: pulumi.String("secret"),
},
Sku: &containerservice.ManagedClusterSKUArgs{
Name: pulumi.String("Basic"),
Tier: pulumi.String(containerservice.ManagedClusterSKUTierFree),
},
Tags: pulumi.StringMap{
"archv2": pulumi.String(""),
"tier": pulumi.String("production"),
},
WindowsProfile: &containerservice.ManagedClusterWindowsProfileArgs{
AdminPassword: pulumi.String("replacePassword1234$"),
AdminUsername: pulumi.String("azureuser"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.containerservice.ManagedCluster;
import com.pulumi.azurenative.containerservice.ManagedClusterArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAgentPoolProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterPropertiesAutoScalerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceLinuxProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceSshConfigurationArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceNetworkProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterServicePrincipalProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSKUArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterWindowsProfileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.addonProfiles()
.agentPoolProfiles(ManagedClusterAgentPoolProfileArgs.builder()
.count(3)
.enableEncryptionAtHost(true)
.enableNodePublicIP(true)
.mode("System")
.name("nodepool1")
.osType("Linux")
.type("VirtualMachineScaleSets")
.vmSize("Standard_DS2_v2")
.build())
.autoScalerProfile(ManagedClusterPropertiesAutoScalerProfileArgs.builder()
.scaleDownDelayAfterAdd("15m")
.scanInterval("20s")
.build())
.diskEncryptionSetID("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
.dnsPrefix("dnsprefix1")
.enablePodSecurityPolicy(true)
.enableRBAC(true)
.kubernetesVersion("")
.linuxProfile(ContainerServiceLinuxProfileArgs.builder()
.adminUsername("azureuser")
.ssh(ContainerServiceSshConfigurationArgs.builder()
.publicKeys(ContainerServiceSshPublicKeyArgs.builder()
.keyData("keydata")
.build())
.build())
.build())
.location("location1")
.networkProfile(ContainerServiceNetworkProfileArgs.builder()
.loadBalancerProfile(ManagedClusterLoadBalancerProfileArgs.builder()
.managedOutboundIPs(ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs.builder()
.count(2)
.build())
.build())
.loadBalancerSku("standard")
.outboundType("loadBalancer")
.build())
.resourceGroupName("rg1")
.resourceName("clustername1")
.servicePrincipalProfile(ManagedClusterServicePrincipalProfileArgs.builder()
.clientId("clientid")
.secret("secret")
.build())
.sku(ManagedClusterSKUArgs.builder()
.name("Basic")
.tier("Free")
.build())
.tags(Map.ofEntries(
Map.entry("archv2", ""),
Map.entry("tier", "production")
))
.windowsProfile(ManagedClusterWindowsProfileArgs.builder()
.adminPassword("replacePassword1234$")
.adminUsername("azureuser")
.build())
.build());
}
}
Create Managed Cluster with FIPS enabled OS
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ContainerService.ManagedCluster("managedCluster", new()
{
AddonProfiles = null,
AgentPoolProfiles = new[]
{
new AzureNative.ContainerService.Inputs.ManagedClusterAgentPoolProfileArgs
{
Count = 3,
EnableFIPS = true,
EnableNodePublicIP = true,
Mode = AzureNative.ContainerService.AgentPoolMode.System,
Name = "nodepool1",
OsType = AzureNative.ContainerService.OSType.Linux,
Type = AzureNative.ContainerService.AgentPoolType.VirtualMachineScaleSets,
VmSize = "Standard_DS2_v2",
},
},
AutoScalerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterPropertiesAutoScalerProfileArgs
{
ScaleDownDelayAfterAdd = "15m",
ScanInterval = "20s",
},
DiskEncryptionSetID = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
DnsPrefix = "dnsprefix1",
EnablePodSecurityPolicy = false,
EnableRBAC = true,
KubernetesVersion = "",
LinuxProfile = new AzureNative.ContainerService.Inputs.ContainerServiceLinuxProfileArgs
{
AdminUsername = "azureuser",
Ssh = new AzureNative.ContainerService.Inputs.ContainerServiceSshConfigurationArgs
{
PublicKeys = new[]
{
new AzureNative.ContainerService.Inputs.ContainerServiceSshPublicKeyArgs
{
KeyData = "keydata",
},
},
},
},
Location = "location1",
NetworkProfile = new AzureNative.ContainerService.Inputs.ContainerServiceNetworkProfileArgs
{
LoadBalancerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileArgs
{
ManagedOutboundIPs = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs
{
Count = 2,
},
},
LoadBalancerSku = AzureNative.ContainerService.LoadBalancerSku.Standard,
OutboundType = AzureNative.ContainerService.OutboundType.LoadBalancer,
},
ResourceGroupName = "rg1",
ResourceName = "clustername1",
ServicePrincipalProfile = new AzureNative.ContainerService.Inputs.ManagedClusterServicePrincipalProfileArgs
{
ClientId = "clientid",
Secret = "secret",
},
Sku = new AzureNative.ContainerService.Inputs.ManagedClusterSKUArgs
{
Name = "Basic",
Tier = AzureNative.ContainerService.ManagedClusterSKUTier.Free,
},
Tags =
{
{ "archv2", "" },
{ "tier", "production" },
},
WindowsProfile = new AzureNative.ContainerService.Inputs.ManagedClusterWindowsProfileArgs
{
AdminPassword = "replacePassword1234$",
AdminUsername = "azureuser",
},
});
});
package main
import (
containerservice "github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := containerservice.NewManagedCluster(ctx, "managedCluster", &containerservice.ManagedClusterArgs{
AddonProfiles: containerservice.ManagedClusterAddonProfileMap{},
AgentPoolProfiles: containerservice.ManagedClusterAgentPoolProfileArray{
&containerservice.ManagedClusterAgentPoolProfileArgs{
Count: pulumi.Int(3),
EnableFIPS: pulumi.Bool(true),
EnableNodePublicIP: pulumi.Bool(true),
Mode: pulumi.String(containerservice.AgentPoolModeSystem),
Name: pulumi.String("nodepool1"),
OsType: pulumi.String(containerservice.OSTypeLinux),
Type: pulumi.String(containerservice.AgentPoolTypeVirtualMachineScaleSets),
VmSize: pulumi.String("Standard_DS2_v2"),
},
},
AutoScalerProfile: &containerservice.ManagedClusterPropertiesAutoScalerProfileArgs{
ScaleDownDelayAfterAdd: pulumi.String("15m"),
ScanInterval: pulumi.String("20s"),
},
DiskEncryptionSetID: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des"),
DnsPrefix: pulumi.String("dnsprefix1"),
EnablePodSecurityPolicy: pulumi.Bool(false),
EnableRBAC: pulumi.Bool(true),
KubernetesVersion: pulumi.String(""),
LinuxProfile: &containerservice.ContainerServiceLinuxProfileArgs{
AdminUsername: pulumi.String("azureuser"),
Ssh: &containerservice.ContainerServiceSshConfigurationArgs{
PublicKeys: containerservice.ContainerServiceSshPublicKeyArray{
&containerservice.ContainerServiceSshPublicKeyArgs{
KeyData: pulumi.String("keydata"),
},
},
},
},
Location: pulumi.String("location1"),
NetworkProfile: &containerservice.ContainerServiceNetworkProfileArgs{
LoadBalancerProfile: &containerservice.ManagedClusterLoadBalancerProfileArgs{
ManagedOutboundIPs: &containerservice.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs{
Count: pulumi.Int(2),
},
},
LoadBalancerSku: pulumi.String(containerservice.LoadBalancerSkuStandard),
OutboundType: pulumi.String(containerservice.OutboundTypeLoadBalancer),
},
ResourceGroupName: pulumi.String("rg1"),
ResourceName: pulumi.String("clustername1"),
ServicePrincipalProfile: &containerservice.ManagedClusterServicePrincipalProfileArgs{
ClientId: pulumi.String("clientid"),
Secret: pulumi.String("secret"),
},
Sku: &containerservice.ManagedClusterSKUArgs{
Name: pulumi.String("Basic"),
Tier: pulumi.String(containerservice.ManagedClusterSKUTierFree),
},
Tags: pulumi.StringMap{
"archv2": pulumi.String(""),
"tier": pulumi.String("production"),
},
WindowsProfile: &containerservice.ManagedClusterWindowsProfileArgs{
AdminPassword: pulumi.String("replacePassword1234$"),
AdminUsername: pulumi.String("azureuser"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.containerservice.ManagedCluster;
import com.pulumi.azurenative.containerservice.ManagedClusterArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAgentPoolProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterPropertiesAutoScalerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceLinuxProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceSshConfigurationArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceNetworkProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterServicePrincipalProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSKUArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterWindowsProfileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.addonProfiles()
.agentPoolProfiles(ManagedClusterAgentPoolProfileArgs.builder()
.count(3)
.enableFIPS(true)
.enableNodePublicIP(true)
.mode("System")
.name("nodepool1")
.osType("Linux")
.type("VirtualMachineScaleSets")
.vmSize("Standard_DS2_v2")
.build())
.autoScalerProfile(ManagedClusterPropertiesAutoScalerProfileArgs.builder()
.scaleDownDelayAfterAdd("15m")
.scanInterval("20s")
.build())
.diskEncryptionSetID("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
.dnsPrefix("dnsprefix1")
.enablePodSecurityPolicy(false)
.enableRBAC(true)
.kubernetesVersion("")
.linuxProfile(ContainerServiceLinuxProfileArgs.builder()
.adminUsername("azureuser")
.ssh(ContainerServiceSshConfigurationArgs.builder()
.publicKeys(ContainerServiceSshPublicKeyArgs.builder()
.keyData("keydata")
.build())
.build())
.build())
.location("location1")
.networkProfile(ContainerServiceNetworkProfileArgs.builder()
.loadBalancerProfile(ManagedClusterLoadBalancerProfileArgs.builder()
.managedOutboundIPs(ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs.builder()
.count(2)
.build())
.build())
.loadBalancerSku("standard")
.outboundType("loadBalancer")
.build())
.resourceGroupName("rg1")
.resourceName("clustername1")
.servicePrincipalProfile(ManagedClusterServicePrincipalProfileArgs.builder()
.clientId("clientid")
.secret("secret")
.build())
.sku(ManagedClusterSKUArgs.builder()
.name("Basic")
.tier("Free")
.build())
.tags(Map.ofEntries(
Map.entry("archv2", ""),
Map.entry("tier", "production")
))
.windowsProfile(ManagedClusterWindowsProfileArgs.builder()
.adminPassword("replacePassword1234$")
.adminUsername("azureuser")
.build())
.build());
}
}
Create Managed Cluster with GPUMIG
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ContainerService.ManagedCluster("managedCluster", new()
{
AddonProfiles = null,
AgentPoolProfiles = new[]
{
new AzureNative.ContainerService.Inputs.ManagedClusterAgentPoolProfileArgs
{
Count = 3,
EnableNodePublicIP = true,
GpuInstanceProfile = AzureNative.ContainerService.GPUInstanceProfile.MIG3g,
Mode = AzureNative.ContainerService.AgentPoolMode.System,
Name = "nodepool1",
OsType = AzureNative.ContainerService.OSType.Linux,
Type = AzureNative.ContainerService.AgentPoolType.VirtualMachineScaleSets,
VmSize = "Standard_ND96asr_v4",
},
},
AutoScalerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterPropertiesAutoScalerProfileArgs
{
ScaleDownDelayAfterAdd = "15m",
ScanInterval = "20s",
},
DiskEncryptionSetID = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
DnsPrefix = "dnsprefix1",
EnablePodSecurityPolicy = true,
EnableRBAC = true,
HttpProxyConfig = new AzureNative.ContainerService.Inputs.ManagedClusterHTTPProxyConfigArgs
{
HttpProxy = "http://myproxy.server.com:8080",
HttpsProxy = "https://myproxy.server.com:8080",
NoProxy = new[]
{
"localhost",
"127.0.0.1",
},
TrustedCa = "Q29uZ3JhdHMhIFlvdSBoYXZlIGZvdW5kIGEgaGlkZGVuIG1lc3NhZ2U=",
},
KubernetesVersion = "",
LinuxProfile = new AzureNative.ContainerService.Inputs.ContainerServiceLinuxProfileArgs
{
AdminUsername = "azureuser",
Ssh = new AzureNative.ContainerService.Inputs.ContainerServiceSshConfigurationArgs
{
PublicKeys = new[]
{
new AzureNative.ContainerService.Inputs.ContainerServiceSshPublicKeyArgs
{
KeyData = "keydata",
},
},
},
},
Location = "location1",
NetworkProfile = new AzureNative.ContainerService.Inputs.ContainerServiceNetworkProfileArgs
{
LoadBalancerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileArgs
{
ManagedOutboundIPs = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs
{
Count = 2,
},
},
LoadBalancerSku = AzureNative.ContainerService.LoadBalancerSku.Standard,
OutboundType = AzureNative.ContainerService.OutboundType.LoadBalancer,
},
ResourceGroupName = "rg1",
ResourceName = "clustername1",
ServicePrincipalProfile = new AzureNative.ContainerService.Inputs.ManagedClusterServicePrincipalProfileArgs
{
ClientId = "clientid",
Secret = "secret",
},
Sku = new AzureNative.ContainerService.Inputs.ManagedClusterSKUArgs
{
Name = "Basic",
Tier = AzureNative.ContainerService.ManagedClusterSKUTier.Free,
},
Tags =
{
{ "archv2", "" },
{ "tier", "production" },
},
WindowsProfile = new AzureNative.ContainerService.Inputs.ManagedClusterWindowsProfileArgs
{
AdminPassword = "replacePassword1234$",
AdminUsername = "azureuser",
},
});
});
package main
import (
containerservice "github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := containerservice.NewManagedCluster(ctx, "managedCluster", &containerservice.ManagedClusterArgs{
AddonProfiles: containerservice.ManagedClusterAddonProfileMap{},
AgentPoolProfiles: containerservice.ManagedClusterAgentPoolProfileArray{
&containerservice.ManagedClusterAgentPoolProfileArgs{
Count: pulumi.Int(3),
EnableNodePublicIP: pulumi.Bool(true),
GpuInstanceProfile: pulumi.String(containerservice.GPUInstanceProfileMIG3g),
Mode: pulumi.String(containerservice.AgentPoolModeSystem),
Name: pulumi.String("nodepool1"),
OsType: pulumi.String(containerservice.OSTypeLinux),
Type: pulumi.String(containerservice.AgentPoolTypeVirtualMachineScaleSets),
VmSize: pulumi.String("Standard_ND96asr_v4"),
},
},
AutoScalerProfile: &containerservice.ManagedClusterPropertiesAutoScalerProfileArgs{
ScaleDownDelayAfterAdd: pulumi.String("15m"),
ScanInterval: pulumi.String("20s"),
},
DiskEncryptionSetID: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des"),
DnsPrefix: pulumi.String("dnsprefix1"),
EnablePodSecurityPolicy: pulumi.Bool(true),
EnableRBAC: pulumi.Bool(true),
HttpProxyConfig: &containerservice.ManagedClusterHTTPProxyConfigArgs{
HttpProxy: pulumi.String("http://myproxy.server.com:8080"),
HttpsProxy: pulumi.String("https://myproxy.server.com:8080"),
NoProxy: pulumi.StringArray{
pulumi.String("localhost"),
pulumi.String("127.0.0.1"),
},
TrustedCa: pulumi.String("Q29uZ3JhdHMhIFlvdSBoYXZlIGZvdW5kIGEgaGlkZGVuIG1lc3NhZ2U="),
},
KubernetesVersion: pulumi.String(""),
LinuxProfile: &containerservice.ContainerServiceLinuxProfileArgs{
AdminUsername: pulumi.String("azureuser"),
Ssh: &containerservice.ContainerServiceSshConfigurationArgs{
PublicKeys: containerservice.ContainerServiceSshPublicKeyArray{
&containerservice.ContainerServiceSshPublicKeyArgs{
KeyData: pulumi.String("keydata"),
},
},
},
},
Location: pulumi.String("location1"),
NetworkProfile: &containerservice.ContainerServiceNetworkProfileArgs{
LoadBalancerProfile: &containerservice.ManagedClusterLoadBalancerProfileArgs{
ManagedOutboundIPs: &containerservice.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs{
Count: pulumi.Int(2),
},
},
LoadBalancerSku: pulumi.String(containerservice.LoadBalancerSkuStandard),
OutboundType: pulumi.String(containerservice.OutboundTypeLoadBalancer),
},
ResourceGroupName: pulumi.String("rg1"),
ResourceName: pulumi.String("clustername1"),
ServicePrincipalProfile: &containerservice.ManagedClusterServicePrincipalProfileArgs{
ClientId: pulumi.String("clientid"),
Secret: pulumi.String("secret"),
},
Sku: &containerservice.ManagedClusterSKUArgs{
Name: pulumi.String("Basic"),
Tier: pulumi.String(containerservice.ManagedClusterSKUTierFree),
},
Tags: pulumi.StringMap{
"archv2": pulumi.String(""),
"tier": pulumi.String("production"),
},
WindowsProfile: &containerservice.ManagedClusterWindowsProfileArgs{
AdminPassword: pulumi.String("replacePassword1234$"),
AdminUsername: pulumi.String("azureuser"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.containerservice.ManagedCluster;
import com.pulumi.azurenative.containerservice.ManagedClusterArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAgentPoolProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterPropertiesAutoScalerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterHTTPProxyConfigArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceLinuxProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceSshConfigurationArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceNetworkProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterServicePrincipalProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSKUArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterWindowsProfileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.addonProfiles()
.agentPoolProfiles(ManagedClusterAgentPoolProfileArgs.builder()
.count(3)
.enableNodePublicIP(true)
.gpuInstanceProfile("MIG3g")
.mode("System")
.name("nodepool1")
.osType("Linux")
.type("VirtualMachineScaleSets")
.vmSize("Standard_ND96asr_v4")
.build())
.autoScalerProfile(ManagedClusterPropertiesAutoScalerProfileArgs.builder()
.scaleDownDelayAfterAdd("15m")
.scanInterval("20s")
.build())
.diskEncryptionSetID("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
.dnsPrefix("dnsprefix1")
.enablePodSecurityPolicy(true)
.enableRBAC(true)
.httpProxyConfig(ManagedClusterHTTPProxyConfigArgs.builder()
.httpProxy("http://myproxy.server.com:8080")
.httpsProxy("https://myproxy.server.com:8080")
.noProxy(
"localhost",
"127.0.0.1")
.trustedCa("Q29uZ3JhdHMhIFlvdSBoYXZlIGZvdW5kIGEgaGlkZGVuIG1lc3NhZ2U=")
.build())
.kubernetesVersion("")
.linuxProfile(ContainerServiceLinuxProfileArgs.builder()
.adminUsername("azureuser")
.ssh(ContainerServiceSshConfigurationArgs.builder()
.publicKeys(ContainerServiceSshPublicKeyArgs.builder()
.keyData("keydata")
.build())
.build())
.build())
.location("location1")
.networkProfile(ContainerServiceNetworkProfileArgs.builder()
.loadBalancerProfile(ManagedClusterLoadBalancerProfileArgs.builder()
.managedOutboundIPs(ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs.builder()
.count(2)
.build())
.build())
.loadBalancerSku("standard")
.outboundType("loadBalancer")
.build())
.resourceGroupName("rg1")
.resourceName("clustername1")
.servicePrincipalProfile(ManagedClusterServicePrincipalProfileArgs.builder()
.clientId("clientid")
.secret("secret")
.build())
.sku(ManagedClusterSKUArgs.builder()
.name("Basic")
.tier("Free")
.build())
.tags(Map.ofEntries(
Map.entry("archv2", ""),
Map.entry("tier", "production")
))
.windowsProfile(ManagedClusterWindowsProfileArgs.builder()
.adminPassword("replacePassword1234$")
.adminUsername("azureuser")
.build())
.build());
}
}
Create Managed Cluster with HTTP proxy configured
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ContainerService.ManagedCluster("managedCluster", new()
{
AddonProfiles = null,
AgentPoolProfiles = new[]
{
new AzureNative.ContainerService.Inputs.ManagedClusterAgentPoolProfileArgs
{
Count = 3,
EnableNodePublicIP = true,
Mode = AzureNative.ContainerService.AgentPoolMode.System,
Name = "nodepool1",
OsType = AzureNative.ContainerService.OSType.Linux,
Type = AzureNative.ContainerService.AgentPoolType.VirtualMachineScaleSets,
VmSize = "Standard_DS2_v2",
},
},
AutoScalerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterPropertiesAutoScalerProfileArgs
{
ScaleDownDelayAfterAdd = "15m",
ScanInterval = "20s",
},
DiskEncryptionSetID = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
DnsPrefix = "dnsprefix1",
EnablePodSecurityPolicy = true,
EnableRBAC = true,
HttpProxyConfig = new AzureNative.ContainerService.Inputs.ManagedClusterHTTPProxyConfigArgs
{
HttpProxy = "http://myproxy.server.com:8080",
HttpsProxy = "https://myproxy.server.com:8080",
NoProxy = new[]
{
"localhost",
"127.0.0.1",
},
TrustedCa = "Q29uZ3JhdHMhIFlvdSBoYXZlIGZvdW5kIGEgaGlkZGVuIG1lc3NhZ2U=",
},
KubernetesVersion = "",
LinuxProfile = new AzureNative.ContainerService.Inputs.ContainerServiceLinuxProfileArgs
{
AdminUsername = "azureuser",
Ssh = new AzureNative.ContainerService.Inputs.ContainerServiceSshConfigurationArgs
{
PublicKeys = new[]
{
new AzureNative.ContainerService.Inputs.ContainerServiceSshPublicKeyArgs
{
KeyData = "keydata",
},
},
},
},
Location = "location1",
NetworkProfile = new AzureNative.ContainerService.Inputs.ContainerServiceNetworkProfileArgs
{
LoadBalancerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileArgs
{
ManagedOutboundIPs = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs
{
Count = 2,
},
},
LoadBalancerSku = AzureNative.ContainerService.LoadBalancerSku.Standard,
OutboundType = AzureNative.ContainerService.OutboundType.LoadBalancer,
},
ResourceGroupName = "rg1",
ResourceName = "clustername1",
ServicePrincipalProfile = new AzureNative.ContainerService.Inputs.ManagedClusterServicePrincipalProfileArgs
{
ClientId = "clientid",
Secret = "secret",
},
Sku = new AzureNative.ContainerService.Inputs.ManagedClusterSKUArgs
{
Name = "Basic",
Tier = AzureNative.ContainerService.ManagedClusterSKUTier.Free,
},
Tags =
{
{ "archv2", "" },
{ "tier", "production" },
},
WindowsProfile = new AzureNative.ContainerService.Inputs.ManagedClusterWindowsProfileArgs
{
AdminPassword = "replacePassword1234$",
AdminUsername = "azureuser",
},
});
});
package main
import (
containerservice "github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := containerservice.NewManagedCluster(ctx, "managedCluster", &containerservice.ManagedClusterArgs{
AddonProfiles: containerservice.ManagedClusterAddonProfileMap{},
AgentPoolProfiles: containerservice.ManagedClusterAgentPoolProfileArray{
&containerservice.ManagedClusterAgentPoolProfileArgs{
Count: pulumi.Int(3),
EnableNodePublicIP: pulumi.Bool(true),
Mode: pulumi.String(containerservice.AgentPoolModeSystem),
Name: pulumi.String("nodepool1"),
OsType: pulumi.String(containerservice.OSTypeLinux),
Type: pulumi.String(containerservice.AgentPoolTypeVirtualMachineScaleSets),
VmSize: pulumi.String("Standard_DS2_v2"),
},
},
AutoScalerProfile: &containerservice.ManagedClusterPropertiesAutoScalerProfileArgs{
ScaleDownDelayAfterAdd: pulumi.String("15m"),
ScanInterval: pulumi.String("20s"),
},
DiskEncryptionSetID: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des"),
DnsPrefix: pulumi.String("dnsprefix1"),
EnablePodSecurityPolicy: pulumi.Bool(true),
EnableRBAC: pulumi.Bool(true),
HttpProxyConfig: &containerservice.ManagedClusterHTTPProxyConfigArgs{
HttpProxy: pulumi.String("http://myproxy.server.com:8080"),
HttpsProxy: pulumi.String("https://myproxy.server.com:8080"),
NoProxy: pulumi.StringArray{
pulumi.String("localhost"),
pulumi.String("127.0.0.1"),
},
TrustedCa: pulumi.String("Q29uZ3JhdHMhIFlvdSBoYXZlIGZvdW5kIGEgaGlkZGVuIG1lc3NhZ2U="),
},
KubernetesVersion: pulumi.String(""),
LinuxProfile: &containerservice.ContainerServiceLinuxProfileArgs{
AdminUsername: pulumi.String("azureuser"),
Ssh: &containerservice.ContainerServiceSshConfigurationArgs{
PublicKeys: containerservice.ContainerServiceSshPublicKeyArray{
&containerservice.ContainerServiceSshPublicKeyArgs{
KeyData: pulumi.String("keydata"),
},
},
},
},
Location: pulumi.String("location1"),
NetworkProfile: &containerservice.ContainerServiceNetworkProfileArgs{
LoadBalancerProfile: &containerservice.ManagedClusterLoadBalancerProfileArgs{
ManagedOutboundIPs: &containerservice.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs{
Count: pulumi.Int(2),
},
},
LoadBalancerSku: pulumi.String(containerservice.LoadBalancerSkuStandard),
OutboundType: pulumi.String(containerservice.OutboundTypeLoadBalancer),
},
ResourceGroupName: pulumi.String("rg1"),
ResourceName: pulumi.String("clustername1"),
ServicePrincipalProfile: &containerservice.ManagedClusterServicePrincipalProfileArgs{
ClientId: pulumi.String("clientid"),
Secret: pulumi.String("secret"),
},
Sku: &containerservice.ManagedClusterSKUArgs{
Name: pulumi.String("Basic"),
Tier: pulumi.String(containerservice.ManagedClusterSKUTierFree),
},
Tags: pulumi.StringMap{
"archv2": pulumi.String(""),
"tier": pulumi.String("production"),
},
WindowsProfile: &containerservice.ManagedClusterWindowsProfileArgs{
AdminPassword: pulumi.String("replacePassword1234$"),
AdminUsername: pulumi.String("azureuser"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.containerservice.ManagedCluster;
import com.pulumi.azurenative.containerservice.ManagedClusterArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAgentPoolProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterPropertiesAutoScalerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterHTTPProxyConfigArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceLinuxProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceSshConfigurationArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceNetworkProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterServicePrincipalProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSKUArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterWindowsProfileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.addonProfiles()
.agentPoolProfiles(ManagedClusterAgentPoolProfileArgs.builder()
.count(3)
.enableNodePublicIP(true)
.mode("System")
.name("nodepool1")
.osType("Linux")
.type("VirtualMachineScaleSets")
.vmSize("Standard_DS2_v2")
.build())
.autoScalerProfile(ManagedClusterPropertiesAutoScalerProfileArgs.builder()
.scaleDownDelayAfterAdd("15m")
.scanInterval("20s")
.build())
.diskEncryptionSetID("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
.dnsPrefix("dnsprefix1")
.enablePodSecurityPolicy(true)
.enableRBAC(true)
.httpProxyConfig(ManagedClusterHTTPProxyConfigArgs.builder()
.httpProxy("http://myproxy.server.com:8080")
.httpsProxy("https://myproxy.server.com:8080")
.noProxy(
"localhost",
"127.0.0.1")
.trustedCa("Q29uZ3JhdHMhIFlvdSBoYXZlIGZvdW5kIGEgaGlkZGVuIG1lc3NhZ2U=")
.build())
.kubernetesVersion("")
.linuxProfile(ContainerServiceLinuxProfileArgs.builder()
.adminUsername("azureuser")
.ssh(ContainerServiceSshConfigurationArgs.builder()
.publicKeys(ContainerServiceSshPublicKeyArgs.builder()
.keyData("keydata")
.build())
.build())
.build())
.location("location1")
.networkProfile(ContainerServiceNetworkProfileArgs.builder()
.loadBalancerProfile(ManagedClusterLoadBalancerProfileArgs.builder()
.managedOutboundIPs(ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs.builder()
.count(2)
.build())
.build())
.loadBalancerSku("standard")
.outboundType("loadBalancer")
.build())
.resourceGroupName("rg1")
.resourceName("clustername1")
.servicePrincipalProfile(ManagedClusterServicePrincipalProfileArgs.builder()
.clientId("clientid")
.secret("secret")
.build())
.sku(ManagedClusterSKUArgs.builder()
.name("Basic")
.tier("Free")
.build())
.tags(Map.ofEntries(
Map.entry("archv2", ""),
Map.entry("tier", "production")
))
.windowsProfile(ManagedClusterWindowsProfileArgs.builder()
.adminPassword("replacePassword1234$")
.adminUsername("azureuser")
.build())
.build());
}
}
Create Managed Cluster with LongTermSupport
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ContainerService.ManagedCluster("managedCluster", new()
{
AddonProfiles = null,
AgentPoolProfiles = new[]
{
new AzureNative.ContainerService.Inputs.ManagedClusterAgentPoolProfileArgs
{
Count = 3,
EnableEncryptionAtHost = true,
EnableNodePublicIP = true,
Mode = AzureNative.ContainerService.AgentPoolMode.System,
Name = "nodepool1",
OsType = AzureNative.ContainerService.OSType.Linux,
Type = AzureNative.ContainerService.AgentPoolType.VirtualMachineScaleSets,
VmSize = "Standard_DS2_v2",
},
},
ApiServerAccessProfile = new AzureNative.ContainerService.Inputs.ManagedClusterAPIServerAccessProfileArgs
{
DisableRunCommand = true,
},
AutoScalerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterPropertiesAutoScalerProfileArgs
{
ScaleDownDelayAfterAdd = "15m",
ScanInterval = "20s",
},
DnsPrefix = "dnsprefix1",
EnablePodSecurityPolicy = true,
EnableRBAC = true,
KubernetesVersion = "",
LinuxProfile = new AzureNative.ContainerService.Inputs.ContainerServiceLinuxProfileArgs
{
AdminUsername = "azureuser",
Ssh = new AzureNative.ContainerService.Inputs.ContainerServiceSshConfigurationArgs
{
PublicKeys = new[]
{
new AzureNative.ContainerService.Inputs.ContainerServiceSshPublicKeyArgs
{
KeyData = "keydata",
},
},
},
},
Location = "location1",
NetworkProfile = new AzureNative.ContainerService.Inputs.ContainerServiceNetworkProfileArgs
{
LoadBalancerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileArgs
{
ManagedOutboundIPs = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs
{
Count = 2,
},
},
LoadBalancerSku = AzureNative.ContainerService.LoadBalancerSku.Standard,
OutboundType = AzureNative.ContainerService.OutboundType.LoadBalancer,
},
ResourceGroupName = "rg1",
ResourceName = "clustername1",
ServicePrincipalProfile = new AzureNative.ContainerService.Inputs.ManagedClusterServicePrincipalProfileArgs
{
ClientId = "clientid",
Secret = "secret",
},
Sku = new AzureNative.ContainerService.Inputs.ManagedClusterSKUArgs
{
Name = AzureNative.ContainerService.ManagedClusterSKUName.Base,
Tier = AzureNative.ContainerService.ManagedClusterSKUTier.Premium,
},
SupportPlan = AzureNative.ContainerService.KubernetesSupportPlan.AKSLongTermSupport,
Tags =
{
{ "archv2", "" },
{ "tier", "production" },
},
WindowsProfile = new AzureNative.ContainerService.Inputs.ManagedClusterWindowsProfileArgs
{
AdminPassword = "replacePassword1234$",
AdminUsername = "azureuser",
},
});
});
package main
import (
containerservice "github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := containerservice.NewManagedCluster(ctx, "managedCluster", &containerservice.ManagedClusterArgs{
AddonProfiles: containerservice.ManagedClusterAddonProfileMap{},
AgentPoolProfiles: containerservice.ManagedClusterAgentPoolProfileArray{
&containerservice.ManagedClusterAgentPoolProfileArgs{
Count: pulumi.Int(3),
EnableEncryptionAtHost: pulumi.Bool(true),
EnableNodePublicIP: pulumi.Bool(true),
Mode: pulumi.String(containerservice.AgentPoolModeSystem),
Name: pulumi.String("nodepool1"),
OsType: pulumi.String(containerservice.OSTypeLinux),
Type: pulumi.String(containerservice.AgentPoolTypeVirtualMachineScaleSets),
VmSize: pulumi.String("Standard_DS2_v2"),
},
},
ApiServerAccessProfile: &containerservice.ManagedClusterAPIServerAccessProfileArgs{
DisableRunCommand: pulumi.Bool(true),
},
AutoScalerProfile: &containerservice.ManagedClusterPropertiesAutoScalerProfileArgs{
ScaleDownDelayAfterAdd: pulumi.String("15m"),
ScanInterval: pulumi.String("20s"),
},
DnsPrefix: pulumi.String("dnsprefix1"),
EnablePodSecurityPolicy: pulumi.Bool(true),
EnableRBAC: pulumi.Bool(true),
KubernetesVersion: pulumi.String(""),
LinuxProfile: &containerservice.ContainerServiceLinuxProfileArgs{
AdminUsername: pulumi.String("azureuser"),
Ssh: &containerservice.ContainerServiceSshConfigurationArgs{
PublicKeys: containerservice.ContainerServiceSshPublicKeyArray{
&containerservice.ContainerServiceSshPublicKeyArgs{
KeyData: pulumi.String("keydata"),
},
},
},
},
Location: pulumi.String("location1"),
NetworkProfile: &containerservice.ContainerServiceNetworkProfileArgs{
LoadBalancerProfile: &containerservice.ManagedClusterLoadBalancerProfileArgs{
ManagedOutboundIPs: &containerservice.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs{
Count: pulumi.Int(2),
},
},
LoadBalancerSku: pulumi.String(containerservice.LoadBalancerSkuStandard),
OutboundType: pulumi.String(containerservice.OutboundTypeLoadBalancer),
},
ResourceGroupName: pulumi.String("rg1"),
ResourceName: pulumi.String("clustername1"),
ServicePrincipalProfile: &containerservice.ManagedClusterServicePrincipalProfileArgs{
ClientId: pulumi.String("clientid"),
Secret: pulumi.String("secret"),
},
Sku: &containerservice.ManagedClusterSKUArgs{
Name: pulumi.String(containerservice.ManagedClusterSKUNameBase),
Tier: pulumi.String(containerservice.ManagedClusterSKUTierPremium),
},
SupportPlan: pulumi.String(containerservice.KubernetesSupportPlanAKSLongTermSupport),
Tags: pulumi.StringMap{
"archv2": pulumi.String(""),
"tier": pulumi.String("production"),
},
WindowsProfile: &containerservice.ManagedClusterWindowsProfileArgs{
AdminPassword: pulumi.String("replacePassword1234$"),
AdminUsername: pulumi.String("azureuser"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.containerservice.ManagedCluster;
import com.pulumi.azurenative.containerservice.ManagedClusterArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAgentPoolProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAPIServerAccessProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterPropertiesAutoScalerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceLinuxProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceSshConfigurationArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceNetworkProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterServicePrincipalProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSKUArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterWindowsProfileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.addonProfiles()
.agentPoolProfiles(ManagedClusterAgentPoolProfileArgs.builder()
.count(3)
.enableEncryptionAtHost(true)
.enableNodePublicIP(true)
.mode("System")
.name("nodepool1")
.osType("Linux")
.type("VirtualMachineScaleSets")
.vmSize("Standard_DS2_v2")
.build())
.apiServerAccessProfile(ManagedClusterAPIServerAccessProfileArgs.builder()
.disableRunCommand(true)
.build())
.autoScalerProfile(ManagedClusterPropertiesAutoScalerProfileArgs.builder()
.scaleDownDelayAfterAdd("15m")
.scanInterval("20s")
.build())
.dnsPrefix("dnsprefix1")
.enablePodSecurityPolicy(true)
.enableRBAC(true)
.kubernetesVersion("")
.linuxProfile(ContainerServiceLinuxProfileArgs.builder()
.adminUsername("azureuser")
.ssh(ContainerServiceSshConfigurationArgs.builder()
.publicKeys(ContainerServiceSshPublicKeyArgs.builder()
.keyData("keydata")
.build())
.build())
.build())
.location("location1")
.networkProfile(ContainerServiceNetworkProfileArgs.builder()
.loadBalancerProfile(ManagedClusterLoadBalancerProfileArgs.builder()
.managedOutboundIPs(ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs.builder()
.count(2)
.build())
.build())
.loadBalancerSku("standard")
.outboundType("loadBalancer")
.build())
.resourceGroupName("rg1")
.resourceName("clustername1")
.servicePrincipalProfile(ManagedClusterServicePrincipalProfileArgs.builder()
.clientId("clientid")
.secret("secret")
.build())
.sku(ManagedClusterSKUArgs.builder()
.name("Base")
.tier("Premium")
.build())
.supportPlan("AKSLongTermSupport")
.tags(Map.ofEntries(
Map.entry("archv2", ""),
Map.entry("tier", "production")
))
.windowsProfile(ManagedClusterWindowsProfileArgs.builder()
.adminPassword("replacePassword1234$")
.adminUsername("azureuser")
.build())
.build());
}
}
Create Managed Cluster with Node Public IP Prefix
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ContainerService.ManagedCluster("managedCluster", new()
{
AddonProfiles = null,
AgentPoolProfiles = new[]
{
new AzureNative.ContainerService.Inputs.ManagedClusterAgentPoolProfileArgs
{
Count = 3,
EnableNodePublicIP = true,
Mode = AzureNative.ContainerService.AgentPoolMode.System,
Name = "nodepool1",
NodePublicIPPrefixID = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Network/publicIPPrefixes/public-ip-prefix",
OsType = AzureNative.ContainerService.OSType.Linux,
Type = AzureNative.ContainerService.AgentPoolType.VirtualMachineScaleSets,
VmSize = "Standard_DS2_v2",
},
},
AutoScalerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterPropertiesAutoScalerProfileArgs
{
ScaleDownDelayAfterAdd = "15m",
ScanInterval = "20s",
},
DiskEncryptionSetID = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
DnsPrefix = "dnsprefix1",
EnablePodSecurityPolicy = true,
EnableRBAC = true,
KubernetesVersion = "",
LinuxProfile = new AzureNative.ContainerService.Inputs.ContainerServiceLinuxProfileArgs
{
AdminUsername = "azureuser",
Ssh = new AzureNative.ContainerService.Inputs.ContainerServiceSshConfigurationArgs
{
PublicKeys = new[]
{
new AzureNative.ContainerService.Inputs.ContainerServiceSshPublicKeyArgs
{
KeyData = "keydata",
},
},
},
},
Location = "location1",
NetworkProfile = new AzureNative.ContainerService.Inputs.ContainerServiceNetworkProfileArgs
{
LoadBalancerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileArgs
{
ManagedOutboundIPs = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs
{
Count = 2,
},
},
LoadBalancerSku = AzureNative.ContainerService.LoadBalancerSku.Standard,
OutboundType = AzureNative.ContainerService.OutboundType.LoadBalancer,
},
ResourceGroupName = "rg1",
ResourceName = "clustername1",
ServicePrincipalProfile = new AzureNative.ContainerService.Inputs.ManagedClusterServicePrincipalProfileArgs
{
ClientId = "clientid",
Secret = "secret",
},
Sku = new AzureNative.ContainerService.Inputs.ManagedClusterSKUArgs
{
Name = "Basic",
Tier = AzureNative.ContainerService.ManagedClusterSKUTier.Free,
},
Tags =
{
{ "archv2", "" },
{ "tier", "production" },
},
WindowsProfile = new AzureNative.ContainerService.Inputs.ManagedClusterWindowsProfileArgs
{
AdminPassword = "replacePassword1234$",
AdminUsername = "azureuser",
},
});
});
package main
import (
containerservice "github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := containerservice.NewManagedCluster(ctx, "managedCluster", &containerservice.ManagedClusterArgs{
AddonProfiles: containerservice.ManagedClusterAddonProfileMap{},
AgentPoolProfiles: containerservice.ManagedClusterAgentPoolProfileArray{
&containerservice.ManagedClusterAgentPoolProfileArgs{
Count: pulumi.Int(3),
EnableNodePublicIP: pulumi.Bool(true),
Mode: pulumi.String(containerservice.AgentPoolModeSystem),
Name: pulumi.String("nodepool1"),
NodePublicIPPrefixID: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Network/publicIPPrefixes/public-ip-prefix"),
OsType: pulumi.String(containerservice.OSTypeLinux),
Type: pulumi.String(containerservice.AgentPoolTypeVirtualMachineScaleSets),
VmSize: pulumi.String("Standard_DS2_v2"),
},
},
AutoScalerProfile: &containerservice.ManagedClusterPropertiesAutoScalerProfileArgs{
ScaleDownDelayAfterAdd: pulumi.String("15m"),
ScanInterval: pulumi.String("20s"),
},
DiskEncryptionSetID: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des"),
DnsPrefix: pulumi.String("dnsprefix1"),
EnablePodSecurityPolicy: pulumi.Bool(true),
EnableRBAC: pulumi.Bool(true),
KubernetesVersion: pulumi.String(""),
LinuxProfile: &containerservice.ContainerServiceLinuxProfileArgs{
AdminUsername: pulumi.String("azureuser"),
Ssh: &containerservice.ContainerServiceSshConfigurationArgs{
PublicKeys: containerservice.ContainerServiceSshPublicKeyArray{
&containerservice.ContainerServiceSshPublicKeyArgs{
KeyData: pulumi.String("keydata"),
},
},
},
},
Location: pulumi.String("location1"),
NetworkProfile: &containerservice.ContainerServiceNetworkProfileArgs{
LoadBalancerProfile: &containerservice.ManagedClusterLoadBalancerProfileArgs{
ManagedOutboundIPs: &containerservice.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs{
Count: pulumi.Int(2),
},
},
LoadBalancerSku: pulumi.String(containerservice.LoadBalancerSkuStandard),
OutboundType: pulumi.String(containerservice.OutboundTypeLoadBalancer),
},
ResourceGroupName: pulumi.String("rg1"),
ResourceName: pulumi.String("clustername1"),
ServicePrincipalProfile: &containerservice.ManagedClusterServicePrincipalProfileArgs{
ClientId: pulumi.String("clientid"),
Secret: pulumi.String("secret"),
},
Sku: &containerservice.ManagedClusterSKUArgs{
Name: pulumi.String("Basic"),
Tier: pulumi.String(containerservice.ManagedClusterSKUTierFree),
},
Tags: pulumi.StringMap{
"archv2": pulumi.String(""),
"tier": pulumi.String("production"),
},
WindowsProfile: &containerservice.ManagedClusterWindowsProfileArgs{
AdminPassword: pulumi.String("replacePassword1234$"),
AdminUsername: pulumi.String("azureuser"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.containerservice.ManagedCluster;
import com.pulumi.azurenative.containerservice.ManagedClusterArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAgentPoolProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterPropertiesAutoScalerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceLinuxProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceSshConfigurationArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceNetworkProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterServicePrincipalProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSKUArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterWindowsProfileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.addonProfiles()
.agentPoolProfiles(ManagedClusterAgentPoolProfileArgs.builder()
.count(3)
.enableNodePublicIP(true)
.mode("System")
.name("nodepool1")
.nodePublicIPPrefixID("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Network/publicIPPrefixes/public-ip-prefix")
.osType("Linux")
.type("VirtualMachineScaleSets")
.vmSize("Standard_DS2_v2")
.build())
.autoScalerProfile(ManagedClusterPropertiesAutoScalerProfileArgs.builder()
.scaleDownDelayAfterAdd("15m")
.scanInterval("20s")
.build())
.diskEncryptionSetID("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
.dnsPrefix("dnsprefix1")
.enablePodSecurityPolicy(true)
.enableRBAC(true)
.kubernetesVersion("")
.linuxProfile(ContainerServiceLinuxProfileArgs.builder()
.adminUsername("azureuser")
.ssh(ContainerServiceSshConfigurationArgs.builder()
.publicKeys(ContainerServiceSshPublicKeyArgs.builder()
.keyData("keydata")
.build())
.build())
.build())
.location("location1")
.networkProfile(ContainerServiceNetworkProfileArgs.builder()
.loadBalancerProfile(ManagedClusterLoadBalancerProfileArgs.builder()
.managedOutboundIPs(ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs.builder()
.count(2)
.build())
.build())
.loadBalancerSku("standard")
.outboundType("loadBalancer")
.build())
.resourceGroupName("rg1")
.resourceName("clustername1")
.servicePrincipalProfile(ManagedClusterServicePrincipalProfileArgs.builder()
.clientId("clientid")
.secret("secret")
.build())
.sku(ManagedClusterSKUArgs.builder()
.name("Basic")
.tier("Free")
.build())
.tags(Map.ofEntries(
Map.entry("archv2", ""),
Map.entry("tier", "production")
))
.windowsProfile(ManagedClusterWindowsProfileArgs.builder()
.adminPassword("replacePassword1234$")
.adminUsername("azureuser")
.build())
.build());
}
}
Create Managed Cluster with OSSKU
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ContainerService.ManagedCluster("managedCluster", new()
{
AddonProfiles = null,
AgentPoolProfiles = new[]
{
new AzureNative.ContainerService.Inputs.ManagedClusterAgentPoolProfileArgs
{
Count = 3,
EnableNodePublicIP = true,
Mode = AzureNative.ContainerService.AgentPoolMode.System,
Name = "nodepool1",
OsSKU = AzureNative.ContainerService.OSSKU.AzureLinux,
OsType = AzureNative.ContainerService.OSType.Linux,
Type = AzureNative.ContainerService.AgentPoolType.VirtualMachineScaleSets,
VmSize = "Standard_DS2_v2",
},
},
AutoScalerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterPropertiesAutoScalerProfileArgs
{
ScaleDownDelayAfterAdd = "15m",
ScanInterval = "20s",
},
DiskEncryptionSetID = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
DnsPrefix = "dnsprefix1",
EnablePodSecurityPolicy = true,
EnableRBAC = true,
HttpProxyConfig = new AzureNative.ContainerService.Inputs.ManagedClusterHTTPProxyConfigArgs
{
HttpProxy = "http://myproxy.server.com:8080",
HttpsProxy = "https://myproxy.server.com:8080",
NoProxy = new[]
{
"localhost",
"127.0.0.1",
},
TrustedCa = "Q29uZ3JhdHMhIFlvdSBoYXZlIGZvdW5kIGEgaGlkZGVuIG1lc3NhZ2U=",
},
KubernetesVersion = "",
LinuxProfile = new AzureNative.ContainerService.Inputs.ContainerServiceLinuxProfileArgs
{
AdminUsername = "azureuser",
Ssh = new AzureNative.ContainerService.Inputs.ContainerServiceSshConfigurationArgs
{
PublicKeys = new[]
{
new AzureNative.ContainerService.Inputs.ContainerServiceSshPublicKeyArgs
{
KeyData = "keydata",
},
},
},
},
Location = "location1",
NetworkProfile = new AzureNative.ContainerService.Inputs.ContainerServiceNetworkProfileArgs
{
LoadBalancerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileArgs
{
ManagedOutboundIPs = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs
{
Count = 2,
},
},
LoadBalancerSku = AzureNative.ContainerService.LoadBalancerSku.Standard,
OutboundType = AzureNative.ContainerService.OutboundType.LoadBalancer,
},
ResourceGroupName = "rg1",
ResourceName = "clustername1",
ServicePrincipalProfile = new AzureNative.ContainerService.Inputs.ManagedClusterServicePrincipalProfileArgs
{
ClientId = "clientid",
Secret = "secret",
},
Sku = new AzureNative.ContainerService.Inputs.ManagedClusterSKUArgs
{
Name = "Basic",
Tier = AzureNative.ContainerService.ManagedClusterSKUTier.Free,
},
Tags =
{
{ "archv2", "" },
{ "tier", "production" },
},
WindowsProfile = new AzureNative.ContainerService.Inputs.ManagedClusterWindowsProfileArgs
{
AdminPassword = "replacePassword1234$",
AdminUsername = "azureuser",
},
});
});
package main
import (
containerservice "github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := containerservice.NewManagedCluster(ctx, "managedCluster", &containerservice.ManagedClusterArgs{
AddonProfiles: containerservice.ManagedClusterAddonProfileMap{},
AgentPoolProfiles: containerservice.ManagedClusterAgentPoolProfileArray{
&containerservice.ManagedClusterAgentPoolProfileArgs{
Count: pulumi.Int(3),
EnableNodePublicIP: pulumi.Bool(true),
Mode: pulumi.String(containerservice.AgentPoolModeSystem),
Name: pulumi.String("nodepool1"),
OsSKU: pulumi.String(containerservice.OSSKUAzureLinux),
OsType: pulumi.String(containerservice.OSTypeLinux),
Type: pulumi.String(containerservice.AgentPoolTypeVirtualMachineScaleSets),
VmSize: pulumi.String("Standard_DS2_v2"),
},
},
AutoScalerProfile: &containerservice.ManagedClusterPropertiesAutoScalerProfileArgs{
ScaleDownDelayAfterAdd: pulumi.String("15m"),
ScanInterval: pulumi.String("20s"),
},
DiskEncryptionSetID: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des"),
DnsPrefix: pulumi.String("dnsprefix1"),
EnablePodSecurityPolicy: pulumi.Bool(true),
EnableRBAC: pulumi.Bool(true),
HttpProxyConfig: &containerservice.ManagedClusterHTTPProxyConfigArgs{
HttpProxy: pulumi.String("http://myproxy.server.com:8080"),
HttpsProxy: pulumi.String("https://myproxy.server.com:8080"),
NoProxy: pulumi.StringArray{
pulumi.String("localhost"),
pulumi.String("127.0.0.1"),
},
TrustedCa: pulumi.String("Q29uZ3JhdHMhIFlvdSBoYXZlIGZvdW5kIGEgaGlkZGVuIG1lc3NhZ2U="),
},
KubernetesVersion: pulumi.String(""),
LinuxProfile: &containerservice.ContainerServiceLinuxProfileArgs{
AdminUsername: pulumi.String("azureuser"),
Ssh: &containerservice.ContainerServiceSshConfigurationArgs{
PublicKeys: containerservice.ContainerServiceSshPublicKeyArray{
&containerservice.ContainerServiceSshPublicKeyArgs{
KeyData: pulumi.String("keydata"),
},
},
},
},
Location: pulumi.String("location1"),
NetworkProfile: &containerservice.ContainerServiceNetworkProfileArgs{
LoadBalancerProfile: &containerservice.ManagedClusterLoadBalancerProfileArgs{
ManagedOutboundIPs: &containerservice.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs{
Count: pulumi.Int(2),
},
},
LoadBalancerSku: pulumi.String(containerservice.LoadBalancerSkuStandard),
OutboundType: pulumi.String(containerservice.OutboundTypeLoadBalancer),
},
ResourceGroupName: pulumi.String("rg1"),
ResourceName: pulumi.String("clustername1"),
ServicePrincipalProfile: &containerservice.ManagedClusterServicePrincipalProfileArgs{
ClientId: pulumi.String("clientid"),
Secret: pulumi.String("secret"),
},
Sku: &containerservice.ManagedClusterSKUArgs{
Name: pulumi.String("Basic"),
Tier: pulumi.String(containerservice.ManagedClusterSKUTierFree),
},
Tags: pulumi.StringMap{
"archv2": pulumi.String(""),
"tier": pulumi.String("production"),
},
WindowsProfile: &containerservice.ManagedClusterWindowsProfileArgs{
AdminPassword: pulumi.String("replacePassword1234$"),
AdminUsername: pulumi.String("azureuser"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.containerservice.ManagedCluster;
import com.pulumi.azurenative.containerservice.ManagedClusterArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAgentPoolProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterPropertiesAutoScalerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterHTTPProxyConfigArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceLinuxProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceSshConfigurationArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceNetworkProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterServicePrincipalProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSKUArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterWindowsProfileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.addonProfiles()
.agentPoolProfiles(ManagedClusterAgentPoolProfileArgs.builder()
.count(3)
.enableNodePublicIP(true)
.mode("System")
.name("nodepool1")
.osSKU("AzureLinux")
.osType("Linux")
.type("VirtualMachineScaleSets")
.vmSize("Standard_DS2_v2")
.build())
.autoScalerProfile(ManagedClusterPropertiesAutoScalerProfileArgs.builder()
.scaleDownDelayAfterAdd("15m")
.scanInterval("20s")
.build())
.diskEncryptionSetID("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
.dnsPrefix("dnsprefix1")
.enablePodSecurityPolicy(true)
.enableRBAC(true)
.httpProxyConfig(ManagedClusterHTTPProxyConfigArgs.builder()
.httpProxy("http://myproxy.server.com:8080")
.httpsProxy("https://myproxy.server.com:8080")
.noProxy(
"localhost",
"127.0.0.1")
.trustedCa("Q29uZ3JhdHMhIFlvdSBoYXZlIGZvdW5kIGEgaGlkZGVuIG1lc3NhZ2U=")
.build())
.kubernetesVersion("")
.linuxProfile(ContainerServiceLinuxProfileArgs.builder()
.adminUsername("azureuser")
.ssh(ContainerServiceSshConfigurationArgs.builder()
.publicKeys(ContainerServiceSshPublicKeyArgs.builder()
.keyData("keydata")
.build())
.build())
.build())
.location("location1")
.networkProfile(ContainerServiceNetworkProfileArgs.builder()
.loadBalancerProfile(ManagedClusterLoadBalancerProfileArgs.builder()
.managedOutboundIPs(ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs.builder()
.count(2)
.build())
.build())
.loadBalancerSku("standard")
.outboundType("loadBalancer")
.build())
.resourceGroupName("rg1")
.resourceName("clustername1")
.servicePrincipalProfile(ManagedClusterServicePrincipalProfileArgs.builder()
.clientId("clientid")
.secret("secret")
.build())
.sku(ManagedClusterSKUArgs.builder()
.name("Basic")
.tier("Free")
.build())
.tags(Map.ofEntries(
Map.entry("archv2", ""),
Map.entry("tier", "production")
))
.windowsProfile(ManagedClusterWindowsProfileArgs.builder()
.adminPassword("replacePassword1234$")
.adminUsername("azureuser")
.build())
.build());
}
}
Create Managed Cluster with PPG
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ContainerService.ManagedCluster("managedCluster", new()
{
AddonProfiles = null,
AgentPoolProfiles = new[]
{
new AzureNative.ContainerService.Inputs.ManagedClusterAgentPoolProfileArgs
{
Count = 3,
EnableNodePublicIP = true,
Mode = AzureNative.ContainerService.AgentPoolMode.System,
Name = "nodepool1",
OsType = AzureNative.ContainerService.OSType.Linux,
ProximityPlacementGroupID = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/proximityPlacementGroups/ppg1",
Type = AzureNative.ContainerService.AgentPoolType.VirtualMachineScaleSets,
VmSize = "Standard_DS2_v2",
},
},
AutoScalerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterPropertiesAutoScalerProfileArgs
{
ScaleDownDelayAfterAdd = "15m",
ScanInterval = "20s",
},
DiskEncryptionSetID = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
DnsPrefix = "dnsprefix1",
EnablePodSecurityPolicy = true,
EnableRBAC = true,
KubernetesVersion = "",
LinuxProfile = new AzureNative.ContainerService.Inputs.ContainerServiceLinuxProfileArgs
{
AdminUsername = "azureuser",
Ssh = new AzureNative.ContainerService.Inputs.ContainerServiceSshConfigurationArgs
{
PublicKeys = new[]
{
new AzureNative.ContainerService.Inputs.ContainerServiceSshPublicKeyArgs
{
KeyData = "keydata",
},
},
},
},
Location = "location1",
NetworkProfile = new AzureNative.ContainerService.Inputs.ContainerServiceNetworkProfileArgs
{
LoadBalancerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileArgs
{
ManagedOutboundIPs = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs
{
Count = 2,
},
},
LoadBalancerSku = AzureNative.ContainerService.LoadBalancerSku.Standard,
OutboundType = AzureNative.ContainerService.OutboundType.LoadBalancer,
},
ResourceGroupName = "rg1",
ResourceName = "clustername1",
ServicePrincipalProfile = new AzureNative.ContainerService.Inputs.ManagedClusterServicePrincipalProfileArgs
{
ClientId = "clientid",
Secret = "secret",
},
Sku = new AzureNative.ContainerService.Inputs.ManagedClusterSKUArgs
{
Name = "Basic",
Tier = AzureNative.ContainerService.ManagedClusterSKUTier.Free,
},
Tags =
{
{ "archv2", "" },
{ "tier", "production" },
},
WindowsProfile = new AzureNative.ContainerService.Inputs.ManagedClusterWindowsProfileArgs
{
AdminPassword = "replacePassword1234$",
AdminUsername = "azureuser",
},
});
});
package main
import (
containerservice "github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := containerservice.NewManagedCluster(ctx, "managedCluster", &containerservice.ManagedClusterArgs{
AddonProfiles: containerservice.ManagedClusterAddonProfileMap{},
AgentPoolProfiles: containerservice.ManagedClusterAgentPoolProfileArray{
&containerservice.ManagedClusterAgentPoolProfileArgs{
Count: pulumi.Int(3),
EnableNodePublicIP: pulumi.Bool(true),
Mode: pulumi.String(containerservice.AgentPoolModeSystem),
Name: pulumi.String("nodepool1"),
OsType: pulumi.String(containerservice.OSTypeLinux),
ProximityPlacementGroupID: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/proximityPlacementGroups/ppg1"),
Type: pulumi.String(containerservice.AgentPoolTypeVirtualMachineScaleSets),
VmSize: pulumi.String("Standard_DS2_v2"),
},
},
AutoScalerProfile: &containerservice.ManagedClusterPropertiesAutoScalerProfileArgs{
ScaleDownDelayAfterAdd: pulumi.String("15m"),
ScanInterval: pulumi.String("20s"),
},
DiskEncryptionSetID: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des"),
DnsPrefix: pulumi.String("dnsprefix1"),
EnablePodSecurityPolicy: pulumi.Bool(true),
EnableRBAC: pulumi.Bool(true),
KubernetesVersion: pulumi.String(""),
LinuxProfile: &containerservice.ContainerServiceLinuxProfileArgs{
AdminUsername: pulumi.String("azureuser"),
Ssh: &containerservice.ContainerServiceSshConfigurationArgs{
PublicKeys: containerservice.ContainerServiceSshPublicKeyArray{
&containerservice.ContainerServiceSshPublicKeyArgs{
KeyData: pulumi.String("keydata"),
},
},
},
},
Location: pulumi.String("location1"),
NetworkProfile: &containerservice.ContainerServiceNetworkProfileArgs{
LoadBalancerProfile: &containerservice.ManagedClusterLoadBalancerProfileArgs{
ManagedOutboundIPs: &containerservice.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs{
Count: pulumi.Int(2),
},
},
LoadBalancerSku: pulumi.String(containerservice.LoadBalancerSkuStandard),
OutboundType: pulumi.String(containerservice.OutboundTypeLoadBalancer),
},
ResourceGroupName: pulumi.String("rg1"),
ResourceName: pulumi.String("clustername1"),
ServicePrincipalProfile: &containerservice.ManagedClusterServicePrincipalProfileArgs{
ClientId: pulumi.String("clientid"),
Secret: pulumi.String("secret"),
},
Sku: &containerservice.ManagedClusterSKUArgs{
Name: pulumi.String("Basic"),
Tier: pulumi.String(containerservice.ManagedClusterSKUTierFree),
},
Tags: pulumi.StringMap{
"archv2": pulumi.String(""),
"tier": pulumi.String("production"),
},
WindowsProfile: &containerservice.ManagedClusterWindowsProfileArgs{
AdminPassword: pulumi.String("replacePassword1234$"),
AdminUsername: pulumi.String("azureuser"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.containerservice.ManagedCluster;
import com.pulumi.azurenative.containerservice.ManagedClusterArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAgentPoolProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterPropertiesAutoScalerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceLinuxProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceSshConfigurationArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceNetworkProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterServicePrincipalProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSKUArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterWindowsProfileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.addonProfiles()
.agentPoolProfiles(ManagedClusterAgentPoolProfileArgs.builder()
.count(3)
.enableNodePublicIP(true)
.mode("System")
.name("nodepool1")
.osType("Linux")
.proximityPlacementGroupID("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/proximityPlacementGroups/ppg1")
.type("VirtualMachineScaleSets")
.vmSize("Standard_DS2_v2")
.build())
.autoScalerProfile(ManagedClusterPropertiesAutoScalerProfileArgs.builder()
.scaleDownDelayAfterAdd("15m")
.scanInterval("20s")
.build())
.diskEncryptionSetID("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
.dnsPrefix("dnsprefix1")
.enablePodSecurityPolicy(true)
.enableRBAC(true)
.kubernetesVersion("")
.linuxProfile(ContainerServiceLinuxProfileArgs.builder()
.adminUsername("azureuser")
.ssh(ContainerServiceSshConfigurationArgs.builder()
.publicKeys(ContainerServiceSshPublicKeyArgs.builder()
.keyData("keydata")
.build())
.build())
.build())
.location("location1")
.networkProfile(ContainerServiceNetworkProfileArgs.builder()
.loadBalancerProfile(ManagedClusterLoadBalancerProfileArgs.builder()
.managedOutboundIPs(ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs.builder()
.count(2)
.build())
.build())
.loadBalancerSku("standard")
.outboundType("loadBalancer")
.build())
.resourceGroupName("rg1")
.resourceName("clustername1")
.servicePrincipalProfile(ManagedClusterServicePrincipalProfileArgs.builder()
.clientId("clientid")
.secret("secret")
.build())
.sku(ManagedClusterSKUArgs.builder()
.name("Basic")
.tier("Free")
.build())
.tags(Map.ofEntries(
Map.entry("archv2", ""),
Map.entry("tier", "production")
))
.windowsProfile(ManagedClusterWindowsProfileArgs.builder()
.adminPassword("replacePassword1234$")
.adminUsername("azureuser")
.build())
.build());
}
}
Create Managed Cluster with PodIdentity enabled
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ContainerService.ManagedCluster("managedCluster", new()
{
AddonProfiles = null,
AgentPoolProfiles = new[]
{
new AzureNative.ContainerService.Inputs.ManagedClusterAgentPoolProfileArgs
{
Count = 3,
EnableNodePublicIP = true,
Mode = AzureNative.ContainerService.AgentPoolMode.System,
Name = "nodepool1",
OsType = AzureNative.ContainerService.OSType.Linux,
Type = AzureNative.ContainerService.AgentPoolType.VirtualMachineScaleSets,
VmSize = "Standard_DS2_v2",
},
},
AutoScalerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterPropertiesAutoScalerProfileArgs
{
ScaleDownDelayAfterAdd = "15m",
ScanInterval = "20s",
},
DiskEncryptionSetID = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
DnsPrefix = "dnsprefix1",
EnablePodSecurityPolicy = true,
EnableRBAC = true,
KubernetesVersion = "",
LinuxProfile = new AzureNative.ContainerService.Inputs.ContainerServiceLinuxProfileArgs
{
AdminUsername = "azureuser",
Ssh = new AzureNative.ContainerService.Inputs.ContainerServiceSshConfigurationArgs
{
PublicKeys = new[]
{
new AzureNative.ContainerService.Inputs.ContainerServiceSshPublicKeyArgs
{
KeyData = "keydata",
},
},
},
},
Location = "location1",
NetworkProfile = new AzureNative.ContainerService.Inputs.ContainerServiceNetworkProfileArgs
{
LoadBalancerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileArgs
{
ManagedOutboundIPs = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs
{
Count = 2,
},
},
LoadBalancerSku = AzureNative.ContainerService.LoadBalancerSku.Standard,
OutboundType = AzureNative.ContainerService.OutboundType.LoadBalancer,
},
PodIdentityProfile = new AzureNative.ContainerService.Inputs.ManagedClusterPodIdentityProfileArgs
{
AllowNetworkPluginKubenet = true,
Enabled = true,
},
ResourceGroupName = "rg1",
ResourceName = "clustername1",
ServicePrincipalProfile = new AzureNative.ContainerService.Inputs.ManagedClusterServicePrincipalProfileArgs
{
ClientId = "clientid",
Secret = "secret",
},
Sku = new AzureNative.ContainerService.Inputs.ManagedClusterSKUArgs
{
Name = "Basic",
Tier = AzureNative.ContainerService.ManagedClusterSKUTier.Free,
},
Tags =
{
{ "archv2", "" },
{ "tier", "production" },
},
WindowsProfile = new AzureNative.ContainerService.Inputs.ManagedClusterWindowsProfileArgs
{
AdminPassword = "replacePassword1234$",
AdminUsername = "azureuser",
},
});
});
package main
import (
containerservice "github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := containerservice.NewManagedCluster(ctx, "managedCluster", &containerservice.ManagedClusterArgs{
AddonProfiles: containerservice.ManagedClusterAddonProfileMap{},
AgentPoolProfiles: containerservice.ManagedClusterAgentPoolProfileArray{
&containerservice.ManagedClusterAgentPoolProfileArgs{
Count: pulumi.Int(3),
EnableNodePublicIP: pulumi.Bool(true),
Mode: pulumi.String(containerservice.AgentPoolModeSystem),
Name: pulumi.String("nodepool1"),
OsType: pulumi.String(containerservice.OSTypeLinux),
Type: pulumi.String(containerservice.AgentPoolTypeVirtualMachineScaleSets),
VmSize: pulumi.String("Standard_DS2_v2"),
},
},
AutoScalerProfile: &containerservice.ManagedClusterPropertiesAutoScalerProfileArgs{
ScaleDownDelayAfterAdd: pulumi.String("15m"),
ScanInterval: pulumi.String("20s"),
},
DiskEncryptionSetID: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des"),
DnsPrefix: pulumi.String("dnsprefix1"),
EnablePodSecurityPolicy: pulumi.Bool(true),
EnableRBAC: pulumi.Bool(true),
KubernetesVersion: pulumi.String(""),
LinuxProfile: &containerservice.ContainerServiceLinuxProfileArgs{
AdminUsername: pulumi.String("azureuser"),
Ssh: &containerservice.ContainerServiceSshConfigurationArgs{
PublicKeys: containerservice.ContainerServiceSshPublicKeyArray{
&containerservice.ContainerServiceSshPublicKeyArgs{
KeyData: pulumi.String("keydata"),
},
},
},
},
Location: pulumi.String("location1"),
NetworkProfile: &containerservice.ContainerServiceNetworkProfileArgs{
LoadBalancerProfile: &containerservice.ManagedClusterLoadBalancerProfileArgs{
ManagedOutboundIPs: &containerservice.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs{
Count: pulumi.Int(2),
},
},
LoadBalancerSku: pulumi.String(containerservice.LoadBalancerSkuStandard),
OutboundType: pulumi.String(containerservice.OutboundTypeLoadBalancer),
},
PodIdentityProfile: &containerservice.ManagedClusterPodIdentityProfileArgs{
AllowNetworkPluginKubenet: pulumi.Bool(true),
Enabled: pulumi.Bool(true),
},
ResourceGroupName: pulumi.String("rg1"),
ResourceName: pulumi.String("clustername1"),
ServicePrincipalProfile: &containerservice.ManagedClusterServicePrincipalProfileArgs{
ClientId: pulumi.String("clientid"),
Secret: pulumi.String("secret"),
},
Sku: &containerservice.ManagedClusterSKUArgs{
Name: pulumi.String("Basic"),
Tier: pulumi.String(containerservice.ManagedClusterSKUTierFree),
},
Tags: pulumi.StringMap{
"archv2": pulumi.String(""),
"tier": pulumi.String("production"),
},
WindowsProfile: &containerservice.ManagedClusterWindowsProfileArgs{
AdminPassword: pulumi.String("replacePassword1234$"),
AdminUsername: pulumi.String("azureuser"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.containerservice.ManagedCluster;
import com.pulumi.azurenative.containerservice.ManagedClusterArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAgentPoolProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterPropertiesAutoScalerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceLinuxProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceSshConfigurationArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceNetworkProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterPodIdentityProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterServicePrincipalProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSKUArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterWindowsProfileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.addonProfiles()
.agentPoolProfiles(ManagedClusterAgentPoolProfileArgs.builder()
.count(3)
.enableNodePublicIP(true)
.mode("System")
.name("nodepool1")
.osType("Linux")
.type("VirtualMachineScaleSets")
.vmSize("Standard_DS2_v2")
.build())
.autoScalerProfile(ManagedClusterPropertiesAutoScalerProfileArgs.builder()
.scaleDownDelayAfterAdd("15m")
.scanInterval("20s")
.build())
.diskEncryptionSetID("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
.dnsPrefix("dnsprefix1")
.enablePodSecurityPolicy(true)
.enableRBAC(true)
.kubernetesVersion("")
.linuxProfile(ContainerServiceLinuxProfileArgs.builder()
.adminUsername("azureuser")
.ssh(ContainerServiceSshConfigurationArgs.builder()
.publicKeys(ContainerServiceSshPublicKeyArgs.builder()
.keyData("keydata")
.build())
.build())
.build())
.location("location1")
.networkProfile(ContainerServiceNetworkProfileArgs.builder()
.loadBalancerProfile(ManagedClusterLoadBalancerProfileArgs.builder()
.managedOutboundIPs(ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs.builder()
.count(2)
.build())
.build())
.loadBalancerSku("standard")
.outboundType("loadBalancer")
.build())
.podIdentityProfile(ManagedClusterPodIdentityProfileArgs.builder()
.allowNetworkPluginKubenet(true)
.enabled(true)
.build())
.resourceGroupName("rg1")
.resourceName("clustername1")
.servicePrincipalProfile(ManagedClusterServicePrincipalProfileArgs.builder()
.clientId("clientid")
.secret("secret")
.build())
.sku(ManagedClusterSKUArgs.builder()
.name("Basic")
.tier("Free")
.build())
.tags(Map.ofEntries(
Map.entry("archv2", ""),
Map.entry("tier", "production")
))
.windowsProfile(ManagedClusterWindowsProfileArgs.builder()
.adminPassword("replacePassword1234$")
.adminUsername("azureuser")
.build())
.build());
}
}
Create Managed Cluster with RunCommand disabled
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ContainerService.ManagedCluster("managedCluster", new()
{
AddonProfiles = null,
AgentPoolProfiles = new[]
{
new AzureNative.ContainerService.Inputs.ManagedClusterAgentPoolProfileArgs
{
Count = 3,
EnableEncryptionAtHost = true,
EnableNodePublicIP = true,
Mode = AzureNative.ContainerService.AgentPoolMode.System,
Name = "nodepool1",
OsType = AzureNative.ContainerService.OSType.Linux,
Type = AzureNative.ContainerService.AgentPoolType.VirtualMachineScaleSets,
VmSize = "Standard_DS2_v2",
},
},
ApiServerAccessProfile = new AzureNative.ContainerService.Inputs.ManagedClusterAPIServerAccessProfileArgs
{
DisableRunCommand = true,
},
AutoScalerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterPropertiesAutoScalerProfileArgs
{
ScaleDownDelayAfterAdd = "15m",
ScanInterval = "20s",
},
DnsPrefix = "dnsprefix1",
EnablePodSecurityPolicy = true,
EnableRBAC = true,
KubernetesVersion = "",
LinuxProfile = new AzureNative.ContainerService.Inputs.ContainerServiceLinuxProfileArgs
{
AdminUsername = "azureuser",
Ssh = new AzureNative.ContainerService.Inputs.ContainerServiceSshConfigurationArgs
{
PublicKeys = new[]
{
new AzureNative.ContainerService.Inputs.ContainerServiceSshPublicKeyArgs
{
KeyData = "keydata",
},
},
},
},
Location = "location1",
NetworkProfile = new AzureNative.ContainerService.Inputs.ContainerServiceNetworkProfileArgs
{
LoadBalancerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileArgs
{
ManagedOutboundIPs = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs
{
Count = 2,
},
},
LoadBalancerSku = AzureNative.ContainerService.LoadBalancerSku.Standard,
OutboundType = AzureNative.ContainerService.OutboundType.LoadBalancer,
},
ResourceGroupName = "rg1",
ResourceName = "clustername1",
ServicePrincipalProfile = new AzureNative.ContainerService.Inputs.ManagedClusterServicePrincipalProfileArgs
{
ClientId = "clientid",
Secret = "secret",
},
Sku = new AzureNative.ContainerService.Inputs.ManagedClusterSKUArgs
{
Name = "Basic",
Tier = AzureNative.ContainerService.ManagedClusterSKUTier.Free,
},
Tags =
{
{ "archv2", "" },
{ "tier", "production" },
},
WindowsProfile = new AzureNative.ContainerService.Inputs.ManagedClusterWindowsProfileArgs
{
AdminPassword = "replacePassword1234$",
AdminUsername = "azureuser",
},
});
});
package main
import (
containerservice "github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := containerservice.NewManagedCluster(ctx, "managedCluster", &containerservice.ManagedClusterArgs{
AddonProfiles: containerservice.ManagedClusterAddonProfileMap{},
AgentPoolProfiles: containerservice.ManagedClusterAgentPoolProfileArray{
&containerservice.ManagedClusterAgentPoolProfileArgs{
Count: pulumi.Int(3),
EnableEncryptionAtHost: pulumi.Bool(true),
EnableNodePublicIP: pulumi.Bool(true),
Mode: pulumi.String(containerservice.AgentPoolModeSystem),
Name: pulumi.String("nodepool1"),
OsType: pulumi.String(containerservice.OSTypeLinux),
Type: pulumi.String(containerservice.AgentPoolTypeVirtualMachineScaleSets),
VmSize: pulumi.String("Standard_DS2_v2"),
},
},
ApiServerAccessProfile: &containerservice.ManagedClusterAPIServerAccessProfileArgs{
DisableRunCommand: pulumi.Bool(true),
},
AutoScalerProfile: &containerservice.ManagedClusterPropertiesAutoScalerProfileArgs{
ScaleDownDelayAfterAdd: pulumi.String("15m"),
ScanInterval: pulumi.String("20s"),
},
DnsPrefix: pulumi.String("dnsprefix1"),
EnablePodSecurityPolicy: pulumi.Bool(true),
EnableRBAC: pulumi.Bool(true),
KubernetesVersion: pulumi.String(""),
LinuxProfile: &containerservice.ContainerServiceLinuxProfileArgs{
AdminUsername: pulumi.String("azureuser"),
Ssh: &containerservice.ContainerServiceSshConfigurationArgs{
PublicKeys: containerservice.ContainerServiceSshPublicKeyArray{
&containerservice.ContainerServiceSshPublicKeyArgs{
KeyData: pulumi.String("keydata"),
},
},
},
},
Location: pulumi.String("location1"),
NetworkProfile: &containerservice.ContainerServiceNetworkProfileArgs{
LoadBalancerProfile: &containerservice.ManagedClusterLoadBalancerProfileArgs{
ManagedOutboundIPs: &containerservice.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs{
Count: pulumi.Int(2),
},
},
LoadBalancerSku: pulumi.String(containerservice.LoadBalancerSkuStandard),
OutboundType: pulumi.String(containerservice.OutboundTypeLoadBalancer),
},
ResourceGroupName: pulumi.String("rg1"),
ResourceName: pulumi.String("clustername1"),
ServicePrincipalProfile: &containerservice.ManagedClusterServicePrincipalProfileArgs{
ClientId: pulumi.String("clientid"),
Secret: pulumi.String("secret"),
},
Sku: &containerservice.ManagedClusterSKUArgs{
Name: pulumi.String("Basic"),
Tier: pulumi.String(containerservice.ManagedClusterSKUTierFree),
},
Tags: pulumi.StringMap{
"archv2": pulumi.String(""),
"tier": pulumi.String("production"),
},
WindowsProfile: &containerservice.ManagedClusterWindowsProfileArgs{
AdminPassword: pulumi.String("replacePassword1234$"),
AdminUsername: pulumi.String("azureuser"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.containerservice.ManagedCluster;
import com.pulumi.azurenative.containerservice.ManagedClusterArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAgentPoolProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAPIServerAccessProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterPropertiesAutoScalerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceLinuxProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceSshConfigurationArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceNetworkProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterServicePrincipalProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSKUArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterWindowsProfileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.addonProfiles()
.agentPoolProfiles(ManagedClusterAgentPoolProfileArgs.builder()
.count(3)
.enableEncryptionAtHost(true)
.enableNodePublicIP(true)
.mode("System")
.name("nodepool1")
.osType("Linux")
.type("VirtualMachineScaleSets")
.vmSize("Standard_DS2_v2")
.build())
.apiServerAccessProfile(ManagedClusterAPIServerAccessProfileArgs.builder()
.disableRunCommand(true)
.build())
.autoScalerProfile(ManagedClusterPropertiesAutoScalerProfileArgs.builder()
.scaleDownDelayAfterAdd("15m")
.scanInterval("20s")
.build())
.dnsPrefix("dnsprefix1")
.enablePodSecurityPolicy(true)
.enableRBAC(true)
.kubernetesVersion("")
.linuxProfile(ContainerServiceLinuxProfileArgs.builder()
.adminUsername("azureuser")
.ssh(ContainerServiceSshConfigurationArgs.builder()
.publicKeys(ContainerServiceSshPublicKeyArgs.builder()
.keyData("keydata")
.build())
.build())
.build())
.location("location1")
.networkProfile(ContainerServiceNetworkProfileArgs.builder()
.loadBalancerProfile(ManagedClusterLoadBalancerProfileArgs.builder()
.managedOutboundIPs(ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs.builder()
.count(2)
.build())
.build())
.loadBalancerSku("standard")
.outboundType("loadBalancer")
.build())
.resourceGroupName("rg1")
.resourceName("clustername1")
.servicePrincipalProfile(ManagedClusterServicePrincipalProfileArgs.builder()
.clientId("clientid")
.secret("secret")
.build())
.sku(ManagedClusterSKUArgs.builder()
.name("Basic")
.tier("Free")
.build())
.tags(Map.ofEntries(
Map.entry("archv2", ""),
Map.entry("tier", "production")
))
.windowsProfile(ManagedClusterWindowsProfileArgs.builder()
.adminPassword("replacePassword1234$")
.adminUsername("azureuser")
.build())
.build());
}
}
Create Managed Cluster with Security Profile configured
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ContainerService.ManagedCluster("managedCluster", new()
{
AgentPoolProfiles = new[]
{
new AzureNative.ContainerService.Inputs.ManagedClusterAgentPoolProfileArgs
{
Count = 3,
EnableNodePublicIP = true,
Mode = AzureNative.ContainerService.AgentPoolMode.System,
Name = "nodepool1",
OsType = AzureNative.ContainerService.OSType.Linux,
Type = AzureNative.ContainerService.AgentPoolType.VirtualMachineScaleSets,
VmSize = "Standard_DS2_v2",
},
},
DnsPrefix = "dnsprefix1",
KubernetesVersion = "",
LinuxProfile = new AzureNative.ContainerService.Inputs.ContainerServiceLinuxProfileArgs
{
AdminUsername = "azureuser",
Ssh = new AzureNative.ContainerService.Inputs.ContainerServiceSshConfigurationArgs
{
PublicKeys = new[]
{
new AzureNative.ContainerService.Inputs.ContainerServiceSshPublicKeyArgs
{
KeyData = "keydata",
},
},
},
},
Location = "location1",
NetworkProfile = new AzureNative.ContainerService.Inputs.ContainerServiceNetworkProfileArgs
{
LoadBalancerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileArgs
{
ManagedOutboundIPs = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs
{
Count = 2,
},
},
LoadBalancerSku = AzureNative.ContainerService.LoadBalancerSku.Standard,
OutboundType = AzureNative.ContainerService.OutboundType.LoadBalancer,
},
ResourceGroupName = "rg1",
ResourceName = "clustername1",
SecurityProfile = new AzureNative.ContainerService.Inputs.ManagedClusterSecurityProfileArgs
{
Defender = new AzureNative.ContainerService.Inputs.ManagedClusterSecurityProfileDefenderArgs
{
LogAnalyticsWorkspaceResourceId = "/subscriptions/SUB_ID/resourcegroups/RG_NAME/providers/microsoft.operationalinsights/workspaces/WORKSPACE_NAME",
SecurityMonitoring = new AzureNative.ContainerService.Inputs.ManagedClusterSecurityProfileDefenderSecurityMonitoringArgs
{
Enabled = true,
},
},
WorkloadIdentity = new AzureNative.ContainerService.Inputs.ManagedClusterSecurityProfileWorkloadIdentityArgs
{
Enabled = true,
},
},
Sku = new AzureNative.ContainerService.Inputs.ManagedClusterSKUArgs
{
Name = "Basic",
Tier = AzureNative.ContainerService.ManagedClusterSKUTier.Free,
},
Tags =
{
{ "archv2", "" },
{ "tier", "production" },
},
});
});
package main
import (
containerservice "github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := containerservice.NewManagedCluster(ctx, "managedCluster", &containerservice.ManagedClusterArgs{
AgentPoolProfiles: containerservice.ManagedClusterAgentPoolProfileArray{
&containerservice.ManagedClusterAgentPoolProfileArgs{
Count: pulumi.Int(3),
EnableNodePublicIP: pulumi.Bool(true),
Mode: pulumi.String(containerservice.AgentPoolModeSystem),
Name: pulumi.String("nodepool1"),
OsType: pulumi.String(containerservice.OSTypeLinux),
Type: pulumi.String(containerservice.AgentPoolTypeVirtualMachineScaleSets),
VmSize: pulumi.String("Standard_DS2_v2"),
},
},
DnsPrefix: pulumi.String("dnsprefix1"),
KubernetesVersion: pulumi.String(""),
LinuxProfile: &containerservice.ContainerServiceLinuxProfileArgs{
AdminUsername: pulumi.String("azureuser"),
Ssh: &containerservice.ContainerServiceSshConfigurationArgs{
PublicKeys: containerservice.ContainerServiceSshPublicKeyArray{
&containerservice.ContainerServiceSshPublicKeyArgs{
KeyData: pulumi.String("keydata"),
},
},
},
},
Location: pulumi.String("location1"),
NetworkProfile: &containerservice.ContainerServiceNetworkProfileArgs{
LoadBalancerProfile: &containerservice.ManagedClusterLoadBalancerProfileArgs{
ManagedOutboundIPs: &containerservice.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs{
Count: pulumi.Int(2),
},
},
LoadBalancerSku: pulumi.String(containerservice.LoadBalancerSkuStandard),
OutboundType: pulumi.String(containerservice.OutboundTypeLoadBalancer),
},
ResourceGroupName: pulumi.String("rg1"),
ResourceName: pulumi.String("clustername1"),
SecurityProfile: &containerservice.ManagedClusterSecurityProfileArgs{
Defender: &containerservice.ManagedClusterSecurityProfileDefenderArgs{
LogAnalyticsWorkspaceResourceId: pulumi.String("/subscriptions/SUB_ID/resourcegroups/RG_NAME/providers/microsoft.operationalinsights/workspaces/WORKSPACE_NAME"),
SecurityMonitoring: &containerservice.ManagedClusterSecurityProfileDefenderSecurityMonitoringArgs{
Enabled: pulumi.Bool(true),
},
},
WorkloadIdentity: &containerservice.ManagedClusterSecurityProfileWorkloadIdentityArgs{
Enabled: pulumi.Bool(true),
},
},
Sku: &containerservice.ManagedClusterSKUArgs{
Name: pulumi.String("Basic"),
Tier: pulumi.String(containerservice.ManagedClusterSKUTierFree),
},
Tags: pulumi.StringMap{
"archv2": pulumi.String(""),
"tier": pulumi.String("production"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.containerservice.ManagedCluster;
import com.pulumi.azurenative.containerservice.ManagedClusterArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAgentPoolProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceLinuxProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceSshConfigurationArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceNetworkProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSecurityProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSecurityProfileDefenderArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSecurityProfileDefenderSecurityMonitoringArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSecurityProfileWorkloadIdentityArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSKUArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.agentPoolProfiles(ManagedClusterAgentPoolProfileArgs.builder()
.count(3)
.enableNodePublicIP(true)
.mode("System")
.name("nodepool1")
.osType("Linux")
.type("VirtualMachineScaleSets")
.vmSize("Standard_DS2_v2")
.build())
.dnsPrefix("dnsprefix1")
.kubernetesVersion("")
.linuxProfile(ContainerServiceLinuxProfileArgs.builder()
.adminUsername("azureuser")
.ssh(ContainerServiceSshConfigurationArgs.builder()
.publicKeys(ContainerServiceSshPublicKeyArgs.builder()
.keyData("keydata")
.build())
.build())
.build())
.location("location1")
.networkProfile(ContainerServiceNetworkProfileArgs.builder()
.loadBalancerProfile(ManagedClusterLoadBalancerProfileArgs.builder()
.managedOutboundIPs(ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs.builder()
.count(2)
.build())
.build())
.loadBalancerSku("standard")
.outboundType("loadBalancer")
.build())
.resourceGroupName("rg1")
.resourceName("clustername1")
.securityProfile(ManagedClusterSecurityProfileArgs.builder()
.defender(ManagedClusterSecurityProfileDefenderArgs.builder()
.logAnalyticsWorkspaceResourceId("/subscriptions/SUB_ID/resourcegroups/RG_NAME/providers/microsoft.operationalinsights/workspaces/WORKSPACE_NAME")
.securityMonitoring(ManagedClusterSecurityProfileDefenderSecurityMonitoringArgs.builder()
.enabled(true)
.build())
.build())
.workloadIdentity(ManagedClusterSecurityProfileWorkloadIdentityArgs.builder()
.enabled(true)
.build())
.build())
.sku(ManagedClusterSKUArgs.builder()
.name("Basic")
.tier("Free")
.build())
.tags(Map.ofEntries(
Map.entry("archv2", ""),
Map.entry("tier", "production")
))
.build());
}
}
Create Managed Cluster with UltraSSD enabled
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ContainerService.ManagedCluster("managedCluster", new()
{
AddonProfiles = null,
AgentPoolProfiles = new[]
{
new AzureNative.ContainerService.Inputs.ManagedClusterAgentPoolProfileArgs
{
Count = 3,
EnableNodePublicIP = true,
EnableUltraSSD = true,
Mode = AzureNative.ContainerService.AgentPoolMode.System,
Name = "nodepool1",
OsType = AzureNative.ContainerService.OSType.Linux,
Type = AzureNative.ContainerService.AgentPoolType.VirtualMachineScaleSets,
VmSize = "Standard_DS2_v2",
},
},
AutoScalerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterPropertiesAutoScalerProfileArgs
{
ScaleDownDelayAfterAdd = "15m",
ScanInterval = "20s",
},
DiskEncryptionSetID = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
DnsPrefix = "dnsprefix1",
EnablePodSecurityPolicy = true,
EnableRBAC = true,
KubernetesVersion = "",
LinuxProfile = new AzureNative.ContainerService.Inputs.ContainerServiceLinuxProfileArgs
{
AdminUsername = "azureuser",
Ssh = new AzureNative.ContainerService.Inputs.ContainerServiceSshConfigurationArgs
{
PublicKeys = new[]
{
new AzureNative.ContainerService.Inputs.ContainerServiceSshPublicKeyArgs
{
KeyData = "keydata",
},
},
},
},
Location = "location1",
NetworkProfile = new AzureNative.ContainerService.Inputs.ContainerServiceNetworkProfileArgs
{
LoadBalancerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileArgs
{
ManagedOutboundIPs = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs
{
Count = 2,
},
},
LoadBalancerSku = AzureNative.ContainerService.LoadBalancerSku.Standard,
OutboundType = AzureNative.ContainerService.OutboundType.LoadBalancer,
},
ResourceGroupName = "rg1",
ResourceName = "clustername1",
ServicePrincipalProfile = new AzureNative.ContainerService.Inputs.ManagedClusterServicePrincipalProfileArgs
{
ClientId = "clientid",
Secret = "secret",
},
Sku = new AzureNative.ContainerService.Inputs.ManagedClusterSKUArgs
{
Name = "Basic",
Tier = AzureNative.ContainerService.ManagedClusterSKUTier.Free,
},
Tags =
{
{ "archv2", "" },
{ "tier", "production" },
},
WindowsProfile = new AzureNative.ContainerService.Inputs.ManagedClusterWindowsProfileArgs
{
AdminPassword = "replacePassword1234$",
AdminUsername = "azureuser",
},
});
});
package main
import (
containerservice "github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := containerservice.NewManagedCluster(ctx, "managedCluster", &containerservice.ManagedClusterArgs{
AddonProfiles: containerservice.ManagedClusterAddonProfileMap{},
AgentPoolProfiles: containerservice.ManagedClusterAgentPoolProfileArray{
&containerservice.ManagedClusterAgentPoolProfileArgs{
Count: pulumi.Int(3),
EnableNodePublicIP: pulumi.Bool(true),
EnableUltraSSD: pulumi.Bool(true),
Mode: pulumi.String(containerservice.AgentPoolModeSystem),
Name: pulumi.String("nodepool1"),
OsType: pulumi.String(containerservice.OSTypeLinux),
Type: pulumi.String(containerservice.AgentPoolTypeVirtualMachineScaleSets),
VmSize: pulumi.String("Standard_DS2_v2"),
},
},
AutoScalerProfile: &containerservice.ManagedClusterPropertiesAutoScalerProfileArgs{
ScaleDownDelayAfterAdd: pulumi.String("15m"),
ScanInterval: pulumi.String("20s"),
},
DiskEncryptionSetID: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des"),
DnsPrefix: pulumi.String("dnsprefix1"),
EnablePodSecurityPolicy: pulumi.Bool(true),
EnableRBAC: pulumi.Bool(true),
KubernetesVersion: pulumi.String(""),
LinuxProfile: &containerservice.ContainerServiceLinuxProfileArgs{
AdminUsername: pulumi.String("azureuser"),
Ssh: &containerservice.ContainerServiceSshConfigurationArgs{
PublicKeys: containerservice.ContainerServiceSshPublicKeyArray{
&containerservice.ContainerServiceSshPublicKeyArgs{
KeyData: pulumi.String("keydata"),
},
},
},
},
Location: pulumi.String("location1"),
NetworkProfile: &containerservice.ContainerServiceNetworkProfileArgs{
LoadBalancerProfile: &containerservice.ManagedClusterLoadBalancerProfileArgs{
ManagedOutboundIPs: &containerservice.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs{
Count: pulumi.Int(2),
},
},
LoadBalancerSku: pulumi.String(containerservice.LoadBalancerSkuStandard),
OutboundType: pulumi.String(containerservice.OutboundTypeLoadBalancer),
},
ResourceGroupName: pulumi.String("rg1"),
ResourceName: pulumi.String("clustername1"),
ServicePrincipalProfile: &containerservice.ManagedClusterServicePrincipalProfileArgs{
ClientId: pulumi.String("clientid"),
Secret: pulumi.String("secret"),
},
Sku: &containerservice.ManagedClusterSKUArgs{
Name: pulumi.String("Basic"),
Tier: pulumi.String(containerservice.ManagedClusterSKUTierFree),
},
Tags: pulumi.StringMap{
"archv2": pulumi.String(""),
"tier": pulumi.String("production"),
},
WindowsProfile: &containerservice.ManagedClusterWindowsProfileArgs{
AdminPassword: pulumi.String("replacePassword1234$"),
AdminUsername: pulumi.String("azureuser"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.containerservice.ManagedCluster;
import com.pulumi.azurenative.containerservice.ManagedClusterArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAgentPoolProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterPropertiesAutoScalerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceLinuxProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceSshConfigurationArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceNetworkProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterServicePrincipalProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSKUArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterWindowsProfileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.addonProfiles()
.agentPoolProfiles(ManagedClusterAgentPoolProfileArgs.builder()
.count(3)
.enableNodePublicIP(true)
.enableUltraSSD(true)
.mode("System")
.name("nodepool1")
.osType("Linux")
.type("VirtualMachineScaleSets")
.vmSize("Standard_DS2_v2")
.build())
.autoScalerProfile(ManagedClusterPropertiesAutoScalerProfileArgs.builder()
.scaleDownDelayAfterAdd("15m")
.scanInterval("20s")
.build())
.diskEncryptionSetID("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
.dnsPrefix("dnsprefix1")
.enablePodSecurityPolicy(true)
.enableRBAC(true)
.kubernetesVersion("")
.linuxProfile(ContainerServiceLinuxProfileArgs.builder()
.adminUsername("azureuser")
.ssh(ContainerServiceSshConfigurationArgs.builder()
.publicKeys(ContainerServiceSshPublicKeyArgs.builder()
.keyData("keydata")
.build())
.build())
.build())
.location("location1")
.networkProfile(ContainerServiceNetworkProfileArgs.builder()
.loadBalancerProfile(ManagedClusterLoadBalancerProfileArgs.builder()
.managedOutboundIPs(ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs.builder()
.count(2)
.build())
.build())
.loadBalancerSku("standard")
.outboundType("loadBalancer")
.build())
.resourceGroupName("rg1")
.resourceName("clustername1")
.servicePrincipalProfile(ManagedClusterServicePrincipalProfileArgs.builder()
.clientId("clientid")
.secret("secret")
.build())
.sku(ManagedClusterSKUArgs.builder()
.name("Basic")
.tier("Free")
.build())
.tags(Map.ofEntries(
Map.entry("archv2", ""),
Map.entry("tier", "production")
))
.windowsProfile(ManagedClusterWindowsProfileArgs.builder()
.adminPassword("replacePassword1234$")
.adminUsername("azureuser")
.build())
.build());
}
}
Create Managed Cluster with Web App Routing Ingress Profile configured
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ContainerService.ManagedCluster("managedCluster", new()
{
AgentPoolProfiles = new[]
{
new AzureNative.ContainerService.Inputs.ManagedClusterAgentPoolProfileArgs
{
Count = 3,
EnableNodePublicIP = true,
Mode = AzureNative.ContainerService.AgentPoolMode.System,
Name = "nodepool1",
OsType = AzureNative.ContainerService.OSType.Linux,
Type = AzureNative.ContainerService.AgentPoolType.VirtualMachineScaleSets,
VmSize = "Standard_DS2_v2",
},
},
DnsPrefix = "dnsprefix1",
IngressProfile = new AzureNative.ContainerService.Inputs.ManagedClusterIngressProfileArgs
{
WebAppRouting = new AzureNative.ContainerService.Inputs.ManagedClusterIngressProfileWebAppRoutingArgs
{
DnsZoneResourceIds = new[]
{
"/subscriptions/SUB_ID/resourceGroups/RG_NAME/providers/Microsoft.Network/dnszones/DNS_ZONE_NAME",
},
Enabled = true,
},
},
KubernetesVersion = "",
LinuxProfile = new AzureNative.ContainerService.Inputs.ContainerServiceLinuxProfileArgs
{
AdminUsername = "azureuser",
Ssh = new AzureNative.ContainerService.Inputs.ContainerServiceSshConfigurationArgs
{
PublicKeys = new[]
{
new AzureNative.ContainerService.Inputs.ContainerServiceSshPublicKeyArgs
{
KeyData = "keydata",
},
},
},
},
Location = "location1",
NetworkProfile = new AzureNative.ContainerService.Inputs.ContainerServiceNetworkProfileArgs
{
LoadBalancerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileArgs
{
ManagedOutboundIPs = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs
{
Count = 2,
},
},
LoadBalancerSku = AzureNative.ContainerService.LoadBalancerSku.Standard,
OutboundType = AzureNative.ContainerService.OutboundType.LoadBalancer,
},
ResourceGroupName = "rg1",
ResourceName = "clustername1",
Sku = new AzureNative.ContainerService.Inputs.ManagedClusterSKUArgs
{
Name = "Basic",
Tier = AzureNative.ContainerService.ManagedClusterSKUTier.Free,
},
Tags =
{
{ "archv2", "" },
{ "tier", "production" },
},
});
});
package main
import (
containerservice "github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := containerservice.NewManagedCluster(ctx, "managedCluster", &containerservice.ManagedClusterArgs{
AgentPoolProfiles: containerservice.ManagedClusterAgentPoolProfileArray{
&containerservice.ManagedClusterAgentPoolProfileArgs{
Count: pulumi.Int(3),
EnableNodePublicIP: pulumi.Bool(true),
Mode: pulumi.String(containerservice.AgentPoolModeSystem),
Name: pulumi.String("nodepool1"),
OsType: pulumi.String(containerservice.OSTypeLinux),
Type: pulumi.String(containerservice.AgentPoolTypeVirtualMachineScaleSets),
VmSize: pulumi.String("Standard_DS2_v2"),
},
},
DnsPrefix: pulumi.String("dnsprefix1"),
IngressProfile: &containerservice.ManagedClusterIngressProfileArgs{
WebAppRouting: &containerservice.ManagedClusterIngressProfileWebAppRoutingArgs{
DnsZoneResourceIds: pulumi.StringArray{
pulumi.String("/subscriptions/SUB_ID/resourceGroups/RG_NAME/providers/Microsoft.Network/dnszones/DNS_ZONE_NAME"),
},
Enabled: pulumi.Bool(true),
},
},
KubernetesVersion: pulumi.String(""),
LinuxProfile: &containerservice.ContainerServiceLinuxProfileArgs{
AdminUsername: pulumi.String("azureuser"),
Ssh: &containerservice.ContainerServiceSshConfigurationArgs{
PublicKeys: containerservice.ContainerServiceSshPublicKeyArray{
&containerservice.ContainerServiceSshPublicKeyArgs{
KeyData: pulumi.String("keydata"),
},
},
},
},
Location: pulumi.String("location1"),
NetworkProfile: &containerservice.ContainerServiceNetworkProfileArgs{
LoadBalancerProfile: &containerservice.ManagedClusterLoadBalancerProfileArgs{
ManagedOutboundIPs: &containerservice.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs{
Count: pulumi.Int(2),
},
},
LoadBalancerSku: pulumi.String(containerservice.LoadBalancerSkuStandard),
OutboundType: pulumi.String(containerservice.OutboundTypeLoadBalancer),
},
ResourceGroupName: pulumi.String("rg1"),
ResourceName: pulumi.String("clustername1"),
Sku: &containerservice.ManagedClusterSKUArgs{
Name: pulumi.String("Basic"),
Tier: pulumi.String(containerservice.ManagedClusterSKUTierFree),
},
Tags: pulumi.StringMap{
"archv2": pulumi.String(""),
"tier": pulumi.String("production"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.containerservice.ManagedCluster;
import com.pulumi.azurenative.containerservice.ManagedClusterArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAgentPoolProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterIngressProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterIngressProfileWebAppRoutingArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceLinuxProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceSshConfigurationArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceNetworkProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSKUArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.agentPoolProfiles(ManagedClusterAgentPoolProfileArgs.builder()
.count(3)
.enableNodePublicIP(true)
.mode("System")
.name("nodepool1")
.osType("Linux")
.type("VirtualMachineScaleSets")
.vmSize("Standard_DS2_v2")
.build())
.dnsPrefix("dnsprefix1")
.ingressProfile(ManagedClusterIngressProfileArgs.builder()
.webAppRouting(ManagedClusterIngressProfileWebAppRoutingArgs.builder()
.dnsZoneResourceIds("/subscriptions/SUB_ID/resourceGroups/RG_NAME/providers/Microsoft.Network/dnszones/DNS_ZONE_NAME")
.enabled(true)
.build())
.build())
.kubernetesVersion("")
.linuxProfile(ContainerServiceLinuxProfileArgs.builder()
.adminUsername("azureuser")
.ssh(ContainerServiceSshConfigurationArgs.builder()
.publicKeys(ContainerServiceSshPublicKeyArgs.builder()
.keyData("keydata")
.build())
.build())
.build())
.location("location1")
.networkProfile(ContainerServiceNetworkProfileArgs.builder()
.loadBalancerProfile(ManagedClusterLoadBalancerProfileArgs.builder()
.managedOutboundIPs(ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs.builder()
.count(2)
.build())
.build())
.loadBalancerSku("standard")
.outboundType("loadBalancer")
.build())
.resourceGroupName("rg1")
.resourceName("clustername1")
.sku(ManagedClusterSKUArgs.builder()
.name("Basic")
.tier("Free")
.build())
.tags(Map.ofEntries(
Map.entry("archv2", ""),
Map.entry("tier", "production")
))
.build());
}
}
Create Managed Cluster with user-assigned NAT gateway as outbound type
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ContainerService.ManagedCluster("managedCluster", new()
{
AddonProfiles = null,
AgentPoolProfiles = new[]
{
new AzureNative.ContainerService.Inputs.ManagedClusterAgentPoolProfileArgs
{
Count = 3,
EnableNodePublicIP = false,
Mode = AzureNative.ContainerService.AgentPoolMode.System,
Name = "nodepool1",
OsType = AzureNative.ContainerService.OSType.Linux,
Type = AzureNative.ContainerService.AgentPoolType.VirtualMachineScaleSets,
VmSize = "Standard_DS2_v2",
},
},
AutoScalerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterPropertiesAutoScalerProfileArgs
{
ScaleDownDelayAfterAdd = "15m",
ScanInterval = "20s",
},
DiskEncryptionSetID = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
DnsPrefix = "dnsprefix1",
EnablePodSecurityPolicy = true,
EnableRBAC = true,
KubernetesVersion = "",
LinuxProfile = new AzureNative.ContainerService.Inputs.ContainerServiceLinuxProfileArgs
{
AdminUsername = "azureuser",
Ssh = new AzureNative.ContainerService.Inputs.ContainerServiceSshConfigurationArgs
{
PublicKeys = new[]
{
new AzureNative.ContainerService.Inputs.ContainerServiceSshPublicKeyArgs
{
KeyData = "keydata",
},
},
},
},
Location = "location1",
NetworkProfile = new AzureNative.ContainerService.Inputs.ContainerServiceNetworkProfileArgs
{
LoadBalancerSku = AzureNative.ContainerService.LoadBalancerSku.Standard,
OutboundType = AzureNative.ContainerService.OutboundType.UserAssignedNATGateway,
},
ResourceGroupName = "rg1",
ResourceName = "clustername1",
ServicePrincipalProfile = new AzureNative.ContainerService.Inputs.ManagedClusterServicePrincipalProfileArgs
{
ClientId = "clientid",
Secret = "secret",
},
Sku = new AzureNative.ContainerService.Inputs.ManagedClusterSKUArgs
{
Name = "Basic",
Tier = AzureNative.ContainerService.ManagedClusterSKUTier.Free,
},
Tags =
{
{ "archv2", "" },
{ "tier", "production" },
},
WindowsProfile = new AzureNative.ContainerService.Inputs.ManagedClusterWindowsProfileArgs
{
AdminPassword = "replacePassword1234$",
AdminUsername = "azureuser",
},
});
});
package main
import (
containerservice "github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := containerservice.NewManagedCluster(ctx, "managedCluster", &containerservice.ManagedClusterArgs{
AddonProfiles: containerservice.ManagedClusterAddonProfileMap{},
AgentPoolProfiles: containerservice.ManagedClusterAgentPoolProfileArray{
&containerservice.ManagedClusterAgentPoolProfileArgs{
Count: pulumi.Int(3),
EnableNodePublicIP: pulumi.Bool(false),
Mode: pulumi.String(containerservice.AgentPoolModeSystem),
Name: pulumi.String("nodepool1"),
OsType: pulumi.String(containerservice.OSTypeLinux),
Type: pulumi.String(containerservice.AgentPoolTypeVirtualMachineScaleSets),
VmSize: pulumi.String("Standard_DS2_v2"),
},
},
AutoScalerProfile: &containerservice.ManagedClusterPropertiesAutoScalerProfileArgs{
ScaleDownDelayAfterAdd: pulumi.String("15m"),
ScanInterval: pulumi.String("20s"),
},
DiskEncryptionSetID: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des"),
DnsPrefix: pulumi.String("dnsprefix1"),
EnablePodSecurityPolicy: pulumi.Bool(true),
EnableRBAC: pulumi.Bool(true),
KubernetesVersion: pulumi.String(""),
LinuxProfile: &containerservice.ContainerServiceLinuxProfileArgs{
AdminUsername: pulumi.String("azureuser"),
Ssh: &containerservice.ContainerServiceSshConfigurationArgs{
PublicKeys: containerservice.ContainerServiceSshPublicKeyArray{
&containerservice.ContainerServiceSshPublicKeyArgs{
KeyData: pulumi.String("keydata"),
},
},
},
},
Location: pulumi.String("location1"),
NetworkProfile: &containerservice.ContainerServiceNetworkProfileArgs{
LoadBalancerSku: pulumi.String(containerservice.LoadBalancerSkuStandard),
OutboundType: pulumi.String(containerservice.OutboundTypeUserAssignedNATGateway),
},
ResourceGroupName: pulumi.String("rg1"),
ResourceName: pulumi.String("clustername1"),
ServicePrincipalProfile: &containerservice.ManagedClusterServicePrincipalProfileArgs{
ClientId: pulumi.String("clientid"),
Secret: pulumi.String("secret"),
},
Sku: &containerservice.ManagedClusterSKUArgs{
Name: pulumi.String("Basic"),
Tier: pulumi.String(containerservice.ManagedClusterSKUTierFree),
},
Tags: pulumi.StringMap{
"archv2": pulumi.String(""),
"tier": pulumi.String("production"),
},
WindowsProfile: &containerservice.ManagedClusterWindowsProfileArgs{
AdminPassword: pulumi.String("replacePassword1234$"),
AdminUsername: pulumi.String("azureuser"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.containerservice.ManagedCluster;
import com.pulumi.azurenative.containerservice.ManagedClusterArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAgentPoolProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterPropertiesAutoScalerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceLinuxProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceSshConfigurationArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceNetworkProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterServicePrincipalProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSKUArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterWindowsProfileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.addonProfiles()
.agentPoolProfiles(ManagedClusterAgentPoolProfileArgs.builder()
.count(3)
.enableNodePublicIP(false)
.mode("System")
.name("nodepool1")
.osType("Linux")
.type("VirtualMachineScaleSets")
.vmSize("Standard_DS2_v2")
.build())
.autoScalerProfile(ManagedClusterPropertiesAutoScalerProfileArgs.builder()
.scaleDownDelayAfterAdd("15m")
.scanInterval("20s")
.build())
.diskEncryptionSetID("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
.dnsPrefix("dnsprefix1")
.enablePodSecurityPolicy(true)
.enableRBAC(true)
.kubernetesVersion("")
.linuxProfile(ContainerServiceLinuxProfileArgs.builder()
.adminUsername("azureuser")
.ssh(ContainerServiceSshConfigurationArgs.builder()
.publicKeys(ContainerServiceSshPublicKeyArgs.builder()
.keyData("keydata")
.build())
.build())
.build())
.location("location1")
.networkProfile(ContainerServiceNetworkProfileArgs.builder()
.loadBalancerSku("standard")
.outboundType("userAssignedNATGateway")
.build())
.resourceGroupName("rg1")
.resourceName("clustername1")
.servicePrincipalProfile(ManagedClusterServicePrincipalProfileArgs.builder()
.clientId("clientid")
.secret("secret")
.build())
.sku(ManagedClusterSKUArgs.builder()
.name("Basic")
.tier("Free")
.build())
.tags(Map.ofEntries(
Map.entry("archv2", ""),
Map.entry("tier", "production")
))
.windowsProfile(ManagedClusterWindowsProfileArgs.builder()
.adminPassword("replacePassword1234$")
.adminUsername("azureuser")
.build())
.build());
}
}
Create Managed Private Cluster with Public FQDN specified
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ContainerService.ManagedCluster("managedCluster", new()
{
AddonProfiles = null,
AgentPoolProfiles = new[]
{
new AzureNative.ContainerService.Inputs.ManagedClusterAgentPoolProfileArgs
{
Count = 3,
EnableEncryptionAtHost = true,
EnableNodePublicIP = true,
Mode = AzureNative.ContainerService.AgentPoolMode.System,
Name = "nodepool1",
OsType = AzureNative.ContainerService.OSType.Linux,
Type = AzureNative.ContainerService.AgentPoolType.VirtualMachineScaleSets,
VmSize = "Standard_DS2_v2",
},
},
ApiServerAccessProfile = new AzureNative.ContainerService.Inputs.ManagedClusterAPIServerAccessProfileArgs
{
EnablePrivateCluster = true,
EnablePrivateClusterPublicFQDN = true,
},
AutoScalerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterPropertiesAutoScalerProfileArgs
{
ScaleDownDelayAfterAdd = "15m",
ScanInterval = "20s",
},
DnsPrefix = "dnsprefix1",
EnablePodSecurityPolicy = true,
EnableRBAC = true,
KubernetesVersion = "",
LinuxProfile = new AzureNative.ContainerService.Inputs.ContainerServiceLinuxProfileArgs
{
AdminUsername = "azureuser",
Ssh = new AzureNative.ContainerService.Inputs.ContainerServiceSshConfigurationArgs
{
PublicKeys = new[]
{
new AzureNative.ContainerService.Inputs.ContainerServiceSshPublicKeyArgs
{
KeyData = "keydata",
},
},
},
},
Location = "location1",
NetworkProfile = new AzureNative.ContainerService.Inputs.ContainerServiceNetworkProfileArgs
{
LoadBalancerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileArgs
{
ManagedOutboundIPs = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs
{
Count = 2,
},
},
LoadBalancerSku = AzureNative.ContainerService.LoadBalancerSku.Standard,
OutboundType = AzureNative.ContainerService.OutboundType.LoadBalancer,
},
ResourceGroupName = "rg1",
ResourceName = "clustername1",
ServicePrincipalProfile = new AzureNative.ContainerService.Inputs.ManagedClusterServicePrincipalProfileArgs
{
ClientId = "clientid",
Secret = "secret",
},
Sku = new AzureNative.ContainerService.Inputs.ManagedClusterSKUArgs
{
Name = "Basic",
Tier = AzureNative.ContainerService.ManagedClusterSKUTier.Free,
},
Tags =
{
{ "archv2", "" },
{ "tier", "production" },
},
WindowsProfile = new AzureNative.ContainerService.Inputs.ManagedClusterWindowsProfileArgs
{
AdminPassword = "replacePassword1234$",
AdminUsername = "azureuser",
},
});
});
package main
import (
containerservice "github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := containerservice.NewManagedCluster(ctx, "managedCluster", &containerservice.ManagedClusterArgs{
AddonProfiles: containerservice.ManagedClusterAddonProfileMap{},
AgentPoolProfiles: containerservice.ManagedClusterAgentPoolProfileArray{
&containerservice.ManagedClusterAgentPoolProfileArgs{
Count: pulumi.Int(3),
EnableEncryptionAtHost: pulumi.Bool(true),
EnableNodePublicIP: pulumi.Bool(true),
Mode: pulumi.String(containerservice.AgentPoolModeSystem),
Name: pulumi.String("nodepool1"),
OsType: pulumi.String(containerservice.OSTypeLinux),
Type: pulumi.String(containerservice.AgentPoolTypeVirtualMachineScaleSets),
VmSize: pulumi.String("Standard_DS2_v2"),
},
},
ApiServerAccessProfile: &containerservice.ManagedClusterAPIServerAccessProfileArgs{
EnablePrivateCluster: pulumi.Bool(true),
EnablePrivateClusterPublicFQDN: pulumi.Bool(true),
},
AutoScalerProfile: &containerservice.ManagedClusterPropertiesAutoScalerProfileArgs{
ScaleDownDelayAfterAdd: pulumi.String("15m"),
ScanInterval: pulumi.String("20s"),
},
DnsPrefix: pulumi.String("dnsprefix1"),
EnablePodSecurityPolicy: pulumi.Bool(true),
EnableRBAC: pulumi.Bool(true),
KubernetesVersion: pulumi.String(""),
LinuxProfile: &containerservice.ContainerServiceLinuxProfileArgs{
AdminUsername: pulumi.String("azureuser"),
Ssh: &containerservice.ContainerServiceSshConfigurationArgs{
PublicKeys: containerservice.ContainerServiceSshPublicKeyArray{
&containerservice.ContainerServiceSshPublicKeyArgs{
KeyData: pulumi.String("keydata"),
},
},
},
},
Location: pulumi.String("location1"),
NetworkProfile: &containerservice.ContainerServiceNetworkProfileArgs{
LoadBalancerProfile: &containerservice.ManagedClusterLoadBalancerProfileArgs{
ManagedOutboundIPs: &containerservice.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs{
Count: pulumi.Int(2),
},
},
LoadBalancerSku: pulumi.String(containerservice.LoadBalancerSkuStandard),
OutboundType: pulumi.String(containerservice.OutboundTypeLoadBalancer),
},
ResourceGroupName: pulumi.String("rg1"),
ResourceName: pulumi.String("clustername1"),
ServicePrincipalProfile: &containerservice.ManagedClusterServicePrincipalProfileArgs{
ClientId: pulumi.String("clientid"),
Secret: pulumi.String("secret"),
},
Sku: &containerservice.ManagedClusterSKUArgs{
Name: pulumi.String("Basic"),
Tier: pulumi.String(containerservice.ManagedClusterSKUTierFree),
},
Tags: pulumi.StringMap{
"archv2": pulumi.String(""),
"tier": pulumi.String("production"),
},
WindowsProfile: &containerservice.ManagedClusterWindowsProfileArgs{
AdminPassword: pulumi.String("replacePassword1234$"),
AdminUsername: pulumi.String("azureuser"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.containerservice.ManagedCluster;
import com.pulumi.azurenative.containerservice.ManagedClusterArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAgentPoolProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAPIServerAccessProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterPropertiesAutoScalerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceLinuxProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceSshConfigurationArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceNetworkProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterServicePrincipalProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSKUArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterWindowsProfileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.addonProfiles()
.agentPoolProfiles(ManagedClusterAgentPoolProfileArgs.builder()
.count(3)
.enableEncryptionAtHost(true)
.enableNodePublicIP(true)
.mode("System")
.name("nodepool1")
.osType("Linux")
.type("VirtualMachineScaleSets")
.vmSize("Standard_DS2_v2")
.build())
.apiServerAccessProfile(ManagedClusterAPIServerAccessProfileArgs.builder()
.enablePrivateCluster(true)
.enablePrivateClusterPublicFQDN(true)
.build())
.autoScalerProfile(ManagedClusterPropertiesAutoScalerProfileArgs.builder()
.scaleDownDelayAfterAdd("15m")
.scanInterval("20s")
.build())
.dnsPrefix("dnsprefix1")
.enablePodSecurityPolicy(true)
.enableRBAC(true)
.kubernetesVersion("")
.linuxProfile(ContainerServiceLinuxProfileArgs.builder()
.adminUsername("azureuser")
.ssh(ContainerServiceSshConfigurationArgs.builder()
.publicKeys(ContainerServiceSshPublicKeyArgs.builder()
.keyData("keydata")
.build())
.build())
.build())
.location("location1")
.networkProfile(ContainerServiceNetworkProfileArgs.builder()
.loadBalancerProfile(ManagedClusterLoadBalancerProfileArgs.builder()
.managedOutboundIPs(ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs.builder()
.count(2)
.build())
.build())
.loadBalancerSku("standard")
.outboundType("loadBalancer")
.build())
.resourceGroupName("rg1")
.resourceName("clustername1")
.servicePrincipalProfile(ManagedClusterServicePrincipalProfileArgs.builder()
.clientId("clientid")
.secret("secret")
.build())
.sku(ManagedClusterSKUArgs.builder()
.name("Basic")
.tier("Free")
.build())
.tags(Map.ofEntries(
Map.entry("archv2", ""),
Map.entry("tier", "production")
))
.windowsProfile(ManagedClusterWindowsProfileArgs.builder()
.adminPassword("replacePassword1234$")
.adminUsername("azureuser")
.build())
.build());
}
}
Create Managed Private Cluster with fqdn subdomain specified
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ContainerService.ManagedCluster("managedCluster", new()
{
AddonProfiles = null,
AgentPoolProfiles = new[]
{
new AzureNative.ContainerService.Inputs.ManagedClusterAgentPoolProfileArgs
{
Count = 3,
EnableEncryptionAtHost = true,
EnableNodePublicIP = true,
Mode = AzureNative.ContainerService.AgentPoolMode.System,
Name = "nodepool1",
OsType = AzureNative.ContainerService.OSType.Linux,
Type = AzureNative.ContainerService.AgentPoolType.VirtualMachineScaleSets,
VmSize = "Standard_DS2_v2",
},
},
ApiServerAccessProfile = new AzureNative.ContainerService.Inputs.ManagedClusterAPIServerAccessProfileArgs
{
EnablePrivateCluster = true,
PrivateDNSZone = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Network/privateDnsZones/privatelink.location1.azmk8s.io",
},
AutoScalerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterPropertiesAutoScalerProfileArgs
{
ScaleDownDelayAfterAdd = "15m",
ScanInterval = "20s",
},
EnablePodSecurityPolicy = true,
EnableRBAC = true,
FqdnSubdomain = "domain1",
KubernetesVersion = "",
LinuxProfile = new AzureNative.ContainerService.Inputs.ContainerServiceLinuxProfileArgs
{
AdminUsername = "azureuser",
Ssh = new AzureNative.ContainerService.Inputs.ContainerServiceSshConfigurationArgs
{
PublicKeys = new[]
{
new AzureNative.ContainerService.Inputs.ContainerServiceSshPublicKeyArgs
{
KeyData = "keydata",
},
},
},
},
Location = "location1",
NetworkProfile = new AzureNative.ContainerService.Inputs.ContainerServiceNetworkProfileArgs
{
LoadBalancerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileArgs
{
ManagedOutboundIPs = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs
{
Count = 2,
},
},
LoadBalancerSku = AzureNative.ContainerService.LoadBalancerSku.Standard,
OutboundType = AzureNative.ContainerService.OutboundType.LoadBalancer,
},
ResourceGroupName = "rg1",
ResourceName = "clustername1",
ServicePrincipalProfile = new AzureNative.ContainerService.Inputs.ManagedClusterServicePrincipalProfileArgs
{
ClientId = "clientid",
Secret = "secret",
},
Sku = new AzureNative.ContainerService.Inputs.ManagedClusterSKUArgs
{
Name = "Basic",
Tier = AzureNative.ContainerService.ManagedClusterSKUTier.Free,
},
Tags =
{
{ "archv2", "" },
{ "tier", "production" },
},
WindowsProfile = new AzureNative.ContainerService.Inputs.ManagedClusterWindowsProfileArgs
{
AdminPassword = "replacePassword1234$",
AdminUsername = "azureuser",
},
});
});
package main
import (
containerservice "github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := containerservice.NewManagedCluster(ctx, "managedCluster", &containerservice.ManagedClusterArgs{
AddonProfiles: containerservice.ManagedClusterAddonProfileMap{},
AgentPoolProfiles: containerservice.ManagedClusterAgentPoolProfileArray{
&containerservice.ManagedClusterAgentPoolProfileArgs{
Count: pulumi.Int(3),
EnableEncryptionAtHost: pulumi.Bool(true),
EnableNodePublicIP: pulumi.Bool(true),
Mode: pulumi.String(containerservice.AgentPoolModeSystem),
Name: pulumi.String("nodepool1"),
OsType: pulumi.String(containerservice.OSTypeLinux),
Type: pulumi.String(containerservice.AgentPoolTypeVirtualMachineScaleSets),
VmSize: pulumi.String("Standard_DS2_v2"),
},
},
ApiServerAccessProfile: &containerservice.ManagedClusterAPIServerAccessProfileArgs{
EnablePrivateCluster: pulumi.Bool(true),
PrivateDNSZone: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Network/privateDnsZones/privatelink.location1.azmk8s.io"),
},
AutoScalerProfile: &containerservice.ManagedClusterPropertiesAutoScalerProfileArgs{
ScaleDownDelayAfterAdd: pulumi.String("15m"),
ScanInterval: pulumi.String("20s"),
},
EnablePodSecurityPolicy: pulumi.Bool(true),
EnableRBAC: pulumi.Bool(true),
FqdnSubdomain: pulumi.String("domain1"),
KubernetesVersion: pulumi.String(""),
LinuxProfile: &containerservice.ContainerServiceLinuxProfileArgs{
AdminUsername: pulumi.String("azureuser"),
Ssh: &containerservice.ContainerServiceSshConfigurationArgs{
PublicKeys: containerservice.ContainerServiceSshPublicKeyArray{
&containerservice.ContainerServiceSshPublicKeyArgs{
KeyData: pulumi.String("keydata"),
},
},
},
},
Location: pulumi.String("location1"),
NetworkProfile: &containerservice.ContainerServiceNetworkProfileArgs{
LoadBalancerProfile: &containerservice.ManagedClusterLoadBalancerProfileArgs{
ManagedOutboundIPs: &containerservice.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs{
Count: pulumi.Int(2),
},
},
LoadBalancerSku: pulumi.String(containerservice.LoadBalancerSkuStandard),
OutboundType: pulumi.String(containerservice.OutboundTypeLoadBalancer),
},
ResourceGroupName: pulumi.String("rg1"),
ResourceName: pulumi.String("clustername1"),
ServicePrincipalProfile: &containerservice.ManagedClusterServicePrincipalProfileArgs{
ClientId: pulumi.String("clientid"),
Secret: pulumi.String("secret"),
},
Sku: &containerservice.ManagedClusterSKUArgs{
Name: pulumi.String("Basic"),
Tier: pulumi.String(containerservice.ManagedClusterSKUTierFree),
},
Tags: pulumi.StringMap{
"archv2": pulumi.String(""),
"tier": pulumi.String("production"),
},
WindowsProfile: &containerservice.ManagedClusterWindowsProfileArgs{
AdminPassword: pulumi.String("replacePassword1234$"),
AdminUsername: pulumi.String("azureuser"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.containerservice.ManagedCluster;
import com.pulumi.azurenative.containerservice.ManagedClusterArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAgentPoolProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAPIServerAccessProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterPropertiesAutoScalerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceLinuxProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceSshConfigurationArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceNetworkProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterServicePrincipalProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSKUArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterWindowsProfileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.addonProfiles()
.agentPoolProfiles(ManagedClusterAgentPoolProfileArgs.builder()
.count(3)
.enableEncryptionAtHost(true)
.enableNodePublicIP(true)
.mode("System")
.name("nodepool1")
.osType("Linux")
.type("VirtualMachineScaleSets")
.vmSize("Standard_DS2_v2")
.build())
.apiServerAccessProfile(ManagedClusterAPIServerAccessProfileArgs.builder()
.enablePrivateCluster(true)
.privateDNSZone("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Network/privateDnsZones/privatelink.location1.azmk8s.io")
.build())
.autoScalerProfile(ManagedClusterPropertiesAutoScalerProfileArgs.builder()
.scaleDownDelayAfterAdd("15m")
.scanInterval("20s")
.build())
.enablePodSecurityPolicy(true)
.enableRBAC(true)
.fqdnSubdomain("domain1")
.kubernetesVersion("")
.linuxProfile(ContainerServiceLinuxProfileArgs.builder()
.adminUsername("azureuser")
.ssh(ContainerServiceSshConfigurationArgs.builder()
.publicKeys(ContainerServiceSshPublicKeyArgs.builder()
.keyData("keydata")
.build())
.build())
.build())
.location("location1")
.networkProfile(ContainerServiceNetworkProfileArgs.builder()
.loadBalancerProfile(ManagedClusterLoadBalancerProfileArgs.builder()
.managedOutboundIPs(ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs.builder()
.count(2)
.build())
.build())
.loadBalancerSku("standard")
.outboundType("loadBalancer")
.build())
.resourceGroupName("rg1")
.resourceName("clustername1")
.servicePrincipalProfile(ManagedClusterServicePrincipalProfileArgs.builder()
.clientId("clientid")
.secret("secret")
.build())
.sku(ManagedClusterSKUArgs.builder()
.name("Basic")
.tier("Free")
.build())
.tags(Map.ofEntries(
Map.entry("archv2", ""),
Map.entry("tier", "production")
))
.windowsProfile(ManagedClusterWindowsProfileArgs.builder()
.adminPassword("replacePassword1234$")
.adminUsername("azureuser")
.build())
.build());
}
}
Create/Update AAD Managed Cluster with EnableAzureRBAC
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ContainerService.ManagedCluster("managedCluster", new()
{
AadProfile = new AzureNative.ContainerService.Inputs.ManagedClusterAADProfileArgs
{
EnableAzureRBAC = true,
Managed = true,
},
AddonProfiles = null,
AgentPoolProfiles = new[]
{
new AzureNative.ContainerService.Inputs.ManagedClusterAgentPoolProfileArgs
{
AvailabilityZones = new[]
{
"1",
"2",
"3",
},
Count = 3,
EnableNodePublicIP = true,
Mode = AzureNative.ContainerService.AgentPoolMode.System,
Name = "nodepool1",
OsType = AzureNative.ContainerService.OSType.Linux,
Type = AzureNative.ContainerService.AgentPoolType.VirtualMachineScaleSets,
VmSize = "Standard_DS1_v2",
},
},
AutoScalerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterPropertiesAutoScalerProfileArgs
{
ScaleDownDelayAfterAdd = "15m",
ScanInterval = "20s",
},
DiskEncryptionSetID = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
DnsPrefix = "dnsprefix1",
EnablePodSecurityPolicy = true,
EnableRBAC = true,
KubernetesVersion = "",
LinuxProfile = new AzureNative.ContainerService.Inputs.ContainerServiceLinuxProfileArgs
{
AdminUsername = "azureuser",
Ssh = new AzureNative.ContainerService.Inputs.ContainerServiceSshConfigurationArgs
{
PublicKeys = new[]
{
new AzureNative.ContainerService.Inputs.ContainerServiceSshPublicKeyArgs
{
KeyData = "keydata",
},
},
},
},
Location = "location1",
NetworkProfile = new AzureNative.ContainerService.Inputs.ContainerServiceNetworkProfileArgs
{
LoadBalancerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileArgs
{
ManagedOutboundIPs = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs
{
Count = 2,
},
},
LoadBalancerSku = AzureNative.ContainerService.LoadBalancerSku.Standard,
OutboundType = AzureNative.ContainerService.OutboundType.LoadBalancer,
},
ResourceGroupName = "rg1",
ResourceName = "clustername1",
ServicePrincipalProfile = new AzureNative.ContainerService.Inputs.ManagedClusterServicePrincipalProfileArgs
{
ClientId = "clientid",
Secret = "secret",
},
Sku = new AzureNative.ContainerService.Inputs.ManagedClusterSKUArgs
{
Name = "Basic",
Tier = AzureNative.ContainerService.ManagedClusterSKUTier.Free,
},
Tags =
{
{ "archv2", "" },
{ "tier", "production" },
},
WindowsProfile = new AzureNative.ContainerService.Inputs.ManagedClusterWindowsProfileArgs
{
AdminPassword = "replacePassword1234$",
AdminUsername = "azureuser",
},
});
});
package main
import (
containerservice "github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := containerservice.NewManagedCluster(ctx, "managedCluster", &containerservice.ManagedClusterArgs{
AadProfile: &containerservice.ManagedClusterAADProfileArgs{
EnableAzureRBAC: pulumi.Bool(true),
Managed: pulumi.Bool(true),
},
AddonProfiles: containerservice.ManagedClusterAddonProfileMap{},
AgentPoolProfiles: containerservice.ManagedClusterAgentPoolProfileArray{
&containerservice.ManagedClusterAgentPoolProfileArgs{
AvailabilityZones: pulumi.StringArray{
pulumi.String("1"),
pulumi.String("2"),
pulumi.String("3"),
},
Count: pulumi.Int(3),
EnableNodePublicIP: pulumi.Bool(true),
Mode: pulumi.String(containerservice.AgentPoolModeSystem),
Name: pulumi.String("nodepool1"),
OsType: pulumi.String(containerservice.OSTypeLinux),
Type: pulumi.String(containerservice.AgentPoolTypeVirtualMachineScaleSets),
VmSize: pulumi.String("Standard_DS1_v2"),
},
},
AutoScalerProfile: &containerservice.ManagedClusterPropertiesAutoScalerProfileArgs{
ScaleDownDelayAfterAdd: pulumi.String("15m"),
ScanInterval: pulumi.String("20s"),
},
DiskEncryptionSetID: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des"),
DnsPrefix: pulumi.String("dnsprefix1"),
EnablePodSecurityPolicy: pulumi.Bool(true),
EnableRBAC: pulumi.Bool(true),
KubernetesVersion: pulumi.String(""),
LinuxProfile: &containerservice.ContainerServiceLinuxProfileArgs{
AdminUsername: pulumi.String("azureuser"),
Ssh: &containerservice.ContainerServiceSshConfigurationArgs{
PublicKeys: containerservice.ContainerServiceSshPublicKeyArray{
&containerservice.ContainerServiceSshPublicKeyArgs{
KeyData: pulumi.String("keydata"),
},
},
},
},
Location: pulumi.String("location1"),
NetworkProfile: &containerservice.ContainerServiceNetworkProfileArgs{
LoadBalancerProfile: &containerservice.ManagedClusterLoadBalancerProfileArgs{
ManagedOutboundIPs: &containerservice.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs{
Count: pulumi.Int(2),
},
},
LoadBalancerSku: pulumi.String(containerservice.LoadBalancerSkuStandard),
OutboundType: pulumi.String(containerservice.OutboundTypeLoadBalancer),
},
ResourceGroupName: pulumi.String("rg1"),
ResourceName: pulumi.String("clustername1"),
ServicePrincipalProfile: &containerservice.ManagedClusterServicePrincipalProfileArgs{
ClientId: pulumi.String("clientid"),
Secret: pulumi.String("secret"),
},
Sku: &containerservice.ManagedClusterSKUArgs{
Name: pulumi.String("Basic"),
Tier: pulumi.String(containerservice.ManagedClusterSKUTierFree),
},
Tags: pulumi.StringMap{
"archv2": pulumi.String(""),
"tier": pulumi.String("production"),
},
WindowsProfile: &containerservice.ManagedClusterWindowsProfileArgs{
AdminPassword: pulumi.String("replacePassword1234$"),
AdminUsername: pulumi.String("azureuser"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.containerservice.ManagedCluster;
import com.pulumi.azurenative.containerservice.ManagedClusterArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAADProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAgentPoolProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterPropertiesAutoScalerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceLinuxProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceSshConfigurationArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceNetworkProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterServicePrincipalProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSKUArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterWindowsProfileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.aadProfile(ManagedClusterAADProfileArgs.builder()
.enableAzureRBAC(true)
.managed(true)
.build())
.addonProfiles()
.agentPoolProfiles(ManagedClusterAgentPoolProfileArgs.builder()
.availabilityZones(
"1",
"2",
"3")
.count(3)
.enableNodePublicIP(true)
.mode("System")
.name("nodepool1")
.osType("Linux")
.type("VirtualMachineScaleSets")
.vmSize("Standard_DS1_v2")
.build())
.autoScalerProfile(ManagedClusterPropertiesAutoScalerProfileArgs.builder()
.scaleDownDelayAfterAdd("15m")
.scanInterval("20s")
.build())
.diskEncryptionSetID("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
.dnsPrefix("dnsprefix1")
.enablePodSecurityPolicy(true)
.enableRBAC(true)
.kubernetesVersion("")
.linuxProfile(ContainerServiceLinuxProfileArgs.builder()
.adminUsername("azureuser")
.ssh(ContainerServiceSshConfigurationArgs.builder()
.publicKeys(ContainerServiceSshPublicKeyArgs.builder()
.keyData("keydata")
.build())
.build())
.build())
.location("location1")
.networkProfile(ContainerServiceNetworkProfileArgs.builder()
.loadBalancerProfile(ManagedClusterLoadBalancerProfileArgs.builder()
.managedOutboundIPs(ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs.builder()
.count(2)
.build())
.build())
.loadBalancerSku("standard")
.outboundType("loadBalancer")
.build())
.resourceGroupName("rg1")
.resourceName("clustername1")
.servicePrincipalProfile(ManagedClusterServicePrincipalProfileArgs.builder()
.clientId("clientid")
.secret("secret")
.build())
.sku(ManagedClusterSKUArgs.builder()
.name("Basic")
.tier("Free")
.build())
.tags(Map.ofEntries(
Map.entry("archv2", ""),
Map.entry("tier", "production")
))
.windowsProfile(ManagedClusterWindowsProfileArgs.builder()
.adminPassword("replacePassword1234$")
.adminUsername("azureuser")
.build())
.build());
}
}
Create/Update Managed Cluster with Azure Service Mesh
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ContainerService.ManagedCluster("managedCluster", new()
{
AddonProfiles =
{
{ "azureKeyvaultSecretsProvider", new AzureNative.ContainerService.Inputs.ManagedClusterAddonProfileArgs
{
Config =
{
{ "enableSecretRotation", "true" },
{ "rotationPollInterval", "2m" },
},
Enabled = true,
} },
},
AgentPoolProfiles = new[]
{
new AzureNative.ContainerService.Inputs.ManagedClusterAgentPoolProfileArgs
{
Count = 3,
EnableNodePublicIP = true,
Mode = AzureNative.ContainerService.AgentPoolMode.System,
Name = "nodepool1",
OsType = AzureNative.ContainerService.OSType.Linux,
Type = AzureNative.ContainerService.AgentPoolType.VirtualMachineScaleSets,
VmSize = "Standard_DS2_v2",
},
},
AutoScalerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterPropertiesAutoScalerProfileArgs
{
ScaleDownDelayAfterAdd = "15m",
ScanInterval = "20s",
},
DiskEncryptionSetID = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
DnsPrefix = "dnsprefix1",
EnablePodSecurityPolicy = true,
EnableRBAC = true,
KubernetesVersion = "",
LinuxProfile = new AzureNative.ContainerService.Inputs.ContainerServiceLinuxProfileArgs
{
AdminUsername = "azureuser",
Ssh = new AzureNative.ContainerService.Inputs.ContainerServiceSshConfigurationArgs
{
PublicKeys = new[]
{
new AzureNative.ContainerService.Inputs.ContainerServiceSshPublicKeyArgs
{
KeyData = "keydata",
},
},
},
},
Location = "location1",
NetworkProfile = new AzureNative.ContainerService.Inputs.ContainerServiceNetworkProfileArgs
{
LoadBalancerProfile = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileArgs
{
ManagedOutboundIPs = new AzureNative.ContainerService.Inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs
{
Count = 2,
},
},
LoadBalancerSku = AzureNative.ContainerService.LoadBalancerSku.Standard,
OutboundType = AzureNative.ContainerService.OutboundType.LoadBalancer,
},
ResourceGroupName = "rg1",
ResourceName = "clustername1",
ServiceMeshProfile = new AzureNative.ContainerService.Inputs.ServiceMeshProfileArgs
{
Istio = new AzureNative.ContainerService.Inputs.IstioServiceMeshArgs
{
CertificateAuthority = new AzureNative.ContainerService.Inputs.IstioCertificateAuthorityArgs
{
Plugin = new AzureNative.ContainerService.Inputs.IstioPluginCertificateAuthorityArgs
{
CertChainObjectName = "cert-chain",
CertObjectName = "ca-cert",
KeyObjectName = "ca-key",
KeyVaultId = "/subscriptions/854c9ddb-fe9e-4aea-8d58-99ed88282881/resourceGroups/ddama-test/providers/Microsoft.KeyVault/vaults/my-akv",
RootCertObjectName = "root-cert",
},
},
Components = new AzureNative.ContainerService.Inputs.IstioComponentsArgs
{
EgressGateways = new[]
{
new AzureNative.ContainerService.Inputs.IstioEgressGatewayArgs
{
Enabled = true,
},
},
IngressGateways = new[]
{
new AzureNative.ContainerService.Inputs.IstioIngressGatewayArgs
{
Enabled = true,
Mode = AzureNative.ContainerService.IstioIngressGatewayMode.Internal,
},
},
},
},
Mode = AzureNative.ContainerService.ServiceMeshMode.Istio,
},
ServicePrincipalProfile = new AzureNative.ContainerService.Inputs.ManagedClusterServicePrincipalProfileArgs
{
ClientId = "clientid",
Secret = "secret",
},
Sku = new AzureNative.ContainerService.Inputs.ManagedClusterSKUArgs
{
Name = "Basic",
Tier = AzureNative.ContainerService.ManagedClusterSKUTier.Free,
},
Tags =
{
{ "archv2", "" },
{ "tier", "production" },
},
WindowsProfile = new AzureNative.ContainerService.Inputs.ManagedClusterWindowsProfileArgs
{
AdminPassword = "replacePassword1234$",
AdminUsername = "azureuser",
},
});
});
package main
import (
containerservice "github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := containerservice.NewManagedCluster(ctx, "managedCluster", &containerservice.ManagedClusterArgs{
AddonProfiles: containerservice.ManagedClusterAddonProfileMap{
"azureKeyvaultSecretsProvider": &containerservice.ManagedClusterAddonProfileArgs{
Config: pulumi.StringMap{
"enableSecretRotation": pulumi.String("true"),
"rotationPollInterval": pulumi.String("2m"),
},
Enabled: pulumi.Bool(true),
},
},
AgentPoolProfiles: containerservice.ManagedClusterAgentPoolProfileArray{
&containerservice.ManagedClusterAgentPoolProfileArgs{
Count: pulumi.Int(3),
EnableNodePublicIP: pulumi.Bool(true),
Mode: pulumi.String(containerservice.AgentPoolModeSystem),
Name: pulumi.String("nodepool1"),
OsType: pulumi.String(containerservice.OSTypeLinux),
Type: pulumi.String(containerservice.AgentPoolTypeVirtualMachineScaleSets),
VmSize: pulumi.String("Standard_DS2_v2"),
},
},
AutoScalerProfile: &containerservice.ManagedClusterPropertiesAutoScalerProfileArgs{
ScaleDownDelayAfterAdd: pulumi.String("15m"),
ScanInterval: pulumi.String("20s"),
},
DiskEncryptionSetID: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des"),
DnsPrefix: pulumi.String("dnsprefix1"),
EnablePodSecurityPolicy: pulumi.Bool(true),
EnableRBAC: pulumi.Bool(true),
KubernetesVersion: pulumi.String(""),
LinuxProfile: &containerservice.ContainerServiceLinuxProfileArgs{
AdminUsername: pulumi.String("azureuser"),
Ssh: &containerservice.ContainerServiceSshConfigurationArgs{
PublicKeys: containerservice.ContainerServiceSshPublicKeyArray{
&containerservice.ContainerServiceSshPublicKeyArgs{
KeyData: pulumi.String("keydata"),
},
},
},
},
Location: pulumi.String("location1"),
NetworkProfile: &containerservice.ContainerServiceNetworkProfileArgs{
LoadBalancerProfile: &containerservice.ManagedClusterLoadBalancerProfileArgs{
ManagedOutboundIPs: &containerservice.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs{
Count: pulumi.Int(2),
},
},
LoadBalancerSku: pulumi.String(containerservice.LoadBalancerSkuStandard),
OutboundType: pulumi.String(containerservice.OutboundTypeLoadBalancer),
},
ResourceGroupName: pulumi.String("rg1"),
ResourceName: pulumi.String("clustername1"),
ServiceMeshProfile: &containerservice.ServiceMeshProfileArgs{
Istio: &containerservice.IstioServiceMeshArgs{
CertificateAuthority: &containerservice.IstioCertificateAuthorityArgs{
Plugin: &containerservice.IstioPluginCertificateAuthorityArgs{
CertChainObjectName: pulumi.String("cert-chain"),
CertObjectName: pulumi.String("ca-cert"),
KeyObjectName: pulumi.String("ca-key"),
KeyVaultId: pulumi.String("/subscriptions/854c9ddb-fe9e-4aea-8d58-99ed88282881/resourceGroups/ddama-test/providers/Microsoft.KeyVault/vaults/my-akv"),
RootCertObjectName: pulumi.String("root-cert"),
},
},
Components: &containerservice.IstioComponentsArgs{
EgressGateways: containerservice.IstioEgressGatewayArray{
&containerservice.IstioEgressGatewayArgs{
Enabled: pulumi.Bool(true),
},
},
IngressGateways: containerservice.IstioIngressGatewayArray{
&containerservice.IstioIngressGatewayArgs{
Enabled: pulumi.Bool(true),
Mode: pulumi.String(containerservice.IstioIngressGatewayModeInternal),
},
},
},
},
Mode: pulumi.String(containerservice.ServiceMeshModeIstio),
},
ServicePrincipalProfile: &containerservice.ManagedClusterServicePrincipalProfileArgs{
ClientId: pulumi.String("clientid"),
Secret: pulumi.String("secret"),
},
Sku: &containerservice.ManagedClusterSKUArgs{
Name: pulumi.String("Basic"),
Tier: pulumi.String(containerservice.ManagedClusterSKUTierFree),
},
Tags: pulumi.StringMap{
"archv2": pulumi.String(""),
"tier": pulumi.String("production"),
},
WindowsProfile: &containerservice.ManagedClusterWindowsProfileArgs{
AdminPassword: pulumi.String("replacePassword1234$"),
AdminUsername: pulumi.String("azureuser"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.containerservice.ManagedCluster;
import com.pulumi.azurenative.containerservice.ManagedClusterArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterAgentPoolProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterPropertiesAutoScalerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceLinuxProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceSshConfigurationArgs;
import com.pulumi.azurenative.containerservice.inputs.ContainerServiceNetworkProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs;
import com.pulumi.azurenative.containerservice.inputs.ServiceMeshProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.IstioServiceMeshArgs;
import com.pulumi.azurenative.containerservice.inputs.IstioCertificateAuthorityArgs;
import com.pulumi.azurenative.containerservice.inputs.IstioPluginCertificateAuthorityArgs;
import com.pulumi.azurenative.containerservice.inputs.IstioComponentsArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterServicePrincipalProfileArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterSKUArgs;
import com.pulumi.azurenative.containerservice.inputs.ManagedClusterWindowsProfileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.addonProfiles(Map.of("azureKeyvaultSecretsProvider", Map.ofEntries(
Map.entry("config", Map.ofEntries(
Map.entry("enableSecretRotation", "true"),
Map.entry("rotationPollInterval", "2m")
)),
Map.entry("enabled", true)
)))
.agentPoolProfiles(ManagedClusterAgentPoolProfileArgs.builder()
.count(3)
.enableNodePublicIP(true)
.mode("System")
.name("nodepool1")
.osType("Linux")
.type("VirtualMachineScaleSets")
.vmSize("Standard_DS2_v2")
.build())
.autoScalerProfile(ManagedClusterPropertiesAutoScalerProfileArgs.builder()
.scaleDownDelayAfterAdd("15m")
.scanInterval("20s")
.build())
.diskEncryptionSetID("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des")
.dnsPrefix("dnsprefix1")
.enablePodSecurityPolicy(true)
.enableRBAC(true)
.kubernetesVersion("")
.linuxProfile(ContainerServiceLinuxProfileArgs.builder()
.adminUsername("azureuser")
.ssh(ContainerServiceSshConfigurationArgs.builder()
.publicKeys(ContainerServiceSshPublicKeyArgs.builder()
.keyData("keydata")
.build())
.build())
.build())
.location("location1")
.networkProfile(ContainerServiceNetworkProfileArgs.builder()
.loadBalancerProfile(ManagedClusterLoadBalancerProfileArgs.builder()
.managedOutboundIPs(ManagedClusterLoadBalancerProfileManagedOutboundIPsArgs.builder()
.count(2)
.build())
.build())
.loadBalancerSku("standard")
.outboundType("loadBalancer")
.build())
.resourceGroupName("rg1")
.resourceName("clustername1")
.serviceMeshProfile(ServiceMeshProfileArgs.builder()
.istio(IstioServiceMeshArgs.builder()
.certificateAuthority(IstioCertificateAuthorityArgs.builder()
.plugin(IstioPluginCertificateAuthorityArgs.builder()
.certChainObjectName("cert-chain")
.certObjectName("ca-cert")
.keyObjectName("ca-key")
.keyVaultId("/subscriptions/854c9ddb-fe9e-4aea-8d58-99ed88282881/resourceGroups/ddama-test/providers/Microsoft.KeyVault/vaults/my-akv")
.rootCertObjectName("root-cert")
.build())
.build())
.components(IstioComponentsArgs.builder()
.egressGateways(IstioEgressGatewayArgs.builder()
.enabled(true)
.build())
.ingressGateways(IstioIngressGatewayArgs.builder()
.enabled(true)
.mode("Internal")
.build())
.build())
.build())
.mode("Istio")
.build())
.servicePrincipalProfile(ManagedClusterServicePrincipalProfileArgs.builder()
.clientId("clientid")
.secret("secret")
.build())
.sku(ManagedClusterSKUArgs.builder()
.name("Basic")
.tier("Free")
.build())
.tags(Map.ofEntries(
Map.entry("archv2", ""),
Map.entry("tier", "production")
))
.windowsProfile(ManagedClusterWindowsProfileArgs.builder()
.adminPassword("replacePassword1234$")
.adminUsername("azureuser")
.build())
.build());
}
}
Import
An existing resource can be imported using its type token, name, and identifier, e.g.
$ pulumi import azure-native:containerservice:ManagedCluster clustername1 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}
Constructors
Properties
The Azure Active Directory configuration.
The profile of managed cluster add-on.
The agent pool properties.
The access profile for managed cluster API server.
Parameters to be applied to the cluster-autoscaler when enabled
The auto upgrade configuration.
Azure Monitor addon profiles for monitoring the managed cluster.
If set to true, getting static credentials will be disabled for this cluster. This must only be used on Managed Clusters that are AAD enabled. For more details see disable local accounts.
This is of the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{encryptionSetName}'
(DEPRECATED) Whether to enable Kubernetes pod security policy (preview). PodSecurityPolicy was deprecated in Kubernetes v1.21, and removed from Kubernetes in v1.25. Learn more at https://aka.ms/k8s/psp and https://aka.ms/aks/psp.
Whether to enable Kubernetes Role-Based Access Control.
The extended location of the Virtual Machine.
This cannot be updated once the Managed Cluster has been created.
Configurations for provisioning the cluster with HTTP proxy servers.
The identity of the managed cluster, if configured.
The user identity associated with the managed cluster. This identity will be used by the kubelet. Only one user assigned identity is allowed. The only accepted key is "kubeletidentity", with value of "resourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}".
Ingress profile for the managed cluster.
Both patch version
The profile for Linux VMs in the Managed Cluster.
Optional cluster metrics configuration.
The network configuration profile.
The name of the resource group containing agent pool nodes.
Profile of the node resource group configuration.
The OIDC issuer profile of the Managed Cluster.
See use AAD pod identity for more details on AAD pod identity integration.
Private link resources associated with the cluster.
Allow or deny public network access for AKS
The name of the resource group. The name is case insensitive.
The name of the managed cluster resource.
Security profile for the managed cluster.
Service mesh profile for a managed cluster.
Information about a service principal identity for the cluster to use for manipulating Azure APIs.
The managed cluster SKU.
Storage profile for the managed cluster.
The support plan for the Managed Cluster. If unspecified, the default is 'KubernetesOfficial'.
Settings for upgrading a cluster.
The profile for Windows VMs in the Managed Cluster.
Workload Auto-scaler profile for the managed cluster.