Terraform-module-nifiregistry

This module is IaC - infrastructure as code which contains a nomad job of Nifi registry.

Content

  1. Prerequisites
  2. Compatibility
  3. Requirements
    1. Required software
  4. Usage
    1. Verifying setup
    2. Providers
  5. Example usage
  6. Inputs
  7. Outputs
  8. Contributors
  9. License

Prerequisites

Please follow this section in original template.

Compatibility

Software OSS Version Enterprise Version
Terraform 0.13.1 or newer
Consul 1.8.3 or newer 1.8.3 or newer
Vault 1.5.2.1 or newer 1.5.2.1 or newer
Nomad 0.12.3 or newer 0.12.3 or newer

Requirements

Required software

All software is provided and run with docker. See the Makefile for inspiration.

Usage

The following command will run nifi registry in the example/standalone_git folder. (NOTE! Please read README.md before executing the example)

make up repo=<GitHub-repository> branch=<branch to checkout and track> user=<GitHub username> token=<personal token from GitHub> 

and

make up-standalone

will run nifi registry in the example/standalone folder.

Verifying setup

You can verify that Nifi registry ran successful by checking the Nifi registry UI.

First create a proxy to connect with the Nifi registry service:

make proxy-nifi-reg

You can now visit the UI on http://127.0.0.1:18080/nifi-registry/.

Providers

Example

The following code is an example of the Nifi registry module. For detailed information check the example/standalone.

module "nifi_registry" {
   source = "../.."

   # nomad
   nomad_datacenters = ["dc1"]
   nomad_namespace   = "default"
   nomad_host_volume = "persistence"

   # nifi
   service_name    = "nifi-registry"
   host            = "127.0.0.1"
   port            = 18080
   mode            = "standalone"
   container_image = "apache/nifi-registry:0.8.0"
   use_host_volume = false
   use_canary      = false
   resource = {
      cpu    = 500
      memory = 1024
   }
   resource_proxy = {
      cpu    = 200
      memory = 128
   }
}

Inputs

Name Description Type Default Required
nomad_datacenters Nomad data centers list(string) ["dc1"] yes
nomad_namespace [Enterprise] Nomad namespace string "default" yes
service_name nifi registry service name string "nifi-registry" yes
host Nifi registry host string "127.0.0.1" yes
port Nifi registry container port number 18080 yes
mode Switch for Nomad to use standalone or standalone with git deployment string "standalone" no
container_image nifi registry container image string "apache/nifi-registry:0.8.0" yes
resource Resource allocations for cpu and memory obj(number, number) {
cpu = 500,
memory = 1024
}
no
resource_proxy Resource allocations for proxy obj(number, number) {
cpu = 200,
memory = 128
}
no
use_canary Uses canary deployment for nifi bool false no
vault_secret.vault_kv_policy_name Vault policy name to read secrets string "kv-secret" no
vault_secret.vault_kv_path Path to the secret key in Vault string "secret/github" no
vault_secret.vault_kv_field_user Secret key name in Vault kv path string "git_access_user" no
vault_secret.vault_kv_field_password Secret key name in Vault kv path string "git_access_password" no
git_remote_url Git integration: URL of the remote git repository. string " " yes
git_checkout_branch Git integration: Branch to checkout and track. string " " yes
git_flow_storage_directory Git integration: Default value is set by image, original default value was "./flow-storage". This variable is used in clone script as a destination directory for clone. It is also used in NiFi Registry configuration. string /opt/nifi-registry/flow-storage yes
git_remote_to_push Git integration: This variable is used in clone script to set origin name using -o, --origin <name> use <name> instead of 'origin' to track upstream. It is also used in NiFi Registry configuration. string origin yes
git_access_user Git integration: Username string " " yes
git_access_password Git integration: Password string " " yes
git_user_name Git integration: Developer string nifi-registry no
git_user_email Git integration: Developer email string nifi-registry@localhost no

Outputs

Name Description Type
nifi_reg_service_name nifi registry service name string
nifi_reg_port nifi registry port number number
nifi_reg_host nifi registry host string

Contributors

License

This work is licensed under Apache 2 License. See LICENSE for full details.