Sha256: bdf6ff4d87c5cb5138e40d2565cbb5f0b7e0332a454f58cd73e235d78e2aa24a
Contents?: true
Size: 1.52 KB
Versions: 4
Compression:
Stored size: 1.52 KB
Contents
module Kubes::Compiler::Dsl::Syntax class Resource < Kubes::Compiler::Dsl::Core::Base include Kubes::Compiler::Util::Normalize fields :apiVersion, # <string> :kind, # <string> :metadata, # <Object> :result, # <Object> :spec # <Object> # kubectl explain deployment.metadata fields "annotations:hash", # <map[string]string> "labels:hash", # <map[string]string> :namespace # <string> attr_accessor :kind_from_block # top-level of resource is quite common def default_result data = top.merge(default_top) data.deeper_merge!(default_result_append) data.deep_stringify_keys! HashSqueezer.squeeze(data) end # Where to set fields for generic kind def top @top ||= {} end def default_top { apiVersion: apiVersion, kind: kind, metadata: metadata, spec: spec, } end # can be overridden by subclasses. IE: secret def default_result_append {} end def default_apiVersion "v1" end def default_metadata { annotations: annotations, name: name, labels: labels, namespace: namespace, } end def default_kind return @kind_from_block if @kind_from_block normalize_kind(@path) end alias_method :resource_kind, :default_kind # For generic kind def field(name, data) top.deeper_merge!(name => data) end end end
Version data entries
4 entries across 4 versions & 1 rubygems