summaryrefslogtreecommitdiff
path: root/lib/gitlab/kubernetes/kubeconfig/entry/cluster.rb
blob: 836517d4e1f622ff14d5b52630c2c3a056c30290 (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
34
35
36
37
38
39
40
41
42
43
# frozen_string_literal: true

module Gitlab
  module Kubernetes
    module Kubeconfig
      module Entry
        class Cluster
          attr_reader :name

          def initialize(name:, url:, ca_pem: nil)
            @name = name
            @url = url
            @ca_pem = ca_pem
          end

          def to_h
            {
              name: name,
              cluster: cluster
            }
          end

          private

          attr_reader :url, :ca_pem

          def cluster
            {
              server: url,
              'certificate-authority-data': certificate_authority_data
            }.compact
          end

          def certificate_authority_data
            return unless ca_pem.present?

            Base64.strict_encode64(ca_pem)
          end
        end
      end
    end
  end
end