diff --git a/hieradata/cluster/antu.yaml b/hieradata/cluster/antu.yaml new file mode 100644 index 0000000000..522f9215fc --- /dev/null +++ b/hieradata/cluster/antu.yaml @@ -0,0 +1,37 @@ +--- +clustershell::groupmembers: + antu: + group: "antu" + member: "antu[01-04]" + +nm::connections: + enp65s0f0.2130: + content: + connection: + id: "enp65s0f0.2130" + uuid: "e74daaad-4d73-4015-bb26-83c460ddf572" + type: "vlan" + interface-name: "enp65s0f0.2130" + master: "br2130" + slave-type: "bridge" + ethernet: {} + vlan: + flags: "1" + id: "2130" + parent: "enp65s0f0" + bridge-port: {} + br2130: + content: + connection: + id: "br2130" + uuid: "7dd05d98-a9c3-4569-a7c3-00316b13c0eb" + type: "bridge" + interface-name: "br2130" + ethernet: {} + bridge: + stp: "false" + ipv4: + method: "disabled" + ipv6: + method: "disabled" + proxy: {} diff --git a/hieradata/cluster/antu/role/rke.yaml b/hieradata/cluster/antu/role/rke.yaml new file mode 100644 index 0000000000..275dc16ae8 --- /dev/null +++ b/hieradata/cluster/antu/role/rke.yaml @@ -0,0 +1,4 @@ +--- +classes: + - "profile::core::sysctl::rp_filter" +profile::core::sysctl::rp_filter::enable: false diff --git a/hieradata/site/ls/variant/1115s.yaml b/hieradata/site/ls/variant/1115s.yaml new file mode 100644 index 0000000000..a563632737 --- /dev/null +++ b/hieradata/site/ls/variant/1115s.yaml @@ -0,0 +1,40 @@ +--- +nm::connections: + enp12s0f4u1u2c2: + content: + connection: + id: "enp12s0f4u1u2c2" + uuid: "f330f829-20cc-b829-67b0-18086a5fe6fa" + type: "ethernet" + autoconnect: "false" + interface-name: "enp12s0f4u1u2c2" + ethernet: {} + ipv4: + method: "disabled" + ipv6: + method: "disabled" + enp65s0f0: + content: + connection: + id: "enp65s0f0" + uuid: "de9904c8-9577-1a17-36b1-34b94132f06a" + type: "ethernet" + autoconnect: "false" + interface-name: "enp65s0f0" + ethernet: {} + ipv4: + method: "disabled" + ipv6: + method: "disabled" + enp65s0f1: + content: + connection: + id: "enp65s0f1" + uuid: "688bf5bf-d649-34b4-15eb-b07c50ac43f8" + type: "ethernet" + interface-name: "enp65s0f1" + ethernet: {} + ipv4: + method: "auto" + ipv6: + method: "disabled" diff --git a/site/profile/manifests/core/hardware.pp b/site/profile/manifests/core/hardware.pp index 614220b193..7d1956dfd3 100644 --- a/site/profile/manifests/core/hardware.pp +++ b/site/profile/manifests/core/hardware.pp @@ -42,8 +42,10 @@ /SSG-640SP-E1CR90/: { include ipmi } + /1115HS-TNR/: { + include ipmi + } } - # On SM H12SSL-NT dmi.product.name == "Super Server", which isn't very helpful case fact('dmi.board.product') { /H12SSL-NT/: { diff --git a/spec/hosts/nodes/antu01.ls.lsst.org_spec.rb b/spec/hosts/nodes/antu01.ls.lsst.org_spec.rb new file mode 100644 index 0000000000..a2ce40221b --- /dev/null +++ b/spec/hosts/nodes/antu01.ls.lsst.org_spec.rb @@ -0,0 +1,96 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe 'antu01.ls.lsst.org', :sitepp do + on_supported_os.each do |os, os_facts| + next unless os =~ %r{almalinux-9-x86_64} + + context "on #{os}" do + let(:facts) do + override_facts(os_facts, + fqdn: 'antu01.ls.lsst.org', + is_virtual: false, + virtual: 'physical', + dmi: { + 'product' => { + 'name' => 'AS -1115HS-TNR', + }, + }) + end + let(:node_params) do + { + role: 'rke', + site: 'ls', + cluster: 'antu', + variant: '1115s', + } + end + + it { is_expected.to compile.with_all_deps } + + include_examples 'baremetal' + include_context 'with nm interface' + include_examples 'docker', docker_version: '24.0.9' + + it do + is_expected.to contain_class('profile::core::sysctl::rp_filter').with_enable(false) + end + + it do + is_expected.to contain_class('clustershell').with( + groupmembers: { + 'antu' => { + 'group' => 'antu', + 'member' => 'antu[01-04]', + }, + }, + ) + end + + it do + is_expected.to contain_class('rke').with( + version: '1.4.6', + checksum: '12d8fee6f759eac64b3981ef2822353993328f2f839ac88b3739bfec0b9d818c', + ) + end + + it { is_expected.to have_nm__connection_resource_count(5) } + + %w[ + enp12s0f4u1u2c2 + enp65s0f0 + ].each do |i| + context "with #{i}" do + let(:interface) { i } + + it_behaves_like 'nm disabled interface' + end + end + + context 'with enp65s0f1' do + let(:interface) { 'enp65s0f1' } + + it_behaves_like 'nm enabled interface' + it_behaves_like 'nm dhcp interface' + it_behaves_like 'nm ethernet interface' + end + + context 'with enp65s0f0.2130' do + let(:interface) { 'enp65s0f0.2130' } + + it_behaves_like 'nm enabled interface' + it_behaves_like 'nm vlan interface', id: 2130, parent: 'enp65s0f0' + it_behaves_like 'nm bridge slave interface', master: 'br2130' + end + + context 'with br2130' do + let(:interface) { 'br2130' } + + it_behaves_like 'nm enabled interface' + it_behaves_like 'nm no-ip interface' + it_behaves_like 'nm bridge interface' + end + end # on os + end # on_supported_os +end