You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
modules/jfrog-token
github-actions[bot] c652dbe320
chore: bump version to 1.0.15 in README.md files (#258)
Co-authored-by: matifali <matifali@users.noreply.github.com>
11 months ago
..
README.md chore: bump version to 1.0.15 in README.md files (#258) 11 months ago
main.test.ts Add JFrog (OAuth) integration module (#97) 1 year ago
main.tf chore: remove usage of deprecated fields coder_workspace.owner_* 11 months ago
run.sh feat(jfrog): add option to customize server id for JFrog CLI (#158) 1 year ago

README.md

display_name description icon maintainer_github partner_github verified tags
JFrog (Token) Install the JF CLI and authenticate with Artifactory using Artifactory terraform provider. ../.icons/jfrog.svg coder jfrog true
integration
jfrog

JFrog

Install the JF CLI and authenticate package managers with Artifactory using Artifactory terraform provider.

module "jfrog" {
  source                   = "registry.coder.com/modules/jfrog-token/coder"
  version                  = "1.0.15"
  agent_id                 = coder_agent.example.id
  jfrog_url                = "https://XXXX.jfrog.io"
  artifactory_access_token = var.artifactory_access_token
  package_managers = {
    "npm" : "npm",
    "go" : "go",
    "pypi" : "pypi"
  }
}

For detailed instructions, please see this guide on the Coder documentation.

Note This module does not install npm, go, pip, etc but only configure them. You need to handle the installation of these tools yourself.

JFrog

Examples

Configure npm, go, and pypi to use Artifactory local repositories

module "jfrog" {
  source                   = "registry.coder.com/modules/jfrog-token/coder"
  version                  = "1.0.15"
  agent_id                 = coder_agent.example.id
  jfrog_url                = "https://YYYY.jfrog.io"
  artifactory_access_token = var.artifactory_access_token # An admin access token
  package_managers = {
    "npm" : "npm-local",
    "go" : "go-local",
    "pypi" : "pypi-local"
  }
}

You should now be able to install packages from Artifactory using both the jf npm, jf go, jf pip and npm, go, pip commands.

jf npm install prettier
jf go get github.com/golang/example/hello
jf pip install requests
npm install prettier
go get github.com/golang/example/hello
pip install requests

Configure code-server with JFrog extension

The JFrog extension for VS Code allows you to interact with Artifactory from within the IDE.

module "jfrog" {
  source                   = "registry.coder.com/modules/jfrog-token/coder"
  version                  = "1.0.15"
  agent_id                 = coder_agent.example.id
  jfrog_url                = "https://XXXX.jfrog.io"
  artifactory_access_token = var.artifactory_access_token
  configure_code_server    = true # Add JFrog extension configuration for code-server
  package_managers = {
    "npm" : "npm",
    "go" : "go",
    "pypi" : "pypi"
  }
}

Add a custom token description

data "coder_workspace" "me" {}

module "jfrog" {
  source                   = "registry.coder.com/modules/jfrog-token/coder"
  version                  = "1.0.15"
  agent_id                 = coder_agent.example.id
  jfrog_url                = "https://XXXX.jfrog.io"
  artifactory_access_token = var.artifactory_access_token
  token_description        = "Token for Coder workspace: ${data.coder_workspace_owner.me.name}/${data.coder_workspace.me.name}"
  package_managers = {
    "npm" : "npm",
    "go" : "go",
    "pypi" : "pypi"
  }
}

Using the access token in other terraform resources

JFrog Access token is also available as a terraform output. You can use it in other terraform resources. For example, you can use it to configure an Artifactory docker registry with the docker terraform provider.


provider "docker" {
  # ...
  registry_auth {
    address  = "https://YYYY.jfrog.io/artifactory/api/docker/REPO-KEY"
    username = module.jfrog.username
    password = module.jfrog.access_token
  }
}

Here REPO_KEY is the name of docker repository in Artifactory.