Module: KubeDeployTools
- Defined in:
- lib/kube_deploy_tools/file_filter.rb,
lib/kube_deploy_tools.rb,
lib/kube_deploy_tools/kdt.rb,
lib/kube_deploy_tools/tag.rb,
lib/kube_deploy_tools/push.rb,
lib/kube_deploy_tools/deploy.rb,
lib/kube_deploy_tools/errors.rb,
lib/kube_deploy_tools/kubectl.rb,
lib/kube_deploy_tools/publish.rb,
lib/kube_deploy_tools/version.rb,
lib/kube_deploy_tools/generate.rb,
lib/kube_deploy_tools/templater.rb,
lib/kube_deploy_tools/shellrunner.rb,
lib/kube_deploy_tools/push/options.rb,
lib/kube_deploy_tools/deploy/options.rb,
lib/kube_deploy_tools/image_registry.rb,
lib/kube_deploy_tools/make_configmap.rb,
lib/kube_deploy_tools/publish/options.rb,
lib/kube_deploy_tools/formatted_logger.rb,
lib/kube_deploy_tools/generate/options.rb,
lib/kube_deploy_tools/artifact_registry.rb,
lib/kube_deploy_tools/templater/options.rb,
lib/kube_deploy_tools/deploy_config_file.rb,
lib/kube_deploy_tools/kubernetes_resource.rb,
lib/kube_deploy_tools/render_deploys_hook.rb,
lib/kube_deploy_tools/built_artifacts_file.rb,
lib/kube_deploy_tools/image_registry/image.rb,
lib/kube_deploy_tools/image_registry/driver.rb,
lib/kube_deploy_tools/make_configmap/options.rb,
lib/kube_deploy_tools/deploy_config_file/util.rb,
lib/kube_deploy_tools/artifact_registry/driver.rb,
lib/kube_deploy_tools/deferred_summary_logging.rb,
lib/kube_deploy_tools/image_registry/driver/aws.rb,
lib/kube_deploy_tools/image_registry/driver/gcp.rb,
lib/kube_deploy_tools/image_registry/driver/base.rb,
lib/kube_deploy_tools/image_registry/driver/noop.rb,
lib/kube_deploy_tools/image_registry/driver/login.rb,
lib/kube_deploy_tools/artifact_registry/driver_gcs.rb,
lib/kube_deploy_tools/artifact_registry/driver_base.rb,
lib/kube_deploy_tools/kubernetes_resource/deployment.rb,
lib/kube_deploy_tools/artifact_registry/driver_artifactory.rb
Overview
Abstract Driver class that specific implementations inherit
Defined Under Namespace
Modules: DeferredSummaryLogging, DeployConfigFileUtil, FileFilter, RenderDeploysHook Classes: ArtifactRegistry, BuiltArtifactsFile, ConfigMap, Deploy, DeployConfigFile, Deployment, FatalDeploymentError, FormattedLogger, Generate, ImageRegistry, Kdt, Kubectl, KubernetesResource, Logger, Options, Publish, Push, Shellrunner, StrictHash, Templater
Constant Summary collapse
- VERSION =
'3.0.9'
- DEFAULT_FLAGS =
{ 'image_tag' => tag_from_local_env, 'tag' => tag_from_local_env, }.freeze
- PROJECT =
ENV['JOB_NAME'] || File.basename(`git config remote.origin.url`.chomp, '.git')
- BUILD_NUMBER =
ENV.fetch('BUILD_ID', 'dev')
Class Method Summary collapse
-
.tag_from_local_env ⇒ Object
Default method to derive a tag name.
Class Method Details
.tag_from_local_env ⇒ Object
Default method to derive a tag name. An image is tagged for the git sha.
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/kube_deploy_tools/tag.rb', line 4 def self.tag_from_local_env codestamp = `git describe --always --abbrev=7 --match=NONE --dirty`.chop # Include the Jenkins build ID, in the case that there are # multiple builds at the same git branch and git commit, # but with different dependencies. e.g. Java builds build = ENV.fetch('BUILD_ID', 'dev')[0...7] docker_tag = "#{codestamp}-#{build}" # Validate image tag. # # Definition of a valid image tag via: # https://docs.docker.com/engine/reference/commandline/tag/#extended-description: # # > A tag name must be valid ASCII and may contain lowercase and uppercase # > letters, digits, underscores, periods and dashes. # > A tag name may not start with a period or a dash and # > may contain a maximum of 128 characters. # # Regex for a valid image tag via: # https://github.com/docker/distribution/blob/749f6afb4572201e3c37325d0ffedb6f32be8950/reference/regexp.go#L37 docker_tag = docker_tag.scan(/[\w][\w.-]{0,127}/).first if docker_tag.nil? raise "Expected valid Docker tag, but received '#{codestamp}'" end "#{docker_tag}" end |