Skip to main content

No project description provided

Project description

pulumistack Pulumi Provider

A Pulumi provider for managing Pulumi Stacks.

Build and Test

$ make ensure
$ make build

Example

This example deploys an Azure Kubernetes Cluster (using a Go program that lives in pulumi/examples) and then a Guestbook application inside the Kubernetes cluster (using a C# program that also lives in a different folder of pulumi/examples). These two stacks can be wired together based on config and outputs, and dependencies are tracked between the two stacks.

import * as pulumistack from "./pulumistack"
import * as pulumi from "@pulumi/pulumi";

const project = pulumi.getProject();
const stack = pulumi.getStack();

const cluster = new pulumistack.Stack("azure-go-aks", { 
    repoUrl: "https://github.com/pulumi/examples/",
    path: "azure-go-aks",
    name: `lukehoban/azure-go-aks/${project}-${stack}`,
    config: {
        "azure:location": "westus",
        "kubernetesVersion": "1.16.13",
    }
});

const app = new pulumistack.Stack("kubernetes-cs-guestbook", { 
    repoUrl: "https://github.com/pulumi/examples/",
    path: "kubernetes-cs-guestbook/components",
    name: `lukehoban/guestbook-csharp-components/${project}-${stack}`,
    config: {
        "kubernetes:kubeconfig": cluster.outputs["kubeconfig"],
    }
});

export const frontendIp = app.outputs["FrontendIp"];

Running pulumi up deploys each of the nested stacks and then the computed stack output.

$ pulumi up     
Previewing update (dev):
     Type                        Name                                Plan       
 +   pulumi:pulumi:Stack         pulumistack-kubeclussterandapp-dev  create     
 +   ├─ pulumistack:stack:Stack  azure-go-aks                        create     
 +   └─ pulumistack:stack:Stack  kubernetes-cs-guestbook             create     
 
Resources:
    + 3 to create

Do you want to perform this update? yes
Updating (dev):
     Type                        Name                                Status      
 +   pulumi:pulumi:Stack         pulumistack-kubeclussterandapp-dev  created     
 +   ├─ pulumistack:stack:Stack  azure-go-aks                        created     
 +   └─ pulumistack:stack:Stack  kubernetes-cs-guestbook             created     
 
Outputs:
    frontendIp: "13.87.216.164"

Resources:
    + 3 created

Duration: 7m41s

Permalink: https://app.pulumi.com/lukehoban/pulumistack-kubeclussterandapp/dev/updates/8

This results in a working Guestbook application running in the new AKS cluster:

$ curl 13.87.216.164
<html ng-app="redis">
  <head>
    <title>Guestbook</title>
    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.12/angular.min.js"></script>
    <script src="controllers.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.13.0/ui-bootstrap-tpls.js"></script>
  </head>
  <body ng-controller="RedisCtrl">
    <div style="width: 50%; margin-left: 20px">
      <h2>Guestbook</h2>
    <form>
    <fieldset>
    <input ng-model="msg" placeholder="Messages" class="form-control" type="text" name="input"><br>
    <button type="button" class="btn btn-primary" ng-click="controller.onRedis()">Submit</button>
    </fieldset>
    </form>
    <div>
      <div ng-repeat="msg in messages track by $index">
        {{msg}}
      </div>
    </div>
    </div>
  </body>
</html>

References

Other resoruces for learning about the Pulumi resource model:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pulumi_pulumistack-0.0.1a1611897600.tar.gz (6.2 kB view details)

Uploaded Source

File details

Details for the file pulumi_pulumistack-0.0.1a1611897600.tar.gz.

File metadata

  • Download URL: pulumi_pulumistack-0.0.1a1611897600.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1

File hashes

Hashes for pulumi_pulumistack-0.0.1a1611897600.tar.gz
Algorithm Hash digest
SHA256 9179a1d5bbe40f4f0f300f018c05474fe99b5cf792b33740130f5baf1394e0fb
MD5 2aa030ab89c330ead7d934a48a478a9a
BLAKE2b-256 0948b8510fb1f800aeecbd1e0135f94ba51ff74ebfaaaa51e3b593e00231e9f9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page