Compare commits

...

5 Commits

Author SHA1 Message Date
unkin-agent 2651449d57 Merge remote-tracking branch 'origin/benvin/consul-server-tls-fed' into benvin/consul-mesh-gateway
ci/woodpecker/pr/ruby-validate Pipeline was successful
ci/woodpecker/pr/puppet-lint Pipeline was successful
ci/woodpecker/pr/yamllint Pipeline was successful
ci/woodpecker/pr/bolt-validate Pipeline was successful
ci/woodpecker/pr/erb-validate Pipeline was successful
ci/woodpecker/pr/epp-validate Pipeline was successful
ci/woodpecker/pr/ruby-check Pipeline was successful
ci/woodpecker/pr/puppet-validate Pipeline was successful
2026-10-07 11:58:26 +11:00
unkin-agent 674f51a44b Add consul grpc_tls port and drop drw1 WAN retry join
ci/woodpecker/pr/ruby-validate Pipeline was successful
ci/woodpecker/pr/puppet-lint Pipeline was successful
ci/woodpecker/pr/erb-validate Pipeline was successful
ci/woodpecker/pr/bolt-validate Pipeline was successful
ci/woodpecker/pr/yamllint Pipeline was successful
ci/woodpecker/pr/epp-validate Pipeline was successful
ci/woodpecker/pr/ruby-check Pipeline was successful
ci/woodpecker/pr/puppet-validate Pipeline was successful
2026-10-07 11:54:31 +11:00
unkin-agent 3e90f5907c Add consul mesh gateway on consul servers
ci/woodpecker/pr/puppet-lint Pipeline was successful
ci/woodpecker/pr/erb-validate Pipeline was successful
ci/woodpecker/pr/ruby-validate Pipeline was successful
ci/woodpecker/pr/bolt-validate Pipeline was successful
ci/woodpecker/pr/epp-validate Pipeline was successful
ci/woodpecker/pr/yamllint Pipeline was successful
ci/woodpecker/pr/ruby-check Pipeline was successful
ci/woodpecker/pr/puppet-validate Pipeline was successful
2026-10-07 11:54:02 +11:00
unkin-agent 9d25ba1d9a Enable TLS and mesh gateway WAN federation on consul servers
ci/woodpecker/pr/erb-validate Pipeline was successful
ci/woodpecker/pr/ruby-validate Pipeline was successful
ci/woodpecker/pr/bolt-validate Pipeline was successful
ci/woodpecker/pr/puppet-lint Pipeline was successful
ci/woodpecker/pr/yamllint Pipeline was successful
ci/woodpecker/pr/epp-validate Pipeline was successful
ci/woodpecker/pr/ruby-check Pipeline was successful
ci/woodpecker/pr/puppet-validate Pipeline was successful
2026-10-07 11:48:29 +11:00
unkin-agent f35b385714 Add consul server federation SANs to consul server certs
ci/woodpecker/pr/yamllint Pipeline was successful
ci/woodpecker/pr/ruby-validate Pipeline was successful
ci/woodpecker/pr/puppet-lint Pipeline was successful
ci/woodpecker/pr/erb-validate Pipeline was successful
ci/woodpecker/pr/bolt-validate Pipeline was successful
ci/woodpecker/pr/epp-validate Pipeline was successful
ci/woodpecker/pr/puppet-validate Pipeline was successful
ci/woodpecker/pr/ruby-check Pipeline was successful
2026-10-07 11:46:32 +11:00
6 changed files with 79 additions and 3 deletions
@@ -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
+24
View File
@@ -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],
}
}
+4 -1
View 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
} }
} }