Sha256: d5e512970c264ed07656126e50c6e735c30addd3952f451fa381dadbda7c4c0b

Contents?: true

Size: 710 Bytes

Versions: 6

Compression:

Stored size: 710 Bytes

Contents

module Kubec
  class Kubernetes
    # :nodoc:
    class Service < Config
      api_version 'v1'

      def node_port
        spec[:type] = 'NodePort'
      end

      def load_balancer(ip: nil)
        spec[:type] = 'LoadBalancer'
        spec[:loadBalancerIP] = ip unless ip.nil?
      end

      def port(port, target = nil)
        spec[:ports] ||= []
        target ||= port
        spec[:ports].push port: port, targetPort: target
      end

      def select(key, value)
        spec[:selector] ||= {}
        spec[:selector][key] = value
      end

      def selector=(labels)
        # TODO: Check labels type
        spec[:selector] = labels
      end

      alias selector selector=
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
kubec-0.3.4 lib/kubec/kubernetes/service.rb
kubec-0.3.3 lib/kubec/kubernetes/service.rb
kubec-0.3.2 lib/kubec/kubernetes/service.rb
kubec-0.3.1 lib/kubec/kubernetes/service.rb
kubec-0.3.0 lib/kubec/kubernetes/service.rb
kubec-0.2.0 lib/kubec/kubernetes/service.rb