Skip to content
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
6 changes: 6 additions & 0 deletions helm/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
apiVersion: v2
name: rws
description: Rootstock Wallet Service for RootstockCollective
type: application
version: 0.1.0
appVersion: "1.0.0"
49 changes: 49 additions & 0 deletions helm/templates/_helpers.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "rws.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}

{{/*
Create a default fully qualified app name.
*/}}
{{- define "rws.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 "rws.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}

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

{{/*
Selector labels
*/}}
{{- define "rws.selectorLabels" -}}
app.kubernetes.io/name: {{ include "rws.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
37 changes: 37 additions & 0 deletions helm/templates/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "rws.fullname" . }}
namespace: {{ .Values.namespace }}
labels:
{{- include "rws.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "rws.selectorLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "rws.selectorLabels" . | nindent 8 }}
spec:
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- name: http
containerPort: {{ .Values.service.targetPort }}
protocol: TCP
env:
- name: COIN_MARKET_CAP_KEY
valueFrom:
secretKeyRef:
name: {{ include "rws.fullname" . }}-secrets
key: coin-market-cap-key
livenessProbe:
{{- toYaml .Values.livenessProbe | nindent 10 }}
readinessProbe:
{{- toYaml .Values.readinessProbe | nindent 10 }}
resources:
{{- toYaml .Values.resources | nindent 10 }}
19 changes: 19 additions & 0 deletions helm/templates/externalsecret.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: {{ include "rws.fullname" . }}-secrets
namespace: {{ .Values.namespace }}
labels:
{{- include "rws.labels" . | nindent 4 }}
spec:
refreshInterval: 1h
secretStoreRef:
name: aws-parameter-store
kind: ClusterSecretStore
target:
name: {{ include "rws.fullname" . }}-secrets
creationPolicy: Owner
data:
- secretKey: coin-market-cap-key
remoteRef:
key: {{ .Values.externalSecrets.parameterPaths.coinMarketCapKey }}
30 changes: 30 additions & 0 deletions helm/templates/ingress.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{{- if .Values.ingress.enabled -}}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ include "rws.fullname" . }}
namespace: {{ .Values.namespace }}
labels:
{{- include "rws.labels" . | nindent 4 }}
{{- with .Values.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
ingressClassName: {{ .Values.ingress.className }}
rules:
{{- range .Values.ingress.hosts }}
- host: {{ .host | quote }}
http:
paths:
{{- range .paths }}
- path: {{ .path }}
pathType: {{ .pathType }}
backend:
service:
name: {{ include "rws.fullname" $ }}
port:
number: {{ $.Values.service.port }}
{{- end }}
{{- end }}
{{- end }}
16 changes: 16 additions & 0 deletions helm/templates/service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
name: {{ include "rws.fullname" . }}
namespace: {{ .Values.namespace }}
labels:
{{- include "rws.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
ports:
- port: {{ .Values.service.port }}
targetPort: {{ .Values.service.targetPort }}
protocol: TCP
name: http
selector:
{{- include "rws.selectorLabels" . | nindent 4 }}
17 changes: 17 additions & 0 deletions helm/values-dev.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
namespace: rws-dev

image:
tag: b7126ff8a2b9a2a791c81cba4cb7557dc80b86e9

ingress:
annotations:
external-dns.alpha.kubernetes.io/hostname: dev-eks.rws.app.rootstockcollective.xyz
hosts:
- host: dev-eks.rws.app.rootstockcollective.xyz
paths:
- path: /
pathType: Prefix

externalSecrets:
parameterPaths:
coinMarketCapKey: /rscoll-dev-coinmarketcap-key
57 changes: 57 additions & 0 deletions helm/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
replicaCount: 1

image:
repository: 886436934082.dkr.ecr.us-east-1.amazonaws.com/rscoll-dev-rws-dev
pullPolicy: Always
tag: b7126ff8a2b9a2a791c81cba4cb7557dc80b86e9

namespace: rws-dev

service:
type: ClusterIP
port: 80
targetPort: 3000

resources:
requests:
cpu: 500m
memory: 1024Mi
limits:
cpu: 1000m
memory: 2048Mi

livenessProbe:
httpGet:
path: /health
port: 3000
initialDelaySeconds: 30
periodSeconds: 10

readinessProbe:
httpGet:
path: /health
port: 3000
initialDelaySeconds: 10
periodSeconds: 5

ingress:
enabled: true
className: alb
annotations:
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: ip
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS": 443}]'
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-1:886436934082:certificate/bc74f95e-6ed5-4be2-bf1c-098cc0fe2821
alb.ingress.kubernetes.io/ssl-redirect: '443'
external-dns.alpha.kubernetes.io/hostname: dev-eks.rws.app.rootstockcollective.xyz
hosts:
- host: dev-eks.rws.app.rootstockcollective.xyz
paths:
- path: /
pathType: Prefix

externalSecrets:
enabled: true
serviceAccount: external-secrets
parameterPaths:
coinMarketCapKey: /rscoll-dev-coinmarketcap-key