Python Pulumi

From NovaOrdis Knowledge Base
Revision as of 23:52, 11 January 2022 by Ovidiu (talk | contribs) (→‎AWS)
Jump to navigation Jump to search

External

Internal

Pulumi Python SDK

https://www.pulumi.com/docs/reference/pkg/python/pulumi/

The SDK is available as a pip package.

Python Pulumi and Virtual Environments

A new Python project created with pulumi new will have a virtual environment created in a venv directory with required dependencies from requirements.txt installed in it. This behavior is controlled by the virtualenv runtime option in Pulumi.yaml:

runtime:
  name: python
  options:
    virtualenv: venv

virtualenv is the path, relative to the project directory, to the virtual environment to use.

Pulumi Python Packges

https://www.pulumi.com/docs/reference/pkg/

Adding a New Dependency

To install a new dependency in the virtual environment, add the entry to requirements.txt and run in the project directory:

venv/bin/pip install -r requirements.txt

Project Layout

 my-project
  │
  ├─ README.md
  ├─ Pulumi.yaml
  ├─ Pulumi.my-stack.yaml
  ├─ __main__.py
  ├─ requirements.txt
  └─ venv
      ├─ bin
      │   ├─ pip
      │   └─ python
      ├─ include
      ├─ lib
      └─ pyvenv.cfg

Also see Pulumi Concepts | Project Layout.

__main__.py

__main__.py is the Pulumi Python program that defines the stack resources.

import pulumi
from pulumi_aws import ssm

parameter = ssm.Parameter("/test/a", type="String", value="1234")

pulumi.export("parameter_name", parameter.id)

Python Pulumi Programming Model

AWS