Sha256: 5654313df1b4d28a1fd78b149fd9577cb4e0d570ebdd3fbdcf0ebd8133388540

Contents?: true

Size: 1.43 KB

Versions: 1

Compression:

Stored size: 1.43 KB

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/MethodLength
      # 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: [
              {
                name: "app",
                image:,
                imagePullPolicy:,
                stdin: true,
                tty: true,
                resources: { limits: resource_limits, requests: resource_requests }
              }.merge(probes)
                .merge(formatted_environment)
                .merge(formatted_envfrom)
                .merge(formatted_ports)
                .merge(formatted_volume_mounts)
                .merge(formatted_container_security_context)
            ] + additional_containers
          }.merge(formatted_volumes)
            .merge(formatted_security_context)
            .merge(formatted_tolerations)
        }
      end
      # rubocop:enable Metrics/AbcSize
      # rubocop:enable Metrics/MethodLength
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
metatron-0.1.9 lib/metatron/templates/pod.rb