summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/kubernetes/config_maps/aws_node_auth_spec.rb
blob: 9c3e41dfbffb0f5aa4b36a70c240e7f34077389e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# frozen_string_literal: true

require 'spec_helper'

RSpec.describe Gitlab::Kubernetes::ConfigMaps::AwsNodeAuth do
  describe '#generate' do
    let(:role) { 'arn:aws:iam::123456789012:role/node-instance-role' }

    let(:name) { 'aws-auth' }
    let(:namespace) { 'kube-system' }
    let(:role_config) do
      [{
        'rolearn' => role,
        'username' => 'system:node:{{EC2PrivateDNSName}}',
        'groups' => [
          'system:bootstrappers',
          'system:nodes'
        ]
      }]
    end

    subject { described_class.new(role).generate }

    it 'builds a Kubeclient Resource' do
      expect(subject).to be_a(Kubeclient::Resource)

      expect(subject.metadata.name).to eq(name)
      expect(subject.metadata.namespace).to eq(namespace)

      expect(YAML.safe_load(subject.data.mapRoles)).to eq(role_config)
    end
  end
end