Skip to content

Commit

Permalink
Adding examples on using revision tags for environments (#293)
Browse files Browse the repository at this point in the history
### Summary
- Adding examples on using revision tags for environments

### Testing
- All the examples automatically run as tests

---------

Co-authored-by: Komal <[email protected]>
  • Loading branch information
IaroslavTitov and komalali authored Jun 4, 2024
1 parent e513f07 commit 2a3e7bc
Show file tree
Hide file tree
Showing 5 changed files with 114 additions and 4 deletions.
25 changes: 25 additions & 0 deletions examples/cs-environments/MyStack.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,30 @@ public MyStack()
Yaml = new StringAsset(yaml)
}
);

// A tag that will always be placed on the latest revision of the environment
var stableTag = new Pulumi.PulumiService.EnvironmentVersionTag(
"StableTag",
new EnvironmentVersionTagArgs {
Organization = environment.Organization,
Environment = environment.Name,
TagName = "stable",
Revision = environment.Revision
}
);

// A tag that will be placed on each new version, and remain on old revisions
var versionTag = new Pulumi.PulumiService.EnvironmentVersionTag(
"VersionTag",
new EnvironmentVersionTagArgs {
Organization = environment.Organization,
Environment = environment.Name,
TagName = environment.Revision.Apply(rev => "v"+rev),
Revision = environment.Revision
},
new CustomResourceOptions{
RetainOnDelete = true
}
);
}
}
29 changes: 28 additions & 1 deletion examples/go-environments/main.go
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
package main

import (
"strconv"

"github.com/pulumi/pulumi-pulumiservice/sdk/go/pulumiservice"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := pulumiservice.NewEnvironment(ctx, "testing-environment", &pulumiservice.EnvironmentArgs{
environment, err := pulumiservice.NewEnvironment(ctx, "testing-environment", &pulumiservice.EnvironmentArgs{
Name: pulumi.String("testing-environment-go"),
Organization: pulumi.String("service-provider-test-org"),
Yaml: pulumi.NewStringAsset(`
Expand All @@ -20,6 +22,31 @@ func main() {
if err != nil {
return err
}

// A tag that will always be placed on the latest revision of the environment
_, err = pulumiservice.NewEnvironmentVersionTag(ctx, "StableTag", &pulumiservice.EnvironmentVersionTagArgs{
Organization: environment.Organization,
Environment: environment.Name,
TagName: pulumi.String("stable"),
Revision: environment.Revision,
})
if err != nil {
return err
}

// A tag that will be placed on each new version, and remain on old revisions
_, err = pulumiservice.NewEnvironmentVersionTag(ctx, "VersionTag", &pulumiservice.EnvironmentVersionTagArgs{
Organization: environment.Organization,
Environment: environment.Name,
TagName: environment.Revision.ApplyT(func(rev int) (string, error) {
return "v" + strconv.Itoa(rev), nil
}).(pulumi.StringOutput),
Revision: environment.Revision,
}, pulumi.RetainOnDelete(true))
if err != nil {
return err
}

return nil
})
}
26 changes: 25 additions & 1 deletion examples/py-environments/__main__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
"""A Python Pulumi Service Environments program"""

import pulumi
from pulumi_pulumiservice import Environment
from pulumi_pulumiservice import Environment, EnvironmentVersionTag
from pulumi import ResourceOptions

environment = Environment(
"testing-environment",
Expand All @@ -15,3 +16,26 @@
myNumber: 1
""")
)

# A tag that will always be placed on the latest revision of the environment
stableTag = EnvironmentVersionTag(
"StableTag",
organization=environment.organization,
environment=environment.name,
tag_name="stable",
revision=environment.revision,
)

# A tag that will be placed on each new version, and remain on old revisions
versionTag = EnvironmentVersionTag(
"VersionTag",
organization=environment.organization,
environment=environment.name,
tag_name=environment.revision.apply(
lambda revision: "v" + str(revision)
),
revision=environment.revision,
opts=ResourceOptions(
retain_on_delete=True
)
)
18 changes: 18 additions & 0 deletions examples/ts-environments/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,21 @@ var environment = new service.Environment("testing-environment", {
myNumber: 1`
)
})

// A tag that will always be placed on the latest revision of the environment
var stableTag = new service.EnvironmentVersionTag("StableTag", {
organization: environment.organization,
environment: environment.name,
tagName: "stable",
revision: environment.revision
})

// A tag that will be placed on each new version, and remain on old revisions
var versionTag = new service.EnvironmentVersionTag("VersionTag", {
organization: environment.organization,
environment: environment.name,
tagName: environment.revision.apply((rev: number) => "v"+rev),
revision: environment.revision
}, {
retainOnDelete: true
})
20 changes: 18 additions & 2 deletions examples/yaml-environments/Pulumi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,25 @@ resources:
organization: service-provider-test-org
name: testing-environment-yaml
yaml:
fn::stringAsset: >
fn::stringAsset: |-
values:
myKey1: "myValue1"
myNestedKey:
myKey2: "myValue2"
myNumber: 1
myNumber: 1
stableTag:
type: pulumiservice:EnvironmentVersionTag
properties:
organization: ${testing-environment.organization}
environment: ${testing-environment.name}
tagName: stable
revision: ${testing-environment.revision}
versionTag:
type: pulumiservice:EnvironmentVersionTag
properties:
organization: ${testing-environment.organization}
environment: ${testing-environment.name}
tagName: v${testing-environment.revision}
revision: ${testing-environment.revision}
options:
retainOnDelete: true

0 comments on commit 2a3e7bc

Please sign in to comment.