Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(hatchet): add initial support #122

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 108 additions & 0 deletions packages/hatchet/v0.28.7+1/package.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# yaml-language-server: $schema=https://glasskube.dev/schemas/v1/package-manifest.json
name: hatchet
shortDescription: A distributed, fault-tolerant task queue
longDescription: |
Hatchet replaces difficult to manage legacy queues or pub/sub systems so you can design durable workloads that
recover from failure and solve for problems like concurrency, fairness, and rate limiting. Instead of managing your
own task queue or pub/sub system, you can use Hatchet to distribute your functions between a set of workers with
minimal configuration or infrastructure.

### Special Installation Instructions
To install Hatchet in your cluster, please follow these steps:
1. Manually create the `hatchet` namespace.
2. Create a `Secret` in the `hatchet` namespace that contains the
[secret keys required by Hatchet](https://docs.hatchet.run/self-hosting/kubernetes-glasskube#generate-encryption-keys).
3. Make sure that `LoadBalancer` services will receive an IP.
(e.g. If you are using minikube execute: `minikube tunnel`)
4. Initially set the API **and** engine replicas to "0".
5. Wait for the installation to finish.
6. Update the values to the desired replica counts.

For more information, please refer to the original [documentation](https://docs.hatchet.run/self-hosting/kubernetes-glasskube).
iconUrl: https://avatars.githubusercontent.com/u/118301880
references:
- label: GitHub
url: https://github.com/hatchet-dev/hatchet
- label: Website
url: https://hatchet.run/
defaultNamespace: hatchet
manifests:
- url: https://glasskube.github.io/packages/packages/hatchet/v0.28.7+1/postgres.yaml
- url: https://glasskube.github.io/packages/packages/hatchet/v0.28.7+1/rabbitmq.yaml
helm:
repositoryUrl: https://hatchet-dev.github.io/hatchet-charts
chartName: hatchet-stack
chartVersion: "0.2.0"
values:
api:
env:
DATABASE_URL: "postgres://hatchet:hatchet@hatchet-postgres-rw:5432/hatchet?sslmode=disable"
DATABASE_POSTGRES_HOST: "hatchet-postgres-rw"
SERVER_TASKQUEUE_RABBITMQ_URL: "amqp://hatchet:hatchet@hatchet-rabbitmq:5672/"
envFrom: []
engine:
env:
DATABASE_URL: "postgres://hatchet:hatchet@hatchet-postgres-rw:5432/hatchet?sslmode=disable"
DATABASE_POSTGRES_HOST: "hatchet-postgres-rw"
SERVER_TASKQUEUE_RABBITMQ_URL: "amqp://hatchet:hatchet@hatchet-rabbitmq:5672/"
envFrom: []
caddy:
enabled: true
rabbitmq:
enabled: false
postgres:
enabled: false
dependencies:
- name: rabbitmq-operator
version: ">=2.8.0"
- name: cloudnative-pg
version: ">=1.23.1"
valueDefinitions:
encryptionSecretSource:
metadata:
label: Encryption secret source
description: |
Name of a secret to load additional environment variables from.
Check the [documentation](https://docs.hatchet.run/self-hosting/kubernetes-glasskube#generate-encryption-keys)
for more information about generating the required encryption secrets.
The secret must be located in the same namespace.
type: text
targets:
- chartName: hatchet-stack
valueTemplate: |-
{"secretRef": {"name": "{{ . }}"}}
patch:
op: add
path: /api/envFrom/-
- chartName: hatchet-stack
valueTemplate: |-
{"secretRef": {"name": "{{ . }}"}}
patch:
op: add
path: /engine/envFrom/-
constraints:
required: true
minLength: 1
apiReplicas:
type: number
metadata:
label: API replicas
defaultValue: "2"
targets:
- chartName: hatchet-stack
patch:
op: add
path: /api/replicaCount
engineReplicas:
type: number
metadata:
label: Engine replicas
defaultValue: "1"
targets:
- chartName: hatchet-stack
patch:
op: add
path: /engine/replicaCount
entrypoints:
- serviceName: caddy
port: 8080
25 changes: 25 additions & 0 deletions packages/hatchet/v0.28.7+1/postgres.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
kind: Cluster
apiVersion: postgresql.cnpg.io/v1
metadata:
name: hatchet-postgres
spec:
enableSuperuserAccess: false
instances: 2
bootstrap:
initdb:
database: hatchet
owner: hatchet
secret:
name: hatchet-postgres-user
storage:
size: 5Gi

---
apiVersion: v1
kind: Secret
metadata:
name: hatchet-postgres-user
type: BasicAuth
stringData:
username: hatchet
password: hatchet
16 changes: 16 additions & 0 deletions packages/hatchet/v0.28.7+1/rabbitmq.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
apiVersion: rabbitmq.com/v1beta1
kind: RabbitmqCluster
metadata:
name: hatchet-rabbitmq
spec:
delayStartSeconds: 30
replicas: 3
terminationGracePeriodSeconds: 604800
rabbitmq:
additionalConfig: |
default_user = hatchet
default_pass = hatchet
resources:
requests:
cpu: 200m
memory: 500Mi
3 changes: 3 additions & 0 deletions packages/hatchet/versions.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
latestVersion: "v0.28.7+1"
versions:
- version: "v0.28.7+1"
4 changes: 4 additions & 0 deletions packages/index.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ packages:
latestVersion: v0.7.3+1
name: cyclops
shortDescription: Developer friendly Kubernetes
- iconUrl: https://avatars.githubusercontent.com/u/118301880
latestVersion: v0.28.7+1
name: hatchet
shortDescription: A distributed, fault-tolerant task queue
- iconUrl: https://avatars.githubusercontent.com/u/13629408
latestVersion: v1.9.5+1
name: ingress-nginx
Expand Down
Loading