From 829ac619366a920e6f5f5065a2202bac9ec0c6b5 Mon Sep 17 00:00:00 2001 From: Branch Vincent Date: Thu, 5 Nov 2020 22:53:38 -0500 Subject: [PATCH 1/5] feat: add node api chart --- .github/workflows/ci.yaml | 25 +++ .github/workflows/release.yaml | 26 ++++ Makefile | 21 +++ README.md | 144 +++++++++++++++++- charts/node-api/.helmignore | 23 +++ charts/node-api/Chart.yaml | 23 +++ charts/node-api/templates/NOTES.txt | 22 +++ charts/node-api/templates/_helpers.tpl | 62 ++++++++ charts/node-api/templates/deployment.yaml | 61 ++++++++ charts/node-api/templates/hpa.yaml | 28 ++++ charts/node-api/templates/ingress.yaml | 41 +++++ charts/node-api/templates/service.yaml | 15 ++ charts/node-api/templates/serviceaccount.yaml | 12 ++ .../templates/tests/test-connection.yaml | 15 ++ charts/node-api/values.yaml | 79 ++++++++++ ct.yaml | 6 + 16 files changed, 601 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/ci.yaml create mode 100644 .github/workflows/release.yaml create mode 100644 Makefile create mode 100644 charts/node-api/.helmignore create mode 100644 charts/node-api/Chart.yaml create mode 100644 charts/node-api/templates/NOTES.txt create mode 100644 charts/node-api/templates/_helpers.tpl create mode 100644 charts/node-api/templates/deployment.yaml create mode 100644 charts/node-api/templates/hpa.yaml create mode 100644 charts/node-api/templates/ingress.yaml create mode 100644 charts/node-api/templates/service.yaml create mode 100644 charts/node-api/templates/serviceaccount.yaml create mode 100644 charts/node-api/templates/tests/test-connection.yaml create mode 100644 charts/node-api/values.yaml create mode 100644 ct.yaml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..e2b0dac --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,25 @@ +name: CI + +on: push +# on: pull_request + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Lint + id: lint + uses: helm/chart-testing-action@v1.0.0 + with: + command: lint + config: ct.yaml + # - name: Setup testing environment + # uses: helm/kind-action@v1.0.0 + # if: steps.lint.outputs.changed == 'true' + # - name: Test + # uses: helm/chart-testing-action@v1.0.0 + # with: + # command: install + # config: ct.yaml diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..b76bd20 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,26 @@ +name: Release + +on: + push: + branches: + - main + +jobs: + release: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Fetch history + run: git fetch --prune --unshallow + + - name: Configure Git + run: | + git config user.name "$GITHUB_ACTOR" + git config user.email "$GITHUB_ACTOR@users.noreply.github.com" + + - name: Run chart-releaser + uses: helm/chart-releaser-action@v1.0.0 + env: + CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..28543a3 --- /dev/null +++ b/Makefile @@ -0,0 +1,21 @@ +HELM_CMD := $(shell command -v helmm 2> /dev/null) +KUBECTL_CMD := $(shell command -v kubectl 2> /dev/null) + +.PHONY: check-helm +check-helm: +ifndef HELM_CMD + $(error "No helm command found!") +endif + +.PHONY: check-kubectl +check-kubectl: +ifndef KUBECTL_CMD + $(error "No kubectl command found!") +endif + +.PHONY: check-deps +check-deps: check-helm check-kubectl + +.PHONY: lint +lint: check-deps + test/lint-charts.sh diff --git a/README.md b/README.md index 389ddda..e7095d2 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,142 @@ -# charts -ndustrial.io Helm charts +# ndustrial.io Helm Charts + +[![CI](https://github.com/ndustrialio/charts/workflows/CI/badge.svg)](https://github.com/ndustrialio/charts/actions?query=workflow%3ACI) + +This repository hosts the official **[ndustrial.io](https://ndustrial.io) Helm Charts** for deploying to [Kubernetes](https://kubernetes.io/) + +## Install Helm + +Get the latest [Helm release](https://github.com/kubernetes/helm#install). + +## Install Charts + +### Add ChartCenter Helm repository + +Before installing JFrog helm charts, you need to add the [ChartCenter helm repository](https://chartcenter.io) to your helm client. + +```bash +helm repo add center https://repo.chartcenter.io +helm repo update +``` + +**Note:** For instructions on how to install a chart follow instructions in its _README.md_. + +## Contributing to JFrog Charts + +Fork the `repo`, make changes and then please run `make lint` to lint charts locally, and at least install the chart to see it is working. :) + +On success make a [pull request](https://help.github.com/articles/using-pull-requests) (PR) on to the `master` branch. + +Upon successful review, someone will give the PR a **LGTM** (_looks good to me_) in the review thread. +Three **LGTM** are needed to get the PR approved and merged. + +## Linting charts locally + +**Note:** Docker must be running on your Mac/Linux machine. +The command will only lint changed charts. + +To lint all charts: + +```console +make lint +``` + +### Forcing to lint unchanged charts + +**Note:** Chart version bump check will be ignored. + +You can force to lint one chart with `--charts` flag: + +```console +make lint -- --charts stable/artifactory +``` + +You can force to lint a list of charts (separated by comma) with `--charts` flag: + +```console +make lint -- --charts stable/artifactory,stable/xray +``` + +You can force to lint all charts with `--all` flag: + +```console +make lint -- --all +``` + +## Manually testing charts with Docker for Mac Kubernetes Cluster + +**Note:** Make sure **'Show system containers (advanced)'** is enabled in `Preferences/Kubernetes`. + +On the Mac you can install and test all changed charts in `Docker for Mac`: + +```console +make mac +``` + +### Forcing to install unchanged charts + +You can force to install one chart with `--charts` flag: + +```console +make mac -- --charts stable/artifactory +``` + +You can force to install a list of charts (separated by comma) with `--charts` flag: + +```console +make mac -- --charts stable/artifactory,stable/xray +``` + +You can force to install all charts with `--all` flag: + +```console +make mac -- --all +``` + +**Note:** It might take a while to run install test for all charts in `Docker for Mac`. + +## Manually testing charts with remote GKE cluster + +You can install and test changed charts with `GKE` cluster set in kubeconfig `context`: + +```console +make gke +``` + +### Forcing to install unchanged charts + +You can force to install one chart with `--charts` flag: + +```console +make gke -- --charts stable/artifactory +``` + +You can force to install a list of charts (separated by comma) with `--charts` flag: + +```console +make gke -- --charts stable/artifactory,stable/xray +``` + +You can force to install all charts with `--all` flag: + +```console +make gke -- --all +``` + +### Using dedicated GKE cluster for manual charts testing + +By default it uses the `GKE` cluster set in kubeconfig `context`, you can specify the dedicated cluster (it must be set in the kubeconfig) in the file `CLUSTER`: + +``` +GKE_CLUSTER=gke_my_cluster_context_name +``` + +Then store the `CLUSTER` file in the root folder of the repo. It is also ignored by git. + +In such setup your local default cluster can be different from the charts testing one. + +## Docs + +For more information on using Helm, refer to the Helm's [documentation](https://docs.helm.sh/using_helm/#quickstart-guide). + +To get a quick introduction to Charts see this Chart's [documentation](https://docs.helm.sh/developing_charts/#charts). diff --git a/charts/node-api/.helmignore b/charts/node-api/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/charts/node-api/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/charts/node-api/Chart.yaml b/charts/node-api/Chart.yaml new file mode 100644 index 0000000..df079c0 --- /dev/null +++ b/charts/node-api/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +name: node-api +description: A Helm chart for Kubernetes + +# A chart can be either an 'application' or a 'library' chart. +# +# Application charts are a collection of templates that can be packaged into versioned archives +# to be deployed. +# +# Library charts provide useful utilities or functions for the chart developer. They're included as +# a dependency of application charts to inject those utilities and functions into the rendering +# pipeline. Library charts do not define any templates and therefore cannot be deployed. +type: application + +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +# Versions are expected to follow Semantic Versioning (https://semver.org/) +version: 0.1.0 + +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. Versions are not expected to +# follow Semantic Versioning. They should reflect the version the application is using. +appVersion: 1.16.0 diff --git a/charts/node-api/templates/NOTES.txt b/charts/node-api/templates/NOTES.txt new file mode 100644 index 0000000..1701a72 --- /dev/null +++ b/charts/node-api/templates/NOTES.txt @@ -0,0 +1,22 @@ +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range $host := .Values.ingress.hosts }} + {{- range .paths }} + http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }} + {{- end }} +{{- end }} +{{- else if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "node-api.fullname" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "node-api.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "node-api.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") + echo http://$SERVICE_IP:{{ .Values.service.port }} +{{- else if contains "ClusterIP" .Values.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "node-api.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT +{{- end }} diff --git a/charts/node-api/templates/_helpers.tpl b/charts/node-api/templates/_helpers.tpl new file mode 100644 index 0000000..5003610 --- /dev/null +++ b/charts/node-api/templates/_helpers.tpl @@ -0,0 +1,62 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "node-api.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "node-api.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "node-api.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "node-api.labels" -}} +helm.sh/chart: {{ include "node-api.chart" . }} +{{ include "node-api.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "node-api.selectorLabels" -}} +app.kubernetes.io/name: {{ include "node-api.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Create the name of the service account to use +*/}} +{{- define "node-api.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "node-api.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} diff --git a/charts/node-api/templates/deployment.yaml b/charts/node-api/templates/deployment.yaml new file mode 100644 index 0000000..891cfd0 --- /dev/null +++ b/charts/node-api/templates/deployment.yaml @@ -0,0 +1,61 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "node-api.fullname" . }} + labels: + {{- include "node-api.labels" . | nindent 4 }} +spec: + {{- if not .Values.autoscaling.enabled }} + replicas: {{ .Values.replicaCount }} + {{- end }} + selector: + matchLabels: + {{- include "node-api.selectorLabels" . | nindent 6 }} + template: + metadata: + {{- with .Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "node-api.selectorLabels" . | nindent 8 }} + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "node-api.serviceAccountName" . }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + containers: + - name: {{ .Chart.Name }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - name: http + containerPort: 80 + protocol: TCP + livenessProbe: + httpGet: + path: / + port: http + readinessProbe: + httpGet: + path: / + port: http + resources: + {{- toYaml .Values.resources | nindent 12 }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/charts/node-api/templates/hpa.yaml b/charts/node-api/templates/hpa.yaml new file mode 100644 index 0000000..91b47ed --- /dev/null +++ b/charts/node-api/templates/hpa.yaml @@ -0,0 +1,28 @@ +{{- if .Values.autoscaling.enabled }} +apiVersion: autoscaling/v2beta1 +kind: HorizontalPodAutoscaler +metadata: + name: {{ include "node-api.fullname" . }} + labels: + {{- include "node-api.labels" . | nindent 4 }} +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ include "node-api.fullname" . }} + minReplicas: {{ .Values.autoscaling.minReplicas }} + maxReplicas: {{ .Values.autoscaling.maxReplicas }} + metrics: + {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + targetAverageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} + {{- end }} + {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + targetAverageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} + {{- end }} +{{- end }} diff --git a/charts/node-api/templates/ingress.yaml b/charts/node-api/templates/ingress.yaml new file mode 100644 index 0000000..0d35e27 --- /dev/null +++ b/charts/node-api/templates/ingress.yaml @@ -0,0 +1,41 @@ +{{- if .Values.ingress.enabled -}} +{{- $fullName := include "node-api.fullname" . -}} +{{- $svcPort := .Values.service.port -}} +{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1beta1 +{{- else -}} +apiVersion: extensions/v1beta1 +{{- end }} +kind: Ingress +metadata: + name: {{ $fullName }} + labels: + {{- include "node-api.labels" . | nindent 4 }} + {{- with .Values.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if .Values.ingress.tls }} + tls: + {{- range .Values.ingress.tls }} + - hosts: + {{- range .hosts }} + - {{ . | quote }} + {{- end }} + secretName: {{ .secretName }} + {{- end }} + {{- end }} + rules: + {{- range .Values.ingress.hosts }} + - host: {{ .host | quote }} + http: + paths: + {{- range .paths }} + - path: {{ . }} + backend: + serviceName: {{ $fullName }} + servicePort: {{ $svcPort }} + {{- end }} + {{- end }} + {{- end }} diff --git a/charts/node-api/templates/service.yaml b/charts/node-api/templates/service.yaml new file mode 100644 index 0000000..b033791 --- /dev/null +++ b/charts/node-api/templates/service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "node-api.fullname" . }} + labels: + {{- include "node-api.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: http + protocol: TCP + name: http + selector: + {{- include "node-api.selectorLabels" . | nindent 4 }} diff --git a/charts/node-api/templates/serviceaccount.yaml b/charts/node-api/templates/serviceaccount.yaml new file mode 100644 index 0000000..1df0604 --- /dev/null +++ b/charts/node-api/templates/serviceaccount.yaml @@ -0,0 +1,12 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "node-api.serviceAccountName" . }} + labels: + {{- include "node-api.labels" . | nindent 4 }} + {{- with .Values.serviceAccount.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +{{- end }} diff --git a/charts/node-api/templates/tests/test-connection.yaml b/charts/node-api/templates/tests/test-connection.yaml new file mode 100644 index 0000000..35368c6 --- /dev/null +++ b/charts/node-api/templates/tests/test-connection.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Pod +metadata: + name: "{{ include "node-api.fullname" . }}-test-connection" + labels: + {{- include "node-api.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": test +spec: + containers: + - name: wget + image: busybox + command: ['wget'] + args: ['{{ include "node-api.fullname" . }}:{{ .Values.service.port }}'] + restartPolicy: Never diff --git a/charts/node-api/values.yaml b/charts/node-api/values.yaml new file mode 100644 index 0000000..9430329 --- /dev/null +++ b/charts/node-api/values.yaml @@ -0,0 +1,79 @@ +# Default values for node-api. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +replicaCount: 1 + +image: + repository: nginx + pullPolicy: IfNotPresent + # Overrides the image tag whose default is the chart appVersion. + tag: "" + +imagePullSecrets: [] +nameOverride: "" +fullnameOverride: "" + +serviceAccount: + # Specifies whether a service account should be created + create: true + # Annotations to add to the service account + annotations: {} + # The name of the service account to use. + # If not set and create is true, a name is generated using the fullname template + name: "" + +podAnnotations: {} + +podSecurityContext: {} + # fsGroup: 2000 + +securityContext: {} + # capabilities: + # drop: + # - ALL + # readOnlyRootFilesystem: true + # runAsNonRoot: true + # runAsUser: 1000 + +service: + type: ClusterIP + port: 80 + +ingress: + enabled: false + annotations: {} + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" + hosts: + - host: chart-example.local + paths: [] + tls: [] + # - secretName: chart-example-tls + # hosts: + # - chart-example.local + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 100m + # memory: 128Mi + +autoscaling: + enabled: false + minReplicas: 1 + maxReplicas: 100 + targetCPUUtilizationPercentage: 80 + # targetMemoryUtilizationPercentage: 80 + +nodeSelector: {} + +tolerations: [] + +affinity: {} diff --git a/ct.yaml b/ct.yaml new file mode 100644 index 0000000..c0770cd --- /dev/null +++ b/ct.yaml @@ -0,0 +1,6 @@ +# See https://github.com/helm/chart-testing#configuration +remote: origin +target-branch: main +chart-dirs: + - charts +helm-extra-args: --timeout 600s From a2f684bf45f7061639e2a8a30ec7347bdc37f8fa Mon Sep 17 00:00:00 2001 From: Branch Vincent Date: Thu, 5 Nov 2020 23:05:38 -0500 Subject: [PATCH 2/5] chore: clean branch --- .github/workflows/ci.yaml | 25 --- .github/workflows/release.yaml | 26 ---- Makefile | 21 --- README.md | 142 ------------------ charts/node-api/.helmignore | 23 --- charts/node-api/Chart.yaml | 23 --- charts/node-api/templates/NOTES.txt | 22 --- charts/node-api/templates/_helpers.tpl | 62 -------- charts/node-api/templates/deployment.yaml | 61 -------- charts/node-api/templates/hpa.yaml | 28 ---- charts/node-api/templates/ingress.yaml | 41 ----- charts/node-api/templates/service.yaml | 15 -- charts/node-api/templates/serviceaccount.yaml | 12 -- .../templates/tests/test-connection.yaml | 15 -- charts/node-api/values.yaml | 79 ---------- ct.yaml | 6 - 16 files changed, 601 deletions(-) delete mode 100644 .github/workflows/ci.yaml delete mode 100644 .github/workflows/release.yaml delete mode 100644 Makefile delete mode 100644 README.md delete mode 100644 charts/node-api/.helmignore delete mode 100644 charts/node-api/Chart.yaml delete mode 100644 charts/node-api/templates/NOTES.txt delete mode 100644 charts/node-api/templates/_helpers.tpl delete mode 100644 charts/node-api/templates/deployment.yaml delete mode 100644 charts/node-api/templates/hpa.yaml delete mode 100644 charts/node-api/templates/ingress.yaml delete mode 100644 charts/node-api/templates/service.yaml delete mode 100644 charts/node-api/templates/serviceaccount.yaml delete mode 100644 charts/node-api/templates/tests/test-connection.yaml delete mode 100644 charts/node-api/values.yaml delete mode 100644 ct.yaml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml deleted file mode 100644 index e2b0dac..0000000 --- a/.github/workflows/ci.yaml +++ /dev/null @@ -1,25 +0,0 @@ -name: CI - -on: push -# on: pull_request - -jobs: - lint: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Lint - id: lint - uses: helm/chart-testing-action@v1.0.0 - with: - command: lint - config: ct.yaml - # - name: Setup testing environment - # uses: helm/kind-action@v1.0.0 - # if: steps.lint.outputs.changed == 'true' - # - name: Test - # uses: helm/chart-testing-action@v1.0.0 - # with: - # command: install - # config: ct.yaml diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml deleted file mode 100644 index b76bd20..0000000 --- a/.github/workflows/release.yaml +++ /dev/null @@ -1,26 +0,0 @@ -name: Release - -on: - push: - branches: - - main - -jobs: - release: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Fetch history - run: git fetch --prune --unshallow - - - name: Configure Git - run: | - git config user.name "$GITHUB_ACTOR" - git config user.email "$GITHUB_ACTOR@users.noreply.github.com" - - - name: Run chart-releaser - uses: helm/chart-releaser-action@v1.0.0 - env: - CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" diff --git a/Makefile b/Makefile deleted file mode 100644 index 28543a3..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -HELM_CMD := $(shell command -v helmm 2> /dev/null) -KUBECTL_CMD := $(shell command -v kubectl 2> /dev/null) - -.PHONY: check-helm -check-helm: -ifndef HELM_CMD - $(error "No helm command found!") -endif - -.PHONY: check-kubectl -check-kubectl: -ifndef KUBECTL_CMD - $(error "No kubectl command found!") -endif - -.PHONY: check-deps -check-deps: check-helm check-kubectl - -.PHONY: lint -lint: check-deps - test/lint-charts.sh diff --git a/README.md b/README.md deleted file mode 100644 index e7095d2..0000000 --- a/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# ndustrial.io Helm Charts - -[![CI](https://github.com/ndustrialio/charts/workflows/CI/badge.svg)](https://github.com/ndustrialio/charts/actions?query=workflow%3ACI) - -This repository hosts the official **[ndustrial.io](https://ndustrial.io) Helm Charts** for deploying to [Kubernetes](https://kubernetes.io/) - -## Install Helm - -Get the latest [Helm release](https://github.com/kubernetes/helm#install). - -## Install Charts - -### Add ChartCenter Helm repository - -Before installing JFrog helm charts, you need to add the [ChartCenter helm repository](https://chartcenter.io) to your helm client. - -```bash -helm repo add center https://repo.chartcenter.io -helm repo update -``` - -**Note:** For instructions on how to install a chart follow instructions in its _README.md_. - -## Contributing to JFrog Charts - -Fork the `repo`, make changes and then please run `make lint` to lint charts locally, and at least install the chart to see it is working. :) - -On success make a [pull request](https://help.github.com/articles/using-pull-requests) (PR) on to the `master` branch. - -Upon successful review, someone will give the PR a **LGTM** (_looks good to me_) in the review thread. -Three **LGTM** are needed to get the PR approved and merged. - -## Linting charts locally - -**Note:** Docker must be running on your Mac/Linux machine. -The command will only lint changed charts. - -To lint all charts: - -```console -make lint -``` - -### Forcing to lint unchanged charts - -**Note:** Chart version bump check will be ignored. - -You can force to lint one chart with `--charts` flag: - -```console -make lint -- --charts stable/artifactory -``` - -You can force to lint a list of charts (separated by comma) with `--charts` flag: - -```console -make lint -- --charts stable/artifactory,stable/xray -``` - -You can force to lint all charts with `--all` flag: - -```console -make lint -- --all -``` - -## Manually testing charts with Docker for Mac Kubernetes Cluster - -**Note:** Make sure **'Show system containers (advanced)'** is enabled in `Preferences/Kubernetes`. - -On the Mac you can install and test all changed charts in `Docker for Mac`: - -```console -make mac -``` - -### Forcing to install unchanged charts - -You can force to install one chart with `--charts` flag: - -```console -make mac -- --charts stable/artifactory -``` - -You can force to install a list of charts (separated by comma) with `--charts` flag: - -```console -make mac -- --charts stable/artifactory,stable/xray -``` - -You can force to install all charts with `--all` flag: - -```console -make mac -- --all -``` - -**Note:** It might take a while to run install test for all charts in `Docker for Mac`. - -## Manually testing charts with remote GKE cluster - -You can install and test changed charts with `GKE` cluster set in kubeconfig `context`: - -```console -make gke -``` - -### Forcing to install unchanged charts - -You can force to install one chart with `--charts` flag: - -```console -make gke -- --charts stable/artifactory -``` - -You can force to install a list of charts (separated by comma) with `--charts` flag: - -```console -make gke -- --charts stable/artifactory,stable/xray -``` - -You can force to install all charts with `--all` flag: - -```console -make gke -- --all -``` - -### Using dedicated GKE cluster for manual charts testing - -By default it uses the `GKE` cluster set in kubeconfig `context`, you can specify the dedicated cluster (it must be set in the kubeconfig) in the file `CLUSTER`: - -``` -GKE_CLUSTER=gke_my_cluster_context_name -``` - -Then store the `CLUSTER` file in the root folder of the repo. It is also ignored by git. - -In such setup your local default cluster can be different from the charts testing one. - -## Docs - -For more information on using Helm, refer to the Helm's [documentation](https://docs.helm.sh/using_helm/#quickstart-guide). - -To get a quick introduction to Charts see this Chart's [documentation](https://docs.helm.sh/developing_charts/#charts). diff --git a/charts/node-api/.helmignore b/charts/node-api/.helmignore deleted file mode 100644 index 0e8a0eb..0000000 --- a/charts/node-api/.helmignore +++ /dev/null @@ -1,23 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*.orig -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/charts/node-api/Chart.yaml b/charts/node-api/Chart.yaml deleted file mode 100644 index df079c0..0000000 --- a/charts/node-api/Chart.yaml +++ /dev/null @@ -1,23 +0,0 @@ -apiVersion: v2 -name: node-api -description: A Helm chart for Kubernetes - -# A chart can be either an 'application' or a 'library' chart. -# -# Application charts are a collection of templates that can be packaged into versioned archives -# to be deployed. -# -# Library charts provide useful utilities or functions for the chart developer. They're included as -# a dependency of application charts to inject those utilities and functions into the rendering -# pipeline. Library charts do not define any templates and therefore cannot be deployed. -type: application - -# This is the chart version. This version number should be incremented each time you make changes -# to the chart and its templates, including the app version. -# Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.1.0 - -# This is the version number of the application being deployed. This version number should be -# incremented each time you make changes to the application. Versions are not expected to -# follow Semantic Versioning. They should reflect the version the application is using. -appVersion: 1.16.0 diff --git a/charts/node-api/templates/NOTES.txt b/charts/node-api/templates/NOTES.txt deleted file mode 100644 index 1701a72..0000000 --- a/charts/node-api/templates/NOTES.txt +++ /dev/null @@ -1,22 +0,0 @@ -1. Get the application URL by running these commands: -{{- if .Values.ingress.enabled }} -{{- range $host := .Values.ingress.hosts }} - {{- range .paths }} - http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }} - {{- end }} -{{- end }} -{{- else if contains "NodePort" .Values.service.type }} - export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "node-api.fullname" . }}) - export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") - echo http://$NODE_IP:$NODE_PORT -{{- else if contains "LoadBalancer" .Values.service.type }} - NOTE: It may take a few minutes for the LoadBalancer IP to be available. - You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "node-api.fullname" . }}' - export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "node-api.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") - echo http://$SERVICE_IP:{{ .Values.service.port }} -{{- else if contains "ClusterIP" .Values.service.type }} - export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "node-api.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") - export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") - echo "Visit http://127.0.0.1:8080 to use your application" - kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT -{{- end }} diff --git a/charts/node-api/templates/_helpers.tpl b/charts/node-api/templates/_helpers.tpl deleted file mode 100644 index 5003610..0000000 --- a/charts/node-api/templates/_helpers.tpl +++ /dev/null @@ -1,62 +0,0 @@ -{{/* -Expand the name of the chart. -*/}} -{{- define "node-api.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} -{{- end }} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "node-api.fullname" -}} -{{- if .Values.fullnameOverride }} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} -{{- else }} -{{- $name := default .Chart.Name .Values.nameOverride }} -{{- if contains $name .Release.Name }} -{{- .Release.Name | trunc 63 | trimSuffix "-" }} -{{- else }} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} -{{- end }} -{{- end }} -{{- end }} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "node-api.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} -{{- end }} - -{{/* -Common labels -*/}} -{{- define "node-api.labels" -}} -helm.sh/chart: {{ include "node-api.chart" . }} -{{ include "node-api.selectorLabels" . }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end }} - -{{/* -Selector labels -*/}} -{{- define "node-api.selectorLabels" -}} -app.kubernetes.io/name: {{ include "node-api.name" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- end }} - -{{/* -Create the name of the service account to use -*/}} -{{- define "node-api.serviceAccountName" -}} -{{- if .Values.serviceAccount.create }} -{{- default (include "node-api.fullname" .) .Values.serviceAccount.name }} -{{- else }} -{{- default "default" .Values.serviceAccount.name }} -{{- end }} -{{- end }} diff --git a/charts/node-api/templates/deployment.yaml b/charts/node-api/templates/deployment.yaml deleted file mode 100644 index 891cfd0..0000000 --- a/charts/node-api/templates/deployment.yaml +++ /dev/null @@ -1,61 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ include "node-api.fullname" . }} - labels: - {{- include "node-api.labels" . | nindent 4 }} -spec: - {{- if not .Values.autoscaling.enabled }} - replicas: {{ .Values.replicaCount }} - {{- end }} - selector: - matchLabels: - {{- include "node-api.selectorLabels" . | nindent 6 }} - template: - metadata: - {{- with .Values.podAnnotations }} - annotations: - {{- toYaml . | nindent 8 }} - {{- end }} - labels: - {{- include "node-api.selectorLabels" . | nindent 8 }} - spec: - {{- with .Values.imagePullSecrets }} - imagePullSecrets: - {{- toYaml . | nindent 8 }} - {{- end }} - serviceAccountName: {{ include "node-api.serviceAccountName" . }} - securityContext: - {{- toYaml .Values.podSecurityContext | nindent 8 }} - containers: - - name: {{ .Chart.Name }} - securityContext: - {{- toYaml .Values.securityContext | nindent 12 }} - image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" - imagePullPolicy: {{ .Values.image.pullPolicy }} - ports: - - name: http - containerPort: 80 - protocol: TCP - livenessProbe: - httpGet: - path: / - port: http - readinessProbe: - httpGet: - path: / - port: http - resources: - {{- toYaml .Values.resources | nindent 12 }} - {{- with .Values.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} diff --git a/charts/node-api/templates/hpa.yaml b/charts/node-api/templates/hpa.yaml deleted file mode 100644 index 91b47ed..0000000 --- a/charts/node-api/templates/hpa.yaml +++ /dev/null @@ -1,28 +0,0 @@ -{{- if .Values.autoscaling.enabled }} -apiVersion: autoscaling/v2beta1 -kind: HorizontalPodAutoscaler -metadata: - name: {{ include "node-api.fullname" . }} - labels: - {{- include "node-api.labels" . | nindent 4 }} -spec: - scaleTargetRef: - apiVersion: apps/v1 - kind: Deployment - name: {{ include "node-api.fullname" . }} - minReplicas: {{ .Values.autoscaling.minReplicas }} - maxReplicas: {{ .Values.autoscaling.maxReplicas }} - metrics: - {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} - - type: Resource - resource: - name: cpu - targetAverageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} - {{- end }} - {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} - - type: Resource - resource: - name: memory - targetAverageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} - {{- end }} -{{- end }} diff --git a/charts/node-api/templates/ingress.yaml b/charts/node-api/templates/ingress.yaml deleted file mode 100644 index 0d35e27..0000000 --- a/charts/node-api/templates/ingress.yaml +++ /dev/null @@ -1,41 +0,0 @@ -{{- if .Values.ingress.enabled -}} -{{- $fullName := include "node-api.fullname" . -}} -{{- $svcPort := .Values.service.port -}} -{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} -apiVersion: networking.k8s.io/v1beta1 -{{- else -}} -apiVersion: extensions/v1beta1 -{{- end }} -kind: Ingress -metadata: - name: {{ $fullName }} - labels: - {{- include "node-api.labels" . | nindent 4 }} - {{- with .Values.ingress.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - {{- if .Values.ingress.tls }} - tls: - {{- range .Values.ingress.tls }} - - hosts: - {{- range .hosts }} - - {{ . | quote }} - {{- end }} - secretName: {{ .secretName }} - {{- end }} - {{- end }} - rules: - {{- range .Values.ingress.hosts }} - - host: {{ .host | quote }} - http: - paths: - {{- range .paths }} - - path: {{ . }} - backend: - serviceName: {{ $fullName }} - servicePort: {{ $svcPort }} - {{- end }} - {{- end }} - {{- end }} diff --git a/charts/node-api/templates/service.yaml b/charts/node-api/templates/service.yaml deleted file mode 100644 index b033791..0000000 --- a/charts/node-api/templates/service.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ include "node-api.fullname" . }} - labels: - {{- include "node-api.labels" . | nindent 4 }} -spec: - type: {{ .Values.service.type }} - ports: - - port: {{ .Values.service.port }} - targetPort: http - protocol: TCP - name: http - selector: - {{- include "node-api.selectorLabels" . | nindent 4 }} diff --git a/charts/node-api/templates/serviceaccount.yaml b/charts/node-api/templates/serviceaccount.yaml deleted file mode 100644 index 1df0604..0000000 --- a/charts/node-api/templates/serviceaccount.yaml +++ /dev/null @@ -1,12 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ include "node-api.serviceAccountName" . }} - labels: - {{- include "node-api.labels" . | nindent 4 }} - {{- with .Values.serviceAccount.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -{{- end }} diff --git a/charts/node-api/templates/tests/test-connection.yaml b/charts/node-api/templates/tests/test-connection.yaml deleted file mode 100644 index 35368c6..0000000 --- a/charts/node-api/templates/tests/test-connection.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: "{{ include "node-api.fullname" . }}-test-connection" - labels: - {{- include "node-api.labels" . | nindent 4 }} - annotations: - "helm.sh/hook": test -spec: - containers: - - name: wget - image: busybox - command: ['wget'] - args: ['{{ include "node-api.fullname" . }}:{{ .Values.service.port }}'] - restartPolicy: Never diff --git a/charts/node-api/values.yaml b/charts/node-api/values.yaml deleted file mode 100644 index 9430329..0000000 --- a/charts/node-api/values.yaml +++ /dev/null @@ -1,79 +0,0 @@ -# Default values for node-api. -# This is a YAML-formatted file. -# Declare variables to be passed into your templates. - -replicaCount: 1 - -image: - repository: nginx - pullPolicy: IfNotPresent - # Overrides the image tag whose default is the chart appVersion. - tag: "" - -imagePullSecrets: [] -nameOverride: "" -fullnameOverride: "" - -serviceAccount: - # Specifies whether a service account should be created - create: true - # Annotations to add to the service account - annotations: {} - # The name of the service account to use. - # If not set and create is true, a name is generated using the fullname template - name: "" - -podAnnotations: {} - -podSecurityContext: {} - # fsGroup: 2000 - -securityContext: {} - # capabilities: - # drop: - # - ALL - # readOnlyRootFilesystem: true - # runAsNonRoot: true - # runAsUser: 1000 - -service: - type: ClusterIP - port: 80 - -ingress: - enabled: false - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - hosts: - - host: chart-example.local - paths: [] - tls: [] - # - secretName: chart-example-tls - # hosts: - # - chart-example.local - -resources: {} - # We usually recommend not to specify default resources and to leave this as a conscious - # choice for the user. This also increases chances charts run on environments with little - # resources, such as Minikube. If you do want to specify resources, uncomment the following - # lines, adjust them as necessary, and remove the curly braces after 'resources:'. - # limits: - # cpu: 100m - # memory: 128Mi - # requests: - # cpu: 100m - # memory: 128Mi - -autoscaling: - enabled: false - minReplicas: 1 - maxReplicas: 100 - targetCPUUtilizationPercentage: 80 - # targetMemoryUtilizationPercentage: 80 - -nodeSelector: {} - -tolerations: [] - -affinity: {} diff --git a/ct.yaml b/ct.yaml deleted file mode 100644 index c0770cd..0000000 --- a/ct.yaml +++ /dev/null @@ -1,6 +0,0 @@ -# See https://github.com/helm/chart-testing#configuration -remote: origin -target-branch: main -chart-dirs: - - charts -helm-extra-args: --timeout 600s From 6877be3edc649315378e05815694e201bd242ff8 Mon Sep 17 00:00:00 2001 From: branchvincent Date: Fri, 6 Nov 2020 13:22:36 +0000 Subject: [PATCH 3/5] Update index.yaml Signed-off-by: branchvincent --- index.yaml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 index.yaml diff --git a/index.yaml b/index.yaml new file mode 100644 index 0000000..35161f4 --- /dev/null +++ b/index.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +entries: + node-api: + - apiVersion: v2 + appVersion: 1.16.0 + created: "2020-11-06T13:22:36.453952204Z" + description: A Helm chart for Kubernetes + digest: 7aaf6fcc9779e27f6db833d06cf60012b381ff65fbf32463c6c8351b8cb335e6 + name: node-api + type: application + urls: + - https://github.com/ndustrialio/charts/releases/download/node-api-0.1.0/node-api-0.1.0.tgz + version: 0.1.0 +generated: "2020-11-06T13:22:36.32572661Z" From e29b10698c03178dcc7be83d9a01c052b6389f25 Mon Sep 17 00:00:00 2001 From: Branch Vincent Date: Fri, 6 Nov 2020 08:24:44 -0500 Subject: [PATCH 4/5] Create README.md --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..1537dee --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +# ndustrial.io Helm Charts + +This repository hosts the **[ndustrial.io](https://ndustrial.io) Helm Charts** for deploying to [Kubernetes](https://kubernetes.io/). + +## Usage + +[Helm](https://helm.sh) must be installed to use the charts. +Please refer to Helm's [documentation](https://helm.sh/docs/) to get started. + +Once Helm is set up, add the repo: + +```console +helm repo add ndustrial https://ndustrialio.github.io/charts +helm repo update +``` + +You can then run `helm search repo ndustrial` to see the charts. From 94da3f0bef0f592778daeef02c588841b736016e Mon Sep 17 00:00:00 2001 From: kalinon Date: Tue, 8 Jun 2021 17:28:20 +0000 Subject: [PATCH 5/5] Update index.yaml Signed-off-by: kalinon --- index.yaml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/index.yaml b/index.yaml index 35161f4..effc829 100644 --- a/index.yaml +++ b/index.yaml @@ -1,5 +1,33 @@ apiVersion: v1 entries: + common: + - annotations: + category: Infrastructure + apiVersion: v2 + appVersion: 0.1.0 + created: "2021-06-08T17:28:20.105945727Z" + description: A Library Helm Chart for grouping common logic between ndustrial + charts. This chart is not deployable by itself. + digest: 410eae4c751ff5d53d37e8220f31152d7c086ebc218cde3cdbb5ba50954e2311 + home: https://github.com/ndustrialio/charts/tree/stateful/ndustrial/common + icon: https://bitnami.com/downloads/logos/bitnami-mark.png + keywords: + - common + - helper + - template + - function + - ndustrial + maintainers: + - email: devops@ndustrial.io + name: DevOps + name: common + sources: + - https://github.com/ndustrialio/charts + - https://ndustrial.io/ + type: library + urls: + - https://github.com/ndustrialio/charts/releases/download/common-0.1.0/common-0.1.0.tgz + version: 0.1.0 node-api: - apiVersion: v2 appVersion: 1.16.0