Projet

Général

Profil

Paste
Télécharger au format
Statistiques
| Branche: | Révision:

root / spec / classes / rules / nomad_spec.rb @ 5dedf86c

Historique | Voir | Annoter | Télécharger (4,08 ko)

1
# frozen_string_literal: true
2

    
3
require 'spec_helper'
4

    
5
describe 'nftables::rules::nomad' do
6
  on_supported_os.each do |os, os_facts|
7
    context "on #{os}" do
8
      let(:facts) { os_facts }
9

    
10
      context 'default options' do
11
        it { is_expected.to compile }
12

    
13
        it {
14
          is_expected.to contain_nftables__set('nomad_ip').with(
15
            {
16
              type: 'ipv4_addr',
17
              elements: ['127.0.0.1'],
18
            }
19
          )
20
        }
21

    
22
        it {
23
          is_expected.to contain_nftables__set('nomad_ip6').with(
24
            {
25
              type: 'ipv6_addr',
26
              elements: ['::1'],
27
            }
28
          )
29
        }
30

    
31
        it {
32
          is_expected.to contain_nftables__rule('default_in-nomad_http').with_content('tcp dport 4646')
33
          is_expected.to contain_nftables__rule('default_in-nomad_rpc_ip6').with_content('tcp dport 4647 ip6 saddr @nomad_ip6 accept')
34
          is_expected.to contain_nftables__rule('default_in-nomad_rpc_ip').with_content('tcp dport 4647 ip saddr @nomad_ip accept')
35
          is_expected.to contain_nftables__rule('default_in-nomad_serf_tcp_ip6').with_content('tcp dport 4648 ip6 saddr @nomad_ip6 accept')
36
          is_expected.to contain_nftables__rule('default_in-nomad_serf_tcp_ip').with_content('tcp dport 4648 ip saddr @nomad_ip accept')
37
          is_expected.to contain_nftables__rule('default_in-nomad_serf_udp_ip6').with_content('udp dport 4648 ip6 saddr @nomad_ip6 accept')
38
          is_expected.to contain_nftables__rule('default_in-nomad_serf_udp_ip').with_content('udp dport 4648 ip saddr @nomad_ip accept')
39
        }
40
      end
41

    
42
      context 'with ports set' do
43
        let(:params) do
44
          {
45
            http: 1000,
46
            rpc: 2000,
47
            serf: 3000,
48
          }
49
        end
50

    
51
        it { is_expected.to compile }
52

    
53
        it {
54
          is_expected.to contain_nftables__set('nomad_ip')
55
          is_expected.to contain_nftables__set('nomad_ip6')
56
        }
57

    
58
        it {
59
          is_expected.to contain_nftables__rule('default_in-nomad_http').with_content('tcp dport 1000')
60
          is_expected.to contain_nftables__rule('default_in-nomad_rpc_ip6').with_content('tcp dport 2000 ip6 saddr @nomad_ip6 accept')
61
          is_expected.to contain_nftables__rule('default_in-nomad_rpc_ip').with_content('tcp dport 2000 ip saddr @nomad_ip accept')
62
          is_expected.to contain_nftables__rule('default_in-nomad_serf_tcp_ip6').with_content('tcp dport 3000 ip6 saddr @nomad_ip6 accept')
63
          is_expected.to contain_nftables__rule('default_in-nomad_serf_tcp_ip').with_content('tcp dport 3000 ip saddr @nomad_ip accept')
64
          is_expected.to contain_nftables__rule('default_in-nomad_serf_udp_ip6').with_content('udp dport 3000 ip6 saddr @nomad_ip6 accept')
65
          is_expected.to contain_nftables__rule('default_in-nomad_serf_udp_ip').with_content('udp dport 3000 ip saddr @nomad_ip accept')
66
        }
67
      end
68

    
69
      context 'with ipv4 hosts only' do
70
        let(:params) do
71
          {
72
            cluster_elements: ['127.0.0.1', '127.0.0.2']
73
          }
74
        end
75

    
76
        it {
77
          is_expected.to contain_nftables__set('nomad_ip').with(
78
            {
79
              type: 'ipv4_addr',
80
              elements: ['127.0.0.1', '127.0.0.2'],
81
            }
82
          )
83
        }
84

    
85
        it { is_expected.not_to contain_nftables__set('nomad_ip6') }
86

    
87
        it {
88
          is_expected.to contain_nftables__rule('default_in-nomad_http').with_content('tcp dport 4646')
89
          is_expected.not_to contain_nftables__rule('default_in-nomad_rpc_ip6')
90
          is_expected.to contain_nftables__rule('default_in-nomad_rpc_ip').with_content('tcp dport 4647 ip saddr @nomad_ip accept')
91
          is_expected.not_to contain_nftables__rule('default_in-nomad_serf_tcp_ip6')
92
          is_expected.to contain_nftables__rule('default_in-nomad_serf_tcp_ip').with_content('tcp dport 4648 ip saddr @nomad_ip accept')
93
          is_expected.not_to contain_nftables__rule('default_in-nomad_serf_udp_ip6')
94
          is_expected.to contain_nftables__rule('default_in-nomad_serf_udp_ip').with_content('udp dport 4648 ip saddr @nomad_ip accept')
95
        }
96
      end
97
    end
98
  end
99
end