class Pipedawg::Job::Kaniko::Build
Public Class Methods
new(name, opts = {})
click to toggle source
Calls superclass method
Pipedawg::Job::Kaniko::new
# File lib/pipedawg/job/kaniko/build.rb, line 8 def initialize(name, opts = {}) # rubocop:disable Metrics/MethodLength opts = { build_args: {}, config: { auths: { '$CI_REGISTRY': { username: '$CI_REGISTRY_USER', password: '$CI_REGISTRY_PASSWORD' } } }, config_file: '/kaniko/.docker/config.json', context: '${CI_PROJECT_DIR}', destinations: ['${CI_REGISTRY_IMAGE}:latest'], dockerfile: 'Dockerfile', external_files: {}, flags: [], ignore_paths: [], insecure_registries: [], options: {}, registry_certificates: {}, registry_mirrors: [], skip_tls_verify_registry: [], trusted_ca_cert_source_files: [], trusted_ca_cert_target_file: '/kaniko/ssl/certs/ca-certificates.crt' }.merge(opts) super name, opts update end
Public Instance Methods
update()
click to toggle source
# File lib/pipedawg/job/kaniko/build.rb, line 22 def update require 'json' opts[:script] = debug + config + cert_copies + file_copies + Array(kaniko_cmd) end
Private Instance Methods
build_args()
click to toggle source
# File lib/pipedawg/job/kaniko/build.rb, line 62 def build_args opts[:build_args].map { |k, v| "--build-arg #{k}=\"#{v}\"" }.join(' ') end
cert_copies()
click to toggle source
# File lib/pipedawg/job/kaniko/build.rb, line 33 def cert_copies Array(opts[:trusted_ca_cert_source_files]).map do |cert| "cat \"#{cert}\" >> \"#{opts[:trusted_ca_cert_target_file]}\"" end end
config()
click to toggle source
# File lib/pipedawg/job/kaniko/build.rb, line 29 def config ["echo #{opts[:config].to_json.inspect} > \"#{opts[:config_file]}\""] end
destinations()
click to toggle source
# File lib/pipedawg/job/kaniko/build.rb, line 86 def destinations opts[:destinations].map { |d| "--destination #{d}" }.join(' ') end
file_copies()
click to toggle source
# File lib/pipedawg/job/kaniko/build.rb, line 39 def file_copies opts[:external_files].map do |source, dest| "cp \"#{source}\" \"#{opts[:context]}/#{dest}\"" end end
flags()
click to toggle source
# File lib/pipedawg/job/kaniko/build.rb, line 52 def flags flags = opts[:flags].clone flags << 'no-push' if opts[:destinations].empty? flags.uniq.map { |f| "--#{f}" }.join(' ') end
ignore_paths()
click to toggle source
# File lib/pipedawg/job/kaniko/build.rb, line 66 def ignore_paths Array(opts[:ignore_paths]).map { |p| "--ignore-path #{p}" }.join(' ') end
insecure_registries()
click to toggle source
# File lib/pipedawg/job/kaniko/build.rb, line 70 def insecure_registries Array(opts[:insecure_registries]).map do |r| "--insecure-registry #{r}" end.join(' ') end
kaniko_cmd()
click to toggle source
# File lib/pipedawg/job/kaniko/build.rb, line 45 def kaniko_cmd # rubocop:disable Metrics/AbcSize ["\"#{opts[:command]}\" --context \"#{opts[:context]}\"", "--dockerfile \"#{opts[:dockerfile]}\"", flags, options, build_args, ignore_paths, insecure_registries, registry_certificates, registry_mirrors, destinations, skip_tls_verify_registries].reject(&:empty?).join(' ') end
options()
click to toggle source
# File lib/pipedawg/job/kaniko/build.rb, line 58 def options opts[:options].map { |k, v| "--#{k}=\"#{v}\"" }.join(' ') end
registry_certificates()
click to toggle source
# File lib/pipedawg/job/kaniko/build.rb, line 76 def registry_certificates opts[:registry_certificates].map do |k, v| "--registry-certificate #{k}=\"#{v}\"" end.join(' ') end
registry_mirrors()
click to toggle source
# File lib/pipedawg/job/kaniko/build.rb, line 82 def registry_mirrors Array(opts[:registry_mirrors]).map { |r| "--registry-mirror #{r}" }.join(' ') end
skip_tls_verify_registries()
click to toggle source
# File lib/pipedawg/job/kaniko/build.rb, line 90 def skip_tls_verify_registries Array(opts[:skip_tls_verify_registry]).map do |r| "--skip-tls-verify-registry #{r}" end.join(' ') end