class Fog::Kubevirt::Compute::Services

Attributes

kind[R]
resource_version[R]

Public Instance Methods

all(filters = {}) click to toggle source
# File lib/fog/kubevirt/compute/models/services.rb, line 12
def all(filters = {})
  begin
    srvs = service.list_services(filters)
  rescue ::Fog::Kubevirt::Errors::ClientError
    # we assume that we get 404
    srvs = []
  end
  @kind = srvs.kind
  @resource_version = srvs.resource_version
  load srvs
end
create(args = {}) click to toggle source

Creates a service using provided paramters: :name [String] - name of a service :port [int] - a port which will be exposed on node and cluster :target_port [int] - a vmi port which will be forwarded :vmi_name [String] - name of a vmi to be selected :service_type [String] - service type used to create service

@param [Hash] attributes containing details about service to be

created.
# File lib/fog/kubevirt/compute/models/services.rb, line 37
def create(args = {})
  port = args[:port]
  name = args[:name]
  target_port = args[:target_port]
  vmi_name = args[:vmi_name]
  service_type = args[:service_type]

  srv = {
    :apiVersion => "v1",
    :kind => "Service",
    :metadata => {
      :name      => name,
      :namespace => service.namespace
    },
    :spec => {
      :externalTrafficPolicy => "Cluster",
      :ports => [
        {:nodePort   => port,
         :port       => port,
         :protocol   => "TCP",
         :targetPort => target_port
        }
      ],
      :selector => {
        :"kubevirt.io/vm" => vmi_name
      },
      :type => service_type
    }
  }

  service.create_service(srv)
end
delete(name) click to toggle source
# File lib/fog/kubevirt/compute/models/services.rb, line 70
def delete(name)
  begin
    srv = get(name)
  rescue ::Fog::Kubevirt::Errors::ClientError
    # the service doesn't exist
    srv = nil
  end

  service.delete_service(name, service.namespace) unless srv.nil?
end
get(name) click to toggle source
# File lib/fog/kubevirt/compute/models/services.rb, line 24
def get(name)
  new service.get_service(name)
end