Skip to content
Merged
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
1 change: 1 addition & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
AREX_VERSION=0.2.9
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,15 @@ cd deployments
docker compose up -d
```

### .env config
1. There are many configurations of Docker versions in the configuration file, which are hard-coded, such as 0.2.9. Now they have been extracted and set as variables, stored in .env file.
2. Users can directly modify the content of the .env file to change the version.
3. Users can also modify the old version number to roll back to a previous version.
```
cat .env
AREX_VERSION=0.2.9
```

## AREX Docker-Compose Uninstall

```
Expand All @@ -20,6 +29,7 @@ rm -rf ./arex-data
rm -rf ./arex-logs
```


## License

Copyright (C) 2023 ArexTest
Expand Down
12 changes: 12 additions & 0 deletions arex-chart/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: v2
# engine: gotpl
home: http://www.arextest.com
maintainers:
- email: robin.haibingwang@gmail.com
name: robin
appVersion: "0.2.8"
description: Helm chart of AREX.
name: arex
sources:
- https://github.com/arextest
version: 0.1.0
83 changes: 83 additions & 0 deletions arex-chart/templates/_helpers.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "arex.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 "arex.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 "arex.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{- define "arex.front.fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s-%s" .Release.Name $name .Values.front.name | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{- define "arex.storage.fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s-%s" .Release.Name $name .Values.storage.name | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{- define "arex.report.fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s-%s" .Release.Name $name .Values.report.name | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{- define "arex.schedule.fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s-%s" .Release.Name $name .Values.schedule.name | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{- define "arex.node.fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s-%s" .Release.Name $name .Values.node.name | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{- define "arex.mongodb.fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s-%s" .Release.Name $name .Values.mongodb.name | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{- define "arex.redis.fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s-%s" .Release.Name $name .Values.redis.name | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{- define "arex.mongoConnection" -}}
{{- if .Values.mongodb.enabled -}}
{{- printf "mongodb://arex:iLoveArex@%s.%s.svc.cluster.local:%v/arex_storage_db" (include "arex.mongodb.fullname" .) .Release.Namespace .Values.mongodb.service.servicePort -}}
{{- else -}}
{{- .Values.mongoInfo -}}
{{- end -}}
{{- end -}}

{{- define "arex.redisConnection" -}}
{{- if .Values.redis.enabled -}}
{{- printf "redis://%s.%s.svc.cluster.local:%v/" (include "arex.redis.fullname" .) .Release.Namespace .Values.redis.service.servicePort -}}
{{- else -}}
{{- .Values.redisInfo -}}
{{- end -}}
{{- end -}}
62 changes: 62 additions & 0 deletions arex-chart/templates/arex-front-deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
{{- if .Values.front.enabled -}}
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: {{ template "arex.name" . }}-{{ .Values.front.name }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
component: "{{ .Values.front.name }}"
heritage: {{ .Release.Service }}
release: {{ .Release.Name }}
name: {{ template "arex.front.fullname" . }}
spec:
replicas: {{ .Values.front.replicaCount }}
selector:
matchLabels:
app: {{ template "arex.name" . }}-{{ .Values.front.name }}
template:
metadata:
{{- if .Values.front.podAnnotations }}
annotations:
{{ toYaml .Values.front.podAnnotations | indent 8 }}
{{- end }}
labels:
app: {{ template "arex.name" . }}-{{ .Values.front.name }}
component: "{{ .Values.front.name }}"
release: {{ .Release.Name }}
spec:
containers:
- name: {{ template "arex.name" . }}-{{ .Values.front.name }}
image: "{{ .Values.registerPre }}{{ .Values.front.image.repository }}:{{ .Values.front.image.tag }}"
imagePullPolicy: "{{ .Values.front.image.pullPolicy }}"
args:
{{- range $key, $value := .Values.front.extraArgs }}
- --{{ $key }}={{ $value }}
{{- end }}
env:
- name: SERVICE_REPORT_URL
value: http://{{ template "arex.report.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local:{{ .Values.report.service.servicePort }}
- name: SERVICE_SCHEDULE_URL
value: http://{{ template "arex.schedule.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local:{{ .Values.schedule.service.servicePort }}
- name: SERVICE_NODE_URL
value: http://{{ template "arex.node.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local:{{ .Values.node.service.servicePort }}
- name: SERVICE_STORAGE_URL
value: http://{{ template "arex.storage.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local:{{ .Values.storage.service.servicePort }}
ports:
- containerPort: {{ .Values.front.service.servicePort }}
resources:
{{ toYaml .Values.front.resources | indent 12 }}
{{- if .Values.front.nodeSelector }}
nodeSelector:
{{ toYaml .Values.front.nodeSelector | indent 8 }}
{{- end }}
{{- if .Values.front.tolerations }}
tolerations:
{{ toYaml .Values.front.tolerations | indent 8 }}
{{- end }}
{{- if .Values.front.affinity }}
affinity:
{{ toYaml .Values.front.affinity | indent 8 }}
{{- end }}
{{- end }}

29 changes: 29 additions & 0 deletions arex-chart/templates/arex-front-ingress.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{{- if and .Values.front.enabled .Values.front.ingress.enabled -}}
{{- $serviceName := include "arex.front.fullname" . }}
{{- $servicePort := .Values.front.service.servicePort -}}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
{{- if .Values.front.ingress.annotations }}
annotations:
{{ toYaml .Values.front.ingress.annotations | indent 4}}
{{- end }}
name: {{ template "arex.front.fullname" . }}
spec:
defaultBackend:
service:
name: {{ $serviceName }}
port:
number: {{ $servicePort }}
# rules:
# - host: local.arextest.com
# http:
# paths:
# - path: /
# pathType: Prefix
# backend:
# service:
# name: {{ $serviceName }}
# port:
# number: {{ $servicePort }}
{{- end -}}
47 changes: 47 additions & 0 deletions arex-chart/templates/arex-front-service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
{{- if .Values.front.enabled -}}
apiVersion: v1
kind: Service
metadata:
{{- if .Values.front.service.annotations }}
annotations:
{{ toYaml .Values.front.service.annotations | indent 4}}
{{- end }}
labels:
app: {{ template "arex.name" . }}-{{ .Values.front.name }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
component: "{{ .Values.front.name }}"
heritage: {{ .Release.Service }}
release: {{ .Release.Name }}
{{- if .Values.front.service.labels }}
{{ toYaml .Values.front.service.labels | indent 4}}
{{- end }}
name: {{ template "arex.front.fullname" . }}
spec:
{{- if .Values.front.service.clusterIP }}
clusterIP: {{ .Values.front.service.clusterIP }}
{{- end }}
{{- if .Values.front.service.externalIPs }}
externalIPs:
{{ toYaml .Values.front.service.externalIPs | indent 4 }}
{{- end }}
{{- if .Values.front.service.loadBalancerIP }}
loadBalancerIP: {{ .Values.front.service.loadBalancerIP }}
{{- end }}
{{- if .Values.front.service.loadBalancerSourceRanges }}
loadBalancerSourceRanges:
{{- range $cidr := .Values.front.service.loadBalancerSourceRanges }}
- {{ $cidr }}
{{- end }}
{{- end }}
ports:
- name: http
port: {{ .Values.front.service.servicePort }}
protocol: TCP
targetPort: {{ .Values.front.service.servicePort }}
selector:
app: {{ template "arex.name" . }}-{{ .Values.front.name }}
component: "{{ .Values.front.name }}"
release: {{ .Release.Name }}
type: "{{ .Values.front.service.type }}"
{{- end }}

13 changes: 13 additions & 0 deletions arex-chart/templates/arex-front-serviceaccount.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{{- if .Values.rbac.create }}
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app: {{ template "arex.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
component: "{{ .Values.front.name }}"
heritage: {{ .Release.Service }}
release: {{ .Release.Name }}
name: {{ template "arex.front.fullname" . }}
{{- end }}

82 changes: 82 additions & 0 deletions arex-chart/templates/arex-mongodb-deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
{{- if .Values.mongodb.enabled -}}
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: {{ template "arex.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
component: "{{ .Values.mongodb.name }}"
heritage: {{ .Release.Service }}
release: {{ .Release.Name }}
name: {{ template "arex.mongodb.fullname" . }}
spec:
replicas: {{ .Values.mongodb.replicaCount }}
selector:
matchLabels:
app: {{ template "arex.name" . }}
template:
metadata:
{{- if .Values.mongodb.podAnnotations }}
annotations:
{{ toYaml .Values.mongodb.podAnnotations | indent 8 }}
{{- end }}
labels:
app: {{ template "arex.name" . }}
component: "{{ .Values.mongodb.name }}"
release: {{ .Release.Name }}
spec:
containers:
- name: {{ template "arex.name" . }}-{{ .Values.mongodb.name }}
image: "{{ .Values.mongodb.image.repository }}:{{ .Values.mongodb.image.tag }}"
imagePullPolicy: "{{ .Values.mongodb.image.pullPolicy }}"
args:
{{- range $key, $value := .Values.mongodb.extraArgs }}
- --{{ $key }}={{ $value }}
{{- end }}
env:
- name: MONGO_INITDB_ROOT_USERNAME
value: citizix
- name: MONGO_INITDB_ROOT_PASSWORD
value: S3cret
- name: MONGO_INITDB_DATABASE
value: rootdb
- name: MONGO_USERNAME
value: arex
- name: MONGO_PASSWORD
value: iLoveArex
ports:
- containerPort: 27017
volumeMounts:
- name: mongodb-config
mountPath: /etc/mongo.conf
- name: mongo-data
mountPath: /data/db
- name: settings
mountPath: /docker-entrypoint-initdb.d/mongo-init.js
subPath: mongo-allone-init.js
resources:
{{ toYaml .Values.mongodb.resources | indent 12 }}
{{- if .Values.mongodb.nodeSelector }}
nodeSelector:
{{ toYaml .Values.mongodb.nodeSelector | indent 8 }}
{{- end }}
{{- if .Values.mongodb.tolerations }}
tolerations:
{{ toYaml .Values.mongodb.tolerations | indent 8 }}
{{- end }}
{{- if .Values.mongodb.affinity }}
affinity:
{{ toYaml .Values.mongodb.affinity | indent 8 }}
{{- end }}
volumes:
- name: mongo-data
persistentVolumeClaim:
claimName: arex-mongodb-pvc
- name: settings
configMap:
name: arex-mongodb-init
- name: mongodb-config
configMap:
name: mongodb-conf
{{- end }}

Loading