From 973c1a0a3702483f1e468c12eac88882b5b9e45e Mon Sep 17 00:00:00 2001 From: Denis Mishin Date: Wed, 11 Dec 2024 17:57:45 -0500 Subject: [PATCH] add shared_secret parameter to provider that creates a token for the bootstrap service account --- .gitignore | 1 + Makefile | 5 +++ example/main.tf | 36 ++++++++-------- go.mod | 3 +- .../provider/bootstrap_service_account.go | 42 +++++++++++++++++++ internal/provider/namespace.go | 2 +- internal/provider/provider.go | 26 +++++++++--- 7 files changed, 88 insertions(+), 27 deletions(-) create mode 100644 internal/provider/bootstrap_service_account.go diff --git a/.gitignore b/.gitignore index 734d3c1..95afd31 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,4 @@ go.work.sum # env file .env .DS_Store +bin diff --git a/Makefile b/Makefile index 2d71917..a2d8401 100644 --- a/Makefile +++ b/Makefile @@ -4,3 +4,8 @@ lint: @echo "@==> $@" @VERSION=$$(go run github.com/mikefarah/yq/v4@v4.34.1 '.jobs.lint.steps[] | select(.uses == "golangci/golangci-lint-action*") | .with.version' .github/workflows/test.yml) && \ go run github.com/golangci/golangci-lint/cmd/golangci-lint@$$VERSION run --fix --timeout=20m ./... + +.PHONY: build +build: + @echo "@==> $@" + @go build -o bin/terraform-provider-pomerium diff --git a/example/main.tf b/example/main.tf index d9d9d12..cba84f1 100644 --- a/example/main.tf +++ b/example/main.tf @@ -1,31 +1,31 @@ terraform { - required_providers { - pomerium = { - source = "github.com/pomerium/enterprise-terraform-provider" - version = "0.0.1" - } + required_providers { + pomerium = { + source = "pomerium/pomerium" + version = "0.0.1" } -} - -variable "pomerium_service_account_token" { - type = string - sensitive = true + } } provider "pomerium" { - api_url = "https://console-api.localhost.pomerium.io" - tls_insecure_skip_verify = true - service_account_token = var.pomerium_service_account_token + api_url = "https://console-api.localhost.pomerium.io" + tls_insecure_skip_verify = true + # service_account_token = var.pomerium_service_account_token + shared_secret_b64 = "9OkZR6hwfmVD3a7Sfmgq58lUbFJGGz4hl/R9xbHFCAg=" } -resource "pomerium_namespace" "test_namespace" { - name = "test-namespace" - parent_id = "9d8dbd2c-8cce-4e66-9c1f-c490b4a07243" +# resource "pomerium_namespace" "test_namespace" { +# name = "test-namespace" +# parent_id = "9d8dbd2c-8cce-4e66-9c1f-c490b4a07243" +# } + +locals { + namespace_id = "9d8dbd2c-8cce-4e66-9c1f-c490b4a07243" } resource "pomerium_policy" "test_policy" { name = "test-policy" - namespace_id = pomerium_namespace.test_namespace.id + namespace_id = local.namespace_id ppl = <