Skip to content

Commit

Permalink
output environment template file
Browse files Browse the repository at this point in the history
  • Loading branch information
toriancrane committed Oct 12, 2023
1 parent 5ee0088 commit c1972f6
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 6 deletions.
1 change: 0 additions & 1 deletion azure-py-oidc-provider-pulumi-cloud/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ Next, to deploy the application and its infrastructure, follow these steps:
1. Set your Pulumi organization name, Pulumi ESC environment name, and desired Azure region:

```bash
pulumi config set pulumiOrg <your-pulumi-org-name> # replace with your Pulumi organization name
pulumi config set environmentName <your-environment-name> # replace with your environment name
pulumi config set azure-native:location WestUS2 # any valid Azure region will work
```
Expand Down
34 changes: 29 additions & 5 deletions azure-py-oidc-provider-pulumi-cloud/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@
from pulumi_azure_native import resources, aad, authorization, managedidentity
import pulumi_azuread as azuread
from pulumi_azure import core
import yaml

issuer = "https://api.pulumi.com/oidc"

# Retrieve local Pulumi configuration
pulumi_config = pulumi.Config()
audience = pulumi_config.require("pulumiOrg")
audience = pulumi.get_organization()
env_name = pulumi_config.require("environmentName")

# Retrieve local Azure configuration
Expand Down Expand Up @@ -35,7 +36,30 @@
subject=f"pulumi:environments:org:{audience}:env:{env_name}"
)

# Export Outputs required for Environment definition
pulumi.export('ApplicationId', application.application_id)
pulumi.export('DirectoryId', tenant_id)
pulumi.export('SubscriptionId', az_subscription)
print("OIDC configuration complete!")
print("Copy and paste the following template into your Pulumi ESC environment:")
print("--------")

def create_yaml_structure(args):
application_id, tenant_id, subscription_id = args
return {
'values': {
'azure': {
'login': {
'fn::open::azure-login': {
'clientId': application_id,
'tenantId': tenant_id,
'subscriptionId': f"/subscriptions/{subscription_id}",
'oidc': True
}
}
}
}
}

def print_yaml(args):
yaml_structure = create_yaml_structure(args)
yaml_string = yaml.dump(yaml_structure, sort_keys=False)
print(yaml_string)

pulumi.Output.all(application.application_id, tenant_id, az_subscription).apply(print_yaml)
1 change: 1 addition & 0 deletions azure-py-oidc-provider-pulumi-cloud/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ pulumi>=3.0.0,<4.0.0
pulumi-azure-native>=2.0.0,<3.0.0
pulumi-azuread>=5.0.0, <6.0.0
pulumi-azure>=5.0.0, <6.0.0
PyYAML

0 comments on commit c1972f6

Please sign in to comment.