The project-planton command line interface (CLI) is a powerful tool that allows users to manage cloud infrastructure components using a unified, consistent approach across different cloud providers. This guide provides detailed information on the available commands, their purposes, and the arguments or flags that can be used.

The CLI helps users to deploy, preview, refresh, or destroy cloud infrastructure stacks. Each command works seamlessly with Pulumi’s multi-cloud capabilities, ensuring you have a consistent deployment experience whether you are working with AWS, GCP, Azure, or other cloud services.

Install

brew install project-planton/tap/project-planton

Commands

project-planton pulumi

Purpose:

This command is used to manage Pulumi stacks, allowing you to refresh, preview, update (deploy), or destroy a cloud infrastructure stack. With project-planton pulumi, users can interact with infrastructure deployments in a consistent manner across cloud providers.

Usage:

project-planton pulumi [command]

Available Commands:

  • destroy: Runs pulumi destroy to remove all resources in the stack.
  • preview: Runs pulumi update preview to see what changes will be applied during a deployment.
  • refresh: Runs pulumi refresh to reconcile the infrastructure’s state with the actual cloud resources.
  • update: Runs pulumi update to apply the specified configuration and deploy the cloud resources.

Flags:

  • --aws-credential string: Path of the AWS credential file.
  • --azure-credential string: Path of the Azure credential file.
  • --confluent-credential string: Path of the Confluent Cloud credential file.
  • --docker-credential string: Path of the Docker credential file.
  • --gcp-credential string: Path of the GCP credential file.
  • --input-dir string: Directory containing target.yaml and credential YAML files.
  • --kubernetes-cluster string: Path of the YAML file containing the Kubernetes cluster configuration.
  • --manifest string: Path of the deployment-component manifest file.
  • --module-dir string: Directory containing the Pulumi module (default: “/Users/swarup”).
  • --mongodb-atlas-credential string: Path of the MongoDB Atlas credential file.
  • --set stringToString: Override resource manifest values using key=value pairs.
  • --snowflake-credential string: Path of the Snowflake credential file.
  • --stack string: Pulumi stack fully-qualified name in the format of <org>/<project>/<stack>.

Credential Handling:

Pulumi requires credentials for deploying infrastructure on different cloud platforms like AWS, GCP, Azure, and Kubernetes. By default, ProjectPlanton relies on Pulumi’s credential lookup from the environment. However, for added flexibility, ProjectPlanton provides Credential APIs that let users configure credentials through YAML files for easier team collaboration.

💡

Users can choose to use environment-based credentials without abstraction, or leverage ProjectPlanton’s Credential APIs to centralize credential management.

project-planton validate

Purpose:

The validate command checks the validity of a ProjectPlanton manifest before applying any deployment actions. This command helps ensure that the YAML manifest used for deployment is correct and free of errors.

Usage:

project-planton validate-manifest [flags]

Aliases:

  • validate-manifest, validate

Example:

project-planton validate manifest.yaml

The validate command provides a quick check to make sure that everything is properly configured in your manifest before applying any changes to cloud infrastructure, reducing the risk of misconfigurations.

Summary

The project-planton CLI provides a simple, unified interface for managing multi-cloud infrastructure components. By leveraging Pulumi for infrastructure as code and combining it with the ProjectPlanton CLI, users can deploy, update, refresh, or destroy cloud resources efficiently, without needing to handle cloud-specific nuances. With robust credential handling options and easy-to-use commands, the ProjectPlanton CLI empowers teams to manage cloud deployments consistently and collaboratively.

For more details about setting up credentials, please refer to the Credential Setup Guide.