razinbouzar opened a new pull request, #26:
URL: https://github.com/apache/druid-operator/pull/26

   # Publish Druid Operator Helm charts with ASF GitHub Pages
   
   ## Summary
   
   This PR wires the Druid Operator Helm chart publishing flow to the 
ASF-managed GitHub Pages path for this repository:
   
   ```text
   https://apache.github.io/druid-operator
   ```
   
   The published Helm repository layout is:
   
   ```text
   index.yaml
   helm-releases/
     druid-operator-<chart-version>.tgz
   ```
   
   Users will install with:
   
   ```bash
   helm repo add apache-druid https://apache.github.io/druid-operator
   helm repo update
   helm -n druid-operator-system upgrade -i --create-namespace 
cluster-druid-operator apache-druid/druid-operator
   ```
   
   ## Why
   
   PR #19 added Helm chart publishing pieces, but those changes landed on the 
`gh-pages` branch. ASF GitHub Pages repository settings need to be configured 
from the default branch, and GitHub Actions workflows intended to run from 
`master` must live on `master`.
   
   This PR moves the publishing setup into the source branch and keeps 
publishing release-manager controlled instead of publishing on every push.
   
   ## Changes
   
   - Enables ASF GitHub Pages for this repository in `.asf.yaml`:
   
   ```yaml
   github:
     ghp_branch: gh-pages
     ghp_path: /
   ```
   
   - Adds a manual `Helm Chart` GitHub Actions workflow.
     - `publish=false` validates only.
     - `publish=true` validates, packages, updates `gh-pages/index.yaml`, and 
publishes the chart under `gh-pages/helm-releases/`.
     - The workflow refuses to overwrite an existing chart package for the same 
chart version.
   
   - Adds Helm packaging helpers to `Makefile`:
     - `make helm-package`
     - local package/index generation under `dist/helm`
     - checks that the packaged chart contains `LICENSE` and `NOTICE`
   
   - Adds `chart/LICENSE` and `chart/NOTICE` so the Helm chart archive carries 
ASF license metadata.
   
   - Updates user docs from the old DataInfra chart repo to:
   
   ```text
   https://apache.github.io/druid-operator
   ```
   
   - Adds `docs/helm-chart-release.md` with the release-manager workflow.
   
   - Updates RAT handling for generated local artifacts:
     - excludes `cover.out`
     - excludes `dist/**`
     - makes `$(RAT_JAR)` depend on `bin/` as an order-only prerequisite to 
avoid unnecessary jar redownloads.
   
   ## Manual publishing flow
   
   After the ASF release is approved:
   
   1. Confirm `chart/Chart.yaml` has the chart version to publish and 
`appVersion` matches the operator release.
   2. Run local validation:
   
   ```bash
   make helm-lint
   make helm-template
   make helm-package
   make rat
   ```
   
   3. In GitHub Actions, run the `Helm Chart` workflow from `master` with:
   
   ```text
   publish=true
   ```
   
   4. Verify the live Helm repo:
   
   ```bash
   curl -I https://apache.github.io/druid-operator/index.yaml
   helm repo add apache-druid https://apache.github.io/druid-operator
   helm repo update
   helm search repo apache-druid/druid-operator
   ```
   
   ## Validation performed
   
   ```bash
   make helm-lint
   make helm-template
   make helm-package
   make rat
   git diff --check
   ```
   
   A local simulation of the `gh-pages/helm-releases` layout generated an index 
entry pointing to:
   
   ```text
   
https://apache.github.io/druid-operator/helm-releases/druid-operator-0.3.9.tgz
   ```
   
   The packaged chart was also verified to include:
   
   ```text
   druid-operator/LICENSE
   druid-operator/NOTICE
   ```
   
   ## Follow-up after merge
   
   The existing `gh-pages` branch should be cleaned up once this PR lands. It 
currently contains source-tree files from the earlier PR. The branch should be 
reduced to the generated Helm repository content:
   
   ```text
   index.yaml
   helm-releases/
   ```
   
   <!--
   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]

Reply via email to