feat/nomad-deployment #10

Merged
lanson merged 9 commits from feat/nomad-deployment into main 2024-07-10 17:36:41 +00:00
18 changed files with 71 additions and 106 deletions
Showing only changes of commit b32815066f - Show all commits

View File

@ -53,7 +53,7 @@ The storage configuration for vault can be edited as well. By default, vault wil
```yaml ```yaml
vault_storage_configuration: vault_storage_configuration:
raft: raft:
path: "{{ hashi_vault_data_dir }}/data" path: "{{ hashicorp_vault_data_dir }}/data"
node_id: "{{ ansible_hostname }}" node_id: "{{ ansible_hostname }}"
retry_join: | retry_join: |
[ [

View File

@ -13,8 +13,6 @@ enable_nomad: "no"
# consul_version: "1.18.1" # consul_version: "1.18.1"
# vault_version: "1.16.2" # vault_version: "1.16.2"
# deployment_method: "docker"
# consul_fqdn: consul.ednz.lab # consul_fqdn: consul.ednz.lab
# vault_fqdn: vault.ednz.lab # vault_fqdn: vault.ednz.lab
# nomad_fqdn: nomad.ednz.lab # nomad_fqdn: nomad.ednz.lab
@ -139,7 +137,7 @@ consul_enable_tls: true
# vault_storage_configuration: # vault_storage_configuration:
# raft: # raft:
# path: "{{ hashi_vault_data_dir }}/data" # path: "{{ hashicorp_vault_data_dir }}/data"
# node_id: "{{ ansible_hostname }}" # node_id: "{{ ansible_hostname }}"
# retry_join: | # retry_join: |
# [ # [

View File

@ -6,8 +6,8 @@ roles:
- name: ednz_cloud.manage_pip_packages - name: ednz_cloud.manage_pip_packages
- name: ednz_cloud.install_docker - name: ednz_cloud.install_docker
- name: ednz_cloud.docker_systemd_service - name: ednz_cloud.docker_systemd_service
- name: ednz_cloud.deploy_haproxy # - name: ednz_cloud.deploy_haproxy
- name: ednz_cloud.deploy_keepalived # - name: ednz_cloud.deploy_keepalived
collections: collections:
- name: ednz_cloud.hashistack - name: ednz_cloud.hashistack

View File

@ -35,13 +35,11 @@
install_docker_auto_update: false install_docker_auto_update: false
install_docker_start_service: true install_docker_start_service: true
install_docker_compose: false install_docker_compose: false
install_docker_compose_version: latest install_docker_python_packages: false
install_docker_python_packages: true
install_docker_python_packages_version: latest
install_docker_users: install_docker_users:
- "{{ ansible_user }}" - "{{ ansible_user }}"
install_docker_daemon_options: {} install_docker_daemon_options: {}
when: deployment_method == 'docker' #! when: "'nomad_agents' in group_names"
- name: "Ensure /etc/localtime exists" - name: "Ensure /etc/localtime exists"
ansible.builtin.file: ansible.builtin.file:

View File

@ -221,8 +221,8 @@
'IP:' + api_interface_address, 'IP:' + api_interface_address,
'IP:127.0.0.1' 'IP:127.0.0.1'
] -%} ] -%}
{%- if hashi_consul_configuration.server -%} {%- if hashicorp_consul_configuration.server -%}
{%- set _ = sans_list.append('DNS:server.' ~ hashi_consul_configuration.datacenter ~ '.' ~ hashi_consul_configuration.domain) -%} {%- set _ = sans_list.append('DNS:server.' ~ hashicorp_consul_configuration.datacenter ~ '.' ~ hashicorp_consul_configuration.domain) -%}
{%- endif -%} {%- endif -%}
{{ sans_list }} {{ sans_list }}
community.crypto.openssl_csr_pipe: community.crypto.openssl_csr_pipe:

View File

@ -5,18 +5,6 @@
manage_pip_packages_allow_break_system_packages: "{{ ansible_distribution == 'Debian' and ansible_distribution_version == '12' }}" manage_pip_packages_allow_break_system_packages: "{{ ansible_distribution == 'Debian' and ansible_distribution_version == '12' }}"
vault_versions:
host: "{{ vault_version if vault_version != 'latest' else vault_version + '*' }}"
docker: "{{ vault_version }}"
consul_versions:
host: "{{ consul_version if consul_version != 'latest' else consul_version + '*' }}"
docker: "{{ consul_version }}"
nomad_versions:
host: "{{ nomad_version if nomad_version != 'latest' else nomad_version + '*' }}"
docker: "{{ nomad_version }}"
configuration_directory: "{{ lookup('env', 'PWD') }}/etc/hashistack" configuration_directory: "{{ lookup('env', 'PWD') }}/etc/hashistack"
sub_configuration_directories: sub_configuration_directories:
secrets: "{{ configuration_directory }}/secrets" secrets: "{{ configuration_directory }}/secrets"

View File

@ -57,7 +57,7 @@ consul_default_agent_policy: |
# consul internal tls # # consul internal tls #
####################### #######################
consul_certificates_directory: "{{ hashi_consul_config_dir }}/tls" consul_certificates_directory: "{{ hashicorp_consul_config_dir }}/tls"
consul_certificates_extra_files_dir: consul_certificates_extra_files_dir:
- src: "{{ sub_configuration_directories['certificates'] }}/consul/{{ inventory_hostname }}" - src: "{{ sub_configuration_directories['certificates'] }}/consul/{{ inventory_hostname }}"
dest: "{{ consul_certificates_directory }}" dest: "{{ consul_certificates_directory }}"
@ -66,28 +66,27 @@ consul_certificates_extra_files_dir:
# consul role variables # # consul role variables #
######################### #########################
hashi_consul_start_service: true hashicorp_consul_start_service: true
hashi_consul_version: "{{ consul_versions[deployment_method] }}" hashicorp_consul_service_name: "consul"
hashi_consul_deploy_method: "{{ deployment_method }}" hashicorp_consul_version: "{{ consul_version }}"
hashi_consul_env_variables: {} hashicorp_consul_env_variables: {}
hashi_consul_config_dir: "/etc/consul.d" hashicorp_consul_config_dir: "/etc/consul.d"
hashi_consul_data_dir: "/opt/consul" hashicorp_consul_data_dir: "/opt/consul"
hashi_consul_extra_files: true hashicorp_consul_extra_files: true
hashi_consul_extra_files_list: "{{ ([] + hashicorp_consul_extra_files_list: "{{ ([] +
(consul_certificates_extra_files_dir if consul_enable_tls else []) + (consul_certificates_extra_files_dir if consul_enable_tls else []) +
(vault_plugin_extra_files_dir if vault_enable_plugins else []) + (vault_plugin_extra_files_dir if vault_enable_plugins else []) +
vault_extra_files_list) vault_extra_files_list)
| unique | unique
| sort | sort
}}" }}"
hashi_consul_extra_container_volumes: "{{ default_container_extra_volumes | union(extra_consul_container_volumes) | unique | sort }}" hashicorp_consul_envoy_install: false
hashi_consul_envoy_install: false hashicorp_consul_envoy_version: v1.27.2
hashi_consul_envoy_version: v1.27.2 hashicorp_consul_configuration:
hashi_consul_configuration:
domain: "{{ consul_domain }}" domain: "{{ consul_domain }}"
datacenter: "{{ consul_datacenter }}" datacenter: "{{ consul_datacenter }}"
primary_datacenter: "{{ consul_primary_datacenter }}" primary_datacenter: "{{ consul_primary_datacenter }}"
data_dir: "{{ hashi_consul_data_dir }}" data_dir: "{{ hashicorp_consul_data_dir }}"
encrypt: "{{ _credentials.consul.gossip_encryption_key }}" encrypt: "{{ _credentials.consul.gossip_encryption_key }}"
server: "{{ 'consul_servers' in group_names }}" server: "{{ 'consul_servers' in group_names }}"
retry_join: "{{ retry_join: "{{
@ -102,7 +101,7 @@ hashi_consul_configuration:
leave_on_terminate: "{{ consul_leave_on_terminate }}" leave_on_terminate: "{{ consul_leave_on_terminate }}"
rejoin_after_leave: "{{ consul_rejoin_after_leave }}" rejoin_after_leave: "{{ consul_rejoin_after_leave }}"
enable_script_checks: "{{ consul_enable_script_checks }}" enable_script_checks: "{{ consul_enable_script_checks }}"
enable_syslog: "{{ deployment_method == 'host' }}" enable_syslog: true
log_level: INFO log_level: INFO
acl: "{{ consul_acl_configuration }}" acl: "{{ consul_acl_configuration }}"
dns_config: "{{ consul_dns_configuration }}" dns_config: "{{ consul_dns_configuration }}"
@ -119,7 +118,7 @@ hashi_consul_configuration:
expose_max_port: 21755 expose_max_port: 21755
# this is used to circumvent jinja limitation to convert string to integer # this is used to circumvent jinja limitation to convert string to integer
hashi_consul_configuration_string: | hashicorp_consul_configuration_string: |
bootstrap_expect: {{ (groups['consul_servers'] | length) }} bootstrap_expect: {{ (groups['consul_servers'] | length) }}
ports: ports:
http: {{ (consul_api_port.http|int) if not consul_enable_tls else ('-1' | int) }} http: {{ (consul_api_port.http|int) if not consul_enable_tls else ('-1' | int) }}

View File

@ -13,8 +13,6 @@ nomad_version: "1.7.7"
consul_version: "1.18.1" consul_version: "1.18.1"
vault_version: "1.16.2" vault_version: "1.16.2"
deployment_method: "docker"
consul_fqdn: consul.ednz.lab consul_fqdn: consul.ednz.lab
vault_fqdn: vault.ednz.lab vault_fqdn: vault.ednz.lab
nomad_fqdn: nomad.ednz.lab nomad_fqdn: nomad.ednz.lab
@ -138,7 +136,7 @@ vault_seal_configuration:
vault_storage_configuration: vault_storage_configuration:
raft: raft:
path: "{{ hashi_vault_data_dir }}/data" path: "{{ hashicorp_vault_data_dir }}"
node_id: "{{ ansible_hostname }}" node_id: "{{ ansible_hostname }}"
retry_join: | retry_join: |
[ [

View File

@ -5,7 +5,7 @@
# # # #
##################################################### #####################################################
deploy_haproxy_deploy_method: "{{ deployment_method }}" deploy_haproxy_deploy_method: "host"
deploy_haproxy_version: "{{ haproxy_version }}" deploy_haproxy_version: "{{ haproxy_version }}"
deploy_haproxy_env_variables: {} deploy_haproxy_env_variables: {}
@ -73,7 +73,7 @@ deploy_haproxy_listen:
- monitor-uri /health - monitor-uri /health
- http-request use-service prometheus-exporter if { path /metrics } - http-request use-service prometheus-exporter if { path /metrics }
deploy_keepalived_deploy_method: "{{ deployment_method }}" deploy_keepalived_deploy_method: "host"
deploy_keepalived_version: "latest" deploy_keepalived_version: "latest"
deploy_keepalived_start_service: true deploy_keepalived_start_service: true
deploy_keepalived_env_variables: {} deploy_keepalived_env_variables: {}

View File

@ -63,8 +63,9 @@ nomad_client_configuration:
enabled: "{{ 'nomad_clients' in group_names | bool }}" enabled: "{{ 'nomad_clients' in group_names | bool }}"
state_dir: "{{ hashicorp_nomad_data_dir }}/client" state_dir: "{{ hashicorp_nomad_data_dir }}/client"
hashicorp_nomad_cni_plugins_install: true
hashicorp_nomad_start_service: true hashicorp_nomad_start_service: true
hashicorp_nomad_service_name: "nomad"
hashicorp_nomad_cni_plugins_install: true
hashicorp_nomad_cni_plugins_version: latest hashicorp_nomad_cni_plugins_version: latest
hashicorp_nomad_cni_plugins_install_path: /opt/cni/bin hashicorp_nomad_cni_plugins_install_path: /opt/cni/bin
hashicorp_nomad_version: latest hashicorp_nomad_version: latest

View File

@ -35,7 +35,7 @@ vault_external_backend_servers: |
# vault internal tls # # vault internal tls #
###################### ######################
vault_certificates_directory: "{{ hashi_vault_config_dir }}/tls" vault_certificates_directory: "{{ hashicorp_vault_config_dir }}/tls"
vault_certificates_extra_files_dir: vault_certificates_extra_files_dir:
- src: "{{ sub_configuration_directories['certificates'] }}/vault/{{ inventory_hostname }}" - src: "{{ sub_configuration_directories['certificates'] }}/vault/{{ inventory_hostname }}"
dest: "{{ vault_certificates_directory }}" dest: "{{ vault_certificates_directory }}"
@ -44,7 +44,7 @@ vault_certificates_extra_files_dir:
# vault plugins # # vault plugins #
################# #################
vault_plugin_directory: "{{ hashi_vault_config_dir }}/plugin" vault_plugin_directory: "{{ hashicorp_vault_config_dir }}/plugin"
vault_plugin_extra_files_dir: vault_plugin_extra_files_dir:
- src: "{{ sub_configuration_directories['vault_servers'] }}/plugin" - src: "{{ sub_configuration_directories['vault_servers'] }}/plugin"
dest: "{{ vault_plugin_directory }}" dest: "{{ vault_plugin_directory }}"
@ -62,24 +62,24 @@ vault_service_registration_policy: |
# vault role variables # # vault role variables #
######################## ########################
hashi_vault_start_service: true hashicorp_vault_start_service: true
hashi_vault_version: "{{ vault_versions[deployment_method] }}" hashicorp_vault_service_name: "vault"
hashi_vault_deploy_method: "{{ deployment_method }}" hashicorp_vault_version: "{{ vault_version }}"
hashi_vault_env_variables: {} hashicorp_vault_env_variables: {}
hashi_vault_config_dir: "/etc/vault.d" hashicorp_vault_config_dir: "/etc/vault.d"
hashi_vault_data_dir: "/opt/vault" hashicorp_vault_data_dir: "/opt/vault"
hashi_vault_extra_files: true hashicorp_vault_extra_files: true
hashi_vault_extra_files_list: "{{ ([] + hashicorp_vault_extra_files_list: "{{ ([] +
(vault_certificates_extra_files_dir if vault_enable_tls else []) + (vault_certificates_extra_files_dir if vault_enable_tls else []) +
(vault_plugin_extra_files_dir if vault_enable_plugins else []) + (vault_plugin_extra_files_dir if vault_enable_plugins else []) +
vault_extra_files_list) vault_extra_files_list)
| unique | unique
| sort | sort
}}" }}"
hashi_vault_extra_files_src: "{{ sub_configuration_directories.vault_servers }}/config" hashicorp_vault_extra_files_src: "{{ sub_configuration_directories.vault_servers }}/config"
hashi_vault_extra_files_dst: "{{ hashi_vault_config_dir }}/config" hashicorp_vault_extra_files_dst: "{{ hashicorp_vault_config_dir }}/config"
hashi_vault_extra_container_volumes: "{{ default_container_extra_volumes | union(extra_vault_container_volumes) | unique | sort }}" hashicorp_vault_extra_container_volumes: "{{ default_container_extra_volumes | union(extra_vault_container_volumes) | unique | sort }}"
hashi_vault_configuration: hashicorp_vault_configuration:
cluster_name: "{{ vault_cluster_name }}" cluster_name: "{{ vault_cluster_name }}"
cluster_addr: "{{ 'https' if vault_enable_tls else 'http'}}://{{ api_interface_address }}:8201" cluster_addr: "{{ 'https' if vault_enable_tls else 'http'}}://{{ api_interface_address }}:8201"
api_addr: "{{ 'https' if vault_enable_tls else 'http'}}://{{ api_interface_address }}:8200" api_addr: "{{ 'https' if vault_enable_tls else 'http'}}://{{ api_interface_address }}:8200"

View File

@ -288,20 +288,3 @@
that: that:
- "ansible_facts.service_mgr == 'systemd'" - "ansible_facts.service_mgr == 'systemd'"
when: inventory_hostname in groups['common'] when: inventory_hostname in groups['common']
- name: "Checking that python SDK for docker is installed"
when: deployment_method == 'docker'
vars:
wanted_docker_sdk_package: "python3-docker"
block:
- name: "Get packages facts"
ansible.builtin.package_facts:
manager: auto
- name: "Checking that python SDK for docker is installed"
ansible.builtin.assert:
that:
- "wanted_docker_sdk_package in ansible_facts.packages"
fail_msg: >-
The python sdk for docker is really out of date, you need to install
a more recent version of it in order to use this tool.

View File

@ -27,7 +27,7 @@
run_once: true run_once: true
delegate_to: "{{ groups['consul_servers'] | first }}" delegate_to: "{{ groups['consul_servers'] | first }}"
register: _consul_init_secret register: _consul_init_secret
when: hashi_consul_configuration.acl.enabled when: hashicorp_consul_configuration.acl.enabled
- name: "Create consul agents token" - name: "Create consul agents token"
when: when:
@ -63,9 +63,9 @@
state: present state: present
register: _consul_agent_token register: _consul_agent_token
- name: "Restart consul service" - name: "Restart consul service" # noqa: no-handler
ansible.builtin.service: ansible.builtin.service:
name: "consul_container" name: "{{ hashicorp_consul_service_name }}"
state: restarted state: restarted
throttle: 1 throttle: 1
when: _consul_agent_token.changed when: _consul_agent_token.changed

View File

@ -2,22 +2,22 @@
# hashistack configuration merging for consul # hashistack configuration merging for consul
- name: "Consul | Merge stringified configuration" - name: "Consul | Merge stringified configuration"
vars: vars:
_config_to_merge: "{{ hashi_consul_configuration_string }}" _config_to_merge: "{{ hashicorp_consul_configuration_string }}"
ansible.builtin.set_fact: ansible.builtin.set_fact:
hashi_consul_configuration: "{{ hashicorp_consul_configuration: "{{
hashi_consul_configuration | hashicorp_consul_configuration |
combine(_config_to_merge|from_yaml, recursive=true) combine(_config_to_merge|from_yaml, recursive=true)
}}" }}"
when: when:
- hashi_consul_configuration_string is defined - hashicorp_consul_configuration_string is defined
- "'consul_servers' in group_names" - "'consul_servers' in group_names"
- name: "Consul | Merge addresses configuration" - name: "Consul | Merge addresses configuration"
vars: vars:
_config_to_merge: "{{ consul_address_configuration }}" _config_to_merge: "{{ consul_address_configuration }}"
ansible.builtin.set_fact: ansible.builtin.set_fact:
hashi_consul_configuration: "{{ hashicorp_consul_configuration: "{{
hashi_consul_configuration | hashicorp_consul_configuration |
combine(_config_to_merge, recursive=true) combine(_config_to_merge, recursive=true)
}}" }}"
when: consul_address_configuration is defined when: consul_address_configuration is defined
@ -27,8 +27,8 @@
_config_to_merge: _config_to_merge:
tls: "{{ consul_tls_configuration }}" tls: "{{ consul_tls_configuration }}"
ansible.builtin.set_fact: ansible.builtin.set_fact:
hashi_consul_configuration: "{{ hashicorp_consul_configuration: "{{
hashi_consul_configuration | hashicorp_consul_configuration |
combine(_config_to_merge, recursive=true) combine(_config_to_merge, recursive=true)
}}" }}"
when: consul_enable_tls when: consul_enable_tls
@ -43,14 +43,14 @@
tokens: tokens:
agent: "{{ _credentials.consul.tokens.agent.secret_id }}" agent: "{{ _credentials.consul.tokens.agent.secret_id }}"
ansible.builtin.set_fact: ansible.builtin.set_fact:
hashi_consul_configuration: "{{ hashi_consul_configuration | default({}) | combine(_config_to_merge, recursive=true) }}" hashicorp_consul_configuration: "{{ hashicorp_consul_configuration | default({}) | combine(_config_to_merge, recursive=true) }}"
- name: "Consul | Merge extra configuration settings" - name: "Consul | Merge extra configuration settings"
vars: vars:
_config_to_merge: "{{ consul_extra_configuration }}" _config_to_merge: "{{ consul_extra_configuration }}"
ansible.builtin.set_fact: ansible.builtin.set_fact:
hashi_consul_configuration: "{{ hashicorp_consul_configuration: "{{
hashi_consul_configuration | hashicorp_consul_configuration |
combine(_config_to_merge, recursive=true) combine(_config_to_merge, recursive=true)
}}" }}"
when: consul_extra_configuration is defined when: consul_extra_configuration is defined

View File

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/bash
set -e set -e
function do_ping() { function do_ping() {

View File

@ -44,7 +44,7 @@
- name: "Initialize vault cluster" # noqa: run-once[task] - name: "Initialize vault cluster" # noqa: run-once[task]
ednz_cloud.hashistack.vault_init: ednz_cloud.hashistack.vault_init:
api_url: "{{ hashi_vault_configuration['api_addr'] }}" api_url: "{{ hashicorp_vault_configuration['api_addr'] }}"
tls_verify: "{{ vault_tls_verify }}" tls_verify: "{{ vault_tls_verify }}"
key_shares: "{{ vault_seal_configuration['key_shares'] }}" key_shares: "{{ vault_seal_configuration['key_shares'] }}"
key_threshold: "{{ vault_seal_configuration['key_threshold'] }}" key_threshold: "{{ vault_seal_configuration['key_threshold'] }}"
@ -77,7 +77,7 @@
- name: "Unseal the bootstrap node" # noqa: run-once[task] no-handler - name: "Unseal the bootstrap node" # noqa: run-once[task] no-handler
ednz_cloud.hashistack.vault_unseal: ednz_cloud.hashistack.vault_unseal:
api_url: "{{ hashi_vault_configuration['api_addr'] }}" api_url: "{{ hashicorp_vault_configuration['api_addr'] }}"
tls_verify: "{{ vault_tls_verify }}" tls_verify: "{{ vault_tls_verify }}"
key_shares: "{{ _credentials.vault['keys'] }}" key_shares: "{{ _credentials.vault['keys'] }}"
run_once: true run_once: true
@ -87,7 +87,7 @@
- name: "Unseal all vault nodes" - name: "Unseal all vault nodes"
ednz_cloud.hashistack.vault_unseal: ednz_cloud.hashistack.vault_unseal:
api_url: "{{ hashi_vault_configuration['api_addr'] }}" api_url: "{{ hashicorp_vault_configuration['api_addr'] }}"
tls_verify: "{{ vault_tls_verify }}" tls_verify: "{{ vault_tls_verify }}"
key_shares: "{{ _credentials.vault['keys'] }}" key_shares: "{{ _credentials.vault['keys'] }}"
retries: 5 retries: 5

View File

@ -13,8 +13,8 @@
_config_to_merge: _config_to_merge:
service_registration: "{{ vault_service_registration_configuration }}" service_registration: "{{ vault_service_registration_configuration }}"
ansible.builtin.set_fact: ansible.builtin.set_fact:
hashi_vault_configuration: "{{ hashicorp_vault_configuration: "{{
hashi_vault_configuration | hashicorp_vault_configuration |
combine(_config_to_merge) combine(_config_to_merge)
}}" }}"
when: vault_enable_service_registration when: vault_enable_service_registration
@ -24,8 +24,8 @@
_config_to_merge: _config_to_merge:
plugin_directory: "{{ vault_plugin_directory }}" plugin_directory: "{{ vault_plugin_directory }}"
ansible.builtin.set_fact: ansible.builtin.set_fact:
hashi_vault_configuration: "{{ hashicorp_vault_configuration: "{{
hashi_vault_configuration | hashicorp_vault_configuration |
combine(_config_to_merge) combine(_config_to_merge)
}}" }}"
when: vault_enable_plugins when: vault_enable_plugins
@ -34,8 +34,8 @@
vars: vars:
_config_to_merge: "{{ vault_logging_configuration }}" _config_to_merge: "{{ vault_logging_configuration }}"
ansible.builtin.set_fact: ansible.builtin.set_fact:
hashi_vault_configuration: "{{ hashicorp_vault_configuration: "{{
hashi_vault_configuration | hashicorp_vault_configuration |
combine(_config_to_merge) combine(_config_to_merge)
}}" }}"
when: vault_enable_log_to_file when: vault_enable_log_to_file
@ -44,8 +44,8 @@
vars: vars:
_config_to_merge: "{{ vault_extra_configuration }}" _config_to_merge: "{{ vault_extra_configuration }}"
ansible.builtin.set_fact: ansible.builtin.set_fact:
hashi_vault_configuration: "{{ hashicorp_vault_configuration: "{{
hashi_vault_configuration | hashicorp_vault_configuration |
combine(_config_to_merge) combine(_config_to_merge)
}}" }}"
when: vault_extra_configuration is defined when: vault_extra_configuration is defined

View File

@ -24,10 +24,10 @@ roles:
version: main version: main
- name: ednz_cloud.hashicorp_nomad - name: ednz_cloud.hashicorp_nomad
src: https://github.com/ednz-cloud/hashicorp_nomad.git src: https://github.com/ednz-cloud/hashicorp_nomad.git
version: v0.1.0 version: v0.4.0
- name: ednz_cloud.hashicorp_consul - name: ednz_cloud.hashicorp_consul
src: https://github.com/ednz-cloud/hashicorp_consul.git src: https://github.com/ednz-cloud/hashicorp_consul.git
version: main version: v0.2.0
- name: ednz_cloud.hashicorp_vault - name: ednz_cloud.hashicorp_vault
src: https://github.com/ednz-cloud/hashicorp_vault.git src: https://github.com/ednz-cloud/hashicorp_vault.git
version: main version: v0.2.0