Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
bd4b869
feat: added jovvix helm chart #118
meet-itpl Aug 21, 2025
48c9743
fix: added kratos helmrepo as dependency helmchart in ci
Luv7804 Aug 25, 2025
5701e3b
modified values for linting
meet-itpl Aug 25, 2025
bb62a12
Merge branch 'feat/add-jovvix-helm-chart' of github.com:Improwised/ch…
meet-itpl Aug 25, 2025
2b59b38
removed trailing space
meet-itpl Aug 25, 2025
91edeb9
modified the chart from scratch
meet-itpl Sep 3, 2025
bc7d592
added configmap and secrets, modified naming format for ingress
meet-itpl Sep 4, 2025
3a4c4cd
commented the resources limit and requests
meet-itpl Sep 4, 2025
20c001c
modified the persistence storage req
meet-itpl Sep 4, 2025
d44edf9
modified the naming for the configmap ans secret
meet-itpl Sep 4, 2025
67064d8
added override-values for ci and modified values file accordingly
meet-itpl Sep 8, 2025
7bf101e
enabled kratos secret in ci
meet-itpl Sep 9, 2025
0541048
modified the secrets in dependent charts, removed annotations from job
meet-itpl Sep 9, 2025
fd9d4de
added dummy connection_uri in kratos config
meet-itpl Sep 9, 2025
d185b4f
fix: removed older version of kubernetes from ci
Luv7804 Sep 9, 2025
a37f783
fix: added commands to create schema
Luv7804 Sep 9, 2025
8933b67
fix: added all the verion of kuberntes in ci
Luv7804 Sep 9, 2025
9af547a
Merge branch 'main' into feat/add-jovvix-helm-chart
meet-itpl Sep 10, 2025
1c09f63
modified the job and values file for ci
meet-itpl Sep 10, 2025
2f2621b
Merge branch 'main' into feat/add-jovvix-helm-chart
meet-itpl Sep 10, 2025
084a273
added delete hooks in jobs
meet-itpl Sep 10, 2025
98bb2a9
modified image registry from docker to public ecr
meet-itpl Sep 22, 2025
97dfbd3
commented the annotations in the job
meet-itpl Sep 22, 2025
ccdee32
modified the bitnami registry in ci
meet-itpl Sep 23, 2025
3150889
modified helm repo in ci
meet-itpl Sep 23, 2025
d98f963
modified the helm dependency installation
meet-itpl Sep 26, 2025
5c19b06
modified adding dependency in lint and release ci
meet-itpl Sep 26, 2025
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
10 changes: 7 additions & 3 deletions .github/workflows/lint-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,14 @@ jobs:
with:
version: v3.18.4

- name: Adding bitnamirepo
- name: Adding dependency repositories
run: |
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add bitnami-full-index https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
helm pull oci://registry-1.docker.io/bitnamicharts/postgresql --version 16.7.21
helm pull oci://registry-1.docker.io/bitnamicharts/postgresql --version 12.2.6
helm pull oci://registry-1.docker.io/bitnamicharts/postgresql --version 12.1.6
helm pull oci://registry-1.docker.io/bitnamicharts/redis --version 21.2.13
helm pull oci://registry-1.docker.io/bitnamicharts/common --version 1.x.x
helm repo add ory https://k8s.ory.sh/helm/charts

- uses: actions/setup-python@v5
with:
Expand Down
10 changes: 7 additions & 3 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,14 @@ jobs:
git config user.name "$GITHUB_ACTOR"
git config user.email "[email protected]"

- name: Adding bitnamirepo
- name: Adding dependency repositories
run: |
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add bitnami-full-index https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
helm pull oci://registry-1.docker.io/bitnamicharts/postgresql --version 16.7.21
helm pull oci://registry-1.docker.io/bitnamicharts/postgresql --version 12.2.6
helm pull oci://registry-1.docker.io/bitnamicharts/postgresql --version 12.1.6
helm pull oci://registry-1.docker.io/bitnamicharts/redis --version 21.2.13
helm pull oci://registry-1.docker.io/bitnamicharts/common --version 1.x.x
helm repo add ory https://k8s.ory.sh/helm/charts

- name: Prepare GPG key
run: |
Expand Down
23 changes: 23 additions & 0 deletions charts/jovvix/.helmignore
Original file line number Diff line number Diff line change
@@ -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/
12 changes: 12 additions & 0 deletions charts/jovvix/Chart.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
dependencies:
- name: postgresql
repository: oci://registry-1.docker.io/bitnamicharts
version: 16.7.21
- name: redis
repository: oci://registry-1.docker.io/bitnamicharts
version: 21.2.13
- name: kratos
repository: https://k8s.ory.sh/helm/charts
version: 0.45.0
digest: sha256:88fc564a207e9b01b1758dfe0911c2181d73a0bd67b9b2d560a50809d55b5353
generated: "2025-08-06T18:48:56.874391824+05:30"
41 changes: 41 additions & 0 deletions charts/jovvix/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
apiVersion: v2
name: jovvix
description: A Helm chart for jovvix

# 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.
# It is recommended to use it with quotes.
appVersion: "1.0.0"

maintainers:
- name: improwised

dependencies:
- name: postgresql
version: "16.7.21"
repository: oci://registry-1.docker.io/bitnamicharts
condition: postgresql.enabled
- name: redis
version: "21.2.13"
repository: oci://registry-1.docker.io/bitnamicharts
condition: redis.enabled
- name: kratos
version: "0.45.0"
repository: https://k8s.ory.sh/helm/charts
condition: kratos.enabled
170 changes: 170 additions & 0 deletions charts/jovvix/ci/override-values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
services:
- fullnameOverride: "jovvix-ui-svc"
name: ui
replicaCount: 1
image:
repository: improwised/jovvix-ui
tag: main-9acf2cb-1754290699
pullPolicy: IfNotPresent
envFrom:
- configMapRef:
name: jovvix-ui
service:
enabled: true
fullnameOverride: "jovvix-ui-svc"
type: ClusterIP
ports:
name: http
port: 4000
targetPort: http
ingress:
enabled: true
fullnameOverride: "jovvix-ui-svc"
host: app.example.com
path: /
pathType: Prefix
- fullnameOverride: "jovvix-api-svc"
name: api
initContainers:
- name: wait-for-redis
image: busybox:1.37.0
command:
- sh
- -c
- >
until timeout 3 nc -z jovvix-redis-master 6379;
do echo waiting for redis; sleep 5; done;
echo redis found
replicaCount: 1
image:
repository: improwised/jovvix-api
tag: main-82546e9-1753769203
pullPolicy: IfNotPresent
command: ["/bin/sh", "-c"]
args: ["./jovvix api || sleep 3600"]
service:
enabled: true
fullnameOverride: "jovvix-api-svc"
type: ClusterIP
ports:
name: http
port: 3300
targetPort: http
ingress:
enabled: true
fullnameOverride: "jovvix-api-svc"
host: app.example.com
path: /api
pathType: Prefix
envFrom:
- configMapRef:
name: jovvix-api
- secretRef:
name: jovvix-api

jobs:
- fullnameOverride: jovvix-migration
image:
repository: improwised/jovvix-api
tag: main-82546e9-1753769203
envFrom:
- configMapRef:
name: jovvix-api
- secretRef:
# To keep the container running
name: jovvix-api
command: ["/bin/sh", "-c"]
args:
- |
echo "Waiting for Postgres to be ready..."
until nc -z jovvix-db-postgresql 5432; do
echo "Postgres not up yet, retrying in 3s..."
sleep 3
done

echo "Postgres is ready, running migrations..."
until timeout 5 ./jovvix migrate up; do
echo "Postgres is up but there is some other issue, retrying in 3s..."
sleep 3
done
echo "Migrations successful"
# annotations:
# # This is what defines this resource as a hook. Without this line, the
# # job is considered part of the release.
# # after completing migration job will disappear
# "helm.sh/hook": post-install,post-upgrade
# # high priority than kratos-migration so that this finishes first
# "helm.sh/hook-weight": "-5"
# "helm.sh/hook-delete-policy": before-hook-creation
- fullnameOverride: jovvix-kratos-migration
image:
repository: oryd/kratos
tag: v1.3.1
env:
- name: DSN
valueFrom:
secretKeyRef:
name: jovvix-kratos
key: dsn
command: ["/bin/sh", "-c"]
args:
- |
until timeout 5 kratos migrate sql -e --yes; do
echo "Waiting for Postgres to be ready for kratos migrations..."
sleep 3
done
echo "kratos migrations successful"
# annotations:
# # This is what defines this resource as a hook. Without this line, the
# # job is considered part of the release.
# # after completing migration job will disappear
# "helm.sh/hook": post-install,post-upgrade
# # kept it -4 ao that it can comes after the jovvix migration
# "helm.sh/hook-weight": "-4"
# "helm.sh/hook-delete-policy": before-hook-creation

postgresql:
fullnameOverride: "jovvix-db-postgresql"
primary:
persistence:
enabled: false
auth:
username: jovvix
database: jovvix
existingSecret: jovvix-db

redis:
fullnameOverride: "jovvix-redis"
master:
persistence:
enabled: false
auth:
existingSecret: jovvix-db

kratos:
fullnameOverride: "jovvix-kratos"
ingress:
admin:
enabled: false
public:
enabled: false
secrets:
enabled: false
nameOverride: jovvix-kratos
kratos:
automigration:
enabled: false
config:
courier:
smtp:
connection_uri: smtps://test:test@mailslurper:1025/?skip_ssl_verify=true
serve:
public:
base_url: http://jovvix-kratos
port: 4433
admin:
base_url: http://jovvix-kratos
port: 4434
selfservice:
allowed_return_urls:
- http://localhost
Empty file.
51 changes: 51 additions & 0 deletions charts/jovvix/templates/_helpers.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "jovvix.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 "jovvix.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 "jovvix.chart" -}}
{{- printf "%s-%s" $.Chart.Name $.Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}

{{/*
Common labels
*/}}
{{- define "jovvix.labels" -}}
helm.sh/chart: {{ include "jovvix.chart" . }}
{{ include "jovvix.selectorLabels" . }}
{{- if $.Chart.AppVersion }}
app.kubernetes.io/version: {{ $.Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}

{{/*
Selector labels
*/}}
{{- define "jovvix.selectorLabels" -}}
app.kubernetes.io/name: {{ include "jovvix.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
14 changes: 14 additions & 0 deletions charts/jovvix/templates/configmap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{{- range .Values.configmaps }}
{{- if .create }}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .name | default (printf "%s-%s" $.Release.Name .name) }}
namespace: {{ $.Release.Namespace | quote }}
labels:
{{- include "jovvix.labels" $ | nindent 4 }}
data:
{{- toYaml .data | nindent 2 }}
{{- end }}
{{- end }}
32 changes: 32 additions & 0 deletions charts/jovvix/templates/hpa.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{{- if .Values.autoscaling.enabled }}
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: {{ include "jovvix.fullname" . }}
labels:
{{- include "jovvix.labels" . | nindent 4 }}
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ include "jovvix.fullname" . }}
minReplicas: {{ .Values.autoscaling.minReplicas }}
maxReplicas: {{ .Values.autoscaling.maxReplicas }}
metrics:
{{- if .Values.autoscaling.targetCPUUtilizationPercentage }}
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }}
{{- end }}
{{- if .Values.autoscaling.targetMemoryUtilizationPercentage }}
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }}
{{- end }}
{{- end }}
Loading