goodsmileduck / helm-push-action Goto Github PK
View Code? Open in Web Editor NEWThis action package a helm chart and publish it to your chartmuseum.
This action package a helm chart and publish it to your chartmuseum.
Hello,
i am using the plugin to package and push to GCP artifact registry with oci protocol.
My registry is private but it seem that the plugin is not doing the login before "helm dependecy update" command so it fails with 403.
Anyway by checking the code here it seem you are checking CHARTMUSEUM_REPO_NAME before you add the repo and login.
This paramter "CHARTMUSEUM_REPO_NAME" is not documented anywhere.
I have passed this env input but it seem not to arrive alway null/empty
you can see the code i'm talking about here -> https://github.com/Goodsmileduck/helm-push-action/blob/master/entrypoint.sh#L44
Thanks
Please get back to me as soon as you can
Ay,
Thanks for this Ghitub Action, but I have a question about the last line :
helm-push-action/entrypoint.sh
Line 52 in 39d65bb
Is ${CHART_FOLDER}-*
a typo ?
I got this error on my workflow :
build-helm:
name: Build Helm
runs-on: ubuntu-latest
needs: [xxx]
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: goodsmileduck/helm-push-action@v3
env:
SOURCE_DIR: '.'
CHART_FOLDER: 'my/path'
FORCE: 'True'
CHARTMUSEUM_URL: '${{ secrets.ORG_CHARTMUSEUM_URL }}'
CHARTMUSEUM_USER: '${{ secrets.ORG_CHARTMUSEUM_USERNAME }}'
CHARTMUSEUM_PASSWORD: ${{ secrets.ORG_CHARTMUSEUM_PASSWORD }}
+ helm cm-push 'my/path-*' *** -u *** -p '***' -f
Error: stat my/path-*: no such file or directory
Dears,
I have many github repos that's connects to a private DNS of our company. Yet, not sure why CI could connect in previous step but not in push chart museum
name: ambassador-crd
version: v2.0.2-pr-3
Successfully packaged chart and saved it to: /github/workspace/charts/ambassador-crd/ambassador-crd-v2.0.2-pr-3.tgz
No requirements found in /github/workspace/charts/ambassador-crd/charts.
Error: Get [https://charts.company.private/index.yaml:](https://charts.company.private/index.yaml:) remote error: tls: handshake failure
Error: plugin "push" exited with error
action configs
- name: Upload Charts
uses: goodsmileduck/helm-push-action@v2
env:
CHARTMUSEUM_URL: 'https://charts.company.private'
CHARTMUSEUM_USER: '${{ secrets.CHARTMUSEUM_USER }}'
CHARTMUSEUM_PASSWORD: ${{ secrets.CHARTMUSEUM_PASSWORD }}
FORCE: 'True'
SOURCE_DIR: './charts/'
CHART_FOLDER: ${{ steps.chart_name.outputs.target-chart }}
Run helm dependency update before helm package.
Build container for action use: '/home/runner/work/_actions/goodsmileduck/helm-push-action/v2/Dockerfile'.
/usr/bin/docker build -t cc4956:a627d6465a3542b0b40f7410c358014c -f "/home/runner/work/_actions/goodsmileduck/helm-push-action/v2/Dockerfile" "/home/runner/work/_actions/goodsmileduck/helm-push-action/v2"
Sending build context to Docker daemon 8.192kB
Step 1/10 : FROM plugins/base:linux-amd64
linux-amd64: Pulling from plugins/base
801bfaa63ef2: Pulling fs layer
77ec1754cd57: Pulling fs layer
77ec1754cd57: Verifying Checksum
77ec1754cd57: Download complete
801bfaa63ef2: Verifying Checksum
801bfaa63ef2: Download complete
801bfaa63ef2: Pull complete
77ec1754cd57: Pull complete
Digest: sha256:45a8416a236154c98890e02bc0a1dd190cc31c07694b8a80e6f48d5429b01a55
Status: Downloaded newer image for plugins/base:linux-amd64
---> c8dd10ec13bf
Step 2/10 : LABEL maintainer="Serebrennikov Stanislav <[email protected]>" org.label-schema.name="helm chart push" org.label-schema.vendor="Serebrennikov Stanislav" org.label-schema.schema-version="1.0"
---> Running in e8ddc5451f21
Removing intermediate container e8ddc5451f21
---> b34d52f19751
Step 3/10 : ENV HELM_VERSION v2.16.1
---> Running in b2a803ebac96
Removing intermediate container b2a803ebac96
---> 8a483a4e5d9b
Step 4/10 : ENV HELM_PLUGIN_PUSH_VERSION v0.7.1
---> Running in ea348d1aa463
Removing intermediate container ea348d1aa463
---> 7bfc5a96e44c
Step 5/10 : ENV HELM_HOME=/root/.helm
---> Running in ca0aff8c7ab2
Removing intermediate container ca0aff8c7ab2
---> ac60ec283e13
Step 6/10 : RUN apk add curl tar bash
---> Running in cf6bec26a25c
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz
fetch http://nl.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
(1/9) Installing ncurses-terminfo-base (6.2_p20200523-r0)
(2/9) Installing ncurses-libs (6.2_p20200523-r0)
(3/9) Installing readline (8.0.4-r0)
(4/9) Installing bash (5.0.17-r0)
Executing bash-5.0.17-r0.post-install
(5/9) Installing nghttp2-libs (1.41.0-r0)
(6/9) Installing libcurl (7.69.1-r3)
(7/9) Installing curl (7.69.1-r3)
(8/9) Installing libacl (2.2.53-r0)
(9/9) Installing tar (1.32-r1)
Executing busybox-1.31.1-r19.trigger
OK: 10 MiB in 25 packages
Removing intermediate container cf6bec26a25c
---> 492adfb569a0
Step 7/10 : RUN set -ex && curl -sSL https://storage.googleapis.com/kubernetes-helm/helm-${HELM_VERSION}-linux-amd64.tar.gz | tar xz && mv linux-amd64/helm /usr/local/bin/helm && rm -rf linux-amd64 && helm init --client-only
---> Running in 9d2564ff5f1a
+ curl -sSL storage.googleapis.com/kubernetes-helm/helm-v2.16.1-linux-amd64.tar.gz
+ tar xz
+ mv linux-amd64/helm /usr/local/bin/helm
+ rm -rf linux-amd64
+ helm init --client-only
Creating /root/.helm
Creating /root/.helm/repository
Creating /root/.helm/repository/cache
Creating /root/.helm/repository/local
Creating /root/.helm/plugins
Creating /root/.helm/starters
Creating /root/.helm/cache/archive
Creating /root/.helm/repository/repositories.yaml
Adding stable repo with URL: kubernetes-charts.storage.googleapis.com
Error: error initializing: Looks like "kubernetes-charts.storage.googleapis.com" is not a valid chart repository or cannot be reached: Failed to fetch kubernetes-charts.storage.googleapis.com/index.yaml : 403 Forbidden
The command '/bin/sh -c set -ex && curl -sSL https://storage.googleapis.com/kubernetes-helm/helm-${HELM_VERSION}-linux-amd64.tar.gz | tar xz && mv linux-amd64/helm /usr/local/bin/helm && rm -rf linux-amd64 && helm init --client-only' returned a non-zero code: 1
Warning: Docker build failed with exit code 1, back off 7.615 seconds before retry.
/usr/bin/docker build -t cc4956:a627d6465a3542b0b40f7410c358014c -f "/home/runner/work/_actions/goodsmileduck/helm-push-action/v2/Dockerfile" "/home/runner/work/_actions/goodsmileduck/helm-push-action/v2"
it starts today:
failed to load plugins: two plugins claim the name "push" at "/opt/xdg/helm/plugins/helm-push.git" and "/opt/xdg/helm/plugins/https-github.com-chartmuseum-helm-push.git"
I have a java project with a structure like this
Root
|
| --- module
| | -- target
| | -- chart
When I run the action from the root directory i get the following error, which from my research is a helm package issue.
directory name (chart) and Chart.yaml name (market-query-service) must match
Any idea on how to workaround it?
My action configs are this
- name: Build with Maven
run: mvn clean install -Ppublish-container
- uses: goodsmileduck/[email protected]
env:
SOURCE_DIR: '****-service/target/chart'
CHART_FOLDER: '.'
FORCE: 'True'
CHARTMUSEUM_URL: 'https://xxxxxx.com/'
CHARTMUSEUM_USER: '${{ secrets.CHARTMUSEUM_USER }}'
CHARTMUSEUM_PASSWORD: ${{ secrets.CHARTMUSEUM_PASSWORD }}
I've tried different SOURCE_DIR
and CHART_FOLDER
configurations but nothing worked so far.
If I run this command on my local machine instead of GitHub Actions it actually works
helm push *****-service/target/chart chartmuseum
from the same directory after the same maven command, which leads me to think the directory structure inside the container used by Github actions can be the cause, but I am not sure yet.
Thanks
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.