Class: KubernetesDeploy::RestartTask
- Inherits:
-
Object
- Object
- KubernetesDeploy::RestartTask
- Includes:
- KubeclientBuilder
- Defined in:
- lib/kubernetes-deploy/restart_task.rb
Defined Under Namespace
Classes: FatalRestartError, RestartAPIError
Constant Summary collapse
- HTTP_OK_RANGE =
200..299
- ANNOTATION =
"shipit.shopify.io/restart"
Instance Method Summary collapse
-
#initialize(context:, namespace:, logger:) ⇒ RestartTask
constructor
A new instance of RestartTask.
- #perform(deployments_names = nil) ⇒ Object
Constructor Details
#initialize(context:, namespace:, logger:) ⇒ RestartTask
Returns a new instance of RestartTask.
23 24 25 26 27 |
# File 'lib/kubernetes-deploy/restart_task.rb', line 23 def initialize(context:, namespace:, logger:) @context = context @namespace = namespace @logger = logger end |
Instance Method Details
#perform(deployments_names = nil) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/kubernetes-deploy/restart_task.rb', line 29 def perform(deployments_names = nil) start = Time.now.utc @logger.reset @logger.phase_heading("Initializing restart") verify_namespace deployments = identify_target_deployments(deployments_names) if kubectl.server_version < Gem::Version.new(MIN_KUBE_VERSION) @logger.warn(KubernetesDeploy::Errors.server_version_warning(kubectl.server_version)) end @logger.phase_heading("Triggering restart by touching ENV[RESTARTED_AT]") patch_kubeclient_deployments(deployments) @logger.phase_heading("Waiting for rollout") resources = build_watchables(deployments, start) ResourceWatcher.new(resources, logger: @logger, operation_name: "restart").run success = resources.all?(&:deploy_succeeded?) rescue FatalDeploymentError => error @logger.summary.add_action(error.) success = false ensure @logger.print_summary(success) status = success ? "success" : "failed" = %W(namespace:#{@namespace} context:#{@context} status:#{status} deployments:#{deployments.to_a.length}}) ::StatsD.measure('restart.duration', StatsD.duration(start), tags: ) end |