razinbouzar opened a new pull request, #19:
URL: https://github.com/apache/druid-operator/pull/19
# Helm Chart GitHub Pages Publishing Summary
## Branch
The Helm chart publishing changes are on the `helm-gh-pages` branch.
## Goal
Publish the Druid Operator Helm chart from this repository using the
`gh-pages` branch, while matching the same repository layout DataInfra uses for
`charts.datainfra.io`.
## Files Changed
- `.asf.yaml`
- Enables GitHub Pages publishing from the root of the `gh-pages` branch.
- Adds:
- `ghp_branch: gh-pages`
- `ghp_path: /`
- `.github/workflows/helm-chart.yml`
- Adds a new GitHub Actions workflow named `Helm Chart`.
- Runs on pushes to `master` when the chart or workflow changes.
- Also supports manual runs through `workflow_dispatch`.
- Packages `chart/` with Helm.
- Publishes packaged charts to `gh-pages/helm-releases/`.
- Regenerates `gh-pages/index.yaml`.
- Pushes the updated chart package and index back to the `gh-pages` branch.
- `docs/getting_started.md`
- Replaces the old DataInfra Helm repository with the Apache GitHub Pages
repository:
- `https://apache.github.io/druid-operator`
- Updates install examples to use:
- `apache-druid/druid-operator`
- `tutorials/druid-on-kind/README.md`
- Updates the tutorial Helm repo and install command to use the Apache
chart repository.
## Published Repository Layout
The workflow publishes files to the `gh-pages` branch in this shape:
```text
gh-pages/
index.yaml
helm-releases/
druid-operator-<chart-version>.tgz
```
For the current chart version, the package would be:
```text
gh-pages/helm-releases/druid-operator-0.3.9.tgz
```
And `index.yaml` will point Helm clients to:
```text
https://apache.github.io/druid-operator/helm-releases/druid-operator-0.3.9.tgz
```
## User Install Flow
After the workflow publishes the chart, users install with:
```bash
helm repo add apache-druid https://apache.github.io/druid-operator
helm repo update
helm upgrade -i cluster-druid-operator apache-druid/druid-operator \
-n druid-operator-system \
--create-namespace
```
## Comparison With DataInfra
DataInfra publishes charts from a separate `datainfrahq/helm-charts`
repository. Its layout is:
```text
index.yaml
helm-releases/
druid-operator-<chart-version>.tgz
```
This change keeps the same Helm repository layout, but uses this
repository's `gh-pages` branch instead of a separate chart repository.
## Validation Performed
The following checks passed locally:
```bash
make helm-lint
make helm-template
git diff --check
```
A local Helm publishing simulation also passed and generated an `index.yaml`
entry pointing at `/helm-releases/druid-operator-0.3.9.tgz`.
## Notes
- The workflow does not overwrite an already-published chart package if the
same chart version already exists and is already indexed.
- Each chart release should bump `chart/Chart.yaml` `version` before
publishing.
- `make rat` was run earlier and failed only because of pre-existing
untracked files in the local worktree, not because of the Helm publishing
workflow.
<!--
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]