bumpy-byte-21437
07/21/2022, 12:19 PMpackage aks
import (
"fmt"
"<http://github.com/pulumi/pulumi-azure-native/sdk/go/azure/containerservice|github.com/pulumi/pulumi-azure-native/sdk/go/azure/containerservice>"
"<http://github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core|github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core>"
"<http://github.com/pulumi/pulumi/sdk/v3/go/pulumi|github.com/pulumi/pulumi/sdk/v3/go/pulumi>"
)
type Aks struct {
pulumi.ResourceState
resourceId pulumi.StringOutput
name pulumi.StringOutput
}
type AksArgs struct {
EnableRBAC pulumi.BoolInput
ResourceName pulumi.StringInput
KubernetesVersion pulumi.StringInput
NodeResourceGroup pulumi.StringInput
ResourceGroup pulumi.StringInput
NodeCount pulumi.IntInput
Location pulumi.StringInput
}
func CreateAks(ctx *pulumi.Context, name string, args *AksArgs, opts ...pulumi.ResourceOption) (*Aks, error) {
aks := &Aks{}
err := ctx.RegisterComponentResource("resource:index:Aks", name, aks, opts...)
if err != nil {
return nil, err
}
rgs, err := core.NewResourceGroup(ctx, "resourceGroups", &core.ResourceGroupArgs{
Name: args.ResourceGroup,
Location: args.Location,
}, pulumi.Parent(aks))
if err != nil {
return nil, fmt.Errorf("error creating resource group: %v", err)
}
k8s, err := containerservice.NewManagedCluster(ctx, "akss", &containerservice.ManagedClusterArgs{
Location: rgs.Location,
AgentPoolProfiles: containerservice.ManagedClusterAgentPoolProfileArray{
&containerservice.ManagedClusterAgentPoolProfileArgs{
Count: args.NodeCount,
EnableAutoScaling: pulumi.Bool(false),
EnableNodePublicIP: pulumi.Bool(true),
Mode: pulumi.String("System"),
Name: pulumi.String("default"),
OsType: pulumi.String("Linux"),
Type: pulumi.String("VirtualMachineScaleSets"),
VmSize: pulumi.String("Standard_B2s"),
},
},
DnsPrefix: pulumi.String("akss"),
EnableRBAC: args.EnableRBAC,
Identity: &containerservice.ManagedClusterIdentityArgs{Type: containerservice.ResourceIdentityTypeSystemAssigned},
KubernetesVersion: args.KubernetesVersion,
NodeResourceGroup: args.NodeResourceGroup,
ResourceGroupName: rgs.Name,
ResourceName: args.ResourceName,
Sku: &containerservice.ManagedClusterSKUArgs{
Name: pulumi.String("Basic"),
Tier: pulumi.String("Free"),
},
}, pulumi.Parent(rgs))
if err != nil {
return nil, fmt.Errorf("error creating cluster: %v", err)
}
ctx.RegisterResourceOutputs(aks, pulumi.Map{
"resourceId": k8s.ID(),
"name": k8s.Name,
})
return aks, nil
}
quiet-laptop-13439
07/21/2022, 1:07 PMctx.Export()
them from your pulumi main function that uses your NewAks
bumpy-byte-21437
07/21/2022, 1:11 PMbumpy-byte-21437
07/21/2022, 2:26 PMquiet-laptop-13439
07/21/2022, 2:27 PMquiet-laptop-13439
07/21/2022, 2:28 PMquiet-laptop-13439
07/21/2022, 2:28 PMquiet-laptop-13439
07/21/2022, 2:29 PMaks.Name = k8s.Name.ToStringOutput()
, or something similarbumpy-byte-21437
07/21/2022, 2:31 PMbumpy-byte-21437
07/21/2022, 2:32 PMbumpy-byte-21437
07/21/2022, 2:33 PMquiet-laptop-13439
07/21/2022, 2:34 PMbumpy-byte-21437
07/21/2022, 2:35 PMbillowy-army-68599
bumpy-byte-21437
07/21/2022, 3:02 PMbumpy-byte-21437
07/21/2022, 3:03 PMbumpy-byte-21437
07/21/2022, 3:12 PMbumpy-byte-21437
07/21/2022, 3:22 PMbumpy-byte-21437
07/21/2022, 5:19 PMbillowy-army-68599
bumpy-byte-21437
07/22/2022, 11:25 AMbumpy-byte-21437
07/22/2022, 11:25 AMaksnames := k8s.Name.ApplyT(func(aksname string) string {
return aksname
}).(pulumi.StringOutput)
aks.AksNames = aksnames
if err := ctx.RegisterResourceOutputs(aks, pulumi.Map{
"aksnames": aksnames,
}); err != nil {
return nil, err
}
ctx.Export("AksNames", aks.AksNames)
return aks, nil
}
bumpy-byte-21437
07/22/2022, 11:25 AMquiet-laptop-13439
07/22/2022, 11:27 AMbumpy-byte-21437
07/22/2022, 11:27 AMquiet-laptop-13439
07/22/2022, 11:28 AMquiet-laptop-13439
07/22/2022, 11:28 AMbumpy-byte-21437
07/22/2022, 11:29 AMk8s.Id undefined (type *containerservice.ManagedCluster has no field or method Id)
bumpy-byte-21437
07/22/2022, 11:30 AMbumpy-byte-21437
07/22/2022, 11:30 AMaksnames := k8s.Id.ApplyT(func(aksname string) string {
return aksname
}).(pulumi.StringOutput)
bumpy-byte-21437
07/22/2022, 11:30 AMquiet-laptop-13439
07/22/2022, 11:35 AMquiet-laptop-13439
07/22/2022, 11:35 AMquiet-laptop-13439
07/22/2022, 11:36 AMbumpy-byte-21437
07/22/2022, 11:39 AMquiet-laptop-13439
07/22/2022, 11:54 AMquiet-laptop-13439
07/22/2022, 11:54 AMquiet-laptop-13439
07/22/2022, 11:58 AMaks.AksNames = k8s.Name
then
aks.ResourceId := k8s.ID() // make sure Aks struct field is ResourceId
remove ctx.Export from the module, do it in main
ctx.Export("k8s_resource_id", aks.ResourceId)
bumpy-byte-21437
07/22/2022, 12:03 PMexpected identifier on left side of :=
on this one aks.ResourceId := k8s.ID()bumpy-byte-21437
07/22/2022, 12:11 PMaks.ResourceState := k8s.State()
works, but aks.ResourceId := k8s.ID()
gives me a expected identifier on left side of :=
bumpy-byte-21437
07/22/2022, 12:17 PMcannot use k8s.ID() (value of type pulumi.IDOutput) as pulumi.StringOutput value in assignment
bumpy-byte-21437
07/22/2022, 12:20 PMbumpy-byte-21437
07/22/2022, 12:20 PMaks.ResourceId = k8s.ID().ToStringOutput()
bumpy-byte-21437
07/22/2022, 12:40 PMbumpy-byte-21437
07/22/2022, 12:40 PM