Sha256: 329ea1a94d693c6287a778805785cbe341fbb4f446f3bbeec403208dd037023c

Contents?: true

Size: 1.35 KB

Versions: 35

Compression:

Stored size: 1.35 KB

Contents

# Normally, you must authorized to AWS ECR to push to their registry with:
#
#   eval $(aws ecr get-login --no-include-email)
#
# If you haven't ever ran the ecr get-login command before then you'll get this error:
#
#   no basic auth credentials
#
# If you have ran it before but the auto token has expired you'll get this message:
#
#   denied: Your Authorization Token has expired. Please run 'aws ecr get-login' to fetch a new one.
#
# This class updates the ~/.docker/config.json file which is an internal docker file to automatically update the auto token for you.
# If that format changes, the update will need to be updated.
#
class Kubes::Auth
  class Ecr < Base
    include Kubes::AwsServices

    def run
      auth_token = fetch_auth_token
      if File.exist?(docker_config)
        data = JSON.load(IO.read(docker_config))
        data["auths"][@repo_domain] = {auth: auth_token}
      else
        data = {"auths" => {@repo_domain => {auth: auth_token}}}
      end

      # Handle legacy docker clients that still have old format with https://
      legacy_entry = "https://#{@repo_domain}"
      data["auths"][legacy_entry] = {auth: auth_token}

      ensure_dotdocker_exists
      IO.write(docker_config, JSON.pretty_generate(data))
    end

    def fetch_auth_token
      ecr.get_authorization_token.authorization_data.first.authorization_token
    end
  end
end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
kubes-0.9.3 lib/kubes/auth/ecr.rb
kubes-0.9.2 lib/kubes/auth/ecr.rb
kubes-0.9.1 lib/kubes/auth/ecr.rb
kubes-0.9.0 lib/kubes/auth/ecr.rb
kubes-0.8.10 lib/kubes/auth/ecr.rb
kubes-0.8.9 lib/kubes/auth/ecr.rb
kubes-0.8.8 lib/kubes/auth/ecr.rb
kubes-0.8.7 lib/kubes/auth/ecr.rb
kubes-0.8.6 lib/kubes/auth/ecr.rb
kubes-0.8.5 lib/kubes/auth/ecr.rb
kubes-0.8.4 lib/kubes/auth/ecr.rb
kubes-0.8.3 lib/kubes/auth/ecr.rb
kubes-0.8.2 lib/kubes/auth/ecr.rb
kubes-0.8.1 lib/kubes/auth/ecr.rb
kubes-0.8.0 lib/kubes/auth/ecr.rb
kubes-0.7.10 lib/kubes/auth/ecr.rb
kubes-0.7.9 lib/kubes/auth/ecr.rb
kubes-0.7.8 lib/kubes/auth/ecr.rb
kubes-0.7.7 lib/kubes/auth/ecr.rb
kubes-0.7.6 lib/kubes/auth/ecr.rb