razinbouzar opened a new pull request, #16:
URL: https://github.com/apache/druid-operator/pull/16
This PR adds deployment lifecycle tracking to the Druid operator, exposes it
as a pipeline-facing status contract, and adds rollout metrics.
It introduces spec.forceRedeployToken, spec.expectedBuildRevision, and
status.deploymentLifecycle, then wires lifecycle state through reconcile with
trigger classification (SpecChange, ImageChange, ManualRollout), phase tracking
(Pending, InProgress, Succeeded, Failed), generation/revision semantics for
polling, and Kubernetes events for observability. For image and manual
rollouts, the operator verifies the live Druid runtime build identifier before
completing the lifecycle, using sys.servers.build_revision when available and
falling back to sys.servers.version for older Druid versions.
The PR also adds a Druid-specific Prometheus metrics surface for cluster and
workload rollout health, makes lifecycle metrics per cluster, standardizes
labels on namespace, druid_instance, and node_type, and includes test/doc/e2e
updates to support the new contract.
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<!-- Thanks for trying to help us make Druid Operator be the best it can be!
Please fill out as much of the following information as is possible (where
relevant, and remove it when irrelevant) to help make the intention and scope
of this PR clear in order to ease review. -->
Fixes #XXXX.
<!-- Replace XXXX with the id of the issue fixed in this PR. Remove this
section if there is no corresponding issue. Don't reference the issue in the
title of this pull-request. -->
### Description
<!-- Describe the goal of this PR and the problem you encoutered while
managing Druid clusters. Something like, "I have a Druid cluster managed with
this operator and wanted to change XX on the cluster to enable YY usecase that
I needed due to ZZ requirement.". If there is a corresponding issue (referenced
above), it's not necessary to repeat the description here, however, you may
choose to keep one summary sentence. -->
<!-- Describe the possible solutions and chosen one with the rationale. -->
<!-- Describe key changes made in the patch. -->
<hr>
This PR has:
- [ ] been tested on a real K8S cluster to ensure creation of a brand new
Druid cluster works.
- [ ] been tested for backward compatibility on a real K*S cluster by
applying the changes introduced here on an existing Druid cluster. If there are
any backward incompatible changes then they have been noted in the PR
description.
- [ ] added comments explaining the "why" and the intent of the code
wherever would not be obvious for an unfamiliar reader.
- [ ] added documentation for new or modified features or behaviors.
<hr>
##### Key changed/added files in this PR
* `MyFoo`
* `OurBar`
* `TheirBaz`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]