feat(helm): add Artifact Hub distribution and multi-arch builds#80
feat(helm): add Artifact Hub distribution and multi-arch builds#80Sanjaykumar-2005 wants to merge 15 commits into
Conversation
… builds - Added helm-release.yml workflow for automated chart publishing. - Added artifacthub-repo.yml and Chart.yaml annotations for Artifact Hub. - Updated ci.yml for multi-arch (amd64/arm64) Docker builds. - Added Helm chart README and updated main README instructions. Signed-off-by: Sanjaykumar.M <sanjaykumar.m@example.com>
|
🚀 First PR — welcome aboard! A few things to expect:
If you get stuck, reply here or jump to Discussions. We want this PR to land. |
…ar links Signed-off-by: btwshivam <shivam200446@gmail.com>
Signed-off-by: btwshivam <shivam200446@gmail.com>
Signed-off-by: btwshivam <shivam200446@gmail.com>
Adds a boolean flag to the doctor command to hide the ASCII art logo and metadata. This improves readability in CI/CD logs and automated environments. Includes updated PrettyRenderer logic and new unit tests. Signed-off-by: Shine Srivastava <shinesri.code@gmail.com>
btwshivam
left a comment
There was a problem hiding this comment.
three things need real values before this can merge: artifacthub-repo.yml ships with placeholder uuid + email, the chart icon points at demo.gif (animated, megabytes, not a logo), and the post-release step cps a file that doesn't exist on gh-pages so it silently no-ops.
| @@ -0,0 +1,6 @@ | |||
| # Artifact Hub repository metadata | |||
| # https://artifacthub.io/docs/topics/repositories/helm-charts/ | |||
| repositoryID: 00000000-0000-0000-0000-000000000000 # Placeholder: update with real ID after manual submission | |||
There was a problem hiding this comment.
placeholder uuid will be rejected by Artifact Hub on submission. the comment says update with real ID after manual submission but as written the YAML is unusable. the email at line 5 is also a placeholder (btwshivam@example.com). either submit to Artifact Hub first, plug the real repositoryID in before merging, or drop the file entirely until you're ready to publish.
| artifacthub.io/maintainers: | | ||
| - name: Shivam Kumar | ||
| github: btwshivam | ||
| icon: https://raw.githubusercontent.com/optiqor/kerno/main/demo.gif # Using demo.gif as a placeholder until a logo is available |
There was a problem hiding this comment.
demo.gif is an animated multi-megabyte recording of the CLI. Artifact Hub and Helm UIs render this as the chart logo, sized down. an animated GIF is wrong for that use, and the file is large enough to slow page loads. either commit a small static PNG/SVG at deploy/helm/kerno/icon.png and point at the raw GitHub URL, or drop the icon: line until a real logo exists.
| - name: Push Artifact Hub metadata | ||
| run: | | ||
| git checkout gh-pages | ||
| cp .github/artifacthub-repo.yml ./artifacthub-repo.yml || cp artifacthub-repo.yml ./artifacthub-repo.yml || true |
There was a problem hiding this comment.
this whole step silently no-ops. by the time git checkout gh-pages ran on line 43, the working tree is gh-pages content. the root artifacthub-repo.yml from main is gone, so both cp commands fail and || true swallows it. stash the file from main before switching branches:
FILE=$(mktemp)
cp artifacthub-repo.yml "$FILE"
git checkout gh-pages
cp "$FILE" ./artifacthub-repo.ymlor add a separate job that runs after release-chart and uses actions/checkout with ref: gh-pages and a second checkout for the file.
btwshivam
left a comment
There was a problem hiding this comment.
helm-release.yml's 'push artifact hub metadata' step never copies the file because git checkout gh-pages runs before the cp. plus the chart repo URL diverges from #36's kerno-charts, the artifacthub.io/maintainers annotation duplicates the standard maintainers: field, and artifacthub-repo.yml ships a placeholder UUID and fake email.
| - name: Push Artifact Hub metadata | ||
| run: | | ||
| git checkout gh-pages | ||
| cp .github/artifacthub-repo.yml ./artifacthub-repo.yml || cp artifacthub-repo.yml ./artifacthub-repo.yml || true |
There was a problem hiding this comment.
this step never copies anything. git checkout gh-pages at line 43 replaces the working tree with gh-pages content, so neither .github/artifacthub-repo.yml nor ./artifacthub-repo.yml exists by the time cp runs. both attempts fail silently (|| true), the if [ -f ] evaluates false, and artifacthub-repo.yml never lands in gh-pages. fix: save it before the checkout.
cp artifacthub-repo.yml /tmp/ahr.yml
git checkout gh-pages
cp /tmp/ahr.yml ./artifacthub-repo.yml
git add artifacthub-repo.yml
git commit -m 'chore: update artifacthub-repo.yml' && git push origin gh-pages| @@ -0,0 +1,6 @@ | |||
| # Artifact Hub repository metadata | |||
| # https://artifacthub.io/docs/topics/repositories/helm-charts/ | |||
| repositoryID: 00000000-0000-0000-0000-000000000000 # Placeholder: update with real ID after manual submission | |||
There was a problem hiding this comment.
placeholder UUID and btwshivam@example.com will both be rejected by artifact hub on first crawl. the real repositoryID is generated by artifact hub when you submit the repo through their UI, so either fill it in after submission or drop this file from the PR until then. the email also needs to be the maintainer's real address, not @example.com.
| artifacthub.io/signKey: "" | ||
| artifacthub.io/containsSecurityUpdates: "false" | ||
| artifacthub.io/prerelease: "false" | ||
| artifacthub.io/maintainers: | |
There was a problem hiding this comment.
this duplicates the standard maintainers: field at line 10. artifact hub auto-reads maintainers: from Chart.yaml, so the annotation is redundant. it also uses github: as the username key, but the standard maintainers: schema uses url: (line 12 already has url: https://github.com/btwshivam). drop the annotation, keep the standard field.
| artifacthub.io/maintainers: | | ||
| - name: Shivam Kumar | ||
| github: btwshivam | ||
| icon: https://raw.githubusercontent.com/optiqor/kerno/main/demo.gif # Using demo.gif as a placeholder until a logo is available |
There was a problem hiding this comment.
points the chart logo at a 985K animated demo GIF (your own comment calls it a placeholder). artifact hub renders the icon prominently next to the chart name. either drop the icon: line so artifact hub shows a default, or land a real square static logo first.
|
|
||
| ```bash | ||
| helm install kerno ./deploy/helm/kerno \ | ||
| helm repo add kerno https://optiqor.github.io/kerno |
There was a problem hiding this comment.
issue #36 specifies https://optiqor.github.io/kerno-charts (a dedicated chart repo). this PR points to https://optiqor.github.io/kerno (main repo's gh-pages). the deviation matters because gh-pages on the main repo is often reserved for the project website. sharing it with chart-releaser indexes can cause conflicts later. confirm which URL is canonical, then update this README, helm-release.yml, and the artifact hub submission to match.
…ia GitHub Actions
…qor#55) * feat(cli): add shell completion for bash, zsh, fish, powershell - Add kerno completion <bash|zsh|fish|powershell> command - Auto-detect shell in install.sh and install completion - Register --output flag values (pretty/json) for tab completion - Update README with shell-specific setup instructions - Mark completion command as hidden (plumbing, not feature) Signed-off-by: Kshitij-K-Singh <kshitijk.singh.min24@itbhu.ac.in> * feat(cli): add shell completion for bash, zsh, fish, powershell - Add kerno completion <bash|zsh|fish|powershell> command - Auto-detect shell in install.sh and install completion - Register --output flag values (pretty/json) for tab completion - Update README with shell-specific setup instructions - Use system-wide zsh path (/usr/local/share/zsh/site-functions) - Show completion in --help (not hidden) Signed-off-by: Kshitij-K-Singh <kshitijk.singh.min24@itbhu.ac.in> * fix(install): use system wide fish completion path Signed-off-by: Kshitij-K-Singh <kshitijk.singh.min24@itbhu.ac.in> * fix(cli,install): use cmd.OutOrStdout() and explicit kerno path Signed-off-by: Kshitij-K-Singh <kshitijk.singh.min24@itbhu.ac.in> --------- Signed-off-by: Kshitij-K-Singh <kshitijk.singh.min24@itbhu.ac.in>
* feat(cli): add no-color support for CLI output * fix: address PR review comments * refactor(cli): remove redundant NO_COLOR handling Signed-off-by: Vidheendu Chaturvedi <vidheendu01@gmail.com> * chore: rerun ci * fix(cli): format doctor renderer Signed-off-by: Vidheendu Chaturvedi <vidheendu01@gmail.com> --------- Signed-off-by: Vidheendu Chaturvedi <vidheendu01@gmail.com>
* feat(cli): add man page generation via make manpage Signed-off-by: Kshitij-K-Singh <kshitijk.singh.min24@itbhu.ac.in> * fix(manpages): removed dead code Signed-off-by: Kshitij-K-Singh <kshitijk.singh.min24@itbhu.ac.in> --------- Signed-off-by: Kshitij-K-Singh <kshitijk.singh.min24@itbhu.ac.in>
…oup (optiqor#88) Bumps the actions group with 1 update: [actions/github-script](https://github.com/actions/github-script). Updates `actions/github-script` from 7 to 9 - [Release notes](https://github.com/actions/github-script/releases) - [Commits](actions/github-script@v7...v9) --- updated-dependencies: - dependency-name: actions/github-script dependency-version: '9' dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
… builds - Added helm-release.yml workflow for automated chart publishing. - Added artifacthub-repo.yml and Chart.yaml annotations for Artifact Hub. - Updated ci.yml for multi-arch (amd64/arm64) Docker builds. - Added Helm chart README and updated main README instructions. Signed-off-by: Sanjaykumar.M <sanjaykumar.m@example.com>
…ia GitHub Actions
…jaykumar-2005/kerno into feat/distribution-multi-arch # Conflicts: # README.md
|
rebased the branch with main .. you added wamted others commits |
btwshivam
left a comment
There was a problem hiding this comment.
this branch merged main into itself (5501b86), so the diff balloons to ~24 files when 6 are real, and the merge silently reverts the shell-completion readme section from #55, which won't show in files-changed but lands on merge. rebase on main so the diff is just the helm work, then the inline notes.
| ## Installation | ||
|
|
||
| ```bash | ||
| helm repo add kerno https://optiqor.github.io/kerno-charts |
There was a problem hiding this comment.
this tells users to add https://optiqor.github.io/kerno-charts, but helm-release.yml runs chart-releaser with charts_dir: deploy/helm against this repo, so the index publishes to this repo's gh-pages at https://optiqor.github.io/kerno, not a kerno-charts repo. as written helm repo add 404s. either publish to a separate optiqor/kerno-charts repo, or change the url here (and in README.md:121 and artifacthub-repo.yml) to optiqor.github.io/kerno.
| # 3. Artifact Hub will generate a repositoryID (UUID). | ||
| # 4. Uncomment and fill in the lines below, then open a PR. | ||
| # | ||
| # repositoryID: <uuid-generated-by-artifacthub> |
There was a problem hiding this comment.
every line in this file is a comment, including repositoryID. as shipped it does nothing, Artifact Hub ownership isn't configured until a real repositoryID (or an owners block) is filled in. the PR says it adds the artifact hub config, but this is a placeholder. fill in the repositoryID, or say in the PR that hub registration is a follow-up.
| - name: Push Artifact Hub metadata | ||
| run: | | ||
| cp artifacthub-repo.yml /tmp/ahr.yml | ||
| git checkout gh-pages |
There was a problem hiding this comment.
git checkout gh-pages here is fragile. chart-releaser-action pushes gh-pages over the api and doesn't leave a local gh-pages branch, so after a fresh checkout@v6 this either fails with pathspec gh-pages did not match or races chart-releaser's own push and hits a non-fast-forward. the job only runs on tag, so ci never exercised it. simpler: commit artifacthub-repo.yml to the gh-pages root once by hand, or use chart-releaser's own index/pages options instead of a manual checkout+push.
| - kernel | ||
| - prometheus | ||
| - monitoring | ||
| apiVersion: v2 |
There was a problem hiding this comment.
the whole file shows as changed, not just the new annotations, which means the line endings flipped (looks like CRLF). re-save as LF so the diff is only the annotations: block.
|
any update? |
Changes:
helm-release.ymlworkflow to publish charts togh-pageson tag push.artifacthub-repo.ymland required annotations toChart.yaml.ci.ymlto build Docker images foramd64andarm64via QEMU.helm repo addinstructions.Verification:
helm lintpassed via Docker.Fixes #36