Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2651449d57 | |||
| 674f51a44b | |||
| 3e90f5907c | |||
| 9d25ba1d9a | |||
| f35b385714 |
@@ -2,6 +2,6 @@
|
|||||||
profiles::consul::server::bootstrap_count: 3
|
profiles::consul::server::bootstrap_count: 3
|
||||||
profiles::consul::server::raft_multiplier: 10
|
profiles::consul::server::raft_multiplier: 10
|
||||||
profiles::consul::server::primary_datacenter: 'au-syd1'
|
profiles::consul::server::primary_datacenter: 'au-syd1'
|
||||||
profiles::consul::server::join_remote_regions: true
|
profiles::consul::server::join_remote_regions: false
|
||||||
profiles::consul::server::remote_regions:
|
profiles::consul::server::remote_regions:
|
||||||
- syd1
|
- syd1
|
||||||
|
|||||||
@@ -2,6 +2,6 @@
|
|||||||
profiles::consul::server::bootstrap_count: 3
|
profiles::consul::server::bootstrap_count: 3
|
||||||
profiles::consul::server::raft_multiplier: 10
|
profiles::consul::server::raft_multiplier: 10
|
||||||
profiles::consul::server::primary_datacenter: 'au-syd1'
|
profiles::consul::server::primary_datacenter: 'au-syd1'
|
||||||
profiles::consul::server::join_remote_regions: true
|
profiles::consul::server::join_remote_regions: false
|
||||||
profiles::consul::server::remote_regions:
|
profiles::consul::server::remote_regions:
|
||||||
- drw1
|
- drw1
|
||||||
|
|||||||
@@ -13,9 +13,19 @@ profiles::consul::server::addresses:
|
|||||||
grpc_tls: "%{::networking.ip}"
|
grpc_tls: "%{::networking.ip}"
|
||||||
profiles::consul::server::ports:
|
profiles::consul::server::ports:
|
||||||
grpc: 8502
|
grpc: 8502
|
||||||
|
grpc_tls: 8503
|
||||||
dns: 8600
|
dns: 8600
|
||||||
http: 8500
|
http: 8500
|
||||||
https: -1
|
https: -1
|
||||||
|
profiles::consul::server::tls:
|
||||||
|
defaults:
|
||||||
|
ca_file: /etc/pki/ca-trust/source/anchors/vaultcaroot.pem
|
||||||
|
cert_file: /etc/pki/tls/vault/full_chain.crt
|
||||||
|
key_file: /etc/pki/tls/vault/private.key
|
||||||
|
internal_rpc:
|
||||||
|
verify_incoming: false
|
||||||
|
verify_outgoing: false
|
||||||
|
verify_server_hostname: false
|
||||||
profiles::consul::server::acl:
|
profiles::consul::server::acl:
|
||||||
enabled: true
|
enabled: true
|
||||||
default_policy: 'deny'
|
default_policy: 'deny'
|
||||||
@@ -31,6 +41,8 @@ profiles::pki::vault::alt_names:
|
|||||||
- consul.service.consul
|
- consul.service.consul
|
||||||
- "consul.service.%{facts.country}-%{facts.region}.consul"
|
- "consul.service.%{facts.country}-%{facts.region}.consul"
|
||||||
- consul
|
- consul
|
||||||
|
- "server.%{facts.country}-%{facts.region}.consul"
|
||||||
|
- "%{facts.networking.fqdn}.server.%{facts.country}-%{facts.region}.consul"
|
||||||
|
|
||||||
# manage a simple nginx reverse proxy
|
# manage a simple nginx reverse proxy
|
||||||
profiles::nginx::simpleproxy::nginx_vhost: 'consul.service.consul'
|
profiles::nginx::simpleproxy::nginx_vhost: 'consul.service.consul'
|
||||||
@@ -46,6 +58,18 @@ profiles::consul::client::node_rules:
|
|||||||
- resource: service
|
- resource: service
|
||||||
segment: frr_exporter
|
segment: frr_exporter
|
||||||
disposition: write
|
disposition: write
|
||||||
|
- resource: service
|
||||||
|
segment: mesh-gateway
|
||||||
|
disposition: write
|
||||||
|
- resource: service_prefix
|
||||||
|
segment: ''
|
||||||
|
disposition: read
|
||||||
|
- resource: node_prefix
|
||||||
|
segment: ''
|
||||||
|
disposition: read
|
||||||
|
- resource: agent_prefix
|
||||||
|
segment: ''
|
||||||
|
disposition: read
|
||||||
profiles::consul::prepared_query::rules:
|
profiles::consul::prepared_query::rules:
|
||||||
vault:
|
vault:
|
||||||
ensure: 'present'
|
ensure: 'present'
|
||||||
|
|||||||
@@ -0,0 +1,48 @@
|
|||||||
|
# profiles::consul::mesh_gateway
|
||||||
|
class profiles::consul::mesh_gateway (
|
||||||
|
Stdlib::IP::Address $address = $facts['networking']['ip'],
|
||||||
|
Stdlib::Port $port = 8443,
|
||||||
|
Stdlib::Port $http_port = 8500,
|
||||||
|
Stdlib::Port $grpc_port = 8502,
|
||||||
|
Stdlib::Absolutepath $token_file = '/etc/consul.d/mesh-gateway.token',
|
||||||
|
) {
|
||||||
|
include profiles::consul::client
|
||||||
|
|
||||||
|
package { 'envoy':
|
||||||
|
ensure => installed,
|
||||||
|
}
|
||||||
|
|
||||||
|
file { $token_file:
|
||||||
|
ensure => file,
|
||||||
|
owner => 'consul',
|
||||||
|
group => 'consul',
|
||||||
|
mode => '0600',
|
||||||
|
content => Sensitive(fqdn_uuid("${facts['networking']['fqdn']}-${profiles::consul::client::secret_id_salt}")),
|
||||||
|
}
|
||||||
|
|
||||||
|
systemd::unit_file { 'consul-mesh-gateway.service':
|
||||||
|
enable => true,
|
||||||
|
active => true,
|
||||||
|
content => @("UNIT"),
|
||||||
|
[Unit]
|
||||||
|
Description=Consul mesh gateway (envoy)
|
||||||
|
Requires=consul.service
|
||||||
|
After=consul.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=consul
|
||||||
|
Group=consul
|
||||||
|
ExecStart=/usr/bin/consul connect envoy -gateway=mesh -register -service=mesh-gateway -expose-servers \
|
||||||
|
-address=${address}:${port} -wan-address=${address}:${port} \
|
||||||
|
-http-addr=http://${address}:${http_port} -grpc-addr=http://${address}:${grpc_port} \
|
||||||
|
-token-file=${token_file}
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=5
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
| UNIT
|
||||||
|
require => Package['envoy'],
|
||||||
|
subscribe => File[$token_file],
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -11,6 +11,7 @@ class profiles::consul::server (
|
|||||||
Hash $acl = {},
|
Hash $acl = {},
|
||||||
Hash $ports = {},
|
Hash $ports = {},
|
||||||
Hash $addresses = {},
|
Hash $addresses = {},
|
||||||
|
Hash $tls = {},
|
||||||
Boolean $members_lookup = false,
|
Boolean $members_lookup = false,
|
||||||
String $members_role = undef,
|
String $members_role = undef,
|
||||||
Array $consul_servers = [],
|
Array $consul_servers = [],
|
||||||
@@ -112,6 +113,8 @@ class profiles::consul::server (
|
|||||||
'acl' => $acl,
|
'acl' => $acl,
|
||||||
'ports' => $ports,
|
'ports' => $ports,
|
||||||
'addresses' => $addresses,
|
'addresses' => $addresses,
|
||||||
|
'tls' => $tls,
|
||||||
|
'auto_reload_config' => true,
|
||||||
'disable_remote_exec' => $disable_remote_exec,
|
'disable_remote_exec' => $disable_remote_exec,
|
||||||
'disable_update_check' => $disable_update_check,
|
'disable_update_check' => $disable_update_check,
|
||||||
'domain' => $domain,
|
'domain' => $domain,
|
||||||
@@ -129,7 +132,7 @@ class profiles::consul::server (
|
|||||||
'advertise_addr' => $advertise_addr,
|
'advertise_addr' => $advertise_addr,
|
||||||
'retry_join' => $servers_array,
|
'retry_join' => $servers_array,
|
||||||
'retry_join_wan' => $remote_servers_array,
|
'retry_join_wan' => $remote_servers_array,
|
||||||
'connect' => { 'enabled' => true },
|
'connect' => { 'enabled' => true, 'enable_mesh_gateway_wan_federation' => true },
|
||||||
'recursors' => ['198.18.19.16'],
|
'recursors' => ['198.18.19.16'],
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,5 +8,6 @@ class roles::infra::storage::consul {
|
|||||||
include profiles::base
|
include profiles::base
|
||||||
include profiles::base::datavol
|
include profiles::base::datavol
|
||||||
include profiles::consul::server
|
include profiles::consul::server
|
||||||
|
include profiles::consul::mesh_gateway
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user