Step 2: Create Terraform Plan

JFrog Platform Administration Documentation

Content Type
Administration / Platform
ft:sourceType
Paligo

This topic describes how to create Terraform Plan.

Open your preferred text editor, create a new file named main.tf, and add the following sample configuration, which includes providers for managing a local generic repository in Artifactory and a Workers Service resource using the Platform provider.

The following example configuration creates a local generic repository resource using the Artifactory Terraform provider, and then uses the Platform provider to create a Workers Service resource.

terraform {
  required_providers {
    artifactory = {
      source  = "registry.terraform.io/jfrog/artifactory"
      version = "12.7.1"
    }
    platform = {
      source  = "registry.terraform.io/jfrog/platform"
      version = "2.2.0"
    }
  }
}

provider "artifactory" {
  url           = "<artifactory_url>"
  access_token  = "<access_token>"
}

provider "platform" {
  url           = "<platform_url>"
  access_token  = "<access_token"
}

resource "artifactory_local_generic_repository" "my_generic_local1" {
  key = "my-generic-local1"
}

resource "platform_workers_service" "my_workers_service" {
  key         = "my-workers-service"
  enabled     = true
  description = "My workers service"
  source_code = <<EOF
export default async (context: PlatformContext, data: BeforeDownloadRequest): Promise<BeforeDownloadResponse> => {
  console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
  return { status: 'DOWNLOAD_PROCEED', message: 'proceed' };
}
EOF
  action      = "BEFORE_DOWNLOAD"
  
  filter_criteria = {
    artifact_filter_criteria = {
      repo_keys = [artifactory_local_generic_repository.my_generic_local1.key]
    }
  }

  secrets = [
    {
      key   = "my-secret-key-1"
      value = "my-secret-value-1"
    },
    {
      key   = "my-secret-key-2"
      value = "my-secret-value-2"
    }
  ]
}