Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
ea7937f
[mongodb] fix: newline between mongo labels and additional labels (#301)
Gugu7264 Oct 9, 2025
1d3543c
[redis] fix: better IPv6 compatibility (#296)
dcoppa Oct 9, 2025
07101fe
[mariadb] Update charts/mariadb/values.yaml mariadb (#315)
renovate[bot] Oct 10, 2025
6554cc9
[auto-label, documentation] Automatically add labels parsed from PR t…
Wurstkatze Oct 10, 2025
c6476c3
[etcd]: Initial etcd implementation (#230)
zOnlyKroks Oct 10, 2025
ecf445f
[mongo] Update charts/mongodb/values.yaml mongo (#319)
renovate[bot] Oct 10, 2025
b974e8a
[memcached]: Implement PDB (#295)
zOnlyKroks Oct 10, 2025
986eff5
[rabbitmq] Update charts/rabbitmq/values.yaml rabbitmq (#321)
renovate[bot] Oct 10, 2025
951745c
[common] feat: add "common.namespace", defaults to .Release.Namespace…
dcoppa Oct 10, 2025
b8ae532
Fix immortal pr´s (#325)
zOnlyKroks Oct 10, 2025
d0f0176
Bugfix/renovat (#330)
zOnlyKroks Oct 10, 2025
92617cf
[etcd]: Invalid repo used (#331)
zOnlyKroks Oct 10, 2025
6dd8563
[redis] feat: use "common.namespace" (#332)
dcoppa Oct 10, 2025
e74a03d
[ghost] Update charts/ghost/values.yaml ghost to v6.3.0 (minor) (#327)
renovate[bot] Oct 10, 2025
36ca7c7
[Etcd] artifact hub repository id (#333)
dloewen2 Oct 10, 2025
af00fe0
[rabbitmq] add traffic distribution and option to source definitions …
bl4ko Oct 10, 2025
f7ff0cf
[keycloak] Import realm (#219)
tanguyfalconnet Oct 10, 2025
c71838f
[universal]: Add non verified commit warning github action (#335)
zOnlyKroks Oct 10, 2025
1c06f2e
[rabbitmq] Update charts/rabbitmq/values.yaml rabbitmq (#339)
renovate[bot] Oct 10, 2025
9dd4b92
[universal]: Implement specific run hook (#345)
zOnlyKroks Oct 10, 2025
b177edf
Merge commit '9dd4b92' into sync/batch-1-20-commits
Oct 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ body:
- universal
- clusterpirate
- common
- etcd
- ghost
- keycloak
- mariadb
Expand All @@ -68,6 +69,7 @@ body:
- redis
- timescaledb
- valkey
- wordpress
- zookeeper
validations:
required: true
2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ body:
- universal
- clusterpirate
- common
- etcd
- ghost
- keycloak
- mariadb
Expand All @@ -57,4 +58,5 @@ body:
- redis
- timescaledb
- valkey
- wordpress
- zookeeper
6 changes: 5 additions & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
- Describe the scope of your change - i.e. what the change does.
- Describe any known limitations with your change.
- Please run any tests or examples that can exercise your modified code.
- Labels are automatically applied when they are inside the square brackets of your PR title on opening. Examples:
- [redis]: adds `redis` label
- [redis, valkey] Adds `redis` and `valkey` labels

Thank you for contributing! We will try to test and integrate the change as soon as we can.
-->
Expand All @@ -23,6 +26,7 @@
### Applicable issues

<!-- Enter any applicable Issues here (You can reference an issue using #) -->

- fixes #

### Additional information
Expand All @@ -33,6 +37,6 @@

<!-- [Place an '[X]' (no spaces) in all applicable fields. Please remove unrelated fields.] -->

- [ ] Chart version bumped in `Chart.yaml` according to [semver](http://semver.org/). This is *not necessary* when the changes only affect README.md files.
- [ ] Chart version bumped in `Chart.yaml` according to [semver](http://semver.org/). This is _not necessary_ when the changes only affect README.md files.
- [ ] Variables are documented in the values.yaml and added to the `README.md`
- [ ] Title of the pull request follows this pattern [<name_of_the_chart>] Descriptive title
20 changes: 18 additions & 2 deletions .github/workflows/auto-label.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,39 @@ name: Auto-label issues
on:
issues:
types: [opened]
pull_request:
types: [opened]

jobs:
label:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- name: Apply labels
uses: actions/github-script@v7
with:
script: |
const labels = (context.payload.issue.body.split(/### Affected Helm charts/)[1] || "")
let content = "";
if (context.payload.pull_request) {
const parsedTitle = context.payload.pull_request.title.match(/^\[([a-z_-]+(?:, [a-z_-]+)*)\].+$/);
content = parsedTitle ? parsedTitle[1] : "";
} else {
content = context.payload.issue.body.split(/### Affected Helm charts/)[1] || "";
}
const { data } = await github.rest.issues.listLabelsForRepo({
...context.repo,
per_page: 100,
});
const existingLabels = new Set(data.map((label) => label.name));
const labels = content
.trim()
.split(",")
.map((s) => s.trim())
.filter((s) => s && s !== "_No response_");
.filter((s) => s && existingLabels.has(s));
if (labels.length) {
console.log(`Adding ${labels.length} labels: ${labels.join(', ')}`)
await github.rest.issues.addLabels({
...context.repo,
issue_number: context.issue.number,
Expand Down
139 changes: 139 additions & 0 deletions .github/workflows/check-signed-commits.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
name: "Check Signed Commits"

on:
pull_request:
types:
- opened
- synchronize
- reopened
branches:
- main

jobs:
check-signed-commits:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
issues: write
steps:
- name: Checkout repository
uses: actions/[email protected]
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}

- name: Configure Git for SSH signature verification
run: |
# Create a temporary allowed signers file (not used for actual verification)
# This allows git to recognize SSH signatures exist without requiring key validation
touch /tmp/allowed_signers
git config --global gpg.ssh.allowedSignersFile /tmp/allowed_signers
# Configure git to recognize SSH signing format
git config --global gpg.format ssh

- name: Check for verified commits
id: check-commits
run: |
# Get all commits in the PR
git fetch origin ${{ github.event.pull_request.base.ref }}
COMMITS=$(git rev-list origin/${{ github.event.pull_request.base.ref }}..${{ github.event.pull_request.head.sha }})

UNSIGNED_COMMITS=""
UNSIGNED_COUNT=0
TOTAL_COUNT=0

for commit in $COMMITS; do
TOTAL_COUNT=$((TOTAL_COUNT + 1))
# Check if commit is signed (GPG or SSH signature)
# %G? returns signature status
# %GF returns the signing key fingerprint (empty if not signed)
SIGNATURE=$(git log -1 --format='%G?' $commit)
FINGERPRINT=$(git log -1 --format='%GF' $commit)

# %G? returns:
# G = good GPG signature
# U = unverified signature (has signature but can't verify - common for SSH)
# B = bad signature
# N = no signature
# E = signature expired
# Y = good signature (expired key)

# A commit is considered SIGNED if it has any signature present
# We check for a fingerprint to confirm a signature exists
# For SSH signatures, %G? will be "U" but %GF will have the fingerprint

if [[ -z "$FINGERPRINT" ]]; then
# No fingerprint means no signature at all
UNSIGNED_COMMITS="${UNSIGNED_COMMITS}${commit}\n"
UNSIGNED_COUNT=$((UNSIGNED_COUNT + 1))
fi
done

echo "total_commits=${TOTAL_COUNT}" >> $GITHUB_OUTPUT
echo "unsigned_commits=${UNSIGNED_COUNT}" >> $GITHUB_OUTPUT

if [ $UNSIGNED_COUNT -gt 0 ]; then
echo "has_unsigned=true" >> $GITHUB_OUTPUT
else
echo "has_unsigned=false" >> $GITHUB_OUTPUT
fi

- name: Check if comment already exists
if: steps.check-commits.outputs.has_unsigned == 'true'
id: check-comment
env:
GH_TOKEN: ${{ github.token }}
run: |
# Check if our bot has already commented on this PR
COMMENT_EXISTS=$(gh api \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"/repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/comments" \
| jq -r '.[] | select(.user.login == "github-actions[bot]" and (.body | contains("⚠️ Unsigned Commits Detected"))) | .id' | head -1)

if [ -n "$COMMENT_EXISTS" ]; then
echo "comment_exists=true" >> $GITHUB_OUTPUT
echo "comment_id=${COMMENT_EXISTS}" >> $GITHUB_OUTPUT
else
echo "comment_exists=false" >> $GITHUB_OUTPUT
fi

- name: Post warning comment
if: steps.check-commits.outputs.has_unsigned == 'true' && steps.check-comment.outputs.comment_exists == 'false'
env:
GH_TOKEN: ${{ github.token }}
run: |
cat << 'EOF' | gh pr comment ${{ github.event.pull_request.number }} --repo ${{ github.repository }} -F -
## ⚠️ Unsigned Commits Detected

This pull request contains unsigned commits.

### What does this mean?

Signed commits help ensure the authenticity and traceability of contributions. They allow us to verify that commits actually came from the stated author, even if GitHub accounts are deleted or modified in the future.

### Current Policy (Grace Period)

**This is currently a warning only.** We are in a transition period to give all contributors time to set up commit signing.

After this grace period, **all commits will be required to be signed** before PRs can be merged.

### How to sign your commits

Please see our [Contributing Guide](../blob/main/CONTRIBUTING.md#setting-up-your-development-environment) for detailed instructions on setting up commit signing.

### Resources

- [Contributing Guide: Development Setup](../blob/main/CONTRIBUTING.md#setting-up-your-development-environment)
- [GitHub Docs: About Commit Signature Verification](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification)

---

_This check will become mandatory in the future. Please start signing your commits now to avoid issues later._
EOF

- name: Success message
if: steps.check-commits.outputs.has_unsigned == 'false'
run: |
echo "✅ All ${{ steps.check-commits.outputs.total_commits }} commits in this PR are signed!"
59 changes: 48 additions & 11 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,23 @@ Hi there! We are thrilled that you'd like to contribute to this project. It's pe

- [Code of Conduct](#code-of-conduct)
- [How Can I Contribute?](#how-can-i-contribute)
- [Reporting Bugs](#reporting-bugs)
- [Suggesting Enhancements](#suggesting-enhancements)
- [Types of Contributions We're Looking For](#types-of-contributions-were-looking-for)
- [Development Setup](#development-setup)
- [Prerequisites](#prerequisites)
- [Setting Up Your Development Environment](#setting-up-your-development-environment)
- [Contributing Guidelines](#contributing-guidelines)
- [Chart Development Standards](#chart-development-standards)
- [Chart Development Standards](#chart-development-standards)
- [Chart Structure](#chart-structure)
- [Documentation Requirements](#documentation-requirements)
- [Versioning](#versioning)
- [Testing](#testing)
- [Running Tests](#running-tests)
- [Test Requirements](#test-requirements)
- [Manual Testing](#manual-testing)
- [Pull Request Process](#pull-request-process)
- [Pull Request Checklist](#pull-request-checklist)

## Code of Conduct

Expand All @@ -22,21 +34,21 @@ This project and everyone participating in it is governed by our [Code of Conduc

Before creating bug reports, please check the existing issues as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible:

- **Use a clear and descriptive title**
- **Describe the exact steps to reproduce the problem**
- **Provide specific examples to demonstrate the steps**
- **Describe the behavior you observed and what behavior you expected**
- **Include details about your configuration and environment**
- Use a **clear and descriptive title**
- Describe the **exact steps to reproduce** the problem
- Provide **specific examples** to demonstrate the steps
- Describe the **behavior you observed** and what **behavior you expected**
- Include details about **your configuration and environment**

### Suggesting Enhancements

Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, please include:

- **Use a clear and descriptive title**
- **Provide a step-by-step description of the suggested enhancement**
- **Provide specific examples to demonstrate the steps**
- **Describe the current behavior and explain which behavior you expected to see**
- **Explain why this enhancement would be useful**
- Use a **clear and descriptive title**
- Provide a **step-by-step description** of the suggested enhancement
- Provide **specific examples** to demonstrate the steps
- Describe the **current behavior** and explain which **behavior you expected** to see
- Explain **why this enhancement would be useful**

### Types of Contributions We're Looking For

Expand All @@ -52,40 +64,61 @@ Enhancement suggestions are tracked as GitHub issues. When creating an enhanceme
- Kubernetes 1.24+
- Helm 3.2.0+
- [helm-unittest](https://github.com/helm-unittest/helm-unittest) plugin
- Commits verified by signature

### Setting Up Your Development Environment

1. Fork the repository on GitHub
2. Clone your fork locally:

```bash
git clone https://github.com/your-username/helm-charts.git
cd helm-charts
```

3. Install the helm-unittest plugin:

```bash
helm plugin install https://github.com/helm-unittest/helm-unittest
```

4. Make sure to sign your commits

```bash
git config gpg.format ssh
git config user.signingkey <filePath>
git config commit.gpgsign true
git config tag.gpgsign true
```

Replace `<filePath>` with the path to your public ssh key file, e.g. `~/.ssh/id_ed25519.pub`, wich you use to push to GitHub.
Alternatively, a signing ssh key can be used instead.
If you want to sign commits in every repository, not just this one, add the `--global` parameter.

> More information: [GitHub docs](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification)

## Contributing Guidelines

### Chart Development Standards

All charts in this repository must follow these standards:

#### Security First

- Implement read-only root filesystems where possible
- Drop unnecessary Linux capabilities
- Configure security contexts properly
- Never hardcode credentials

#### Production Ready

- Include comprehensive health checks (liveness, readiness, startup probes)
- Support resource requests and limits
- Provide persistent storage configurations
- Include health check endpoints

#### Highly Configurable

- Provide extensive `values.yaml` with detailed documentation
- Support existing secrets and ConfigMaps
- Offer flexible ingress configurations
Expand Down Expand Up @@ -154,6 +187,7 @@ helm unittest charts/your-chart
### Test Requirements

Your tests should cover:

- Template rendering with default values
- Template rendering with custom values
- Required value validation
Expand Down Expand Up @@ -181,13 +215,15 @@ kubectl get all -n test
## Pull Request Process

1. **Branch**: Create a feature branch from `main`

```bash
git checkout -b feature/your-chart-improvement
```

2. **Development**: Make your changes following the guidelines above

3. **Testing**: Run all tests and ensure they pass

```bash
./test-all-charts.sh
helm lint ./charts/your-chart
Expand All @@ -196,6 +232,7 @@ kubectl get all -n test
4. **Documentation**: Update documentation as needed

5. **Commit**: Use clear, descriptive commit messages

```bash
git commit -m "[chart-name] Add support for custom annotations"
```
Expand Down
2 changes: 1 addition & 1 deletion charts/common/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

## 1.1.1 (2025-10-09)

* [mongodb] feat: add metrics exporter ([#243](https://github.com/CloudPirates-io/helm-charts/pull/243))
* [mongodb] fix: newline between mongo labels and additional labels ([#301](https://github.com/CloudPirates-io/helm-charts/pull/301))
Loading
Loading