Skip to content

Instantly share code, notes, and snippets.

@clstokes

clstokes/main.go Secret

Last active October 8, 2020 15:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save clstokes/7d065009cd048388cd981d37db2c5f48 to your computer and use it in GitHub Desktop.
Save clstokes/7d065009cd048388cd981d37db2c5f48 to your computer and use it in GitHub Desktop.
Output Examples - Go - Create Template
package main
import (
"fmt"
"os"
"text/template"
"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/s3"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
type buckets struct {
Main string
OtherBuckets []interface{}
}
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
var bucketNames []interface{}
mainBucket, err := s3.NewBucket(ctx, "main-bucket", nil)
if err != nil {
return err
}
bucketNames = append(bucketNames, mainBucket.Bucket)
numBuckets := 4
for i := 1; i < numBuckets; i++ {
bucket, err := s3.NewBucket(ctx, fmt.Sprintf("my-bucket-%02d", i), nil)
if err != nil {
return err
}
bucketNames = append(bucketNames, bucket.Bucket)
}
templateOutput := pulumi.All(bucketNames...).ApplyT(
func(args []interface{}) (string, error) {
allBuckets := new(buckets)
allBuckets.Main = args[0].(string)
allBuckets.OtherBuckets = args[1:]
var tmplSrc = `main: {{.Main}}
otherBuckets:
{{- range $i, $e := .OtherBuckets}}
- {{$e}}
{{- end}}
`
t := template.Must(template.New("test").Parse(tmplSrc))
f, err := os.Create("buckets.yaml")
if err != nil {
ctx.Log.Error(fmt.Sprintf("error creating file: %s", err), nil)
return "", err
}
err = t.Execute(f, allBuckets)
if err != nil {
ctx.Log.Error(fmt.Sprintf("error executing template: %s", err), nil)
return "", err
}
f.Close()
return "", nil
},
)
ctx.Export("mainBucketName", mainBucket.ID())
ctx.Export("templateOutput", templateOutput) // must Export templateOutput until https://github.com/pulumi/pulumi/issues/3991 is resolved
return nil
})
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment