Sha256: 8468901eba8657e5cfc758d978149e5644ea96d21ab64ddf542c1102c6c9461c

Contents?: true

Size: 961 Bytes

Versions: 3

Compression:

Stored size: 961 Bytes

Contents

# frozen_string_literal: true

module Metatron
  module Templates
    # Template for basic Pod k8s resource
    class Pod < Template
      include Concerns::Annotated
      include Concerns::PodProducer
      include Concerns::Namespaced

      # rubocop:disable Metrics/AbcSize
      def render
        {
          apiVersion:,
          kind:,
          metadata: {
            labels: { "#{label_namespace}/name": name }.merge(additional_labels),
            name:
          }.merge(formatted_annotations).merge(formatted_namespace),
          spec: {
            terminationGracePeriodSeconds:,
            containers: containers.map(&:render),
            init_containers: init_containers.any? ? init_containers.map(&:render) : nil
          }.merge(formatted_volumes)
            .merge(formatted_security_context)
            .merge(formatted_tolerations)
            .compact
        }
      end
      # rubocop:enable Metrics/AbcSize
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
metatron-0.2.2 lib/metatron/templates/pod.rb
metatron-0.2.1 lib/metatron/templates/pod.rb
metatron-0.2.0 lib/metatron/templates/pod.rb