Skip to content

Helm charts to deploy Helpy on Kubernetes

License

Notifications You must be signed in to change notification settings

scott/helpy-helm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Helpy Helm charts (beta)

The Helpy Helm chart can be used to launch Helpy Community Edition or Helpy Pro on a Kubernetes cluster. It is designed to work out of the box, but for production use, some customization of the configuration values is recommended.

NOTE: This is currently a beta release and is missing certain features and could have other issues. Please report issues and submit PRs.

Usage

You will need a Kubernetes cluster and a system with Helm installed. Then add the Helpy helm repository, using this command:

helm repo add helpyio https://scott.github.io/helpy-helm/
helm repo update

To run a Helpy Pro instance, use the following:

helm install release-name helpyio/helpy

To run a Helpy CE instance, use the following:

helm install release-name helpyio/helpy --set image.repository=helpy/helpy --set image.tag=kubernetes --set image.name=helpyce

Configuration

This Helm chart is intended to be highly configurable for different needs:

Configuring SSL: https://github.com/scott/helpy-helm/wiki/Enable-SSL

Set up a production database: https://github.com/scott/helpy-helm/wiki/Set-up-a-Production-DB

Use S3 for object storage: https://github.com/scott/helpy-helm/wiki/Use-S3-or-DigitalOcean-Object-Storage

Full Wiki; https://github.com/scott/helpy-helm/wiki

Variables:

Variable Description Default Value
image.name The name of the app you are running helpypro
image.repository The container to pull from for the app server. helpyio/helpypro
image.tag The tag to pull latest
image.pullPolicy The container pull policy Always
appReplicaCount The number of app servers to run 2
workerReplicaCount The number of workers to run 2
service.type The service type NodePort
service.externalPort The port the service should accept traffic to 80
service.internalPort The port the service forwards traffic to 3000
ingress.enabled Whether or not to use the ingress. true
ingress.annotations Ingress Annotations {}
ingress.hosts.host Hostname to reach the service Helpy.local
ingress.hosts.paths Path to reach the service ["/"]
ingress.tls
loadBalancer.enabled Whether or not to use a LB true
loadBalancer.annotations Annotations to pass to the Load Balancer {}
loadBalancer.externalTrafficPolicy The type of load balancer Cluster
Helpy Pod/Rails configurations Use these settings to adjust how the app runs and resources expected in the pod
rails.railsEnv The environment to run the app in production
rails.logToStandardOut true
rails.serveStaticFiles Whether or not to serve static files. false
rails.pumaConcurency '1'
rails.podRam How much RAM to give each app POD in the cluster '2048'
rails.secretKey The secret key Rails uses. Uses a random string by default Commented out by default
rails.sessionDuration PRO Only. The number of minutes the session is kept alive 20
rails.sessionStore PRO Only. The rails session store to use. 'cookie'
rails.secretKey The secret key Rails uses 'your_secret_here'
Redis Configuration
redis.url The URL to your redis service 'redis://redis.default.svc.cluster.local:6379/0/cache'
redis.port The Port to your redis service '6379'
redis.repository The redis repository 'redis'
redis.tag The tag of redis to use 4.0
Postgresql configuration
postgres.enabled Whether or not to use the Postgres container in the cluster true
postgres.repository The repository to get Postgres from postgres
postgres.tag The container version of Postgres to use 10.7-alpine
postgres.capacity The size of the DB 24Gi
postgres.host The host url of the Postgres service postgres
postgres.port The port to connect to the Postgres service '5432'
postgres.db The name of the Database to connect to 'helpy_production'
postgres.user The username to log in to the database 'postgres'
postgres.password The password used to log in to the database 'helpy'
Storage Configuration- Helpy looks for a S3 compatible store for attachments, images, etc.
storage.remote Whether file storage is enabled or not true
storage.key The S3 key of the file store yourkey
storage.secret The S3 secret of the file store yoursecret
storage.region The region of the file store sfo2
storage.endPoint The endPoint of the storage service endpoint
storage.bucketName The bucketname where files should be stored helpy-k8s
IMAP service- whether or not to connect to an IMAP server to fetch tickets
imap.enabled Whether or not to fetch tickets from an IMAP box false
imap.frequencyInMinutes How often to check for new tickets in minutes 1
Helpy Pro License- You can add your license here
license.keyName This is the URL of the site you have licensed yoursite.com
license.key The license key given to you by Helpy your_key

To provide your own values, you can either make a copy of the values.yaml file, or pass variables in the command line using the -set option.

To customize values.yml, first copy values.yaml to values.override.yaml and add your customizations. Then run to use your customizations:

helm install -f values.override.yaml release-name helpyio/helpy

To pass values in the command line, install using

helm install release-name helpyio/helpy -s variable=value -s variable2=value

License

Copyright 2021, Helpy.io, Inc, Scott Miller and Contributors. This Helm chart is released under the MIT License.