Compare commits

..

36 Commits

Author SHA1 Message Date
Andrei Kvapil
c97aa9d5c6 fix default values 2024-05-09 10:32:49 +02:00
Andrei Kvapil
b4ceb6afa9 fix monitoring schema generation 2024-05-08 21:11:26 +02:00
Andrei Kvapil
62cc5dc69d Merge branch 'origin/main' into openapi-schema-generation 2024-05-08 21:10:47 +02:00
Andrei Kvapil
e4387b7611 Merge branch 'main' into openapi-schema-generation 2024-05-08 13:46:37 +02:00
Andrei Kvapil
53f2365e79 Fix: kubernetes and etcd-operator issues (#119)
* Fix datastore creation depends on created secrets

* Add basic topologySpreadConstraints

* Fix kubernetes chart post-rendering

* Update release images
2024-05-06 13:59:43 +02:00
Marian Koreniuk
9145be14c1 Merge pull request #117 from aenix-io/release-0.1.0v2
Prepare release v0.4.0
2024-05-06 09:25:39 +02:00
Andrei Kvapil
fca349c641 Update Talos v1.7.1 2024-05-04 07:32:08 +02:00
Andrei Kvapil
0b38599394 Prepare release v0.4.0
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2024-05-03 23:12:35 +02:00
Andrei Kvapil
b8cb56fbd1 Prepare release v0.4.0 2024-05-03 23:10:10 +02:00
Andrei Kvapil
0a33950a40 Prepare release v0.4.0 (#115) 2024-05-03 23:02:41 +02:00
Andrei Kvapil
e3376a223e Fix tolerations in Kubernetes chart (#116) 2024-05-03 13:26:02 +02:00
Marian Koreniuk
dee190ad4f Merge pull request #95 from aenix-io/etcd-operator
Replace kamaji-etcd with aenix-io/etcd-operator
2024-05-02 22:42:52 +02:00
Andrei Kvapil
f25bbd5e74 Add schema generation and remove default values
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2024-04-26 16:34:17 +02:00
Marian Koreniuk
66f963bfd0 Merge pull request #104 from aenix-io/replicas
Introduce replicas options
2024-04-26 16:03:09 +02:00
Andrei Kvapil
7cd7de73ee Introduce replicas options
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2024-04-26 15:19:25 +02:00
Andrei Kvapil
4f2757731a Fix: dashboard colors for dark mode (#108)
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2024-04-26 12:12:00 +02:00
Andrei Kvapil
372c3cbd17 Update Kamaji v0.5.0 (#99)
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2024-04-26 11:00:06 +02:00
Andrei Kvapil
ff9ab5ba85 Fix older versions in dashboard (#102)
Workaround for https://github.com/vmware-tanzu/kubeapps/issues/7740

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2024-04-26 10:41:05 +02:00
Andrei Kvapil
c7568d2312 Update kubeapps-15.0.2 (#103)
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2024-04-26 10:18:22 +02:00
Marian Koreniuk
f4778abb3f Merge pull request #105 from aenix-io/upd-linstor
Update LISNTOR v1.27.1
2024-04-25 20:49:14 +02:00
Andrei Kvapil
68a7cc52c3 Update LISNTOR v1.27.1
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2024-04-25 18:29:23 +02:00
Marian Koreniuk
be508fd107 Fix etcd-operator Makefile 2024-04-24 16:21:06 +03:00
Andrei Kvapil
a6d0f7cfd4 Add etcd-operator
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2024-04-24 12:29:05 +02:00
Andrei Kvapil
a95671391f fix: Flux does not tolerate kubectl edits (#101)
https://fluxcd.io/flux/faq/#why-are-kubectl-edits-rolled-back-by-flux

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2024-04-24 11:31:32 +02:00
Andrei Kvapil
20fcd25d64 Calculate tags and version automatically (#100)
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2024-04-24 11:31:22 +02:00
Andrei Kvapil
ca79f725a3 Prepare release v0.3.1 (#97)
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2024-04-23 12:55:45 +03:00
Marian Koreniuk
be0603f139 Merge pull request #96 from aenix-io/missing-makefile
fix: missing package-system.mk
2024-04-23 12:53:00 +03:00
Andrei Kvapil
f8b87197d0 fix: flux dependency
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2024-04-23 09:43:04 +02:00
Andrei Kvapil
5d58e5ce7d fix: missing package-system.mk 2024-04-23 09:32:32 +02:00
Andrei Kvapil
a1340c1839 fix: clickhouse-operator watch namespaces (#93) 2024-04-23 08:50:45 +02:00
Marian Koreniuk
b838ee5729 Merge pull request #91 from artarik/main
remove duplicated entry for creating sa
2024-04-18 11:54:57 +03:00
Artem Starik
2baf532e1f HOTFIX: byump chart version 2024-04-18 11:10:14 +03:00
Artem Starik
7713e7de6b HOTFIX: remove duplicated sa from template 2024-04-18 11:07:21 +03:00
Artem Starik
aef38b6dec Merge pull request #1 from artarik/artarik-patch-1
HOTFIX: remove duplicated entry for sa
2024-04-18 11:02:12 +03:00
Artem Starik
b02c608d6c HOTFIX: remove duplicated entry for sa 2024-04-18 11:00:06 +03:00
Andrei Kvapil
f7eaab0aaa Prepare release v0.3.0 (#90) 2024-04-18 09:00:22 +02:00
266 changed files with 9836 additions and 6494 deletions

View File

@@ -20,9 +20,28 @@ miss_map=$(echo "$new_map" | awk 'NR==FNR { new_map[$1 " " $2] = $3; next } { if
resolved_miss_map=$( resolved_miss_map=$(
echo "$miss_map" | while read chart version commit; do echo "$miss_map" | while read chart version commit; do
if [ "$commit" = HEAD ]; then if [ "$commit" = HEAD ]; then
line=$(git show HEAD:"./$chart/Chart.yaml" | awk '/^version:/ {print NR; exit}') line=$(awk '/^version:/ {print NR; exit}' "./$chart/Chart.yaml")
change_commit=$(git --no-pager blame -L"$line",+1 HEAD -- "$chart/Chart.yaml" | awk '{print $1}') change_commit=$(git --no-pager blame -L"$line",+1 -- "$chart/Chart.yaml" | awk '{print $1}')
commit=$(git describe --always "$change_commit~1")
if [ "$change_commit" = "00000000" ]; then
# Not commited yet, use previus commit
line=$(git show HEAD:"./$chart/Chart.yaml" | awk '/^version:/ {print NR; exit}')
commit=$(git --no-pager blame -L"$line",+1 HEAD -- "$chart/Chart.yaml" | awk '{print $1}')
if [ $(echo $commit | cut -c1) = "^" ]; then
# Previus commit not exists
commit=$(echo $commit | cut -c2-)
fi
else
# Commited, but version_map wasn't updated
line=$(git show HEAD:"./$chart/Chart.yaml" | awk '/^version:/ {print NR; exit}')
change_commit=$(git --no-pager blame -L"$line",+1 HEAD -- "$chart/Chart.yaml" | awk '{print $1}')
if [ $(echo $change_commit | cut -c1) = "^" ]; then
# Previus commit not exists
commit=$(echo $change_commit | cut -c2-)
else
commit=$(git describe --always "$change_commit~1")
fi
fi
fi fi
echo "$chart $version $commit" echo "$chart $version $commit"
done done

View File

@@ -1,25 +0,0 @@
#!/bin/sh
set -e
if [ -e $1 ]; then
echo "Please pass version in the first argument"
echo "Example: $0 0.2.0"
exit 1
fi
version=$1
talos_version=$(awk '/^version:/ {print $2}' packages/core/installer/images/talos/profiles/installer.yaml)
set -x
sed -i "/^TAG / s|=.*|= v${version}|" \
packages/apps/http-cache/Makefile \
packages/apps/kubernetes/Makefile \
packages/core/installer/Makefile \
packages/system/dashboard/Makefile
sed -i "/^VERSION / s|=.*|= ${version}|" \
packages/core/Makefile \
packages/system/Makefile
make -C packages/core fix-chartnames
make -C packages/system fix-chartnames

View File

@@ -15,13 +15,6 @@ metadata:
namespace: cozy-system namespace: cozy-system
--- ---
# Source: cozy-installer/templates/cozystack.yaml # Source: cozy-installer/templates/cozystack.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: cozystack
namespace: cozy-system
---
# Source: cozy-installer/templates/cozystack.yaml
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding kind: ClusterRoleBinding
metadata: metadata:
@@ -70,7 +63,7 @@ spec:
serviceAccountName: cozystack serviceAccountName: cozystack
containers: containers:
- name: cozystack - name: cozystack
image: "ghcr.io/aenix-io/cozystack/cozystack:v0.3.0" image: "ghcr.io/aenix-io/cozystack/cozystack:v0.4.0"
env: env:
- name: KUBERNETES_SERVICE_HOST - name: KUBERNETES_SERVICE_HOST
value: localhost value: localhost
@@ -89,7 +82,7 @@ spec:
fieldRef: fieldRef:
fieldPath: metadata.name fieldPath: metadata.name
- name: darkhttpd - name: darkhttpd
image: "ghcr.io/aenix-io/cozystack/cozystack:v0.3.0" image: "ghcr.io/aenix-io/cozystack/cozystack:v0.4.0"
command: command:
- /usr/bin/darkhttpd - /usr/bin/darkhttpd
- /cozystack/assets - /cozystack/assets

View File

@@ -7,7 +7,7 @@ repo:
awk '$$3 != "HEAD" {print "mkdir -p $(TMP)/" $$1 "-" $$2}' versions_map | sh -ex awk '$$3 != "HEAD" {print "mkdir -p $(TMP)/" $$1 "-" $$2}' versions_map | sh -ex
awk '$$3 != "HEAD" {print "git archive " $$3 " " $$1 " | tar -xf- --strip-components=1 -C $(TMP)/" $$1 "-" $$2 }' versions_map | sh -ex awk '$$3 != "HEAD" {print "git archive " $$3 " " $$1 " | tar -xf- --strip-components=1 -C $(TMP)/" $$1 "-" $$2 }' versions_map | sh -ex
helm package -d "$(OUT)" $$(find . $(TMP) -mindepth 2 -maxdepth 2 -name Chart.yaml | awk 'sub("/Chart.yaml", "")' | sort -V) helm package -d "$(OUT)" $$(find . $(TMP) -mindepth 2 -maxdepth 2 -name Chart.yaml | awk 'sub("/Chart.yaml", "")' | sort -V)
cd "$(OUT)" && helm repo index . cd "$(OUT)" && helm repo index . --url http://cozystack.cozy-system.svc/repos/apps
rm -rf "$(TMP)" rm -rf "$(TMP)"
fix-chartnames: fix-chartnames:

View File

@@ -16,10 +16,10 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes # 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. # to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/) # Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0 version: 0.2.0
# This is the version number of the application being deployed. This version number should be # 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 # 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. # follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes. # It is recommended to use it with quotes.
appVersion: "1.16.0" appVersion: "24.3.0"

View File

@@ -0,0 +1,2 @@
generate:
readme-generator -v values.yaml -s values.schema.json -r README.md

View File

@@ -0,0 +1,17 @@
# Managed Clickhouse Service
## Parameters
### Common parameters
| Name | Description | Value |
| ---------- | ----------------------------- | ------ |
| `size` | Persistent Volume size | `10Gi` |
| `shards` | Number of Clickhouse replicas | `1` |
| `replicas` | Number of Clickhouse shards | `2` |
### Configuration parameters
| Name | Description | Value |
| ------- | ------------------- | ----- |
| `users` | Users configuration | `{}` |

View File

@@ -21,8 +21,8 @@ spec:
clusters: clusters:
- name: "clickhouse" - name: "clickhouse"
layout: layout:
shardsCount: 1 shardsCount: {{ .Values.shards }}
replicasCount: 2 replicasCount: {{ .Values.replicas }}
{{- with .Values.size }} {{- with .Values.size }}
templates: templates:
volumeClaimTemplates: volumeClaimTemplates:

View File

@@ -0,0 +1,21 @@
{
"title": "Chart Values",
"type": "object",
"properties": {
"size": {
"type": "string",
"description": "Persistent Volume size",
"default": "10Gi"
},
"shards": {
"type": "number",
"description": "Number of Clickhouse replicas",
"default": 1
},
"replicas": {
"type": "number",
"description": "Number of Clickhouse shards",
"default": 2
}
}
}

View File

@@ -1,8 +1,22 @@
size: 10Gi ## @section Common parameters
users: ## @param size Persistent Volume size
user1: ## @param shards Number of Clickhouse replicas
password: strongpassword ## @param replicas Number of Clickhouse shards
user2: ##
readonly: true size: 10Gi
password: hackme shards: 1
replicas: 2
## @section Configuration parameters
## @param users [object] Users configuration
## Example:
## users:
## user1:
## password: strongpassword
## user2:
## readonly: true
## password: hackme
##
users: {}

View File

@@ -16,10 +16,10 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes # 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. # to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/) # Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0 version: 0.2.0
# This is the version number of the application being deployed. This version number should be # 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 # 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. # follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes. # It is recommended to use it with quotes.
appVersion: "1.16.0" appVersion: "1.25.3"

View File

@@ -1,22 +1,23 @@
PUSH := 1
LOAD := 0
REGISTRY := ghcr.io/aenix-io/cozystack
NGINX_CACHE_TAG = v0.1.0 NGINX_CACHE_TAG = v0.1.0
TAG := v0.3.0
include ../../../scripts/common-envs.mk
image: image-nginx image: image-nginx
image-nginx: image-nginx:
docker buildx build --platform linux/amd64 --build-arg ARCH=amd64 images/nginx-cache \ docker buildx build --platform linux/amd64 --build-arg ARCH=amd64 images/nginx-cache \
--provenance false \ --provenance false \
--tag $(REGISTRY)/nginx-cache:$(NGINX_CACHE_TAG) \ --tag $(REGISTRY)/nginx-cache:$(call settag,$(NGINX_CACHE_TAG)) \
--tag $(REGISTRY)/nginx-cache:$(NGINX_CACHE_TAG)-$(TAG) \ --tag $(REGISTRY)/nginx-cache:$(call settag,$(NGINX_CACHE_TAG)-$(TAG)) \
--cache-from type=registry,ref=$(REGISTRY)/nginx-cache:$(NGINX_CACHE_TAG) \ --cache-from type=registry,ref=$(REGISTRY)/nginx-cache:latest \
--cache-to type=inline \ --cache-to type=inline \
--metadata-file images/nginx-cache.json \ --metadata-file images/nginx-cache.json \
--push=$(PUSH) \ --push=$(PUSH) \
--load=$(LOAD) --load=$(LOAD)
echo "$(REGISTRY)/nginx-cache:$(NGINX_CACHE_TAG)" > images/nginx-cache.tag echo "$(REGISTRY)/nginx-cache:$(call settag,$(NGINX_CACHE_TAG))" > images/nginx-cache.tag
generate:
readme-generator -v values.yaml -s values.schema.json -r README.md
update: update:
tag=$$(git ls-remote --tags --sort="v:refname" https://github.com/chrislim2888/IP2Location-C-Library | awk -F'[/^]' 'END{print $$3}') && \ tag=$$(git ls-remote --tags --sort="v:refname" https://github.com/chrislim2888/IP2Location-C-Library | awk -F'[/^]' 'END{print $$3}') && \

View File

@@ -55,3 +55,20 @@ The deployment architecture is illustrated in the diagram below:
VTS module shows wrong upstream resonse time VTS module shows wrong upstream resonse time
- https://github.com/vozlt/nginx-module-vts/issues/198 - https://github.com/vozlt/nginx-module-vts/issues/198
## Parameters
### Common parameters
| Name | Description | Value |
| ------------------ | ----------------------------------------------- | ------- |
| `external` | Enable external access from outside the cluster | `false` |
| `size` | Persistent Volume size | `10Gi` |
| `haproxy.replicas` | Number of HAProxy replicas | `2` |
| `nginx.replicas` | Number of Nginx replicas | `2` |
### Configuration parameters
| Name | Description | Value |
| ----------- | ----------------------- | ----- |
| `endpoints` | Endpoints configuration | `[]` |

View File

@@ -1,4 +1,4 @@
{ {
"containerimage.config.digest": "sha256:7c47297b8133ec28972f23c9f7de1e343b16c8c58cca9105830f7753a7f3b124", "containerimage.config.digest": "sha256:2be806d1d79cbb979b71774d75e610ebbaf1c22608402249a83e043860d754c7",
"containerimage.digest": "sha256:1dda8d51fd620c8b40a16873376a690858910aa57241caa09d4cd4b5f84f317e" "containerimage.digest": "sha256:49e22533ee97b90a716923aebf5f2654c4a8b47db0b2fab9daf8ecc34c40e7d0"
} }

View File

@@ -74,7 +74,7 @@ data:
option redispatch 1 option redispatch 1
default-server observe layer7 error-limit 10 on-error mark-down default-server observe layer7 error-limit 10 on-error mark-down
{{- range $i, $e := until (int $.Values.replicas) }} {{- range $i, $e := until (int $.Values.nginx.replicas) }}
server cache{{ $i }} {{ $.Release.Name }}-nginx-cache-{{ $i }}:80 check server cache{{ $i }} {{ $.Release.Name }}-nginx-cache-{{ $i }}:80 check
{{- end }} {{- end }}
{{- range $i, $e := $.Values.endpoints }} {{- range $i, $e := $.Values.endpoints }}

View File

@@ -7,7 +7,7 @@ metadata:
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/managed-by: {{ .Release.Service }}
spec: spec:
replicas: 2 replicas: {{ .Values.haproxy.replicas }}
selector: selector:
matchLabels: matchLabels:
app: {{ .Release.Name }}-haproxy app: {{ .Release.Name }}-haproxy

View File

@@ -11,7 +11,7 @@ spec:
selector: selector:
matchLabels: matchLabels:
app: {{ $.Release.Name }}-nginx-cache app: {{ $.Release.Name }}-nginx-cache
{{- range $i := until 3 }} {{- range $i := until (int $.Values.nginx.replicas) }}
--- ---
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment

View File

@@ -0,0 +1,42 @@
{
"title": "Chart Values",
"type": "object",
"properties": {
"external": {
"type": "boolean",
"description": "Enable external access from outside the cluster",
"default": false
},
"size": {
"type": "string",
"description": "Persistent Volume size",
"default": "10Gi"
},
"haproxy": {
"type": "object",
"properties": {
"replicas": {
"type": "number",
"description": "Number of HAProxy replicas",
"default": 2
}
}
},
"nginx": {
"type": "object",
"properties": {
"replicas": {
"type": "number",
"description": "Number of Nginx replicas",
"default": 2
}
}
},
"endpoints": {
"type": "array",
"description": "Endpoints configuration",
"default": [],
"items": {}
}
}
}

View File

@@ -1,9 +1,28 @@
## @section Common parameters
## @param external Enable external access from outside the cluster
## @param size Persistent Volume size
## @param haproxy.replicas Number of HAProxy replicas
## @param nginx.replicas Number of Nginx replicas
##
external: false external: false
size: 10Gi size: 10Gi
endpoints: haproxy:
- 10.100.3.1:80 replicas: 2
- 10.100.3.11:80 nginx:
- 10.100.3.2:80 replicas: 2
- 10.100.3.12:80
- 10.100.3.3:80 ## @section Configuration parameters
- 10.100.3.13:80
## @param endpoints Endpoints configuration
## Example:
## endpoints:
## - 10.100.3.1:80
## - 10.100.3.11:80
## - 10.100.3.2:80
## - 10.100.3.12:80
## - 10.100.3.3:80
## - 10.100.3.13:80
##
endpoints: []

View File

@@ -16,10 +16,10 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes # 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. # to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/) # Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0 version: 0.2.0
# This is the version number of the application being deployed. This version number should be # 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 # 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. # follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes. # It is recommended to use it with quotes.
appVersion: "1.16.0" appVersion: "3.7.0"

View File

@@ -0,0 +1,2 @@
generate:
readme-generator -v values.yaml -s values.schema.json -r README.md

View File

@@ -0,0 +1,19 @@
# Managed Kafka Service
## Parameters
### Common parameters
| Name | Description | Value |
| -------------------- | ----------------------------------------------- | ------- |
| `external` | Enable external access from outside the cluster | `false` |
| `kafka.size` | Persistent Volume size for Kafka | `10Gi` |
| `kafka.replicas` | Number of Kafka replicas | `3` |
| `zookeeper.size` | Persistent Volume size for ZooKeeper | `5Gi` |
| `zookeeper.replicas` | Number of ZooKeeper replicas | `3` |
### Configuration parameters
| Name | Description | Value |
| -------- | -------------------- | ----- |
| `topics` | Topics configuration | `[]` |

View File

@@ -7,7 +7,7 @@ metadata:
app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/managed-by: {{ .Release.Service }}
spec: spec:
kafka: kafka:
replicas: 3 replicas: {{ .Values.kafka.replicas }}
listeners: listeners:
- name: plain - name: plain
port: 9092 port: 9092
@@ -41,7 +41,7 @@ spec:
{{- end }} {{- end }}
deleteClaim: true deleteClaim: true
zookeeper: zookeeper:
replicas: 3 replicas: {{ .Values.zookeeper.replicas }}
storage: storage:
type: persistent-claim type: persistent-claim
{{- with .Values.zookeeper.size }} {{- with .Values.zookeeper.size }}

View File

@@ -0,0 +1,47 @@
{
"title": "Chart Values",
"type": "object",
"properties": {
"external": {
"type": "boolean",
"description": "Enable external access from outside the cluster",
"default": false
},
"kafka": {
"type": "object",
"properties": {
"size": {
"type": "string",
"description": "Persistent Volume size for Kafka",
"default": "10Gi"
},
"replicas": {
"type": "number",
"description": "Number of Kafka replicas",
"default": 3
}
}
},
"zookeeper": {
"type": "object",
"properties": {
"size": {
"type": "string",
"description": "Persistent Volume size for ZooKeeper",
"default": "5Gi"
},
"replicas": {
"type": "number",
"description": "Number of ZooKeeper replicas",
"default": 3
}
}
},
"topics": {
"type": "array",
"description": "Topics configuration",
"default": [],
"items": {}
}
}
}

View File

@@ -1,20 +1,37 @@
## @section Common parameters
## @param external Enable external access from outside the cluster
## @param kafka.size Persistent Volume size for Kafka
## @param kafka.replicas Number of Kafka replicas
## @param zookeeper.size Persistent Volume size for ZooKeeper
## @param zookeeper.replicas Number of ZooKeeper replicas
##
external: false external: false
kafka: kafka:
size: 10Gi size: 10Gi
replicas: 3
zookeeper: zookeeper:
size: 5Gi size: 5Gi
replicas: 3
topics: ## @section Configuration parameters
- name: Results
partitions: 1 ## @param topics Topics configuration
replicas: 3 ## Example:
config: ## topics:
min.insync.replicas: 2 ## - name: Results
- name: Orders ## partitions: 1
config: ## replicas: 3
cleanup.policy: compact ## config:
segment.ms: 3600000 ## min.insync.replicas: 2
max.compaction.lag.ms: 5400000 ## - name: Orders
min.insync.replicas: 2 ## config:
partitions: 1 ## cleanup.policy: compact
replicationFactor: 3 ## segment.ms: 3600000
## max.compaction.lag.ms: 5400000
## min.insync.replicas: 2
## partitions: 1
## replicationFactor: 3
##
topics: []

View File

@@ -16,10 +16,10 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes # 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. # to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/) # Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0 version: 0.2.0
# This is the version number of the application being deployed. This version number should be # 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 # 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. # follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes. # It is recommended to use it with quotes.
appVersion: "1.16.0" appVersion: "1.19.0"

View File

@@ -1,19 +1,20 @@
PUSH := 1
LOAD := 0
REGISTRY := ghcr.io/aenix-io/cozystack
TAG := v0.3.0
UBUNTU_CONTAINER_DISK_TAG = v1.29.1 UBUNTU_CONTAINER_DISK_TAG = v1.29.1
include ../../../scripts/common-envs.mk
generate:
readme-generator -v values.yaml -s values.schema.json -r README.md
image: image-ubuntu-container-disk image: image-ubuntu-container-disk
image-ubuntu-container-disk: image-ubuntu-container-disk:
docker buildx build --platform linux/amd64 --build-arg ARCH=amd64 images/ubuntu-container-disk \ docker buildx build --platform linux/amd64 --build-arg ARCH=amd64 images/ubuntu-container-disk \
--provenance false \ --provenance false \
--tag $(REGISTRY)/ubuntu-container-disk:$(UBUNTU_CONTAINER_DISK_TAG) \ --tag $(REGISTRY)/ubuntu-container-disk:$(call settag,$(UBUNTU_CONTAINER_DISK_TAG)) \
--tag $(REGISTRY)/ubuntu-container-disk:$(UBUNTU_CONTAINER_DISK_TAG)-$(TAG) \ --tag $(REGISTRY)/ubuntu-container-disk:$(call settag,$(UBUNTU_CONTAINER_DISK_TAG)-$(TAG)) \
--cache-from type=registry,ref=$(REGISTRY)/ubuntu-container-disk:$(UBUNTU_CONTAINER_DISK_TAG) \ --cache-from type=registry,ref=$(REGISTRY)/ubuntu-container-disk:latest \
--cache-to type=inline \ --cache-to type=inline \
--metadata-file images/ubuntu-container-disk.json \ --metadata-file images/ubuntu-container-disk.json \
--push=$(PUSH) \ --push=$(PUSH) \
--load=$(LOAD) --load=$(LOAD)
echo "$(REGISTRY)/ubuntu-container-disk:$(UBUNTU_CONTAINER_DISK_TAG)" > images/ubuntu-container-disk.tag echo "$(REGISTRY)/ubuntu-container-disk:$(call settag,$(UBUNTU_CONTAINER_DISK_TAG))" > images/ubuntu-container-disk.tag

View File

@@ -26,3 +26,13 @@ How to access to deployed cluster:
``` ```
kubectl get secret -n <namespace> kubernetes-<clusterName>-admin-kubeconfig -o go-template='{{ printf "%s\n" (index .data "super-admin.conf" | base64decode) }}' > test kubectl get secret -n <namespace> kubernetes-<clusterName>-admin-kubeconfig -o go-template='{{ printf "%s\n" (index .data "super-admin.conf" | base64decode) }}' > test
``` ```
## Parameters
### Common parameters
| Name | Description | Value |
| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | ----- |
| `host` | The hostname used to access the Kubernetes cluster externally (defaults to using the cluster name as a subdomain for the tenant host). | `""` |
| `controlPlane.replicas` | Number of replicas for Kubernetes contorl-plane components | `2` |
| `nodeGroups` | nodeGroups configuration | `{}` |

View File

@@ -1,4 +1,4 @@
{ {
"containerimage.config.digest": "sha256:62baab666445d76498fb14cc1d0865fc82e4bdd5cb1d7ba80475dc5024184622", "containerimage.config.digest": "sha256:a7e8e6e35ac07bcf6253c9cfcf21fd3c315bd0653ad0427dd5f0cae95ffd3722",
"containerimage.digest": "sha256:9363d717f966f4e7927da332eaaf17401b42203a2fcb493b428f94d096dae3a5" "containerimage.digest": "sha256:c03bffeeb70fe7dd680d2eca3021d2405fbcd9961dd38437f5673560c31c72cc"
} }

View File

@@ -15,6 +15,12 @@ spec:
labels: labels:
app: {{ .Release.Name }}-cluster-autoscaler app: {{ .Release.Name }}-cluster-autoscaler
spec: spec:
tolerations:
- key: CriticalAddonsOnly
operator: Exists
- key: node-role.kubernetes.io/control-plane
operator: Exists
effect: "NoSchedule"
containers: containers:
- image: ghcr.io/kvaps/test:cluster-autoscaller - image: ghcr.io/kvaps/test:cluster-autoscaller
name: cluster-autoscaler name: cluster-autoscaler

View File

@@ -64,12 +64,13 @@ metadata:
cluster.x-k8s.io/managed-by: kamaji cluster.x-k8s.io/managed-by: kamaji
name: {{ .Release.Name }} name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
{{- range $groupName, $group := .Values.nodeGroups }}
--- ---
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1 apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
kind: KubeadmConfigTemplate kind: KubeadmConfigTemplate
metadata: metadata:
name: {{ .Release.Name }}-md-0 name: {{ $.Release.Name }}-{{ $groupName }}
namespace: {{ .Release.Namespace }} namespace: {{ $.Release.Namespace }}
spec: spec:
template: template:
spec: spec:
@@ -78,7 +79,7 @@ spec:
kubeletExtraArgs: {} kubeletExtraArgs: {}
discovery: discovery:
bootstrapToken: bootstrapToken:
apiServerEndpoint: {{ .Release.Name }}.{{ .Release.Namespace }}.svc:6443 apiServerEndpoint: {{ $.Release.Name }}.{{ $.Release.Namespace }}.svc:6443
initConfiguration: initConfiguration:
skipPhases: skipPhases:
- addon/kube-proxy - addon/kube-proxy
@@ -86,8 +87,8 @@ spec:
apiVersion: infrastructure.cluster.x-k8s.io/v1alpha1 apiVersion: infrastructure.cluster.x-k8s.io/v1alpha1
kind: KubevirtMachineTemplate kind: KubevirtMachineTemplate
metadata: metadata:
name: {{ .Release.Name }}-md-0 name: {{ $.Release.Name }}-{{ $groupName }}
namespace: {{ .Release.Namespace }} namespace: {{ $.Release.Namespace }}
spec: spec:
template: template:
spec: spec:
@@ -95,7 +96,7 @@ spec:
checkStrategy: ssh checkStrategy: ssh
virtualMachineTemplate: virtualMachineTemplate:
metadata: metadata:
namespace: {{ .Release.Namespace }} namespace: {{ $.Release.Namespace }}
spec: spec:
runStrategy: Always runStrategy: Always
template: template:
@@ -103,7 +104,7 @@ spec:
domain: domain:
cpu: cpu:
threads: 1 threads: 1
cores: 2 cores: {{ $group.resources.cpu }}
sockets: 1 sockets: 1
devices: devices:
disks: disks:
@@ -112,7 +113,7 @@ spec:
name: containervolume name: containervolume
networkInterfaceMultiqueue: true networkInterfaceMultiqueue: true
memory: memory:
guest: 1024Mi guest: {{ $group.resources.memory }}
evictionStrategy: External evictionStrategy: External
volumes: volumes:
- containerDisk: - containerDisk:
@@ -122,29 +123,28 @@ spec:
apiVersion: cluster.x-k8s.io/v1beta1 apiVersion: cluster.x-k8s.io/v1beta1
kind: MachineDeployment kind: MachineDeployment
metadata: metadata:
name: {{ .Release.Name }}-md-0 name: {{ $.Release.Name }}-{{ $groupName }}
namespace: {{ .Release.Namespace }} namespace: {{ $.Release.Namespace }}
annotations: annotations:
cluster.x-k8s.io/cluster-api-autoscaler-node-group-max-size: "2" cluster.x-k8s.io/cluster-api-autoscaler-node-group-min-size: "{{ $group.minReplicas }}"
cluster.x-k8s.io/cluster-api-autoscaler-node-group-min-size: "0" cluster.x-k8s.io/cluster-api-autoscaler-node-group-max-size: "{{ $group.maxReplicas }}"
capacity.cluster-autoscaler.kubernetes.io/memory: "1024Mi" capacity.cluster-autoscaler.kubernetes.io/memory: "{{ $group.resources.memory }}"
capacity.cluster-autoscaler.kubernetes.io/cpu: "2" capacity.cluster-autoscaler.kubernetes.io/cpu: "{{ $group.resources.cpu }}"
spec: spec:
clusterName: {{ .Release.Name }} clusterName: {{ $.Release.Name }}
selector:
matchLabels: null
template: template:
spec: spec:
bootstrap: bootstrap:
configRef: configRef:
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1 apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
kind: KubeadmConfigTemplate kind: KubeadmConfigTemplate
name: {{ .Release.Name }}-md-0 name: {{ $.Release.Name }}-{{ $groupName }}
namespace: default namespace: default
clusterName: {{ .Release.Name }} clusterName: {{ $.Release.Name }}
infrastructureRef: infrastructureRef:
apiVersion: infrastructure.cluster.x-k8s.io/v1alpha1 apiVersion: infrastructure.cluster.x-k8s.io/v1alpha1
kind: KubevirtMachineTemplate kind: KubevirtMachineTemplate
name: {{ .Release.Name }}-md-0 name: {{ $.Release.Name }}-{{ $groupName }}
namespace: default namespace: default
version: v1.23.10 version: v1.29.0
{{- end }}

View File

@@ -16,12 +16,10 @@ spec:
spec: spec:
serviceAccountName: {{ .Release.Name }}-kcsi serviceAccountName: {{ .Release.Name }}-kcsi
priorityClassName: system-cluster-critical priorityClassName: system-cluster-critical
nodeSelector:
node-role.kubernetes.io/control-plane: ""
tolerations: tolerations:
- key: CriticalAddonsOnly - key: CriticalAddonsOnly
operator: Exists operator: Exists
- key: node-role.kubernetes.io/master - key: node-role.kubernetes.io/control-plane
operator: Exists operator: Exists
effect: "NoSchedule" effect: "NoSchedule"
containers: containers:

View File

@@ -12,6 +12,12 @@ spec:
spec: spec:
serviceAccountName: {{ .Release.Name }}-flux-teardown serviceAccountName: {{ .Release.Name }}-flux-teardown
restartPolicy: Never restartPolicy: Never
tolerations:
- key: CriticalAddonsOnly
operator: Exists
- key: node-role.kubernetes.io/control-plane
operator: Exists
effect: "NoSchedule"
containers: containers:
- name: kubectl - name: kubectl
image: docker.io/clastix/kubectl:v1.29.1 image: docker.io/clastix/kubectl:v1.29.1

View File

@@ -14,6 +14,12 @@ spec:
labels: labels:
k8s-app: {{ .Release.Name }}-kccm k8s-app: {{ .Release.Name }}-kccm
spec: spec:
tolerations:
- key: CriticalAddonsOnly
operator: Exists
- key: node-role.kubernetes.io/control-plane
operator: Exists
effect: "NoSchedule"
containers: containers:
- name: kubevirt-cloud-controller-manager - name: kubevirt-cloud-controller-manager
args: args:
@@ -44,6 +50,4 @@ spec:
- secret: - secret:
secretName: {{ .Release.Name }}-admin-kubeconfig secretName: {{ .Release.Name }}-admin-kubeconfig
name: kubeconfig name: kubeconfig
tolerations:
- operator: Exists
serviceAccountName: {{ .Release.Name }}-kccm serviceAccountName: {{ .Release.Name }}-kccm

View File

@@ -1,11 +1,21 @@
{ {
"$schema": "http://json-schema.org/schema#", "title": "Chart Values",
"type": "object", "type": "object",
"properties": { "properties": {
"host": { "host": {
"type": "string", "type": "string",
"title": "Domain name for this kubernetes cluster", "description": "The hostname used to access the Kubernetes cluster externally (defaults to using the cluster name as a subdomain for the tenant host).",
"description": "This host will be used for all apps deployed in this tenant" "default": ""
},
"controlPlane": {
"type": "object",
"properties": {
"replicas": {
"type": "number",
"description": "Number of replicas for Kubernetes contorl-plane components",
"default": 2
}
}
}
} }
} }
}

View File

@@ -1 +1,18 @@
## @section Common parameters
## @param host The hostname used to access the Kubernetes cluster externally (defaults to using the cluster name as a subdomain for the tenant host).
## @param controlPlane.replicas Number of replicas for Kubernetes contorl-plane components
##
host: "" host: ""
controlPlane:
replicas: 2
## @param nodeGroups [object] nodeGroups configuration
##
nodeGroups:
md0:
minReplicas: 0
maxReplicas: 10
resources:
cpu: 2
memory: 1024Mi

View File

@@ -16,10 +16,10 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes # 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. # to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/) # Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.2.0 version: 0.3.0
# This is the version number of the application being deployed. This version number should be # 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 # 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. # follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes. # It is recommended to use it with quotes.
appVersion: "1.16.0" appVersion: "11.0.2"

View File

@@ -0,0 +1,2 @@
generate:
readme-generator -v values.yaml -s values.schema.json -r README.md

View File

@@ -62,3 +62,34 @@ more details:
mysqldump -h <slave> -P 3306 -u<user> -p<password> --column-statistics=0 <database> <table> ~/tmp/fix-table.sql mysqldump -h <slave> -P 3306 -u<user> -p<password> --column-statistics=0 <database> <table> ~/tmp/fix-table.sql
mysql -h <master> -P 3306 -u<user> -p<password> <database> < ~/tmp/fix-table.sql mysql -h <master> -P 3306 -u<user> -p<password> <database> < ~/tmp/fix-table.sql
``` ```
## Parameters
### Common parameters
| Name | Description | Value |
| ---------- | ----------------------------------------------- | ------- |
| `external` | Enable external access from outside the cluster | `false` |
| `size` | Persistent Volume size | `10Gi` |
| `replicas` | Number of MariaDB replicas | `2` |
### Configuration parameters
| Name | Description | Value |
| ----------- | ----------------------- | ----- |
| `users` | Users configuration | `{}` |
| `databases` | Databases configuration | `[]` |
### Backup parameters
| Name | Description | Value |
| ------------------------ | ---------------------------------------------- | ------------------------------------------------------ |
| `backup.enabled` | Enable pereiodic backups | `false` |
| `backup.s3Region` | The AWS S3 region where backups are stored | `us-east-1` |
| `backup.s3Bucket` | The S3 bucket used for storing backups | `s3.example.org/postgres-backups` |
| `backup.schedule` | Cron schedule for automated backups | `0 2 * * *` |
| `backup.cleanupStrategy` | The strategy for cleaning up old backups | `--keep-last=3 --keep-daily=3 --keep-within-weekly=1m` |
| `backup.s3AccessKey` | The access key for S3, used for authentication | `oobaiRus9pah8PhohL1ThaeTa4UVa7gu` |
| `backup.s3SecretKey` | The secret key for S3, used for authentication | `ju3eum4dekeich9ahM1te8waeGai0oog` |
| `backup.resticPassword` | The password for Restic backup encryption | `ChaXoveekoh6eigh4siesheeda2quai0` |

View File

@@ -12,7 +12,7 @@ spec:
port: 3306 port: 3306
replicas: 2 replicas: {{ .Values.replicas }}
affinity: affinity:
podAntiAffinity: podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution: requiredDuringSchedulingIgnoredDuringExecution:
@@ -28,11 +28,13 @@ spec:
- {{ .Release.Name }} - {{ .Release.Name }}
topologyKey: "kubernetes.io/hostname" topologyKey: "kubernetes.io/hostname"
{{- if gt (int .Values.replicas) 1 }}
replication: replication:
enabled: true enabled: true
#primary: #primary:
# podIndex: 0 # podIndex: 0
# automaticFailover: true # automaticFailover: true
{{- end }}
metrics: metrics:
enabled: true enabled: true

View File

@@ -7,3 +7,11 @@ stringData:
{{- range $name, $u := .Values.users }} {{- range $name, $u := .Values.users }}
{{ $name }}-password: {{ $u.password }} {{ $name }}-password: {{ $u.password }}
{{- end }} {{- end }}
{{- if not (and .Values.users.root .Values.users.root.password) }}
{{- $existingSecret := lookup "v1" "Secret" .Release.Namespace .Release.Name }}
{{- if and $existingSecret (index $existingSecret.data "root-password") }}
root-password: {{ index $existingSecret.data "root-password" }}
{{- else }}
root-password: {{ randAlphaNum 10 }}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,72 @@
{
"title": "Chart Values",
"type": "object",
"properties": {
"external": {
"type": "boolean",
"description": "Enable external access from outside the cluster",
"default": false
},
"size": {
"type": "string",
"description": "Persistent Volume size",
"default": "10Gi"
},
"replicas": {
"type": "number",
"description": "Number of MariaDB replicas",
"default": 2
},
"databases": {
"type": "array",
"description": "Databases configuration",
"default": [],
"items": {}
},
"backup": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable pereiodic backups",
"default": false
},
"s3Region": {
"type": "string",
"description": "The AWS S3 region where backups are stored",
"default": "us-east-1"
},
"s3Bucket": {
"type": "string",
"description": "The S3 bucket used for storing backups",
"default": "s3.example.org/postgres-backups"
},
"schedule": {
"type": "string",
"description": "Cron schedule for automated backups",
"default": "0 2 * * *"
},
"cleanupStrategy": {
"type": "string",
"description": "The strategy for cleaning up old backups",
"default": "--keep-last=3 --keep-daily=3 --keep-within-weekly=1m"
},
"s3AccessKey": {
"type": "string",
"description": "The access key for S3, used for authentication",
"default": "oobaiRus9pah8PhohL1ThaeTa4UVa7gu"
},
"s3SecretKey": {
"type": "string",
"description": "The secret key for S3, used for authentication",
"default": "ju3eum4dekeich9ahM1te8waeGai0oog"
},
"resticPassword": {
"type": "string",
"description": "The password for Restic backup encryption",
"default": "ChaXoveekoh6eigh4siesheeda2quai0"
}
}
}
}
}

View File

@@ -1,24 +1,50 @@
## @section Common parameters
## @param external Enable external access from outside the cluster
## @param size Persistent Volume size
## @param replicas Number of MariaDB replicas
##
external: false external: false
size: 10Gi size: 10Gi
replicas: 2
users: ## @section Configuration parameters
root:
password: strongpassword
user1:
privileges: ['ALL']
maxUserConnections: 1000
password: hackme
user2:
privileges: ['SELECT']
maxUserConnections: 1000
password: hackme
databases: ## @param users [object] Users configuration
- wordpress1 ## Example:
- wordpress2 ## users:
- wordpress3 ## root:
- wordpress4 ## password: strongpassword
## user1:
## privileges: ['ALL']
## maxUserConnections: 1000
## password: hackme
## user2:
## privileges: ['SELECT']
## maxUserConnections: 1000
## password: hackme
##
users: {}
## @param databases Databases configuration
## Example:
## databases:
## - wordpress1
## - wordpress2
## - wordpress3
## - wordpress4
databases: []
## @section Backup parameters
## @param backup.enabled Enable pereiodic backups
## @param backup.s3Region The AWS S3 region where backups are stored
## @param backup.s3Bucket The S3 bucket used for storing backups
## @param backup.schedule Cron schedule for automated backups
## @param backup.cleanupStrategy The strategy for cleaning up old backups
## @param backup.s3AccessKey The access key for S3, used for authentication
## @param backup.s3SecretKey The secret key for S3, used for authentication
## @param backup.resticPassword The password for Restic backup encryption
backup: backup:
enabled: false enabled: false
s3Region: us-east-1 s3Region: us-east-1

View File

@@ -16,10 +16,10 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes # 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. # to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/) # Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0 version: 0.2.0
# This is the version number of the application being deployed. This version number should be # 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 # 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. # follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes. # It is recommended to use it with quotes.
appVersion: "1.16.0" appVersion: "16.2"

View File

@@ -0,0 +1,2 @@
generate:
readme-generator -v values.yaml -s values.schema.json -r README.md

View File

@@ -30,3 +30,35 @@ restic -r s3:s3.example.org/postgres-backups/database_name restore latest --targ
more details: more details:
- https://itnext.io/restic-effective-backup-from-stdin-4bc1e8f083c1 - https://itnext.io/restic-effective-backup-from-stdin-4bc1e8f083c1
## Parameters
### Common parameters
| Name | Description | Value |
| ---------- | ----------------------------------------------- | ------- |
| `external` | Enable external access from outside the cluster | `false` |
| `size` | Persistent Volume size | `10Gi` |
| `replicas` | Number of MariaDB replicas | `2` |
### Configuration parameters
| Name | Description | Value |
| ----------- | ----------------------- | ----- |
| `users` | Users configuration | `{}` |
| `databases` | Databases configuration | `{}` |
### Backup parameters
| Name | Description | Value |
| ------------------------ | ---------------------------------------------- | ------------------------------------------------------ |
| `backup.enabled` | Enable pereiodic backups | `false` |
| `backup.s3Region` | The AWS S3 region where backups are stored | `us-east-1` |
| `backup.s3Bucket` | The S3 bucket used for storing backups | `s3.example.org/postgres-backups` |
| `backup.schedule` | Cron schedule for automated backups | `0 2 * * *` |
| `backup.cleanupStrategy` | The strategy for cleaning up old backups | `--keep-last=3 --keep-daily=3 --keep-within-weekly=1m` |
| `backup.s3AccessKey` | The access key for S3, used for authentication | `oobaiRus9pah8PhohL1ThaeTa4UVa7gu` |
| `backup.s3SecretKey` | The secret key for S3, used for authentication | `ju3eum4dekeich9ahM1te8waeGai0oog` |
| `backup.resticPassword` | The password for Restic backup encryption | `ChaXoveekoh6eigh4siesheeda2quai0` |

View File

@@ -4,7 +4,7 @@ kind: Cluster
metadata: metadata:
name: {{ .Release.Name }} name: {{ .Release.Name }}
spec: spec:
instances: 2 instances: {{ .Values.replicas }}
enableSuperuserAccess: true enableSuperuserAccess: true
postgresql: postgresql:

View File

@@ -0,0 +1,71 @@
{
"title": "Chart Values",
"type": "object",
"properties": {
"external": {
"type": "boolean",
"description": "Enable external access from outside the cluster",
"default": false
},
"size": {
"type": "string",
"description": "Persistent Volume size",
"default": "10Gi"
},
"replicas": {
"type": "number",
"description": "Number of MariaDB replicas",
"default": 2
},
"databases": {
"type": "object",
"description": "Databases configuration",
"default": {}
},
"backup": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable pereiodic backups",
"default": false
},
"s3Region": {
"type": "string",
"description": "The AWS S3 region where backups are stored",
"default": "us-east-1"
},
"s3Bucket": {
"type": "string",
"description": "The S3 bucket used for storing backups",
"default": "s3.example.org/postgres-backups"
},
"schedule": {
"type": "string",
"description": "Cron schedule for automated backups",
"default": "0 2 * * *"
},
"cleanupStrategy": {
"type": "string",
"description": "The strategy for cleaning up old backups",
"default": "--keep-last=3 --keep-daily=3 --keep-within-weekly=1m"
},
"s3AccessKey": {
"type": "string",
"description": "The access key for S3, used for authentication",
"default": "oobaiRus9pah8PhohL1ThaeTa4UVa7gu"
},
"s3SecretKey": {
"type": "string",
"description": "The secret key for S3, used for authentication",
"default": "ju3eum4dekeich9ahM1te8waeGai0oog"
},
"resticPassword": {
"type": "string",
"description": "The password for Restic backup encryption",
"default": "ChaXoveekoh6eigh4siesheeda2quai0"
}
}
}
}
}

View File

@@ -1,33 +1,57 @@
## @section Common parameters
## @param external Enable external access from outside the cluster
## @param size Persistent Volume size
## @param replicas Number of MariaDB replicas
##
external: false external: false
size: 10Gi size: 10Gi
replicas: 2
users: ## @section Configuration parameters
user1:
password: strongpassword
user2:
password: hackme
airflow:
password: qwerty123
debezium:
replication: true
databases: ## @param users [object] Users configuration
## Example:
## users:
## user1:
## password: strongpassword
## user2:
## password: hackme
## airflow:
## password: qwerty123
## debezium:
## replication: true
##
users: {}
myapp: ## @param databases Databases configuration
roles: ## Example:
admin: ## databases:
- user1 ## myapp:
- debezium ## roles:
readonly: ## admin:
- user2 ## - user1
## - debezium
## readonly:
## - user2
## airflow:
## roles:
## admin:
## - airflow
## extensions:
## - hstore
databases: {}
airflow: ## @section Backup parameters
roles:
admin:
- airflow
extensions:
- hstore
## @param backup.enabled Enable pereiodic backups
## @param backup.s3Region The AWS S3 region where backups are stored
## @param backup.s3Bucket The S3 bucket used for storing backups
## @param backup.schedule Cron schedule for automated backups
## @param backup.cleanupStrategy The strategy for cleaning up old backups
## @param backup.s3AccessKey The access key for S3, used for authentication
## @param backup.s3SecretKey The secret key for S3, used for authentication
## @param backup.resticPassword The password for Restic backup encryption
backup: backup:
enabled: false enabled: false
s3Region: us-east-1 s3Region: us-east-1

View File

@@ -16,10 +16,10 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes # 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. # to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/) # Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0 version: 0.2.0
# This is the version number of the application being deployed. This version number should be # 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 # 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. # follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes. # It is recommended to use it with quotes.
appVersion: "1.16.0" appVersion: "3.12.2"

View File

@@ -0,0 +1,2 @@
generate:
readme-generator -v values.yaml -s values.schema.json -r README.md

View File

@@ -8,3 +8,12 @@ The service utilizes official RabbitMQ operator. This ensures the reliability an
- Github: https://github.com/rabbitmq/cluster-operator/ - Github: https://github.com/rabbitmq/cluster-operator/
- Docs: https://www.rabbitmq.com/kubernetes/operator/operator-overview.html - Docs: https://www.rabbitmq.com/kubernetes/operator/operator-overview.html
## Parameters
### Common parameters
| Name | Description | Value |
| ---------- | ----------------------------------------------- | ------- |
| `external` | Enable external access from outside the cluster | `false` |
| `replicas` | Number of RabbitMQ replicas | `3` |

View File

@@ -6,7 +6,7 @@ metadata:
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/managed-by: {{ .Release.Service }}
spec: spec:
replicas: 3 replicas: {{ .Values.replicas }}
{{- if .Values.external }} {{- if .Values.external }}
service: service:
type: LoadBalancer type: LoadBalancer

View File

@@ -1,10 +1,16 @@
{ {
"$schema": "http://json-schema.org/schema#", "title": "Chart Values",
"type": "object", "type": "object",
"properties": { "properties": {
"external": { "external": {
"type": "boolean", "type": "boolean",
"title": "Enable external Access" "description": "Enable external access from outside the cluster",
"default": false
},
"replicas": {
"type": "number",
"description": "Number of RabbitMQ replicas",
"default": 3
}
} }
} }
}

View File

@@ -1 +1,7 @@
## @section Common parameters
## @param external Enable external access from outside the cluster
## @param replicas Number of RabbitMQ replicas
##
external: false external: false
replicas: 3

View File

@@ -16,10 +16,10 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes # 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. # to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/) # Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.1 version: 0.2.0
# This is the version number of the application being deployed. This version number should be # 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 # 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. # follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes. # It is recommended to use it with quotes.
appVersion: "1.16.0" appVersion: "6.2.6"

View File

@@ -0,0 +1,2 @@
generate:
readme-generator -v values.yaml -s values.schema.json -r README.md

View File

@@ -8,3 +8,15 @@ Service utilizes the Spotahome Redis Operator for efficient management and orche
- Docs: https://redis.io/docs/ - Docs: https://redis.io/docs/
- GitHub: https://github.com/spotahome/redis-operator - GitHub: https://github.com/spotahome/redis-operator
## Parameters
### Common parameters
| Name | Description | Value |
| ---------- | ----------------------------------------------- | ------- |
| `external` | Enable external access from outside the cluster | `false` |
| `size` | Persistent Volume size | `1Gi` |
| `replicas` | Number of Redis replicas | `2` |

View File

@@ -14,7 +14,7 @@ spec:
limits: limits:
memory: 100Mi memory: 100Mi
redis: redis:
replicas: 3 replicas: {{ .Values.replicas }}
resources: resources:
requests: requests:
cpu: 150m cpu: 150m

View File

@@ -1,14 +1,21 @@
{ {
"$schema": "http://json-schema.org/schema#", "title": "Chart Values",
"type": "object", "type": "object",
"properties": { "properties": {
"external": { "external": {
"type": "boolean", "type": "boolean",
"title": "Enable external Access" "description": "Enable external access from outside the cluster",
}, "default": false
"size": { },
"type": "string", "size": {
"title": "Disk Size" "type": "string",
"description": "Persistent Volume size",
"default": "1Gi"
},
"replicas": {
"type": "number",
"description": "Number of Redis replicas",
"default": 2
}
} }
} }
}

View File

@@ -1,2 +1,9 @@
## @section Common parameters
## @param external Enable external access from outside the cluster
## @param size Persistent Volume size
## @param replicas Number of Redis replicas
##
external: false external: false
size: 5Gi size: 1Gi
replicas: 2

View File

@@ -16,10 +16,10 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes # 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. # to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/) # Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0 version: 0.2.0
# This is the version number of the application being deployed. This version number should be # 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 # 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. # follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes. # It is recommended to use it with quotes.
appVersion: "1.16.0" appVersion: "2.9.7"

View File

@@ -0,0 +1,4 @@
generate:
readme-generator -v values.yaml -s values.schema.json.tmp -r README.md
cat values.schema.json.tmp | jq '.properties.httpAndHttps.properties.mode.enum = ["tcp","tcp-with-proxy"]' > values.schema.json
rm -f values.schema.json.tmp

View File

@@ -7,3 +7,23 @@ The Managed TCP Load Balancer Service simplifies the deployment and management o
Managed TCP Load Balancer Service efficiently utilizes HAProxy for load balancing purposes. HAProxy is a well-established and reliable solution for distributing incoming TCP traffic across multiple backend servers, ensuring high availability and efficient resource utilization. This deployment choice guarantees the seamless and dependable operation of your load balancing infrastructure. Managed TCP Load Balancer Service efficiently utilizes HAProxy for load balancing purposes. HAProxy is a well-established and reliable solution for distributing incoming TCP traffic across multiple backend servers, ensuring high availability and efficient resource utilization. This deployment choice guarantees the seamless and dependable operation of your load balancing infrastructure.
- Docs: https://www.haproxy.com/documentation/ - Docs: https://www.haproxy.com/documentation/
## Parameters
### Common parameters
| Name | Description | Value |
| ---------- | ----------------------------------------------- | ------- |
| `external` | Enable external access from outside the cluster | `false` |
| `replicas` | Number of HAProxy replicas | `2` |
### Configuration parameters
| Name | Description | Value |
| -------------------------------- | ------------------------------------------------------------- | ------- |
| `httpAndHttps.mode` | Mode for balancer. Allowed values: `tcp` and `tcp-with-proxy` | `tcp` |
| `httpAndHttps.targetPorts.http` | HTTP port number. | `80` |
| `httpAndHttps.targetPorts.https` | HTTPS port number. | `443` |
| `httpAndHttps.endpoints` | Endpoint addresses list | `[]` |
| `whitelistHTTP` | Secure HTTP by enabling client networks whitelisting | `false` |
| `whitelist` | List of client networks | `[]` |

View File

@@ -7,7 +7,7 @@ metadata:
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/managed-by: {{ .Release.Service }}
spec: spec:
replicas: 2 replicas: {{ .Values.replicas }}
selector: selector:
matchLabels: matchLabels:
app: {{ .Release.Name }}-haproxy app: {{ .Release.Name }}-haproxy

View File

@@ -0,0 +1,62 @@
{
"title": "Chart Values",
"type": "object",
"properties": {
"external": {
"type": "boolean",
"description": "Enable external access from outside the cluster",
"default": false
},
"replicas": {
"type": "number",
"description": "Number of HAProxy replicas",
"default": 2
},
"httpAndHttps": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"description": "Mode for balancer. Allowed values: `tcp` and `tcp-with-proxy`",
"default": "tcp",
"enum": [
"tcp",
"tcp-with-proxy"
]
},
"targetPorts": {
"type": "object",
"properties": {
"http": {
"type": "number",
"description": "HTTP port number.",
"default": 80
},
"https": {
"type": "number",
"description": "HTTPS port number.",
"default": 443
}
}
},
"endpoints": {
"type": "array",
"description": "Endpoint addresses list",
"default": [],
"items": {}
}
}
},
"whitelistHTTP": {
"type": "boolean",
"description": "Secure HTTP by enabling client networks whitelisting",
"default": false
},
"whitelist": {
"type": "array",
"description": "List of client networks",
"default": [],
"items": {}
}
}
}

View File

@@ -1,18 +1,45 @@
## @section Common parameters
## @param external Enable external access from outside the cluster
## @param replicas Number of HAProxy replicas
##
external: false external: false
replicas: 2
## @section Configuration parameters
## @param httpAndHttps.mode Mode for balancer. Allowed values: `tcp` and `tcp-with-proxy`
## @param httpAndHttps.targetPorts.http HTTP port number.
## @param httpAndHttps.targetPorts.https HTTPS port number.
## @param httpAndHttps.endpoints Endpoint addresses list
## Example:
## httpAndHttps:
## mode: tcp
## targetPorts:
## http: 80
## https: 443
## endpoints:
## - 10.100.3.1
## - 10.100.3.11
## - 10.100.3.2
## - 10.100.3.12
## - 10.100.3.3
## - 10.100.3.13
httpAndHttps: httpAndHttps:
mode: tcp mode: tcp
targetPorts: targetPorts:
http: 80 http: 80
https: 443 https: 443
endpoints: endpoints: []
- 10.100.3.1
- 10.100.3.11
- 10.100.3.2
- 10.100.3.12
- 10.100.3.3
- 10.100.3.13
## @param whitelistHTTP Secure HTTP by enabling client networks whitelisting
## @param whitelist List of client networks
## Example:
## whitelistHTTP: true
## whitelist:
## - "1.2.3.4"
## - "10.100.0.0/16"
##
whitelistHTTP: false whitelistHTTP: false
whitelist: whitelist: []
- "1.2.3.4"
- "10.100.0.0/16"

View File

@@ -1,7 +1,7 @@
apiVersion: v2 apiVersion: v2
name: tenant name: tenant
description: Additional tenant namespace description: Separated tenant namespace
icon: https://upload.wikimedia.org/wikipedia/commons/0/04/User_icon_1.svg icon: https://upload.wikimedia.org/wikipedia/commons/0/04/User_icon_1.svg
type: application type: application
version: 1.0.0 version: 1.1.0

View File

@@ -0,0 +1,2 @@
generate:
readme-generator -v values.yaml -s values.schema.json -r README.md

View File

@@ -45,3 +45,14 @@ tenant-u1
├── kubernetes-cluster1 ├── kubernetes-cluster1
└── postgres-db1 └── postgres-db1
``` ```
## Parameters
### Common parameters
| Name | Description | Value |
| ------------ | --------------------------------------------------------------------------------------------------------------------------- | ------- |
| `host` | The hostname used to access tenant services (defaults to using the tenant name as a subdomain for it's parent tenant host). | `""` |
| `etcd` | Deploy own Etcd cluster | `false` |
| `monitoring` | Deploy own Monitoring Stack | `false` |
| `ingress` | Deploy own Ingress Controller | `false` |

View File

@@ -1,27 +1,26 @@
{ {
"$schema": "http://json-schema.org/schema#", "title": "Chart Values",
"type": "object", "type": "object",
"properties": { "properties": {
"host": { "host": {
"type": "string", "type": "string",
"form": true, "description": "The hostname used to access tenant services (defaults to using the tenant name as a subdomain for it's parent tenant host).",
"title": "Domain name for this tenant", "default": ""
"description": "This host will be used for all apps deployed in this tenant" },
}, "etcd": {
"etcd": { "type": "boolean",
"type": "boolean", "description": "Deploy own Etcd cluster",
"title": "Deploy own Etcd cluster", "default": false
"form": true },
}, "monitoring": {
"monitoring": { "type": "boolean",
"type": "boolean", "description": "Deploy own Monitoring Stack",
"title": "Deploy own Monitoring Stack", "default": false
"form": true },
}, "ingress": {
"ingress": { "type": "boolean",
"type": "boolean", "description": "Deploy own Ingress Controller",
"title": "Deploy own Ingress Controller", "default": false
"form": true }
} }
} }
}

View File

@@ -1,3 +1,9 @@
## @section Common parameters
## @param host The hostname used to access tenant services (defaults to using the tenant name as a subdomain for it's parent tenant host).
## @param etcd Deploy own Etcd cluster
## @param monitoring Deploy own Monitoring Stack
## @param ingress Deploy own Ingress Controller
host: "" host: ""
etcd: false etcd: false
monitoring: false monitoring: false

View File

@@ -1,17 +1,29 @@
clickhouse 0.1.0 HEAD clickhouse 0.1.0 ca79f72
http-cache 0.1.0 HEAD clickhouse 0.2.0 HEAD
kafka 0.1.0 HEAD http-cache 0.1.0 a956713
kubernetes 0.1.0 HEAD http-cache 0.2.0 HEAD
kafka 0.1.0 760f86d2
kafka 0.2.0 HEAD
kubernetes 0.1.0 f642698
kubernetes 0.2.0 HEAD
mysql 0.1.0 f642698 mysql 0.1.0 f642698
mysql 0.2.0 HEAD mysql 0.2.0 8b975ff0
postgres 0.1.0 HEAD mysql 0.3.0 HEAD
rabbitmq 0.1.0 HEAD postgres 0.1.0 f642698
redis 0.1.1 HEAD postgres 0.2.0 HEAD
tcp-balancer 0.1.0 HEAD rabbitmq 0.1.0 f642698
rabbitmq 0.2.0 HEAD
redis 0.1.1 f642698
redis 0.2.0 HEAD
tcp-balancer 0.1.0 f642698
tcp-balancer 0.2.0 HEAD
tenant 0.1.3 3d1b86c tenant 0.1.3 3d1b86c
tenant 0.1.4 d200480 tenant 0.1.4 d200480
tenant 0.1.5 e3ab858 tenant 0.1.5 e3ab858
tenant 1.0.0 HEAD tenant 1.0.0 7cd7de7
tenant 1.1.0 HEAD
virtual-machine 0.1.4 f2015d6 virtual-machine 0.1.4 f2015d6
virtual-machine 0.1.5 HEAD virtual-machine 0.1.5 7cd7de7
vpn 0.1.0 HEAD virtual-machine 0.2.0 HEAD
vpn 0.1.0 f642698
vpn 0.2.0 HEAD

View File

@@ -17,7 +17,7 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes # 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. # to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/) # Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.5 version: 0.2.0
# This is the version number of the application being deployed. This version number should be # 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 # incremented each time you make changes to the application. Versions are not expected to

View File

@@ -0,0 +1,7 @@
generate:
readme-generator -v values.yaml -s values.schema.json.tmp -r README.md
cat values.schema.json.tmp | \
jq '.properties.image.enum = ["ubuntu", "cirros", "alpine", "fedora"]' | \
jq '.properties.resources.properties.memory["x-display"] = "slider"' \
> values.schema.json
rm -f values.schema.json.tmp

View File

@@ -8,3 +8,17 @@ The virtual machine is managed and hosted through KubeVirt, allowing you to harn
- Docs: https://kubevirt.io/user-guide/ - Docs: https://kubevirt.io/user-guide/
- GitHub: https://github.com/kubevirt/kubevirt - GitHub: https://github.com/kubevirt/kubevirt
## Parameters
### Common parameters
| Name | Description | Value |
| ------------------ | ------------------------------------------------------------------------------------------------- | -------- |
| `external` | Enable external access from outside the cluster | `false` |
| `running` | Determines if the virtual machine should be running | `true` |
| `password` | The default password for the virtual machine | `hackme` |
| `image` | The base image for the virtual machine. Allowed values: `ubuntu`, `cirros`, `alpine` and `fedora` | `ubuntu` |
| `disk` | The size of the disk allocated for the virtual machine | `5Gi` |
| `resources.cpu` | The number of CPU cores allocated to the virtual machine | `1` |
| `resources.memory` | The amount of memory allocated to the virtual machine | `1024M` |

View File

@@ -1,44 +1,51 @@
{ {
"$schema": "http://json-schema.org/schema#", "title": "Chart Values",
"type": "object", "type": "object",
"properties": { "properties": {
"running": {
"type": "boolean",
"title": "Running"
},
"external": { "external": {
"type": "boolean", "type": "boolean",
"title": "Enable external Access" "description": "Enable external access from outside the cluster",
"default": false
}, },
"image": { "running": {
"type": "string", "type": "boolean",
"form": true, "description": "Determines if the virtual machine should be running",
"enum": ["ubuntu", "cirros", "alpine", "fedora"], "default": true
"title": "Choose image"
}, },
"password": { "password": {
"type": "string", "type": "string",
"title": "Password" "description": "The default password for the virtual machine",
"default": "hackme"
},
"image": {
"type": "string",
"description": "The base image for the virtual machine. Allowed values: `ubuntu`, `cirros`, `alpine` and `fedora`",
"default": "ubuntu",
"enum": [
"ubuntu",
"cirros",
"alpine",
"fedora"
]
}, },
"disk": { "disk": {
"type": "string", "type": "string",
"title": "Disk Size" "description": "The size of the disk allocated for the virtual machine",
"default": "5Gi"
}, },
"resources": { "resources": {
"type": "object", "type": "object",
"properties": { "properties": {
"cpu": {
"type": "number",
"description": "The number of CPU cores allocated to the virtual machine",
"default": 1
},
"memory": { "memory": {
"type": "string", "type": "string",
"x-display": "slider", "description": "The amount of memory allocated to the virtual machine",
"title": "Memory", "default": "1024M",
"minimum": 10, "x-display": "slider"
"maximum": 2048
},
"cpu": {
"type": "integer",
"title": "CPU",
"minimum": 1,
"maximum": 4
} }
} }
} }

View File

@@ -1,3 +1,13 @@
## @section Common parameters
## @param external Enable external access from outside the cluster
## @param running Determines if the virtual machine should be running
## @param password The default password for the virtual machine
## @param image The base image for the virtual machine. Allowed values: `ubuntu`, `cirros`, `alpine` and `fedora`
## @param disk The size of the disk allocated for the virtual machine
## @param resources.cpu The number of CPU cores allocated to the virtual machine
## @param resources.memory The amount of memory allocated to the virtual machine
external: false external: false
running: true running: true
password: hackme password: hackme

View File

@@ -1,6 +1,6 @@
apiVersion: v2 apiVersion: v2
name: vpn name: vpn
description: Establish a connection from your computer description: Managed VPN service
icon: https://upload.wikimedia.org/wikipedia/commons/thumb/6/60/Outline_VPN_icon.png/600px-Outline_VPN_icon.png icon: https://upload.wikimedia.org/wikipedia/commons/thumb/6/60/Outline_VPN_icon.png/600px-Outline_VPN_icon.png
# A chart can be either an 'application' or a 'library' chart. # A chart can be either an 'application' or a 'library' chart.
@@ -16,10 +16,10 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes # 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. # to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/) # Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0 version: 0.2.0
# This is the version number of the application being deployed. This version number should be # 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 # 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. # follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes. # It is recommended to use it with quotes.
appVersion: "1.16.0" appVersion: "1.8.1"

View File

@@ -0,0 +1,2 @@
generate:
readme-generator -v values.yaml -s values.schema.json -r README.md

View File

@@ -10,3 +10,18 @@ The VPN Service is powered by the Outline Server, an advanced and user-friendly
- Docs: https://shadowsocks.org/ - Docs: https://shadowsocks.org/
- Docs: https://github.com/Jigsaw-Code/outline-server/tree/master/src/shadowbox - Docs: https://github.com/Jigsaw-Code/outline-server/tree/master/src/shadowbox
## Parameters
### Common parameters
| Name | Description | Value |
| ---------- | ----------------------------------------------- | ------- |
| `external` | Enable external access from outside the cluster | `false` |
| `replicas` | Number of VPN-server replicas | `2` |
### Configuration parameters
| Name | Description | Value |
| ------- | ------------------- | ----- |
| `users` | Users configuration | `{}` |

View File

@@ -4,7 +4,7 @@ kind: Deployment
metadata: metadata:
name: {{ .Release.Name }}-vpn name: {{ .Release.Name }}-vpn
spec: spec:
replicas: 2 replicas: {{ .Values.replicas }}
selector: selector:
matchLabels: matchLabels:
app: {{ .Release.Name }}-vpn app: {{ .Release.Name }}-vpn

View File

@@ -0,0 +1,16 @@
{
"title": "Chart Values",
"type": "object",
"properties": {
"external": {
"type": "boolean",
"description": "Enable external access from outside the cluster",
"default": false
},
"replicas": {
"type": "number",
"description": "Number of VPN-server replicas",
"default": 2
}
}
}

View File

@@ -1,7 +1,18 @@
external: false ## @section Common parameters
users: ## @param external Enable external access from outside the cluster
user1: ## @param replicas Number of VPN-server replicas
password: hackme ##
user2: external: false
password: tttt replicas: 2
## @section Configuration parameters
## @param users [object] Users configuration
## Example:
## users:
## user1:
## password: hackme
## user2:
## password: tttt
users: {}

View File

@@ -1,6 +0,0 @@
VERSION := 0.3.0
gen: fix-chartnames
fix-chartnames:
find . -name Chart.yaml -maxdepth 2 | awk -F/ '{print $$2}' | while read i; do printf "name: cozy-%s\nversion: $(VERSION)\n" "$$i" > "$$i/Chart.yaml"; done

View File

@@ -1,2 +1,3 @@
apiVersion: v2
name: cozy-fluxcd name: cozy-fluxcd
version: 0.3.0 version: 0.0.0 # Placeholder, the actual version will be automatically set during the build process

View File

@@ -1,2 +1,3 @@
apiVersion: v2
name: cozy-installer name: cozy-installer
version: 0.3.0 version: 0.0.0 # Placeholder, the actual version will be automatically set during the build process

View File

@@ -1,11 +1,10 @@
NAME=installer NAME=installer
NAMESPACE=cozy-system NAMESPACE=cozy-system
PUSH := 1
LOAD := 0
REGISTRY := ghcr.io/aenix-io/cozystack
TAG := v0.3.0
TALOS_VERSION=$(shell awk '/^version:/ {print $$2}' images/talos/profiles/installer.yaml) TALOS_VERSION=$(shell awk '/^version:/ {print $$2}' images/talos/profiles/installer.yaml)
include ../../../scripts/common-envs.mk
show: show:
helm template -n $(NAMESPACE) $(NAME) . helm template -n $(NAMESPACE) $(NAME) .
@@ -24,33 +23,33 @@ image-cozystack:
make -C ../../.. repos make -C ../../.. repos
docker buildx build -f images/cozystack/Dockerfile ../../.. \ docker buildx build -f images/cozystack/Dockerfile ../../.. \
--provenance false \ --provenance false \
--tag $(REGISTRY)/cozystack:$(TAG) \ --tag $(REGISTRY)/cozystack:$(call settag,$(TAG)) \
--cache-from type=registry,ref=$(REGISTRY)/cozystack:$(TAG) \ --cache-from type=registry,ref=$(REGISTRY)/cozystack:latest \
--cache-to type=inline \ --cache-to type=inline \
--metadata-file images/cozystack.json \ --metadata-file images/cozystack.json \
--push=$(PUSH) \ --push=$(PUSH) \
--load=$(LOAD) --load=$(LOAD)
echo "$(REGISTRY)/cozystack:$(TAG)" > images/cozystack.tag echo "$(REGISTRY)/cozystack:$(call settag,$(TAG))" > images/cozystack.tag
image-talos: image-talos:
test -f ../../../_out/assets/installer-amd64.tar || make talos-installer test -f ../../../_out/assets/installer-amd64.tar || make talos-installer
docker load -i ../../../_out/assets/installer-amd64.tar docker load -i ../../../_out/assets/installer-amd64.tar
docker tag ghcr.io/siderolabs/installer:$(TALOS_VERSION) ghcr.io/aenix-io/cozystack/talos:$(TALOS_VERSION) docker tag ghcr.io/siderolabs/installer:$(TALOS_VERSION) ghcr.io/aenix-io/cozystack/talos:$(call settag,$(TALOS_VERSION))
docker push ghcr.io/aenix-io/cozystack/talos:$(TALOS_VERSION) docker push ghcr.io/aenix-io/cozystack/talos:$(call settag,$(TALOS_VERSION))
image-matchbox: image-matchbox:
test -f ../../../_out/assets/kernel-amd64 || make talos-kernel test -f ../../../_out/assets/kernel-amd64 || make talos-kernel
test -f ../../../_out/assets/initramfs-metal-amd64.xz || make talos-initramfs test -f ../../../_out/assets/initramfs-metal-amd64.xz || make talos-initramfs
docker buildx build -f images/matchbox/Dockerfile ../../.. \ docker buildx build -f images/matchbox/Dockerfile ../../.. \
--provenance false \ --provenance false \
--tag $(REGISTRY)/matchbox:$(TAG) \ --tag $(REGISTRY)/matchbox:$(call settag,$(TAG)) \
--tag $(REGISTRY)/matchbox:$(TALOS_VERSION)-$(TAG) \ --tag $(REGISTRY)/matchbox:$(call settag,$(TALOS_VERSION)-$(TAG)) \
--cache-from type=registry,ref=$(REGISTRY)/matchbox:$(TALOS_VERSION) \ --cache-from type=registry,ref=$(REGISTRY)/matchbox:latest \
--cache-to type=inline \ --cache-to type=inline \
--metadata-file images/matchbox.json \ --metadata-file images/matchbox.json \
--push=$(PUSH) \ --push=$(PUSH) \
--load=$(LOAD) --load=$(LOAD)
echo "$(REGISTRY)/matchbox:$(TALOS_VERSION)" > images/matchbox.tag echo "$(REGISTRY)/matchbox:$(call settag,$(TALOS_VERSION))" > images/matchbox.tag
assets: talos-iso talos-nocloud assets: talos-iso talos-nocloud

View File

@@ -1,4 +1,4 @@
{ {
"containerimage.config.digest": "sha256:0c3185c10c197737d2adc749f6a73bba911b4d5f953556bcf221546d8a319ccc", "containerimage.config.digest": "sha256:cf9793f2de9d8f1400234a73f9446f3f9876b807463dae985d3cef4aafb33aae",
"containerimage.digest": "sha256:6bc8f81d789ed74386262d9c5cc663a7f308f5458b9121e2ce7d61b5e6e2b112" "containerimage.digest": "sha256:ce3d54b388d9027ed6ca2d3d67b1759e9f061e5736f61a75d586f33a1ee19fa4"
} }

View File

@@ -1 +1 @@
ghcr.io/aenix-io/cozystack/cozystack:v0.3.0 ghcr.io/aenix-io/cozystack/cozystack:v0.4.0

View File

@@ -1,4 +1,4 @@
{ {
"containerimage.config.digest": "sha256:d63ac434876b4e47c130e6b99f0c9657e718f9d97f522f5ccd878eab75844122", "containerimage.config.digest": "sha256:68ea72fcc581352fabfd87fa6fd482968cc85ee520cab7a614f1244d7ae36eb0",
"containerimage.digest": "sha256:9963580a02ac4ddccafb60f2411365910bcadd73f92d1c9187a278221306a4ed" "containerimage.digest": "sha256:cea915e08a19eb6892f3facf3b3648368cd4a05abefc49bc2616ba3340c27e82"
} }

View File

@@ -1 +1 @@
ghcr.io/aenix-io/cozystack/matchbox:v1.6.4 ghcr.io/aenix-io/cozystack/matchbox:v1.7.1

View File

@@ -3,24 +3,25 @@
arch: amd64 arch: amd64
platform: metal platform: metal
secureboot: false secureboot: false
version: v1.6.4 version: v1.7.1
input: input:
kernel: kernel:
path: /usr/install/amd64/vmlinuz path: /usr/install/amd64/vmlinuz
initramfs: initramfs:
path: /usr/install/amd64/initramfs.xz path: /usr/install/amd64/initramfs.xz
baseInstaller: baseInstaller:
imageRef: ghcr.io/siderolabs/installer:v1.6.4 imageRef: ghcr.io/siderolabs/installer:v1.7.1
systemExtensions: systemExtensions:
- imageRef: ghcr.io/siderolabs/amd-ucode:20240115 - imageRef: ghcr.io/siderolabs/amd-ucode:20240410
- imageRef: ghcr.io/siderolabs/amdgpu-firmware:20240115 - imageRef: ghcr.io/siderolabs/amdgpu-firmware:20240410
- imageRef: ghcr.io/siderolabs/bnx2-bnx2x:20240115 - imageRef: ghcr.io/siderolabs/bnx2-bnx2x:20240410
- imageRef: ghcr.io/siderolabs/i915-ucode:20240115 - imageRef: ghcr.io/siderolabs/i915-ucode:20240410
- imageRef: ghcr.io/siderolabs/intel-ice-firmware:20240115 - imageRef: ghcr.io/siderolabs/intel-ice-firmware:20240410
- imageRef: ghcr.io/siderolabs/intel-ucode:20231114 - imageRef: ghcr.io/siderolabs/intel-ucode:20240312
- imageRef: ghcr.io/siderolabs/qlogic-firmware:20240115 - imageRef: ghcr.io/siderolabs/qlogic-firmware:20240410
- imageRef: ghcr.io/siderolabs/drbd:9.2.6-v1.6.4 - imageRef: ghcr.io/siderolabs/drbd:9.2.8-v1.7.1
- imageRef: ghcr.io/siderolabs/zfs:2.1.14-v1.6.4 - imageRef: ghcr.io/siderolabs/zfs:2.2.3-v1.7.1
output: output:
kind: initramfs kind: initramfs
imageOptions: {}
outFormat: raw outFormat: raw

View File

@@ -3,24 +3,25 @@
arch: amd64 arch: amd64
platform: metal platform: metal
secureboot: false secureboot: false
version: v1.6.4 version: v1.7.1
input: input:
kernel: kernel:
path: /usr/install/amd64/vmlinuz path: /usr/install/amd64/vmlinuz
initramfs: initramfs:
path: /usr/install/amd64/initramfs.xz path: /usr/install/amd64/initramfs.xz
baseInstaller: baseInstaller:
imageRef: ghcr.io/siderolabs/installer:v1.6.4 imageRef: ghcr.io/siderolabs/installer:v1.7.1
systemExtensions: systemExtensions:
- imageRef: ghcr.io/siderolabs/amd-ucode:20240115 - imageRef: ghcr.io/siderolabs/amd-ucode:20240410
- imageRef: ghcr.io/siderolabs/amdgpu-firmware:20240115 - imageRef: ghcr.io/siderolabs/amdgpu-firmware:20240410
- imageRef: ghcr.io/siderolabs/bnx2-bnx2x:20240115 - imageRef: ghcr.io/siderolabs/bnx2-bnx2x:20240410
- imageRef: ghcr.io/siderolabs/i915-ucode:20240115 - imageRef: ghcr.io/siderolabs/i915-ucode:20240410
- imageRef: ghcr.io/siderolabs/intel-ice-firmware:20240115 - imageRef: ghcr.io/siderolabs/intel-ice-firmware:20240410
- imageRef: ghcr.io/siderolabs/intel-ucode:20231114 - imageRef: ghcr.io/siderolabs/intel-ucode:20240312
- imageRef: ghcr.io/siderolabs/qlogic-firmware:20240115 - imageRef: ghcr.io/siderolabs/qlogic-firmware:20240410
- imageRef: ghcr.io/siderolabs/drbd:9.2.6-v1.6.4 - imageRef: ghcr.io/siderolabs/drbd:9.2.8-v1.7.1
- imageRef: ghcr.io/siderolabs/zfs:2.1.14-v1.6.4 - imageRef: ghcr.io/siderolabs/zfs:2.2.3-v1.7.1
output: output:
kind: installer kind: installer
imageOptions: {}
outFormat: raw outFormat: raw

View File

@@ -3,24 +3,25 @@
arch: amd64 arch: amd64
platform: metal platform: metal
secureboot: false secureboot: false
version: v1.6.4 version: v1.7.1
input: input:
kernel: kernel:
path: /usr/install/amd64/vmlinuz path: /usr/install/amd64/vmlinuz
initramfs: initramfs:
path: /usr/install/amd64/initramfs.xz path: /usr/install/amd64/initramfs.xz
baseInstaller: baseInstaller:
imageRef: ghcr.io/siderolabs/installer:v1.6.4 imageRef: ghcr.io/siderolabs/installer:v1.7.1
systemExtensions: systemExtensions:
- imageRef: ghcr.io/siderolabs/amd-ucode:20240115 - imageRef: ghcr.io/siderolabs/amd-ucode:20240410
- imageRef: ghcr.io/siderolabs/amdgpu-firmware:20240115 - imageRef: ghcr.io/siderolabs/amdgpu-firmware:20240410
- imageRef: ghcr.io/siderolabs/bnx2-bnx2x:20240115 - imageRef: ghcr.io/siderolabs/bnx2-bnx2x:20240410
- imageRef: ghcr.io/siderolabs/i915-ucode:20240115 - imageRef: ghcr.io/siderolabs/i915-ucode:20240410
- imageRef: ghcr.io/siderolabs/intel-ice-firmware:20240115 - imageRef: ghcr.io/siderolabs/intel-ice-firmware:20240410
- imageRef: ghcr.io/siderolabs/intel-ucode:20231114 - imageRef: ghcr.io/siderolabs/intel-ucode:20240312
- imageRef: ghcr.io/siderolabs/qlogic-firmware:20240115 - imageRef: ghcr.io/siderolabs/qlogic-firmware:20240410
- imageRef: ghcr.io/siderolabs/drbd:9.2.6-v1.6.4 - imageRef: ghcr.io/siderolabs/drbd:9.2.8-v1.7.1
- imageRef: ghcr.io/siderolabs/zfs:2.1.14-v1.6.4 - imageRef: ghcr.io/siderolabs/zfs:2.2.3-v1.7.1
output: output:
kind: iso kind: iso
imageOptions: {}
outFormat: raw outFormat: raw

View File

@@ -3,24 +3,25 @@
arch: amd64 arch: amd64
platform: metal platform: metal
secureboot: false secureboot: false
version: v1.6.4 version: v1.7.1
input: input:
kernel: kernel:
path: /usr/install/amd64/vmlinuz path: /usr/install/amd64/vmlinuz
initramfs: initramfs:
path: /usr/install/amd64/initramfs.xz path: /usr/install/amd64/initramfs.xz
baseInstaller: baseInstaller:
imageRef: ghcr.io/siderolabs/installer:v1.6.4 imageRef: ghcr.io/siderolabs/installer:v1.7.1
systemExtensions: systemExtensions:
- imageRef: ghcr.io/siderolabs/amd-ucode:20240115 - imageRef: ghcr.io/siderolabs/amd-ucode:20240410
- imageRef: ghcr.io/siderolabs/amdgpu-firmware:20240115 - imageRef: ghcr.io/siderolabs/amdgpu-firmware:20240410
- imageRef: ghcr.io/siderolabs/bnx2-bnx2x:20240115 - imageRef: ghcr.io/siderolabs/bnx2-bnx2x:20240410
- imageRef: ghcr.io/siderolabs/i915-ucode:20240115 - imageRef: ghcr.io/siderolabs/i915-ucode:20240410
- imageRef: ghcr.io/siderolabs/intel-ice-firmware:20240115 - imageRef: ghcr.io/siderolabs/intel-ice-firmware:20240410
- imageRef: ghcr.io/siderolabs/intel-ucode:20231114 - imageRef: ghcr.io/siderolabs/intel-ucode:20240312
- imageRef: ghcr.io/siderolabs/qlogic-firmware:20240115 - imageRef: ghcr.io/siderolabs/qlogic-firmware:20240410
- imageRef: ghcr.io/siderolabs/drbd:9.2.6-v1.6.4 - imageRef: ghcr.io/siderolabs/drbd:9.2.8-v1.7.1
- imageRef: ghcr.io/siderolabs/zfs:2.1.14-v1.6.4 - imageRef: ghcr.io/siderolabs/zfs:2.2.3-v1.7.1
output: output:
kind: kernel kind: kernel
imageOptions: {}
outFormat: raw outFormat: raw

View File

@@ -3,25 +3,25 @@
arch: amd64 arch: amd64
platform: metal platform: metal
secureboot: false secureboot: false
version: v1.6.4 version: v1.7.1
input: input:
kernel: kernel:
path: /usr/install/amd64/vmlinuz path: /usr/install/amd64/vmlinuz
initramfs: initramfs:
path: /usr/install/amd64/initramfs.xz path: /usr/install/amd64/initramfs.xz
baseInstaller: baseInstaller:
imageRef: ghcr.io/siderolabs/installer:v1.6.4 imageRef: ghcr.io/siderolabs/installer:v1.7.1
systemExtensions: systemExtensions:
- imageRef: ghcr.io/siderolabs/amd-ucode:20240115 - imageRef: ghcr.io/siderolabs/amd-ucode:20240410
- imageRef: ghcr.io/siderolabs/amdgpu-firmware:20240115 - imageRef: ghcr.io/siderolabs/amdgpu-firmware:20240410
- imageRef: ghcr.io/siderolabs/bnx2-bnx2x:20240115 - imageRef: ghcr.io/siderolabs/bnx2-bnx2x:20240410
- imageRef: ghcr.io/siderolabs/i915-ucode:20240115 - imageRef: ghcr.io/siderolabs/i915-ucode:20240410
- imageRef: ghcr.io/siderolabs/intel-ice-firmware:20240115 - imageRef: ghcr.io/siderolabs/intel-ice-firmware:20240410
- imageRef: ghcr.io/siderolabs/intel-ucode:20231114 - imageRef: ghcr.io/siderolabs/intel-ucode:20240312
- imageRef: ghcr.io/siderolabs/qlogic-firmware:20240115 - imageRef: ghcr.io/siderolabs/qlogic-firmware:20240410
- imageRef: ghcr.io/siderolabs/drbd:9.2.6-v1.6.4 - imageRef: ghcr.io/siderolabs/drbd:9.2.8-v1.7.1
- imageRef: ghcr.io/siderolabs/zfs:2.1.14-v1.6.4 - imageRef: ghcr.io/siderolabs/zfs:2.2.3-v1.7.1
output: output:
kind: image kind: nocloud
imageOptions: { diskSize: 1306525696, diskFormat: raw } imageOptions: { diskSize: 1306525696, diskFormat: raw }
outFormat: .xz outFormat: .xz

View File

@@ -12,12 +12,6 @@ metadata:
name: cozystack name: cozystack
namespace: cozy-system namespace: cozy-system
--- ---
apiVersion: v1
kind: ServiceAccount
metadata:
name: cozystack
namespace: cozy-system
---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding kind: ClusterRoleBinding
metadata: metadata:

View File

@@ -1,2 +1,3 @@
apiVersion: v2
name: cozy-platform name: cozy-platform
version: 0.3.0 version: 0.0.0 # Placeholder, the actual version will be automatically set during the build process

View File

@@ -52,6 +52,12 @@ releases:
privileged: true privileged: true
dependsOn: [cilium] dependsOn: [cilium]
- name: etcd-operator
releaseName: etcd-operator
chart: cozy-etcd-operator
namespace: cozy-etcd-operator
dependsOn: [cilium,cert-manager]
- name: grafana-operator - name: grafana-operator
releaseName: grafana-operator releaseName: grafana-operator
chart: cozy-grafana-operator chart: cozy-grafana-operator

Some files were not shown because too many files have changed in this diff Show More