Sha256: 59c2067dd1d98de0b9bc142724a89b165e049bebe723aa4f434e8bebefd3f218

Contents?: true

Size: 980 Bytes

Versions: 2

Compression:

Stored size: 980 Bytes

Contents

module Kubec
  class Kubernetes
    # :nodoc:
    class Volume < Hash
      def initialize(name, &block)
        self[:name] = name
        instance_eval(&block)
      end

      def empty(memory = false)
        self[:emptyDir] = if memory
                            { medium: true }
                          else
                            {}
                          end
      end

      def host_path(path, type = nil)
        self[:hostPath] = { path: path }
        self[:hostPath][:type] = type unless type.nil?
      end

      def gce(name, type: 'ext4', ro: false)
        self[:gcePersistentDisk] = {
          pdName: name,
          fsType: type,
          readOnly: ro
        }
      end

      # TODO: Check for should create a new class to handle
      def config(name, items)
        self[:configMap] = {
          name: name,
          items: items.map do |key, path|
            { key: key, path: path }
          end
        }
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
kubec-0.3.1 lib/kubec/kubernetes/volume.rb
kubec-0.3.0 lib/kubec/kubernetes/volume.rb