Git Product home page Git Product logo

helm's Introduction

Helm Charts

This repo houses a bunch of helm charts that I find useful.

Generally Useful

  • generic: As the name suggests, this chart can be used to deploy a "generic" application.
    • i.e. an application that needs a helm chart, and does not need lots of customization. The goal is to have "most" things available as values to customize. (Trying to reduce the number of bespoke helm charts I need to maintain. I use this often for microservices, etc.)
  • regcred: A chart to generate "registry credentials" (i.e. pull secrets for Kubernetes) easily from values

Specific Applications

  • traefik-forward-auth: A chart for deploying traefik-forward-auth (a service for adding OIDC to a generic traefik installation)
  • postgrest: A chart for deploying PostgREST (a fast and performant way to build an API backend on top of a PostgreSQL database)
  • training-ns: A chart I like to use for generating throw-away namespaces and users for training others on Kubernetes

Other

  • `example: This example chart is just boilerplate for reference. It should not be used.
  • matomo: This chart is useful for deploying matomo, but is maintained elsewhere. I would like for my fork to go away eventually.

helm's People

Contributors

colearendt avatar actions-user avatar timtalbot avatar stranljip avatar mindflayer avatar

Stargazers

Rustam Arslanov avatar Elliot Murphy avatar Denis avatar

Watchers

James Cloos avatar  avatar  avatar

helm's Issues

Improve ingress for matomo chart

Related to #40

We should do the same in the matomo chart, which also lags a bit behind the others in other ways too... hazards of a submodule

Postgrest chart, unknown field "rollingUpdate" in io.k8s.api.apps.v1.DeploymentSpec

I was trying to use the postgrest chart, but I'm receiving this error:

Error: INSTALLATION FAILED: unable to build kubernetes objects from release manifest: error validating "": error validating data: [ValidationError(Deployment.spec): unknown field "rollingUpdate" in io.k8s.api.apps.v1.DeploymentSpec, ValidationError(Deployment.spec): unknown field "type" in io.k8s.api.apps.v1.DeploymentSpec]

Any ideas what could it be?

I'm using this values.yaml file (default provided but modified):

replicaCount: 1

versionOverride: ""

image:
  repository: postgrest/postgrest
  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: ""

strategy:
  type: RollingUpdate
  rollingUpdate:
    maxUnavailable: 1
    maxSurge: 1

initContainers: {}

command: []
args: []

postgrest:
  dbUri: "postgres://XXXX:XXXX@XXXX/XXXX"
  dbSchema: "XXXX"
  dbAnonRole: "XXXX"
  dbPool: ""
  dbPoolTimeout: ""
  dbExtraSearchPath: ""
  dbChannel: ""
  dbChannelEnabled: ""
  serverHost: "XXX.XXX.X.XXX"
  serverPort: "XXXX"
  openApiServerProxyUri: ""
  jwtSecret: ""
  secretIsBase64: ""
  jwtAud: ""
  roleClaimKey: ""
  maxRows: ""
  preRequest: ""
  rootSpec: ""
  rawMediaTypes: ""

secret: {}

securityContext: {}
  # capabilities:
  #   drop:
  #   - ALL
  # readOnlyRootFilesystem: true
  # runAsNonRoot: true
  # runAsUser: 1000

pod:
  annotations: {}
  containerPort: 9000
  env: []
  readinessProbe:
    httpGet:
      path: /
      port: http
    initialDelaySeconds: 5
    periodSeconds: 5
  livenessProbe: {}
  startupProbe: {}
  volumes: []
  volumeMounts: []
  securityContext: {}

service:
  type: ClusterIP
  port: 80

ingress:
  enabled: true
  annotations:
    kubernetes.io/ingress.class: nginx
    cert-manager.io/cluster-issuer: "XXXX-prod"
    # kubernetes.io/tls-acme: "true"
  hosts:
    - host: XXXX.COM
      paths: []
  tls:
    - secretName: XXXX-tls
      hosts:
        - XXXX.COM

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: {}

Add a new chart template that uses the conventions I have grown accustomed to

Related to #37

I'm not a huge fan of the conventions in the "default" / open source helm chart template. We should create our own template! (Or find a better open source one)

Ideals:

  • namespace things reasonably when possible (i.e. under pod or service or deployment)
  • use conventions from Kubernetes where possible (i.e. storageClassName instead of storageClass)
  • _helpers.tpl to simplify life
  • extraObjects

Add "generic" chart

It would be good to have a generic chart for deploying random docker containers

Stand up postgres chart in CI

In order for the postgrest container / chart to function in CI, I believe a postgres database needs to exist / be around. We should set one up in CI

Address inconsistencies in the `traefik-forward-auth` chart

The traefik-forward-auth chart has some inconsistencies that we should back out. However, some are breaking changes, so should be done carefully:

  • serviceAnnotations vs. service.annotations
  • Not using helpers for selectorLabels, labels or fullName (the latter has a risk for long names)
  • Other config options missing that are normally in my charts...

Hide postgrest secrets

Similar to #16 - we should allow setting postgrest settings by secrets (especially client-secret, etc.) - or maybe a config file too

How to install the Matomo chart

I followed the instruction at https://github.com/colearendt/matomo-chart but the matomo chart is not available in your
chart repo. Why is that ?

❯ helm repo add truecharts https://github.com/truecharts/catalog/
❯ helm repo update
...
...Successfully got an update from the "colearendt" chart repository
...

❯ helm search repo cole  
NAME                           	CHART VERSION	APP VERSION	DESCRIPTION                                       
colearendt/example             	0.1.2        	1.16.1     	A Helm chart for Kubernetes                       
colearendt/generic             	0.2.2        	latest     	A generic Helm chart for Kubernetes               
colearendt/postgrest           	0.3.0        	v8.0.0     	A Helm chart for deploying Postgrest to Kubernetes
colearendt/regcred             	0.1.0        	0.1.0      	A Helm chart that deploys registry credential s...
colearendt/traefik-forward-auth	0.0.6        	          	Deploy traefik-forward-auth                       
colearendt/training-ns         	0.0.2        	0.0.2      	A Helm chart to help train users on Kubernetes   

Modern versions of Kubernetes implement `autoscaling/v2`

Hi there,
the HorizontalPodAutoscaler from autoscaling/v2beta1 is not compatible with recent versions of Kubernetes.
So, for instance, PostgREST autoscaling cannot be enabled when running on Kubernetes 1.26.

Other Helm Charts solve this problem with templates which dinamically choose the right version to use, accordingly to the Kubernetes version.

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.