Giter Club home page Giter Club logo

helm-charts's Introduction

Minicloud Labs Kubernetes Helm Charts

License: MIT Artifact Hub Releases downloads

The code is provided as-is with no warranties.

Usage

Helm must be installed to use the charts. Please refer to Helm's documentation to get started.

Once Helm is set up properly, add the repo as follows:

helm repo add minicloudlabs https://minicloudlabs.github.io/helm-charts

You can then run helm search repo minicloudlabs to see the charts.

See available charts and respective documentation at helm-charts directory.

License

MIT License.

helm-charts's People

Contributors

avakarev avatar pursechicken avatar lapwat avatar twin avatar astraldawn avatar nlamirault avatar sebastienrospars avatar zdzichu avatar bakito avatar

Stargazers

 avatar Pavel Shklovsky avatar Linus avatar Martin Lillemets avatar Théophane Vié avatar kwizera elvis avatar  avatar Joachim Lavalette avatar Fred Tsao avatar Shivji Ram Jat avatar  avatar Leslie-Alexandre DENIS avatar wei avatar Jakob Boghdady avatar Bastien avatar Evgeny Cheremnykh avatar retr0 avatar ChanYub Park avatar Nikolaj Bentzen avatar Danilo Recchia avatar  avatar

Watchers

 avatar Nikolaj Bentzen avatar  avatar

helm-charts's Issues

[Gatus chart] extraLabels not working on all resources

Hi!

We are trying to apply labels to all resources using your extraLabels.
It seems like it does parse the extraLabels to the deployment but not down to the replicaset/pod.

Potential bug

I believe there is a bug in the chart (if it is not by design).
I believe the 'baseLabels' should be added to the template labels here;

Technical

We use https://minicloudlabs.github.io/helm-charts
Version: 3.4.0

Unable to install with Helm

I've been unable to get Gatus running on my minik8s cluster, even using the example Helm chart.

No matter which config I use, I get this error:

2023/03/11 02:44:48 [config][LoadConfiguration] Reading configuration from configFile=
panic: configuration should contain at least 1 endpoint

goroutine 1 [running]:
main.main()
      /app/main.go:19 +0x168 
Stream closed EOF for default/gatus-1678502686-56b989d6fb-lh8lh (gatus) 

My actual config:

---
repositories:
  - name: minicloudlabs
    url: https://minicloudlabs.github.io/helm-charts

releases:
  - name: gatus
    namespace: gatus
    chart: minicloudlabs/gatus
    version: 3.1.5
    values:
      - podLabels: pod-gatus
      - service:
        port: 30010
      - persistence:
          enabled: true
          existingClaim: 2g-pvc-nfs-nas
      - config:
          storage:
            type: sqlite
            path: /data/data.db
          alerting:
            discord:
              webhook-url: "https://discord.com/api/webhooks/***/***"
          endpoints:
            - name: IMPORTANT-remember-privacy-policy
              group: core
              url: "https://www.remember-game.com/privacy/"
              interval: 1m
              conditions:
                - "[STATUS] == 200"
              alerts:
                - type: discord
                  enabled: true
                  send-on-resolved: true
                  description: "*** REMEMBER Privacy Policy DOWN ***"

The claim exists:
image

Any help would be appreciated.

Service resources in helm template not working

Hello,

I have made my own values file to your helm, I see that I cant reach gatus because the helm chart does not render the service resource correctly

I have set this value(which is the default) on my values.yaml file:

service:
  type: ClusterIP
  port: 80
  targetPort: 8080
  annotations: {}
  labels: {}

and when i do helm template -f values.yaml gatus minicloudlabs/gatus i get these fields:

# Source: gatus/templates/service.yaml
apiVersion: v1
kind: Service
metadata:
  name: gatus
  namespace: mynamespace
  labels:
    helm.sh/chart: gatus-3.4.0
    app.kubernetes.io/name: gatus
    app.kubernetes.io/instance: gatus
    app.kubernetes.io/version: "v5.5.1"
    app.kubernetes.io/managed-by: Helm
spec:
  type: ClusterIP
  ports:
    - name: http
      port: 80
      targetPort: http
      protocol: TCP
  selector:
    app.kubernetes.io/name: gatus
    app.kubernetes.io/instance: gatus

which is forwarding the traffic to the container on HTTP(port 80) which is incorrect, its supposed to be 8080
I even tried with your default value file and got the same result

I would be happy this issue would be fixed so i can access the gatus service

Thank you

Changing configmap values triggers pod restart

It seems that the chart contains invalid configuration in deployment.yaml which restarts gatus pod every time there is a change in configmap.

Because gatus supports hot-reload of configuration file, changing configmap should not trigger pod restart.

Steps to reproduce

1. Deploy the chart
2. Modify any of the endpoints values
3. Run helm upgrade
4. Pod restarted

The culprit is the following line: gatus/templates/deployment.yaml:30
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
I believe this line is unneeded for this application due to hot-reloading capabilities of the underlying application and could be removed safely.

If this can be confirmed as a bug I am willing to create a Pull request with the relevant fix

Relevant version information:
gatus version

chart version: gatus-2.5.5
app version: v4.3.2

helm version

{
  Version: "v3.9.0",
  GitCommit: "7ceeda6c585217a19a1131663d8cd1f7d641b2a7",
  GitTreeState: "clean",
  GoVersion: "go1.17.5"
}

add podAnnotations

how about add podAnnotations like ingress annotations?

It'll be possible to use with sidecar.

What I mean podAnnotations is location spec.template.metadata.annotations for deployments.

__pod.tpl invalid indentation

It seems that the version 2.5.5 contains invalid __pod.tpl.

The indentation value for go-template functions is incorrect for the following lines in __pod.tpl

  • Line 14: {{- toYaml .Values.podSecurityContext | nindent 8 }} // This should be indented as 2
  • Line 18: {{- toYaml .Values.securityContext | nindent 12 }} // This should be indented as 6
  • Line 94: {{ toYaml . | indent 8 }} // This should be indented as 2

Faulty yaml can be easily reproduced using the following:

helm pull gatus/gatus --version 2.5.5
tar -xf gatus-2.5.5.tgz
helm template gatus --set 'nodeSelector.type=monitoring'

Helm version used:

version.BuildInfo{Version:"v3.9.0", GitCommit:"7ceeda6c585217a19a1131663d8cd1f7d641b2a7", GitTreeState:"clean", GoVersion:"go1.17.5"}

Faulty generated Deployment:

# Source: gatus/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: release-name-gatus
  namespace: default
  labels:
    helm.sh/chart: gatus-2.5.5
    app.kubernetes.io/name: gatus
    app.kubernetes.io/instance: release-name
    app.kubernetes.io/version: "v4.3.2"
    app.kubernetes.io/managed-by: Helm
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/name: gatus
      app.kubernetes.io/instance: release-name
  strategy:
    type: RollingUpdate
  template:
    metadata:
      labels:
        app.kubernetes.io/name: gatus
        app.kubernetes.io/instance: release-name
      annotations:
        checksum/config: 1846342a475c8692458ea95c9923286d41772fd2c01f7f969d1de05c963bf980
    spec:
      
      serviceAccountName: default
      automountServiceAccountToken: false
      securityContext:
              fsGroup: 65534
      containers:
        - name: gatus
          securityContext:
                  readOnlyRootFilesystem: true
                  runAsGroup: 65534
                  runAsNonRoot: true
                  runAsUser: 65534
          image: "twinproduction/gatus:v4.3.2"
          imagePullPolicy: IfNotPresent
          ports:
            - name: http
              containerPort: 8080
              protocol: TCP
          envFrom:
            - configMapRef:
                name: release-name-gatus
          readinessProbe:
            httpGet:
              path: /health
              port: http
          livenessProbe:
            httpGet:
              path: /health
              port: http
          resources:
            {}
          volumeMounts:
            - name: release-name-gatus-config
              mountPath: /config
              readOnly: true
      volumes:
        - name: release-name-gatus-config
          configMap:
            name: release-name-gatus
      nodeSelector:
              type: monitoring

there is a storage config deprecation warning

Found it in the logs:

│ 2022/04/27 12:37:08 WARNING: Your configuration is using 'storage.file', which is deprecated in favor of 'storage.path'                                                                                                                                                                 │
│ 2022/04/27 12:37:08 WARNING: storage.file will be completely removed in v4.0.0, so please update your configuration                                                                                                                                                                     │
│ 2022/04/27 12:37:08 WARNING: See https://github.com/TwiN/gatus/issues/197

Gatus: Allow the way to pass sensitive keys as header

We have endpoint healthcheck, and to query/hit that endpoint. we need to pass API-KEY as part of the header,

My current override of config for helm.

config:
  endpoints:
    - name: sample-api
      group: production
      url: https://my-api-prod.av.cloud.pan.local/healthcheck
      headers:
        API-KEY: my-api-key-value
      interval: 60s
      client:
        insecure: true
      conditions:
        - "[STATUS] == 200"
        - "[CERTIFICATE_EXPIRATION] > 72h"

Currently, I am putting them as part of the config section in override, And I cannot push this to any of repos or artifactor.

Can I make this available through a k8s secret?

Amazing job!

Hey @avakarev, this isn't really an issue, but as I was about to create a helm chart in my repository of helm charts for Gatus, I noticed your work.

I just wanted you to know that you've done awesome work, and if you'd like to create a PR on TwinProduction/gatus to add a link to this repository in the documentation (along with a new section titled "Helm" or something similar), I would gladly merge it!

In any case, thanks again :)

(Feel free to close this as you see fit)

Release missing

Your commits show that you have released 1.1.3, however there is no Release with that name.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.