12 Commits

Author SHA1 Message Date
fba376a97b Add renovate.json 2023-09-01 22:23:42 +00:00
23adcf6472 chore: bump version up to 2.33.0
All checks were successful
Release Chart / release (push) Successful in 46s
2023-08-30 20:00:10 +03:00
f6b709fba1 feat: change drone to gitea actions
All checks were successful
Release Chart / release (push) Successful in 13s
2023-08-28 01:10:32 +03:00
2324e7d6e2 cs: fix
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-17 17:00:07 +03:00
2f2043e915 ci: use helm plugin
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-15 00:03:04 +03:00
a801fd1480 Fix include number of args
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2022-12-06 16:03:53 +03:00
8ac94f8f60 Use image version from Chart.AppVersion
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2022-12-06 16:01:22 +03:00
bbce198fb7 Bump hasura version up to 2.16.0
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2022-12-06 15:24:33 +03:00
f432a87166 Use hasura-cli deploy for migrations 2022-12-06 15:24:13 +03:00
e406855135 Bump hasura version up to 2.15.1
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2022-11-18 17:29:46 +03:00
bacd32f6a1 .helmignore: Remove unnecessary *.tgz
All checks were successful
continuous-integration/drone/push Build is passing
2022-11-16 18:09:44 +03:00
e64a1209d3 add maintainers
All checks were successful
continuous-integration/drone/push Build is passing
2022-11-15 21:32:36 +03:00
13 changed files with 142 additions and 149 deletions

View File

@ -1,49 +0,0 @@
---
kind: pipeline
type: docker
name: default
trigger:
event:
- push
- tag
steps:
- name: lint
image: cr.grachevko.ru/docker.io/alpine/helm:latest
pull: always
commands:
- helm lint .
- name: version
image: cr.grachevko.ru/docker.io/mikefarah/yq:latest
pull: always
user: root
commands:
- yq -i '.version = "'$DRONE_TAG'"' Chart.yaml
- cat Chart.yaml
depends_on:
- lint
when:
event:
- tag
- name: release
image: cr.grachevko.ru/docker.io/alpine/helm:latest
pull: always
commands:
- helm dependency build
- helm plugin install https://github.com/chartmuseum/helm-push
- helm repo add hasura $HELM_REPO --username $HELM_REPO_USERNAME --password $HELM_REPO_PASSWORD
- helm cm-push . $HELM_REPO
environment:
HELM_REPO: https://harbor.grachevko.ru/chartrepo/hasura
HELM_REPO_USERNAME:
from_secret: HELM_REPO_USERNAME
HELM_REPO_PASSWORD:
from_secret: HELM_REPO_PASSWORD
depends_on:
- version
when:
event:
- tag

View File

@ -0,0 +1,29 @@
name: Release Chart
on:
push:
tags:
- '*'
jobs:
release:
runs-on: ubuntu-latest
env:
REGISTRY: harbor.grachevko.ru
steps:
- uses: actions/checkout@v3
- uses: yokawasa/action-setup-kube-tools@v0.9.3
with:
setup-tools: helm
- name: deps and lint
run: |
helm dependency update
helm lint --strict .
- name: build
run: helm package --version ${{ gitea.ref_name }} .
- name: publish
run: |
echo "${{ secrets.REGISTRY_PASSWORD }}" | helm registry login ${{ env.REGISTRY }} --username "${{ secrets.REGISTRY_USERNAME }}" --password-stdin
helm push ./*.tgz oci://harbor.grachevko.ru/${{ gitea.repository }}

View File

@ -21,4 +21,3 @@
.idea/ .idea/
*.tmproj *.tmproj
.vscode/ .vscode/
*.tgz

View File

@ -3,5 +3,10 @@ name: hasura
description: A Helm chart for Kubernetes description: A Helm chart for Kubernetes
type: application type: application
version: 0.2.6 version: 0.2.6
appVersion: v2.15.0 appVersion: 2.33.0
icon: https://raw.githubusercontent.com/hasura/graphql-engine/master/assets/brand/powered_by_hasura_primary_lightbg.svg icon: https://raw.githubusercontent.com/hasura/graphql-engine/master/assets/brand/powered_by_hasura_primary_lightbg.svg
maintainers:
- email: me@grachevko.ru
name: Konstantin Grachev
sources:
- https://git.grachevko.ru/hasura/chart

3
renovate.json Normal file
View File

@ -0,0 +1,3 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json"
}

View File

@ -60,3 +60,12 @@ Create the name of the service account to use
{{- default "default" .Values.serviceAccount.name }} {{- default "default" .Values.serviceAccount.name }}
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- define "hasura.image" -}}
{{- .Values.image.registry }}/{{ .Values.image.repository }}:
{{- if .Values.image.tag }}
{{- .Values.image.tag -}}
{{- else -}}
v{{ .Chart.AppVersion }}.cli-migrations-v3
{{- end }}
{{- end }}

View File

@ -28,29 +28,29 @@ spec:
securityContext: securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }} {{- toYaml .Values.podSecurityContext | nindent 8 }}
containers: containers:
- name: {{ .Chart.Name }} - name: {{ .Chart.Name }}
securityContext: securityContext:
{{- toYaml .Values.securityContext | nindent 12 }} {{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" image: {{ include "hasura.image" . }}
imagePullPolicy: {{ .Values.image.pullPolicy }} imagePullPolicy: {{ .Values.image.pullPolicy }}
envFrom: envFrom:
{{- if .Values.extraEnvVarsSecret }} {{- if .Values.extraEnvVarsSecret }}
- secretRef: - secretRef:
name: {{ .Values.extraEnvVarsSecret }} name: {{ .Values.extraEnvVarsSecret }}
{{- end }} {{- end }}
ports: ports:
- name: http - name: http
containerPort: 8080 containerPort: 8080
protocol: TCP protocol: TCP
livenessProbe: livenessProbe:
httpGet: httpGet:
path: /healthz path: /healthz
port: http port: http
readinessProbe: readinessProbe:
httpGet: httpGet:
path: /healthz path: /healthz
port: http port: http
resources: resources:
{{- toYaml .Values.resources | nindent 12 }} {{- toYaml .Values.resources | nindent 12 }}
{{- with .Values.nodeSelector }} {{- with .Values.nodeSelector }}
nodeSelector: nodeSelector:

View File

@ -14,15 +14,15 @@ spec:
maxReplicas: {{ .Values.autoscaling.maxReplicas }} maxReplicas: {{ .Values.autoscaling.maxReplicas }}
metrics: metrics:
{{- if .Values.autoscaling.targetCPUUtilizationPercentage }} {{- if .Values.autoscaling.targetCPUUtilizationPercentage }}
- type: Resource - type: Resource
resource: resource:
name: cpu name: cpu
targetAverageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} targetAverageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }}
{{- end }} {{- end }}
{{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }}
- type: Resource - type: Resource
resource: resource:
name: memory name: memory
targetAverageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} targetAverageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }}
{{- end }} {{- end }}
{{- end }} {{- end }}

View File

@ -29,30 +29,30 @@ spec:
{{- if .Values.ingress.tls }} {{- if .Values.ingress.tls }}
tls: tls:
{{- range .Values.ingress.tls }} {{- range .Values.ingress.tls }}
- hosts: - hosts:
{{- range .hosts }} {{- range .hosts }}
- {{ . | quote }} - {{ . | quote }}
{{- end }} {{- end }}
secretName: {{ .secretName }} secretName: {{ .secretName }}
{{- end }} {{- end }}
{{- end }} {{- end }}
rules: rules:
{{- range .Values.ingress.hosts }} {{- range .Values.ingress.hosts }}
- host: {{ .host | quote }} - host: {{ .host | quote }}
http: http:
paths: paths:
{{- range .paths }} {{- range .paths }}
- path: {{ .path }} - path: {{ .path }}
pathType: {{ default "ImplementationSpecific" .pathType }} pathType: {{ default "ImplementationSpecific" .pathType }}
backend: backend:
{{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
service: service:
name: {{ $fullName }} name: {{ $fullName }}
port: port:
number: {{ $svcPort }} number: {{ $svcPort }}
{{- else }} {{- else }}
serviceName: {{ $fullName }} serviceName: {{ $fullName }}
servicePort: {{ $svcPort }} servicePort: {{ $svcPort }}
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- end }} {{- end }}

View File

@ -22,35 +22,32 @@ spec:
{{- end }} {{- end }}
restartPolicy: Never restartPolicy: Never
volumes: volumes:
- name: data - name: data
emptyDir: { } emptyDir: {}
initContainers: initContainers:
- name: copy - name: copy
image: "{{ .Values.migrations.image.registry }}/{{ .Values.migrations.image.repository }}:{{ .Values.migrations.image.tag | default "latest" }}" image: "{{ .Values.migrations.image.registry }}/{{ .Values.migrations.image.repository }}:{{ .Values.migrations.image.tag | default "latest" }}"
command: ["/bin/sh", "-c", "cp -R /{{ .Values.migrations.image.path }}/* /shared-data/"] command: ["/bin/sh", "-c", "cp -R /{{ .Values.migrations.image.path }}/* /shared-data/"]
workingDir: /data workingDir: /data
volumeMounts: volumeMounts:
- name: data - name: data
mountPath: /shared-data mountPath: /shared-data
containers: containers:
- name: migrate - name: migrate
image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" image: {{ include "hasura.image" . }}
command: [ "/bin/sh", "-c" ] command: ["/bin/sh", "-c"]
args: args:
- set -ex; - hasura-cli deploy
hasura-cli metadata apply; workingDir: /data
hasura-cli migrate apply --all-databases; env:
hasura-cli metadata reload; - name: HASURA_GRAPHQL_ENDPOINT
workingDir: /data value: "http://{{ include "hasura.fullname" . }}"
env: envFrom:
- name: HASURA_GRAPHQL_ENDPOINT
value: "http://{{ include "hasura.fullname" . }}"
envFrom:
{{- if .Values.extraEnvVarsSecret }} {{- if .Values.extraEnvVarsSecret }}
- secretRef: - secretRef:
name: {{ .Values.extraEnvVarsSecret }} name: {{ .Values.extraEnvVarsSecret }}
{{- end }} {{- end }}
volumeMounts: volumeMounts:
- name: data - name: data
mountPath: /data mountPath: /data
{{- end }} {{- end }}

View File

@ -7,9 +7,9 @@ metadata:
spec: spec:
type: {{ .Values.service.type }} type: {{ .Values.service.type }}
ports: ports:
- port: {{ .Values.service.port }} - port: {{ .Values.service.port }}
targetPort: http targetPort: http
protocol: TCP protocol: TCP
name: http name: http
selector: selector:
{{- include "hasura.selectorLabels" . | nindent 4 }} {{- include "hasura.selectorLabels" . | nindent 4 }}

View File

@ -8,8 +8,8 @@ metadata:
"helm.sh/hook": test "helm.sh/hook": test
spec: spec:
containers: containers:
- name: wget - name: wget
image: busybox image: busybox
command: [ 'wget' ] command: ['wget']
args: [ '{{ include "hasura.fullname" . }}:{{ .Values.service.port }}' ] args: ['{{ include "hasura.fullname" . }}:{{ .Values.service.port }}']
restartPolicy: Never restartPolicy: Never

View File

@ -9,8 +9,8 @@ image:
repository: hasura/graphql-engine repository: hasura/graphql-engine
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
# Overrides the image tag whose default is the chart appVersion. # Overrides the image tag whose default is the chart appVersion.
tag: v2.15.0.cli-migrations-v3 tag: ""
pullSecrets: [ ] pullSecrets: []
extraEnvVarsSecret: "" extraEnvVarsSecret: ""
@ -20,7 +20,7 @@ migrations:
registry: *registry registry: *registry
repository: "" repository: ""
tag: "" tag: ""
pullSecrets: [ ] pullSecrets: []
path: /data path: /data
nameOverride: "" nameOverride: ""
@ -30,22 +30,22 @@ serviceAccount:
# Specifies whether a service account should be created # Specifies whether a service account should be created
create: false create: false
# Annotations to add to the service account # Annotations to add to the service account
annotations: { } annotations: {}
# The name of the service account to use. # The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template # If not set and create is true, a name is generated using the fullname template
name: "" name: ""
podAnnotations: { } podAnnotations: {}
podSecurityContext: { } podSecurityContext: {}
# fsGroup: 2000 # fsGroup: 2000
securityContext: { } securityContext: {}
# capabilities: # capabilities:
# drop: # drop:
# - ALL # - ALL
# readOnlyRootFilesystem: true # readOnlyRootFilesystem: true
# runAsNonRoot: true # runAsNonRoot: true
# runAsUser: 1000 # runAsUser: 1000
service: service:
@ -55,20 +55,20 @@ service:
ingress: ingress:
enabled: false enabled: false
className: "" className: ""
annotations: { } annotations: {}
# kubernetes.io/ingress.class: nginx # kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true" # kubernetes.io/tls-acme: "true"
hosts: hosts:
- host: chart-example.local - host: chart-example.local
paths: paths:
- path: / - path: /
pathType: ImplementationSpecific pathType: ImplementationSpecific
tls: [ ] tls: []
# - secretName: chart-example-tls # - secretName: chart-example-tls
# hosts: # hosts:
# - chart-example.local # - chart-example.local
resources: { } resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious # 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 # 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 # resources, such as Minikube. If you do want to specify resources, uncomment the following
@ -77,7 +77,7 @@ resources: { }
# cpu: 100m # cpu: 100m
# memory: 128Mi # memory: 128Mi
# requests: # requests:
# cpu: 100m # cpu: 100m
# memory: 128Mi # memory: 128Mi
autoscaling: autoscaling:
@ -87,8 +87,8 @@ autoscaling:
targetCPUUtilizationPercentage: 80 targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80 # targetMemoryUtilizationPercentage: 80
nodeSelector: { } nodeSelector: {}
tolerations: [ ] tolerations: []
affinity: { } affinity: {}