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.1a1611818412.tar.gz (6.2 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: pulumi_pulumistack-0.0.1a1611818412.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.1a1611818412.tar.gz
Algorithm Hash digest
SHA256 30feeba31ef1097c2d4c20460f7f37b4ed085f6a44acfbed8c15e07efd4dfe5a
MD5 65aa928da5e194498a73194a7cd7b466
BLAKE2b-256 7dc1171e54f12a8b525e1f9488384a557955bef1ee96a6d53dcb99c88e85697a

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