From 1ff1f3fad3211a307785bfadb07993d1528ddfa4 Mon Sep 17 00:00:00 2001 From: x032205 Date: Mon, 9 Jun 2025 16:55:41 -0400 Subject: [PATCH 1/2] feat(docs): Packer Plugin Docs --- docs/integrations/frameworks/packer.mdx | 95 +++++++++++++++++++++++++ docs/mint.json | 21 +++--- 2 files changed, 106 insertions(+), 10 deletions(-) create mode 100644 docs/integrations/frameworks/packer.mdx diff --git a/docs/integrations/frameworks/packer.mdx b/docs/integrations/frameworks/packer.mdx new file mode 100644 index 000000000..3dcbcde1a --- /dev/null +++ b/docs/integrations/frameworks/packer.mdx @@ -0,0 +1,95 @@ +--- +title: "Packer" +description: "Learn how to fetch secrets from Infisical with Packer using a data source" +--- + +This guide demonstrates how to use the Infisical Packer plugin to fetch secret data using a data source.The Packer plugin supports both [Infisical Cloud](https://app.infisical.com) and [self-hosted instances of Infisical](https://infisical.com/docs/self-hosting/overview). + +## Prerequisites + +Before you begin, make sure you have: + +- [Packer](https://developer.hashicorp.com/packer/install) installed +- An Infisical account with access to a project +- Basic understanding of Packer + +## Project Setup + +### Configure Provider + +First, specify the Infisical provider in your Packer configuration: + +```hcl +packer { + required_plugins { + infisical = { + source = "github.com/infisical/infisical" + version = ">=0.0.1" + } + } +} +``` + +### Authentication + +Using a Machine Identity, you can authenticate with [Universal Auth](https://infisical.com/docs/documentation/platform/identities/universal-auth). + +```hcl +data "infisical-secrets" "dev-secrets" { + folder_path = "/" + env_slug = "dev" # The environment to list secrets from (e.g. dev, staging, prod) + project_id = "00000000-0000-0000-0000-000000000000" + host = "https://app.infisical.com" # Optional for cloud, required for self-hosted + + universal_auth { + client_id = "00000000-0000-0000-0000-000000000000" + client_secret = "..." # Optional if using INFISICAL_UNIVERSAL_AUTH_CLIENT_SECRET env variable + } +} +``` + +Learn more about [machine identities](/documentation/platform/identities/machine-identities). + +## Using Secrets in Packer + +You're able to fetch secrets from Infisical using the `infisical-secrets` Data Source: + +```hcl +# Fetch all secrets from a folder +data "infisical-secrets" "dev-secrets" { + folder_path = "/" + env_slug = "dev" + project_id = "00000000-0000-0000-0000-000000000000" + + universal_auth { + ... + } +} + +locals { + secrets = data.infisical-secrets.dev-secrets.secrets +} + +source "null" "basic-example" { + communicator = "none" +} + +build { + sources = [ + "source.null.basic-example" + ] + + provisioner "shell-local" { + inline = [ + "echo secret_key: ${local.secrets["SECRET_KEY"].secret_value}", + ] + } +} +``` + +The `local.secrets` object maps secret keys to [secret objects](https://github.com/Infisical/packer-plugin-infisical/blob/main/docs/datasources/secrets.md#secret-object). + +See also: +- [Packer Plugin Repository Example](https://github.com/Infisical/packer-plugin-infisical/blob/main/example/build.pkr.hcl) +- [Packer Plugin Repository Docs](https://github.com/Infisical/packer-plugin-infisical/tree/main/docs) +- [Machine Identity setup guide](/documentation/platform/identities/machine-identities) diff --git a/docs/mint.json b/docs/mint.json index a7dd9d5c7..d8f0c7e36 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -449,6 +449,8 @@ { "group": "Infrastructure Integrations", "pages": [ + "integrations/platforms/ansible", + "integrations/platforms/apache-airflow", { "group": "Container orchestrators", "pages": [ @@ -467,7 +469,6 @@ "integrations/platforms/ecs-with-agent" ] }, - "integrations/platforms/infisical-agent", { "group": "Docker", "pages": [ @@ -477,10 +478,10 @@ "integrations/platforms/docker-compose" ] }, - "integrations/frameworks/terraform", + "integrations/platforms/infisical-agent", + "integrations/frameworks/packer", "integrations/frameworks/pulumi", - "integrations/platforms/ansible", - "integrations/platforms/apache-airflow" + "integrations/frameworks/terraform" ] }, { @@ -1050,8 +1051,8 @@ "group": "Secret Scanning", "pages": [ { - "group": "Data Sources", - "pages": [ + "group": "Data Sources", + "pages": [ "api-reference/endpoints/secret-scanning/data-sources/list", "api-reference/endpoints/secret-scanning/data-sources/options", { @@ -1072,15 +1073,15 @@ ] }, { - "group": "Findings", - "pages": [ + "group": "Findings", + "pages": [ "api-reference/endpoints/secret-scanning/findings/list", "api-reference/endpoints/secret-scanning/findings/update" ] }, { - "group": "Configuration", - "pages": [ + "group": "Configuration", + "pages": [ "api-reference/endpoints/secret-scanning/config/get-by-project-id", "api-reference/endpoints/secret-scanning/config/update" ] From 2be56f6a70b8836a308459865884634e039fb783 Mon Sep 17 00:00:00 2001 From: x032205 Date: Mon, 9 Jun 2025 16:57:39 -0400 Subject: [PATCH 2/2] Greptile review fix --- docs/integrations/frameworks/packer.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/frameworks/packer.mdx b/docs/integrations/frameworks/packer.mdx index 3dcbcde1a..dd4e3a0ff 100644 --- a/docs/integrations/frameworks/packer.mdx +++ b/docs/integrations/frameworks/packer.mdx @@ -3,7 +3,7 @@ title: "Packer" description: "Learn how to fetch secrets from Infisical with Packer using a data source" --- -This guide demonstrates how to use the Infisical Packer plugin to fetch secret data using a data source.The Packer plugin supports both [Infisical Cloud](https://app.infisical.com) and [self-hosted instances of Infisical](https://infisical.com/docs/self-hosting/overview). +This guide demonstrates how to use the Infisical Packer plugin to fetch secret data using a data source. The Packer plugin supports both [Infisical Cloud](https://app.infisical.com) and [self-hosted instances of Infisical](https://infisical.com/docs/self-hosting/overview). ## Prerequisites