1# frozen_string_literal: true
2
3module Gitlab
4  module Kubernetes
5    module Kubeconfig
6      module Entry
7        class Context
8          attr_reader :name
9
10          def initialize(name:, cluster:, user:, namespace: nil)
11            @name = name
12            @cluster = cluster
13            @user = user
14            @namespace = namespace
15          end
16
17          def to_h
18            {
19              name: name,
20              context: context
21            }
22          end
23
24          private
25
26          attr_reader :cluster, :user, :namespace
27
28          def context
29            {
30              cluster: cluster,
31              namespace: namespace,
32              user: user
33            }.compact
34          end
35        end
36      end
37    end
38  end
39end
40