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

Uploaded Source

File details

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

File metadata

  • Download URL: pulumi_pulumistack-0.0.1a1612923212.tar.gz
  • Upload date:
  • Size: 6.4 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.1 CPython/3.9.1

File hashes

Hashes for pulumi_pulumistack-0.0.1a1612923212.tar.gz
Algorithm Hash digest
SHA256 c56f4d86cb9e1e746145b89adaf4ef8d9ce396d36b565254d74f710a0262ab1a
MD5 7d0a2dadea2437d3aa90d3dbf7a6b29a
BLAKE2b-256 bf8e6c1e0970a336ca49d93767e116df24518ecbd81c955d8b235c32b6fecfd4

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