mirror of
https://github.com/outbackdingo/cozystack.git
synced 2026-02-05 08:17:59 +00:00
Compare commits
72 Commits
idempotent
...
hcloud
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ea2e369e24 | ||
|
|
70f8266767 | ||
|
|
a9674d2ae7 | ||
|
|
cb6a55bc4a | ||
|
|
3ecbaf23a4 | ||
|
|
946fad8bb8 | ||
|
|
f1d86e5045 | ||
|
|
9adcd48c44 | ||
|
|
fb82bfae11 | ||
|
|
bd9e283d3b | ||
|
|
d2126b6703 | ||
|
|
73fe621da1 | ||
|
|
0b7bbb1ba9 | ||
|
|
bb46aa4b7d | ||
|
|
6256e40169 | ||
|
|
22cda073b9 | ||
|
|
0d46393e8c | ||
|
|
193f43d7bb | ||
|
|
8ec882ca5f | ||
|
|
c596805b60 | ||
|
|
f891d0bee6 | ||
|
|
1f748d563f | ||
|
|
210f3c7b6b | ||
|
|
433bfe7b6c | ||
|
|
fa6442998a | ||
|
|
6d06d3b1fb | ||
|
|
4c347cc026 | ||
|
|
986de717f1 | ||
|
|
d38c8aa5ab | ||
|
|
7f9f850b47 | ||
|
|
ca772fae2e | ||
|
|
fb831c05c0 | ||
|
|
f7f8020b9b | ||
|
|
98194a7414 | ||
|
|
70c7978306 | ||
|
|
d5521df9bd | ||
|
|
6ed1243f86 | ||
|
|
d1275ecd08 | ||
|
|
6c9d8bb47f | ||
|
|
1f240387f9 | ||
|
|
1d3964352e | ||
|
|
512277fa93 | ||
|
|
cd7fec68fc | ||
|
|
d12d07fd5c | ||
|
|
00bd212886 | ||
|
|
d19d6b58d0 | ||
|
|
f953db50da | ||
|
|
55e11fcc7b | ||
|
|
12184bc2b9 | ||
|
|
39daa3a38a | ||
|
|
a5ff9bf65b | ||
|
|
036fa6f888 | ||
|
|
792f6b4af8 | ||
|
|
52714f5cce | ||
|
|
bc54bd7bb0 | ||
|
|
0b85a52bee | ||
|
|
b3a2bc85e3 | ||
|
|
d097433266 | ||
|
|
2d294f0546 | ||
|
|
78b4d06b25 | ||
|
|
ae90969b7e | ||
|
|
6732205b24 | ||
|
|
60dee45a61 | ||
|
|
70cd3ce3e7 | ||
|
|
9dc21c6c2d | ||
|
|
4648c7b4c1 | ||
|
|
6a080fbf5d | ||
|
|
72f40f32ad | ||
|
|
cfc8c269f3 | ||
|
|
1da45ff039 | ||
|
|
c6ee006d6b | ||
|
|
848abc4bd1 |
24
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
24
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<!-- Thank you for making a contribution! Here are some tips for you:
|
||||||
|
- Start the PR title with the [label] of Cozystack component:
|
||||||
|
- For system components: [platform], [system], [linstor], [cilium], [kube-ovn], [dashboard], [cluster-api], etc.
|
||||||
|
- For managed apps: [apps], [tenant], [kubernetes], [postgres], [virtual-machine] etc.
|
||||||
|
- For development and maintenance: [tests], [ci], [docs], [maintenance].
|
||||||
|
- If it's a work in progress, consider creating this PR as a draft.
|
||||||
|
- Don't hesistate to ask for opinion and review in the community chats, even if it's still a draft.
|
||||||
|
- Add the label `backport` if it's a bugfix that needs to be backported to a previous version.
|
||||||
|
-->
|
||||||
|
|
||||||
|
## What this PR does
|
||||||
|
|
||||||
|
|
||||||
|
### Release note
|
||||||
|
|
||||||
|
<!-- Write a release note:
|
||||||
|
- Explain what has changed internally and for users.
|
||||||
|
- Start with the same [label] as in the PR title
|
||||||
|
- Follow the guidelines at https://github.com/kubernetes/community/blob/master/contributors/guide/release-notes.md.
|
||||||
|
-->
|
||||||
|
|
||||||
|
```release-note
|
||||||
|
[]
|
||||||
|
```
|
||||||
2
.github/workflows/pre-commit.yml
vendored
2
.github/workflows/pre-commit.yml
vendored
@@ -2,7 +2,7 @@ name: Pre-Commit Checks
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
types: [labeled, opened, synchronize, reopened]
|
types: [opened, synchronize, reopened]
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: pre-commit-${{ github.workflow }}-${{ github.event.pull_request.number }}
|
group: pre-commit-${{ github.workflow }}-${{ github.event.pull_request.number }}
|
||||||
|
|||||||
2
.github/workflows/pull-requests-release.yaml
vendored
2
.github/workflows/pull-requests-release.yaml
vendored
@@ -3,6 +3,8 @@ name: "Releasing PR"
|
|||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
types: [closed]
|
types: [closed]
|
||||||
|
paths-ignore:
|
||||||
|
- 'docs/**/*'
|
||||||
|
|
||||||
# Cancel in‑flight runs for the same PR when a new push arrives.
|
# Cancel in‑flight runs for the same PR when a new push arrives.
|
||||||
concurrency:
|
concurrency:
|
||||||
|
|||||||
128
.github/workflows/pull-requests.yaml
vendored
128
.github/workflows/pull-requests.yaml
vendored
@@ -2,7 +2,9 @@ name: Pull Request
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
types: [labeled, opened, synchronize, reopened]
|
types: [opened, synchronize, reopened]
|
||||||
|
paths-ignore:
|
||||||
|
- 'docs/**/*'
|
||||||
|
|
||||||
# Cancel in‑flight runs for the same PR when a new push arrives.
|
# Cancel in‑flight runs for the same PR when a new push arrives.
|
||||||
concurrency:
|
concurrency:
|
||||||
@@ -44,6 +46,17 @@ jobs:
|
|||||||
|
|
||||||
- name: Build Talos image
|
- name: Build Talos image
|
||||||
run: make -C packages/core/installer talos-nocloud
|
run: make -C packages/core/installer talos-nocloud
|
||||||
|
|
||||||
|
- name: Save git diff as patch
|
||||||
|
if: "!contains(github.event.pull_request.labels.*.name, 'release')"
|
||||||
|
run: git diff HEAD > _out/assets/pr.patch
|
||||||
|
|
||||||
|
- name: Upload git diff patch
|
||||||
|
if: "!contains(github.event.pull_request.labels.*.name, 'release')"
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: pr-patch
|
||||||
|
path: _out/assets/pr.patch
|
||||||
|
|
||||||
- name: Upload installer
|
- name: Upload installer
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
@@ -126,6 +139,10 @@ jobs:
|
|||||||
if: ${{ always() && (needs.build.result == 'success' || needs.resolve_assets.result == 'success') }}
|
if: ${{ always() && (needs.build.result == 'success' || needs.resolve_assets.result == 'success') }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
# ▸ Checkout and prepare the codebase
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
# ▸ Regular PR path – download artefacts produced by the *build* job
|
# ▸ Regular PR path – download artefacts produced by the *build* job
|
||||||
- name: "Download Talos image (regular PR)"
|
- name: "Download Talos image (regular PR)"
|
||||||
if: "!contains(github.event.pull_request.labels.*.name, 'release')"
|
if: "!contains(github.event.pull_request.labels.*.name, 'release')"
|
||||||
@@ -134,38 +151,51 @@ jobs:
|
|||||||
name: talos-image
|
name: talos-image
|
||||||
path: _out/assets
|
path: _out/assets
|
||||||
|
|
||||||
|
- name: Download PR patch
|
||||||
|
if: "!contains(github.event.pull_request.labels.*.name, 'release')"
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: pr-patch
|
||||||
|
path: _out/assets
|
||||||
|
|
||||||
|
- name: Apply patch
|
||||||
|
if: "!contains(github.event.pull_request.labels.*.name, 'release')"
|
||||||
|
run: |
|
||||||
|
git apply _out/assets/pr.patch
|
||||||
|
|
||||||
# ▸ Release PR path – fetch artefacts from the corresponding draft release
|
# ▸ Release PR path – fetch artefacts from the corresponding draft release
|
||||||
- name: Download assets from draft release (release PR)
|
- name: Download assets from draft release (release PR)
|
||||||
if: contains(github.event.pull_request.labels.*.name, 'release')
|
if: contains(github.event.pull_request.labels.*.name, 'release')
|
||||||
run: |
|
run: |
|
||||||
|
mkdir -p _out/assets
|
||||||
curl -sSL -H "Authorization: token ${GH_PAT}" -H "Accept: application/octet-stream" \
|
curl -sSL -H "Authorization: token ${GH_PAT}" -H "Accept: application/octet-stream" \
|
||||||
-o _out/assets/nocloud-amd64.raw.xz \
|
-o _out/assets/nocloud-amd64.raw.xz \
|
||||||
"https://api.github.com/repos/${GITHUB_REPOSITORY}/releases/assets/${{ needs.resolve_assets.outputs.disk_id }}"
|
"https://api.github.com/repos/${GITHUB_REPOSITORY}/releases/assets/${{ needs.resolve_assets.outputs.disk_id }}"
|
||||||
env:
|
env:
|
||||||
GH_PAT: ${{ secrets.GH_PAT }}
|
GH_PAT: ${{ secrets.GH_PAT }}
|
||||||
|
|
||||||
# ▸ Start actual job steps
|
|
||||||
- name: Set sandbox ID
|
- name: Set sandbox ID
|
||||||
run: echo "SANDBOX_NAME=cozy-e2e-sandbox-$(echo "${GITHUB_REPOSITORY}:${GITHUB_WORKFLOW}:${GITHUB_REF}" | sha256sum | cut -c1-10)" >> $GITHUB_ENV
|
run: echo "SANDBOX_NAME=cozy-e2e-sandbox-$(echo "${GITHUB_REPOSITORY}:${GITHUB_WORKFLOW}:${GITHUB_REF}" | sha256sum | cut -c1-10)" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
# ▸ Start actual job steps
|
||||||
- name: Prepare workspace
|
- name: Prepare workspace
|
||||||
run: |
|
run: |
|
||||||
cd ..
|
|
||||||
rm -rf /tmp/$SANDBOX_NAME
|
rm -rf /tmp/$SANDBOX_NAME
|
||||||
cp -r cozystack /tmp/$SANDBOX_NAME
|
cp -r ${{ github.workspace }} /tmp/$SANDBOX_NAME
|
||||||
sudo systemctl stop "rm-workspace-$SANDBOX_NAME.timer" "rm-workspace-$SANDBOX_NAME.service" 2>/dev/null || true
|
|
||||||
sudo systemctl reset-failed "rm-workspace-$SANDBOX_NAME.timer" "rm-workspace-$SANDBOX_NAME.service" 2>/dev/null || true
|
|
||||||
sudo systemctl daemon-reexec
|
|
||||||
sudo systemd-run \
|
|
||||||
--on-calendar="$(date -d 'now + 24 hours' '+%Y-%m-%d %H:%M:%S')" \
|
|
||||||
--unit=rm-workspace-$SANDBOX_NAME \
|
|
||||||
rm -rf /tmp/$SANDBOX_NAME
|
|
||||||
|
|
||||||
- name: Prepare environment
|
- name: Prepare environment
|
||||||
run: |
|
run: |
|
||||||
cd /tmp/$SANDBOX_NAME
|
cd /tmp/$SANDBOX_NAME
|
||||||
make SANDBOX_NAME=$SANDBOX_NAME prepare-env
|
attempt=0
|
||||||
|
until make SANDBOX_NAME=$SANDBOX_NAME prepare-env; do
|
||||||
|
attempt=$((attempt + 1))
|
||||||
|
if [ $attempt -ge 3 ]; then
|
||||||
|
echo "❌ Attempt $attempt failed, exiting..."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "❌ Attempt $attempt failed, retrying..."
|
||||||
|
done
|
||||||
|
echo "✅ The task completed successfully after $attempt attempts"
|
||||||
|
|
||||||
install_cozystack:
|
install_cozystack:
|
||||||
name: "Install Cozystack"
|
name: "Install Cozystack"
|
||||||
@@ -192,6 +222,7 @@ jobs:
|
|||||||
- name: Download assets from draft release (release PR)
|
- name: Download assets from draft release (release PR)
|
||||||
if: contains(github.event.pull_request.labels.*.name, 'release')
|
if: contains(github.event.pull_request.labels.*.name, 'release')
|
||||||
run: |
|
run: |
|
||||||
|
mkdir -p _out/assets
|
||||||
curl -sSL -H "Authorization: token ${GH_PAT}" -H "Accept: application/octet-stream" \
|
curl -sSL -H "Authorization: token ${GH_PAT}" -H "Accept: application/octet-stream" \
|
||||||
-o _out/assets/cozystack-installer.yaml \
|
-o _out/assets/cozystack-installer.yaml \
|
||||||
"https://api.github.com/repos/${GITHUB_REPOSITORY}/releases/assets/${{ needs.resolve_assets.outputs.installer_id }}"
|
"https://api.github.com/repos/${GITHUB_REPOSITORY}/releases/assets/${{ needs.resolve_assets.outputs.installer_id }}"
|
||||||
@@ -202,10 +233,24 @@ jobs:
|
|||||||
- name: Set sandbox ID
|
- name: Set sandbox ID
|
||||||
run: echo "SANDBOX_NAME=cozy-e2e-sandbox-$(echo "${GITHUB_REPOSITORY}:${GITHUB_WORKFLOW}:${GITHUB_REF}" | sha256sum | cut -c1-10)" >> $GITHUB_ENV
|
run: echo "SANDBOX_NAME=cozy-e2e-sandbox-$(echo "${GITHUB_REPOSITORY}:${GITHUB_WORKFLOW}:${GITHUB_REF}" | sha256sum | cut -c1-10)" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Sync _out/assets directory
|
||||||
|
run: |
|
||||||
|
mkdir -p /tmp/$SANDBOX_NAME/_out/assets
|
||||||
|
mv _out/assets/* /tmp/$SANDBOX_NAME/_out/assets/
|
||||||
|
|
||||||
- name: Install Cozystack into sandbox
|
- name: Install Cozystack into sandbox
|
||||||
run: |
|
run: |
|
||||||
cd /tmp/$SANDBOX_NAME
|
cd /tmp/$SANDBOX_NAME
|
||||||
make -C packages/core/testing SANDBOX_NAME=$SANDBOX_NAME install-cozystack
|
attempt=0
|
||||||
|
until make -C packages/core/testing SANDBOX_NAME=$SANDBOX_NAME install-cozystack; do
|
||||||
|
attempt=$((attempt + 1))
|
||||||
|
if [ $attempt -ge 3 ]; then
|
||||||
|
echo "❌ Attempt $attempt failed, exiting..."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "❌ Attempt $attempt failed, retrying..."
|
||||||
|
done
|
||||||
|
echo "✅ The task completed successfully after $attempt attempts."
|
||||||
|
|
||||||
detect_test_matrix:
|
detect_test_matrix:
|
||||||
name: "Detect e2e test matrix"
|
name: "Detect e2e test matrix"
|
||||||
@@ -236,12 +281,55 @@ jobs:
|
|||||||
- name: E2E Apps
|
- name: E2E Apps
|
||||||
run: |
|
run: |
|
||||||
cd /tmp/$SANDBOX_NAME
|
cd /tmp/$SANDBOX_NAME
|
||||||
make -C packages/core/testing SANDBOX_NAME=$SANDBOX_NAME test-apps-${{ matrix.app }}
|
attempt=0
|
||||||
|
until make -C packages/core/testing SANDBOX_NAME=$SANDBOX_NAME test-apps-${{ matrix.app }}; do
|
||||||
|
attempt=$((attempt + 1))
|
||||||
|
if [ $attempt -ge 3 ]; then
|
||||||
|
echo "❌ Attempt $attempt failed, exiting..."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "❌ Attempt $attempt failed, retrying..."
|
||||||
|
done
|
||||||
|
echo "✅ The task completed successfully after $attempt attempts"
|
||||||
|
|
||||||
|
collect_debug_information:
|
||||||
|
name: Collect debug information
|
||||||
|
runs-on: [self-hosted]
|
||||||
|
needs: [test_apps]
|
||||||
|
if: ${{ always() }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set sandbox ID
|
||||||
|
run: echo "SANDBOX_NAME=cozy-e2e-sandbox-$(echo "${GITHUB_REPOSITORY}:${GITHUB_WORKFLOW}:${GITHUB_REF}" | sha256sum | cut -c1-10)" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Collect report
|
||||||
|
run: |
|
||||||
|
cd /tmp/$SANDBOX_NAME
|
||||||
|
make -C packages/core/testing SANDBOX_NAME=$SANDBOX_NAME collect-report
|
||||||
|
|
||||||
|
- name: Upload cozyreport.tgz
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: cozyreport
|
||||||
|
path: /tmp/${{ env.SANDBOX_NAME }}/_out/cozyreport.tgz
|
||||||
|
|
||||||
|
- name: Collect images list
|
||||||
|
run: |
|
||||||
|
cd /tmp/$SANDBOX_NAME
|
||||||
|
make -C packages/core/testing SANDBOX_NAME=$SANDBOX_NAME collect-images
|
||||||
|
|
||||||
|
- name: Upload image list
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: image-list
|
||||||
|
path: /tmp/${{ env.SANDBOX_NAME }}/_out/images.txt
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
name: Tear down environment
|
name: Tear down environment
|
||||||
runs-on: [self-hosted]
|
runs-on: [self-hosted]
|
||||||
needs: test_apps
|
needs: [collect_debug_information]
|
||||||
if: ${{ always() && needs.test_apps.result == 'success' }}
|
if: ${{ always() && needs.test_apps.result == 'success' }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
@@ -260,10 +348,4 @@ jobs:
|
|||||||
- name: Remove workspace
|
- name: Remove workspace
|
||||||
run: rm -rf /tmp/$SANDBOX_NAME
|
run: rm -rf /tmp/$SANDBOX_NAME
|
||||||
|
|
||||||
- name: Tear down timers
|
|
||||||
run: |
|
|
||||||
sudo systemctl stop "rm-workspace-$SANDBOX_NAME.timer" "rm-workspace-$SANDBOX_NAME.service" 2>/dev/null || true
|
|
||||||
sudo systemctl reset-failed "rm-workspace-$SANDBOX_NAME.timer" "rm-workspace-$SANDBOX_NAME.service" 2>/dev/null || true
|
|
||||||
sudo systemctl stop "teardown-$SANDBOX_NAME.timer" "teardown-$SANDBOX_NAME.service" 2>/dev/null || true
|
|
||||||
sudo systemctl reset-failed "teardown-$SANDBOX_NAME.timer" "teardown-$SANDBOX_NAME.service" 2>/dev/null || true
|
|
||||||
sudo systemctl daemon-reexec
|
|
||||||
|
|||||||
13
.github/workflows/tags.yaml
vendored
13
.github/workflows/tags.yaml
vendored
@@ -112,9 +112,12 @@ jobs:
|
|||||||
# Commit built artifacts
|
# Commit built artifacts
|
||||||
- name: Commit release artifacts
|
- name: Commit release artifacts
|
||||||
if: steps.check_release.outputs.skip == 'false'
|
if: steps.check_release.outputs.skip == 'false'
|
||||||
|
env:
|
||||||
|
GH_PAT: ${{ secrets.GH_PAT }}
|
||||||
run: |
|
run: |
|
||||||
git config user.name "github-actions"
|
git config user.name "cozystack-bot"
|
||||||
git config user.email "github-actions@github.com"
|
git config user.email "217169706+cozystack-bot@users.noreply.github.com"
|
||||||
|
git remote set-url origin https://cozystack-bot:${GH_PAT}@github.com/${GITHUB_REPOSITORY}
|
||||||
git add .
|
git add .
|
||||||
git commit -m "Prepare release ${GITHUB_REF#refs/tags/}" -s || echo "No changes to commit"
|
git commit -m "Prepare release ${GITHUB_REF#refs/tags/}" -s || echo "No changes to commit"
|
||||||
git push origin HEAD || true
|
git push origin HEAD || true
|
||||||
@@ -189,7 +192,12 @@ jobs:
|
|||||||
# Create release-X.Y.Z branch and push (force-update)
|
# Create release-X.Y.Z branch and push (force-update)
|
||||||
- name: Create release branch
|
- name: Create release branch
|
||||||
if: steps.check_release.outputs.skip == 'false'
|
if: steps.check_release.outputs.skip == 'false'
|
||||||
|
env:
|
||||||
|
GH_PAT: ${{ secrets.GH_PAT }}
|
||||||
run: |
|
run: |
|
||||||
|
git config user.name "cozystack-bot"
|
||||||
|
git config user.email "217169706+cozystack-bot@users.noreply.github.com"
|
||||||
|
git remote set-url origin https://cozystack-bot:${GH_PAT}@github.com/${GITHUB_REPOSITORY}
|
||||||
BRANCH="release-${GITHUB_REF#refs/tags/v}"
|
BRANCH="release-${GITHUB_REF#refs/tags/v}"
|
||||||
git branch -f "$BRANCH"
|
git branch -f "$BRANCH"
|
||||||
git push -f origin "$BRANCH"
|
git push -f origin "$BRANCH"
|
||||||
@@ -199,6 +207,7 @@ jobs:
|
|||||||
if: steps.check_release.outputs.skip == 'false'
|
if: steps.check_release.outputs.skip == 'false'
|
||||||
uses: actions/github-script@v7
|
uses: actions/github-script@v7
|
||||||
with:
|
with:
|
||||||
|
github-token: ${{ secrets.GH_PAT }}
|
||||||
script: |
|
script: |
|
||||||
const version = context.ref.replace('refs/tags/v', '');
|
const version = context.ref.replace('refs/tags/v', '');
|
||||||
const base = '${{ steps.get_base.outputs.branch }}';
|
const base = '${{ steps.get_base.outputs.branch }}';
|
||||||
|
|||||||
32
hack/cdi_golden_image_create.sh
Normal file
32
hack/cdi_golden_image_create.sh
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
name="$1"
|
||||||
|
url="$2"
|
||||||
|
|
||||||
|
if [ -z "$name" ] || [ -z "$url" ]; then
|
||||||
|
echo "Usage: <name> <url>"
|
||||||
|
echo "Example: 'ubuntu' 'https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#### create DV ubuntu source for CDI image cloning
|
||||||
|
kubectl create -f - <<EOF
|
||||||
|
apiVersion: cdi.kubevirt.io/v1beta1
|
||||||
|
kind: DataVolume
|
||||||
|
metadata:
|
||||||
|
name: "vm-image-$name"
|
||||||
|
namespace: cozy-public
|
||||||
|
annotations:
|
||||||
|
cdi.kubevirt.io/storage.bind.immediate.requested: "true"
|
||||||
|
spec:
|
||||||
|
source:
|
||||||
|
http:
|
||||||
|
url: "$url"
|
||||||
|
storage:
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 5Gi
|
||||||
|
storageClassName: replicated
|
||||||
|
EOF
|
||||||
8
hack/collect-images.sh
Executable file
8
hack/collect-images.sh
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
for node in 11 12 13; do
|
||||||
|
talosctl -n 192.168.123.${node} -e 192.168.123.${node} images ls >> images.tmp
|
||||||
|
talosctl -n 192.168.123.${node} -e 192.168.123.${node} images --namespace system ls >> images.tmp
|
||||||
|
done
|
||||||
|
|
||||||
|
while read _ name sha _ ; do echo $sha $name ; done < images.tmp | sort -u > images.txt
|
||||||
147
hack/cozyreport.sh
Executable file
147
hack/cozyreport.sh
Executable file
@@ -0,0 +1,147 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
REPORT_DATE=$(date +%Y-%m-%d_%H-%M-%S)
|
||||||
|
REPORT_NAME=${1:-cozyreport-$REPORT_DATE}
|
||||||
|
REPORT_PDIR=$(mktemp -d)
|
||||||
|
REPORT_DIR=$REPORT_PDIR/$REPORT_NAME
|
||||||
|
|
||||||
|
# -- check dependencies
|
||||||
|
command -V kubectl >/dev/null || exit $?
|
||||||
|
command -V tar >/dev/null || exit $?
|
||||||
|
|
||||||
|
# -- cozystack module
|
||||||
|
|
||||||
|
echo "Collecting Cozystack information..."
|
||||||
|
mkdir -p $REPORT_DIR/cozystack
|
||||||
|
kubectl get deploy -n cozy-system cozystack -o jsonpath='{.spec.template.spec.containers[0].image}' > $REPORT_DIR/cozystack/image.txt 2>&1
|
||||||
|
kubectl get cm -n cozy-system --no-headers | awk '$1 ~ /^cozystack/' |
|
||||||
|
while read NAME _; do
|
||||||
|
DIR=$REPORT_DIR/cozystack/configs
|
||||||
|
mkdir -p $DIR
|
||||||
|
kubectl get cm -n cozy-system $NAME -o yaml > $DIR/$NAME.yaml 2>&1
|
||||||
|
done
|
||||||
|
|
||||||
|
# -- kubernetes module
|
||||||
|
|
||||||
|
echo "Collecting Kubernetes information..."
|
||||||
|
mkdir -p $REPORT_DIR/kubernetes
|
||||||
|
kubectl version > $REPORT_DIR/kubernetes/version.txt 2>&1
|
||||||
|
|
||||||
|
echo "Collecting nodes..."
|
||||||
|
kubectl get nodes -o wide > $REPORT_DIR/kubernetes/nodes.txt 2>&1
|
||||||
|
kubectl get nodes --no-headers | awk '$2 != "Ready"' |
|
||||||
|
while read NAME _; do
|
||||||
|
DIR=$REPORT_DIR/kubernetes/nodes/$NAME
|
||||||
|
mkdir -p $DIR
|
||||||
|
kubectl get node $NAME -o yaml > $DIR/node.yaml 2>&1
|
||||||
|
kubectl describe node $NAME > $DIR/describe.txt 2>&1
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Collecting namespaces..."
|
||||||
|
kubectl get ns -o wide > $REPORT_DIR/kubernetes/namespaces.txt 2>&1
|
||||||
|
kubectl get ns --no-headers | awk '$2 != "Active"' |
|
||||||
|
while read NAME _; do
|
||||||
|
DIR=$REPORT_DIR/kubernetes/namespaces/$NAME
|
||||||
|
mkdir -p $DIR
|
||||||
|
kubectl get ns $NAME -o yaml > $DIR/namespace.yaml 2>&1
|
||||||
|
kubectl describe ns $NAME > $DIR/describe.txt 2>&1
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Collecting helmreleases..."
|
||||||
|
kubectl get hr -A > $REPORT_DIR/kubernetes/helmreleases.txt 2>&1
|
||||||
|
kubectl get hr -A | awk '$4 != "True"' | \
|
||||||
|
while read NAMESPACE NAME _; do
|
||||||
|
DIR=$REPORT_DIR/kubernetes/helmreleases/$NAMESPACE/$NAME
|
||||||
|
mkdir -p $DIR
|
||||||
|
kubectl get hr -n $NAMESPACE $NAME -o yaml > $DIR/hr.yaml 2>&1
|
||||||
|
kubectl describe hr -n $NAMESPACE $NAME > $DIR/describe.txt 2>&1
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Collecting pods..."
|
||||||
|
kubectl get pod -A -o wide > $REPORT_DIR/kubernetes/pods.txt 2>&1
|
||||||
|
kubectl get pod -A --no-headers | awk '$4 !~ /Running|Succeeded|Completed/' |
|
||||||
|
while read NAMESPACE NAME _ STATE _; do
|
||||||
|
DIR=$REPORT_DIR/kubernetes/pods/$NAMESPACE/$NAME
|
||||||
|
mkdir -p $DIR
|
||||||
|
CONTAINERS=$(kubectl get pod -o jsonpath='{.spec.containers[*].name}' -n $NAMESPACE $NAME)
|
||||||
|
kubectl get pod -n $NAMESPACE $NAME -o yaml > $DIR/pod.yaml 2>&1
|
||||||
|
kubectl describe pod -n $NAMESPACE $NAME > $DIR/describe.txt 2>&1
|
||||||
|
if [ "$STATE" != "Pending" ]; then
|
||||||
|
for CONTAINER in $CONTAINERS; do
|
||||||
|
kubectl logs -n $NAMESPACE $NAME $CONTAINER > $DIR/logs-$CONTAINER.txt 2>&1
|
||||||
|
kubectl logs -n $NAMESPACE $NAME $CONTAINER --previous > $DIR/logs-$CONTAINER-previous.txt 2>&1
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Collecting virtualmachines..."
|
||||||
|
kubectl get vm -A > $REPORT_DIR/kubernetes/vms.txt 2>&1
|
||||||
|
kubectl get vm -A --no-headers | awk '$5 != "True"' |
|
||||||
|
while read NAMESPACE NAME _; do
|
||||||
|
DIR=$REPORT_DIR/kubernetes/vm/$NAMESPACE/$NAME
|
||||||
|
mkdir -p $DIR
|
||||||
|
kubectl get vm -n $NAMESPACE $NAME -o yaml > $DIR/vm.yaml 2>&1
|
||||||
|
kubectl describe vm -n $NAMESPACE $NAME > $DIR/describe.txt 2>&1
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Collecting virtualmachine instances..."
|
||||||
|
kubectl get vmi -A > $REPORT_DIR/kubernetes/vmis.txt 2>&1
|
||||||
|
kubectl get vmi -A --no-headers | awk '$4 != "Running"' |
|
||||||
|
while read NAMESPACE NAME _; do
|
||||||
|
DIR=$REPORT_DIR/kubernetes/vmi/$NAMESPACE/$NAME
|
||||||
|
mkdir -p $DIR
|
||||||
|
kubectl get vmi -n $NAMESPACE $NAME -o yaml > $DIR/vmi.yaml 2>&1
|
||||||
|
kubectl describe vmi -n $NAMESPACE $NAME > $DIR/describe.txt 2>&1
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Collecting services..."
|
||||||
|
kubectl get svc -A > $REPORT_DIR/kubernetes/services.txt 2>&1
|
||||||
|
kubectl get svc -A --no-headers | awk '$4 == "<pending>"' |
|
||||||
|
while read NAMESPACE NAME _; do
|
||||||
|
DIR=$REPORT_DIR/kubernetes/services/$NAMESPACE/$NAME
|
||||||
|
mkdir -p $DIR
|
||||||
|
kubectl get svc -n $NAMESPACE $NAME -o yaml > $DIR/service.yaml 2>&1
|
||||||
|
kubectl describe svc -n $NAMESPACE $NAME > $DIR/describe.txt 2>&1
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Collecting pvcs..."
|
||||||
|
kubectl get pvc -A > $REPORT_DIR/kubernetes/pvcs.txt 2>&1
|
||||||
|
kubectl get pvc -A | awk '$3 != "Bound"' |
|
||||||
|
while read NAMESPACE NAME _; do
|
||||||
|
DIR=$REPORT_DIR/kubernetes/pvc/$NAMESPACE/$NAME
|
||||||
|
mkdir -p $DIR
|
||||||
|
kubectl get pvc -n $NAMESPACE $NAME -o yaml > $DIR/pvc.yaml 2>&1
|
||||||
|
kubectl describe pvc -n $NAMESPACE $NAME > $DIR/describe.txt 2>&1
|
||||||
|
done
|
||||||
|
|
||||||
|
# -- kamaji module
|
||||||
|
|
||||||
|
if kubectl get deploy -n cozy-linstor linstor-controller >/dev/null 2>&1; then
|
||||||
|
echo "Collecting kamaji resources..."
|
||||||
|
DIR=$REPORT_DIR/kamaji
|
||||||
|
mkdir -p $DIR
|
||||||
|
kubectl logs -n cozy-kamaji deployment/kamaji > $DIR/kamaji-controller.log 2>&1
|
||||||
|
kubectl get kamajicontrolplanes.controlplane.cluster.x-k8s.io -A > $DIR/kamajicontrolplanes.txt 2>&1
|
||||||
|
kubectl get kamajicontrolplanes.controlplane.cluster.x-k8s.io -A -o yaml > $DIR/kamajicontrolplanes.yaml 2>&1
|
||||||
|
kubectl get tenantcontrolplanes.kamaji.clastix.io -A > $DIR/tenantcontrolplanes.txt 2>&1
|
||||||
|
kubectl get tenantcontrolplanes.kamaji.clastix.io -A -o yaml > $DIR/tenantcontrolplanes.yaml 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# -- linstor module
|
||||||
|
|
||||||
|
if kubectl get deploy -n cozy-linstor linstor-controller >/dev/null 2>&1; then
|
||||||
|
echo "Collecting linstor resources..."
|
||||||
|
DIR=$REPORT_DIR/linstor
|
||||||
|
mkdir -p $DIR
|
||||||
|
kubectl exec -n cozy-linstor deploy/linstor-controller -- linstor --no-color n l > $DIR/nodes.txt 2>&1
|
||||||
|
kubectl exec -n cozy-linstor deploy/linstor-controller -- linstor --no-color sp l > $DIR/storage-pools.txt 2>&1
|
||||||
|
kubectl exec -n cozy-linstor deploy/linstor-controller -- linstor --no-color r l > $DIR/resources.txt 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# -- finalization
|
||||||
|
|
||||||
|
echo "Creating archive..."
|
||||||
|
tar -czf $REPORT_NAME.tgz -C $REPORT_PDIR .
|
||||||
|
echo "Report created: $REPORT_NAME.tgz"
|
||||||
|
|
||||||
|
echo "Cleaning up..."
|
||||||
|
rm -rf $REPORT_PDIR
|
||||||
@@ -2,8 +2,7 @@
|
|||||||
|
|
||||||
@test "Create DB ClickHouse" {
|
@test "Create DB ClickHouse" {
|
||||||
name='test'
|
name='test'
|
||||||
kubectl -n tenant-test get clickhouses.apps.cozystack.io $name ||
|
kubectl apply -f- <<EOF
|
||||||
kubectl create -f- <<EOF
|
|
||||||
apiVersion: apps.cozystack.io/v1alpha1
|
apiVersion: apps.cozystack.io/v1alpha1
|
||||||
kind: ClickHouse
|
kind: ClickHouse
|
||||||
metadata:
|
metadata:
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
@test "Create Kafka" {
|
@test "Create Kafka" {
|
||||||
name='test'
|
name='test'
|
||||||
kubectl create -f- <<EOF
|
kubectl apply -f- <<EOF
|
||||||
apiVersion: apps.cozystack.io/v1alpha1
|
apiVersion: apps.cozystack.io/v1alpha1
|
||||||
kind: Kafka
|
kind: Kafka
|
||||||
metadata:
|
metadata:
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
#!/usr/bin/env bats
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
@test "Create a tenant Kubernetes control plane" {
|
@test "Create a tenant Kubernetes control plane" {
|
||||||
kubectl -n tenant-test get kuberneteses.apps.cozystack.io test ||
|
kubectl apply -f - <<EOF
|
||||||
kubectl create -f - <<EOF
|
|
||||||
apiVersion: apps.cozystack.io/v1alpha1
|
apiVersion: apps.cozystack.io/v1alpha1
|
||||||
kind: Kubernetes
|
kind: Kubernetes
|
||||||
metadata:
|
metadata:
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
|
|
||||||
@test "Create DB MySQL" {
|
@test "Create DB MySQL" {
|
||||||
name='test'
|
name='test'
|
||||||
kubectl -n tenant-test get mysqls.apps.cozystack.io $name ||
|
kubectl apply -f- <<EOF
|
||||||
kubectl create -f- <<EOF
|
|
||||||
apiVersion: apps.cozystack.io/v1alpha1
|
apiVersion: apps.cozystack.io/v1alpha1
|
||||||
kind: MySQL
|
kind: MySQL
|
||||||
metadata:
|
metadata:
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
|
|
||||||
@test "Create DB PostgreSQL" {
|
@test "Create DB PostgreSQL" {
|
||||||
name='test'
|
name='test'
|
||||||
kubectl -n tenant-test get postgreses.apps.cozystack.io $name ||
|
kubectl apply -f - <<EOF
|
||||||
kubectl create -f - <<EOF
|
|
||||||
apiVersion: apps.cozystack.io/v1alpha1
|
apiVersion: apps.cozystack.io/v1alpha1
|
||||||
kind: Postgres
|
kind: Postgres
|
||||||
metadata:
|
metadata:
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
@test "Create Redis" {
|
@test "Create Redis" {
|
||||||
name='test'
|
name='test'
|
||||||
kubectl create -f- <<EOF
|
kubectl apply -f- <<EOF
|
||||||
apiVersion: apps.cozystack.io/v1alpha1
|
apiVersion: apps.cozystack.io/v1alpha1
|
||||||
kind: Redis
|
kind: Redis
|
||||||
metadata:
|
metadata:
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
|
|
||||||
@test "Create a Virtual Machine" {
|
@test "Create a Virtual Machine" {
|
||||||
name='test'
|
name='test'
|
||||||
kubectl -n tenant-test get virtualmachines.apps.cozystack.io $name ||
|
kubectl apply -f - <<EOF
|
||||||
kubectl create -f - <<EOF
|
|
||||||
apiVersion: apps.cozystack.io/v1alpha1
|
apiVersion: apps.cozystack.io/v1alpha1
|
||||||
kind: VirtualMachine
|
kind: VirtualMachine
|
||||||
metadata:
|
metadata:
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
|
|
||||||
@test "Create a VM Disk" {
|
@test "Create a VM Disk" {
|
||||||
name='test'
|
name='test'
|
||||||
kubectl -n tenant-test get vmdisks.apps.cozystack.io $name ||
|
kubectl apply -f - <<EOF
|
||||||
kubectl create -f - <<EOF
|
|
||||||
apiVersion: apps.cozystack.io/v1alpha1
|
apiVersion: apps.cozystack.io/v1alpha1
|
||||||
kind: VMDisk
|
kind: VMDisk
|
||||||
metadata:
|
metadata:
|
||||||
@@ -26,8 +25,7 @@ EOF
|
|||||||
@test "Create a VM Instance" {
|
@test "Create a VM Instance" {
|
||||||
diskName='test'
|
diskName='test'
|
||||||
name='test'
|
name='test'
|
||||||
kubectl -n tenant-test get vminstances.apps.cozystack.io $name ||
|
kubectl apply -f - <<EOF
|
||||||
kubectl create -f - <<EOF
|
|
||||||
apiVersion: apps.cozystack.io/v1alpha1
|
apiVersion: apps.cozystack.io/v1alpha1
|
||||||
kind: VMInstance
|
kind: VMInstance
|
||||||
metadata:
|
metadata:
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
#!/usr/bin/env bats
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
|
@test "Required installer assets exist" {
|
||||||
|
if [ ! -f _out/assets/cozystack-installer.yaml ]; then
|
||||||
|
echo "Missing: _out/assets/cozystack-installer.yaml" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
@test "Install Cozystack" {
|
@test "Install Cozystack" {
|
||||||
# Create namespace & configmap required by installer
|
# Create namespace & configmap required by installer
|
||||||
kubectl create namespace cozy-system --dry-run=client -o yaml | kubectl apply -f -
|
kubectl create namespace cozy-system --dry-run=client -o yaml | kubectl apply -f -
|
||||||
@@ -27,7 +34,7 @@
|
|||||||
# Fail the test if any HelmRelease is not Ready
|
# Fail the test if any HelmRelease is not Ready
|
||||||
if kubectl get hr -A | grep -v " True " | grep -v NAME; then
|
if kubectl get hr -A | grep -v " True " | grep -v NAME; then
|
||||||
kubectl get hr -A
|
kubectl get hr -A
|
||||||
fail "Some HelmReleases failed to reconcile"
|
echo "Some HelmReleases failed to reconcile" >&2
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,11 +4,6 @@
|
|||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
@test "Required installer assets exist" {
|
@test "Required installer assets exist" {
|
||||||
if [ ! -f _out/assets/cozystack-installer.yaml ]; then
|
|
||||||
echo "Missing: _out/assets/cozystack-installer.yaml" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -f _out/assets/nocloud-amd64.raw.xz ]; then
|
if [ ! -f _out/assets/nocloud-amd64.raw.xz ]; then
|
||||||
echo "Missing: _out/assets/nocloud-amd64.raw.xz" >&2
|
echo "Missing: _out/assets/nocloud-amd64.raw.xz" >&2
|
||||||
exit 1
|
exit 1
|
||||||
@@ -141,7 +136,25 @@ machine:
|
|||||||
mirrors:
|
mirrors:
|
||||||
docker.io:
|
docker.io:
|
||||||
endpoints:
|
endpoints:
|
||||||
- https://mirror.gcr.io
|
- https://dockerio.nexus.lllamnyp.su
|
||||||
|
cr.fluentbit.io:
|
||||||
|
endpoints:
|
||||||
|
- https://fluentbit.nexus.lllamnyp.su
|
||||||
|
docker-registry3.mariadb.com:
|
||||||
|
endpoints:
|
||||||
|
- https://mariadb.nexus.lllamnyp.su
|
||||||
|
gcr.io:
|
||||||
|
endpoints:
|
||||||
|
- https://gcr.nexus.lllamnyp.su
|
||||||
|
ghcr.io:
|
||||||
|
endpoints:
|
||||||
|
- https://ghcr.nexus.lllamnyp.su
|
||||||
|
quay.io:
|
||||||
|
endpoints:
|
||||||
|
- https://quay.nexus.lllamnyp.su
|
||||||
|
registry.k8s.io:
|
||||||
|
endpoints:
|
||||||
|
- https://k8s.nexus.lllamnyp.su
|
||||||
files:
|
files:
|
||||||
- content: |
|
- content: |
|
||||||
[plugins]
|
[plugins]
|
||||||
|
|||||||
@@ -16,7 +16,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.10.1
|
version: 0.11.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
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ include ../../../scripts/package.mk
|
|||||||
|
|
||||||
generate:
|
generate:
|
||||||
readme-generator -v values.yaml -s values.schema.json -r README.md
|
readme-generator -v values.yaml -s values.schema.json -r README.md
|
||||||
|
yq -i -o json --indent 4 '.properties.resourcesPreset.enum = ["none", "nano", "micro", "small", "medium", "large", "xlarge", "2xlarge"]' values.schema.json
|
||||||
|
|
||||||
image:
|
image:
|
||||||
docker buildx build images/clickhouse-backup \
|
docker buildx build images/clickhouse-backup \
|
||||||
|
|||||||
@@ -1,18 +1,19 @@
|
|||||||
# Managed Clickhouse Service
|
# Managed ClickHouse Service
|
||||||
|
|
||||||
ClickHouse is an open source high-performance and column-oriented SQL database management system (DBMS).
|
ClickHouse is an open source high-performance and column-oriented SQL database management system (DBMS).
|
||||||
It is used for online analytical processing (OLAP).
|
It is used for online analytical processing (OLAP).
|
||||||
Cozystack platform uses Altinity operator to provide ClickHouse.
|
|
||||||
|
|
||||||
### How to restore backup:
|
### How to restore backup from S3
|
||||||
|
|
||||||
1. Find a snapshot:
|
1. Find the snapshot:
|
||||||
```
|
|
||||||
|
```bash
|
||||||
restic -r s3:s3.example.org/clickhouse-backups/table_name snapshots
|
restic -r s3:s3.example.org/clickhouse-backups/table_name snapshots
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Restore it:
|
2. Restore it:
|
||||||
```
|
|
||||||
|
```bash
|
||||||
restic -r s3:s3.example.org/clickhouse-backups/table_name restore latest --target /tmp/
|
restic -r s3:s3.example.org/clickhouse-backups/table_name restore latest --target /tmp/
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -39,32 +40,41 @@ For more details, read [Restic: Effective Backup from Stdin](https://blog.aenix.
|
|||||||
|
|
||||||
### Backup parameters
|
### Backup parameters
|
||||||
|
|
||||||
| Name | Description | Value |
|
| Name | Description | Value |
|
||||||
| ------------------------ | --------------------------------------------------------------------------- | ------------------------------------------------------ |
|
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ |
|
||||||
| `backup.enabled` | Enable periodic backups | `false` |
|
| `backup.enabled` | Enable periodic backups | `false` |
|
||||||
| `backup.s3Region` | AWS S3 region where backups are stored | `us-east-1` |
|
| `backup.s3Region` | AWS S3 region where backups are stored | `us-east-1` |
|
||||||
| `backup.s3Bucket` | S3 bucket used for storing backups | `s3.example.org/clickhouse-backups` |
|
| `backup.s3Bucket` | S3 bucket used for storing backups | `s3.example.org/clickhouse-backups` |
|
||||||
| `backup.schedule` | Cron schedule for automated backups | `0 2 * * *` |
|
| `backup.schedule` | Cron schedule for automated backups | `0 2 * * *` |
|
||||||
| `backup.cleanupStrategy` | Retention strategy for cleaning up old backups | `--keep-last=3 --keep-daily=3 --keep-within-weekly=1m` |
|
| `backup.cleanupStrategy` | Retention strategy for cleaning up old backups | `--keep-last=3 --keep-daily=3 --keep-within-weekly=1m` |
|
||||||
| `backup.s3AccessKey` | Access key for S3, used for authentication | `oobaiRus9pah8PhohL1ThaeTa4UVa7gu` |
|
| `backup.s3AccessKey` | Access key for S3, used for authentication | `oobaiRus9pah8PhohL1ThaeTa4UVa7gu` |
|
||||||
| `backup.s3SecretKey` | Secret key for S3, used for authentication | `ju3eum4dekeich9ahM1te8waeGai0oog` |
|
| `backup.s3SecretKey` | Secret key for S3, used for authentication | `ju3eum4dekeich9ahM1te8waeGai0oog` |
|
||||||
| `backup.resticPassword` | Password for Restic backup encryption | `ChaXoveekoh6eigh4siesheeda2quai0` |
|
| `backup.resticPassword` | Password for Restic backup encryption | `ChaXoveekoh6eigh4siesheeda2quai0` |
|
||||||
| `resources` | Explicit CPU/memory resource requests and limits for the Clickhouse service | `{}` |
|
| `resources` | Explicit CPU and memory configuration for each ClickHouse replica. When left empty, the preset defined in `resourcesPreset` is applied. | `{}` |
|
||||||
| `resourcesPreset` | Use a common resources preset when `resources` is not set explicitly. | `small` |
|
| `resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge. | `small` |
|
||||||
|
|
||||||
|
## Parameter examples and reference
|
||||||
|
|
||||||
In production environments, it's recommended to set `resources` explicitly.
|
### resources and resourcesPreset
|
||||||
Example of `resources`:
|
|
||||||
|
`resources` sets explicit CPU and memory configurations for each replica.
|
||||||
|
When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
resources:
|
resources:
|
||||||
limits:
|
cpu: 4000m
|
||||||
cpu: 4000m
|
memory: 4Gi
|
||||||
memory: 4Gi
|
|
||||||
requests:
|
|
||||||
cpu: 100m
|
|
||||||
memory: 512Mi
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Allowed values for `resourcesPreset` are `none`, `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.
|
`resourcesPreset` sets named CPU and memory configurations for each replica.
|
||||||
This value is ignored if `resources` value is set.
|
This setting is ignored if the corresponding `resources` value is set.
|
||||||
|
|
||||||
|
| Preset name | CPU | memory |
|
||||||
|
|-------------|--------|---------|
|
||||||
|
| `nano` | `250m` | `128Mi` |
|
||||||
|
| `micro` | `500m` | `256Mi` |
|
||||||
|
| `small` | `1` | `512Mi` |
|
||||||
|
| `medium` | `1` | `1Gi` |
|
||||||
|
| `large` | `3` | `2Gi` |
|
||||||
|
| `xlarge` | `4` | `4Gi` |
|
||||||
|
| `2xlarge` | `8` | `8Gi` |
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
ghcr.io/cozystack/cozystack/clickhouse-backup:0.10.1@sha256:3faf7a4cebf390b9053763107482de175aa0fdb88c1e77424fd81100b1c3a205
|
ghcr.io/cozystack/cozystack/clickhouse-backup:0.11.0@sha256:3faf7a4cebf390b9053763107482de175aa0fdb88c1e77424fd81100b1c3a205
|
||||||
|
|||||||
@@ -132,11 +132,7 @@ spec:
|
|||||||
containers:
|
containers:
|
||||||
- name: clickhouse
|
- name: clickhouse
|
||||||
image: clickhouse/clickhouse-server:24.9.2.42
|
image: clickhouse/clickhouse-server:24.9.2.42
|
||||||
{{- if .Values.resources }}
|
resources: {{- include "cozy-lib.resources.defaultingSanitize" (list .Values.resourcesPreset .Values.resources $) | nindent 16 }}
|
||||||
resources: {{- include "cozy-lib.resources.sanitize" (list .Values.resources $) | nindent 16 }}
|
|
||||||
{{- else if ne .Values.resourcesPreset "none" }}
|
|
||||||
resources: {{- include "cozy-lib.resources.preset" (list .Values.resourcesPreset $) | nindent 16 }}
|
|
||||||
{{- end }}
|
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: data-volume-template
|
- name: data-volume-template
|
||||||
mountPath: /var/lib/clickhouse
|
mountPath: /var/lib/clickhouse
|
||||||
|
|||||||
@@ -79,13 +79,23 @@
|
|||||||
},
|
},
|
||||||
"resources": {
|
"resources": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"description": "Explicit CPU/memory resource requests and limits for the Clickhouse service",
|
"description": "Explicit CPU and memory configuration for each ClickHouse replica. When left empty, the preset defined in `resourcesPreset` is applied.",
|
||||||
"default": {}
|
"default": {}
|
||||||
},
|
},
|
||||||
"resourcesPreset": {
|
"resourcesPreset": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Use a common resources preset when `resources` is not set explicitly.",
|
"description": "Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.",
|
||||||
"default": "small"
|
"default": "small",
|
||||||
|
"enum": [
|
||||||
|
"none",
|
||||||
|
"nano",
|
||||||
|
"micro",
|
||||||
|
"small",
|
||||||
|
"medium",
|
||||||
|
"large",
|
||||||
|
"xlarge",
|
||||||
|
"2xlarge"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,11 +47,11 @@ backup:
|
|||||||
s3SecretKey: ju3eum4dekeich9ahM1te8waeGai0oog
|
s3SecretKey: ju3eum4dekeich9ahM1te8waeGai0oog
|
||||||
resticPassword: ChaXoveekoh6eigh4siesheeda2quai0
|
resticPassword: ChaXoveekoh6eigh4siesheeda2quai0
|
||||||
|
|
||||||
## @param resources Explicit CPU/memory resource requests and limits for the Clickhouse service
|
## @param resources Explicit CPU and memory configuration for each ClickHouse replica. When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
resources: {}
|
resources: {}
|
||||||
# resources:
|
# resources:
|
||||||
# cpu: 4000m
|
# cpu: 4000m
|
||||||
# memory: 4Gi
|
# memory: 4Gi
|
||||||
|
|
||||||
## @param resourcesPreset Use a common resources preset when `resources` is not set explicitly.
|
## @param resourcesPreset Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.
|
||||||
resourcesPreset: "small"
|
resourcesPreset: "small"
|
||||||
|
|||||||
@@ -16,7 +16,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.7.1
|
version: 0.8.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
|
||||||
|
|||||||
@@ -2,3 +2,4 @@ include ../../../scripts/package.mk
|
|||||||
|
|
||||||
generate:
|
generate:
|
||||||
readme-generator -v values.yaml -s values.schema.json -r README.md
|
readme-generator -v values.yaml -s values.schema.json -r README.md
|
||||||
|
yq -i -o json --indent 4 '.properties.resourcesPreset.enum = ["none", "nano", "micro", "small", "medium", "large", "xlarge", "2xlarge"]' values.schema.json
|
||||||
|
|||||||
@@ -1,17 +1,21 @@
|
|||||||
# Managed FerretDB Service
|
# Managed FerretDB Service
|
||||||
|
|
||||||
|
FerretDB is an open source MongoDB alternative.
|
||||||
|
It translates MongoDB wire protocol queries to SQL and can be used as a direct replacement for MongoDB 5.0+.
|
||||||
|
Internally, FerretDB service is backed by Postgres.
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
### Common parameters
|
### Common parameters
|
||||||
|
|
||||||
| Name | Description | Value |
|
| Name | Description | Value |
|
||||||
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------- | ------- |
|
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------- | ------- |
|
||||||
| `external` | Enable external access from outside the cluster | `false` |
|
| `external` | Enable external access from outside the cluster | `false` |
|
||||||
| `size` | Persistent Volume size | `10Gi` |
|
| `size` | Persistent Volume size | `10Gi` |
|
||||||
| `replicas` | Number of Postgres replicas | `2` |
|
| `replicas` | Number of replicas | `2` |
|
||||||
| `storageClass` | StorageClass used to store the data | `""` |
|
| `storageClass` | StorageClass used to store the data | `""` |
|
||||||
| `quorum.minSyncReplicas` | Minimum number of synchronous replicas that must acknowledge a transaction before it is considered committed. | `0` |
|
| `quorum.minSyncReplicas` | Minimum number of synchronous replicas that must acknowledge a transaction before it is considered committed | `0` |
|
||||||
| `quorum.maxSyncReplicas` | Maximum number of synchronous replicas that can acknowledge a transaction (must be lower than the number of instances). | `0` |
|
| `quorum.maxSyncReplicas` | Maximum number of synchronous replicas that can acknowledge a transaction (must be lower than the total number of replicas) | `0` |
|
||||||
|
|
||||||
### Configuration parameters
|
### Configuration parameters
|
||||||
|
|
||||||
@@ -21,17 +25,43 @@
|
|||||||
|
|
||||||
### Backup parameters
|
### Backup parameters
|
||||||
|
|
||||||
| Name | Description | Value |
|
| Name | Description | Value |
|
||||||
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------ |
|
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ |
|
||||||
| `backup.enabled` | Enable pereiodic backups | `false` |
|
| `backup.enabled` | Enable periodic backups | `false` |
|
||||||
| `backup.s3Region` | The AWS S3 region where backups are stored | `us-east-1` |
|
| `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.s3Bucket` | The S3 bucket used for storing backups | `s3.example.org/postgres-backups` |
|
||||||
| `backup.schedule` | Cron schedule for automated backups | `0 2 * * *` |
|
| `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.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.s3AccessKey` | The access key for S3, used for authentication | `oobaiRus9pah8PhohL1ThaeTa4UVa7gu` |
|
||||||
| `backup.s3SecretKey` | The secret key for S3, used for authentication | `ju3eum4dekeich9ahM1te8waeGai0oog` |
|
| `backup.s3SecretKey` | The secret key for S3, used for authentication | `ju3eum4dekeich9ahM1te8waeGai0oog` |
|
||||||
| `backup.resticPassword` | The password for Restic backup encryption | `ChaXoveekoh6eigh4siesheeda2quai0` |
|
| `backup.resticPassword` | The password for Restic backup encryption | `ChaXoveekoh6eigh4siesheeda2quai0` |
|
||||||
| `resources` | Resources | `{}` |
|
| `resources` | Explicit CPU and memory configuration for each FerretDB replica. When left empty, the preset defined in `resourcesPreset` is applied. | `{}` |
|
||||||
| `resourcesPreset` | Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge) | `nano` |
|
| `resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge. | `nano` |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Parameter examples and reference
|
||||||
|
|
||||||
|
### resources and resourcesPreset
|
||||||
|
|
||||||
|
`resources` sets explicit CPU and memory configurations for each replica.
|
||||||
|
When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
resources:
|
||||||
|
cpu: 4000m
|
||||||
|
memory: 4Gi
|
||||||
|
```
|
||||||
|
|
||||||
|
`resourcesPreset` sets named CPU and memory configurations for each replica.
|
||||||
|
This setting is ignored if the corresponding `resources` value is set.
|
||||||
|
|
||||||
|
| Preset name | CPU | memory |
|
||||||
|
|-------------|--------|---------|
|
||||||
|
| `nano` | `250m` | `128Mi` |
|
||||||
|
| `micro` | `500m` | `256Mi` |
|
||||||
|
| `small` | `1` | `512Mi` |
|
||||||
|
| `medium` | `1` | `1Gi` |
|
||||||
|
| `large` | `3` | `2Gi` |
|
||||||
|
| `xlarge` | `4` | `4Gi` |
|
||||||
|
| `2xlarge` | `8` | `8Gi` |
|
||||||
|
|||||||
@@ -18,11 +18,7 @@ spec:
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
minSyncReplicas: {{ .Values.quorum.minSyncReplicas }}
|
minSyncReplicas: {{ .Values.quorum.minSyncReplicas }}
|
||||||
maxSyncReplicas: {{ .Values.quorum.maxSyncReplicas }}
|
maxSyncReplicas: {{ .Values.quorum.maxSyncReplicas }}
|
||||||
{{- if .Values.resources }}
|
resources: {{- include "cozy-lib.resources.defaultingSanitize" (list .Values.resourcesPreset .Values.resources $) | nindent 4 }}
|
||||||
resources: {{- include "cozy-lib.resources.sanitize" (list .Values.resources $) | nindent 4 }}
|
|
||||||
{{- else if ne .Values.resourcesPreset "none" }}
|
|
||||||
resources: {{- include "cozy-lib.resources.preset" (list .Values.resourcesPreset $) | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
monitoring:
|
monitoring:
|
||||||
enablePodMonitor: true
|
enablePodMonitor: true
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
},
|
},
|
||||||
"replicas": {
|
"replicas": {
|
||||||
"type": "number",
|
"type": "number",
|
||||||
"description": "Number of Postgres replicas",
|
"description": "Number of replicas",
|
||||||
"default": 2
|
"default": 2
|
||||||
},
|
},
|
||||||
"storageClass": {
|
"storageClass": {
|
||||||
@@ -27,12 +27,12 @@
|
|||||||
"properties": {
|
"properties": {
|
||||||
"minSyncReplicas": {
|
"minSyncReplicas": {
|
||||||
"type": "number",
|
"type": "number",
|
||||||
"description": "Minimum number of synchronous replicas that must acknowledge a transaction before it is considered committed.",
|
"description": "Minimum number of synchronous replicas that must acknowledge a transaction before it is considered committed",
|
||||||
"default": 0
|
"default": 0
|
||||||
},
|
},
|
||||||
"maxSyncReplicas": {
|
"maxSyncReplicas": {
|
||||||
"type": "number",
|
"type": "number",
|
||||||
"description": "Maximum number of synchronous replicas that can acknowledge a transaction (must be lower than the number of instances).",
|
"description": "Maximum number of synchronous replicas that can acknowledge a transaction (must be lower than the total number of replicas)",
|
||||||
"default": 0
|
"default": 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
"properties": {
|
"properties": {
|
||||||
"enabled": {
|
"enabled": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Enable pereiodic backups",
|
"description": "Enable periodic backups",
|
||||||
"default": false
|
"default": false
|
||||||
},
|
},
|
||||||
"s3Region": {
|
"s3Region": {
|
||||||
@@ -84,13 +84,23 @@
|
|||||||
},
|
},
|
||||||
"resources": {
|
"resources": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"description": "Resources",
|
"description": "Explicit CPU and memory configuration for each FerretDB replica. When left empty, the preset defined in `resourcesPreset` is applied.",
|
||||||
"default": {}
|
"default": {}
|
||||||
},
|
},
|
||||||
"resourcesPreset": {
|
"resourcesPreset": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)",
|
"description": "Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.",
|
||||||
"default": "nano"
|
"default": "nano",
|
||||||
|
"enum": [
|
||||||
|
"none",
|
||||||
|
"nano",
|
||||||
|
"micro",
|
||||||
|
"small",
|
||||||
|
"medium",
|
||||||
|
"large",
|
||||||
|
"xlarge",
|
||||||
|
"2xlarge"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## @param external Enable external access from outside the cluster
|
## @param external Enable external access from outside the cluster
|
||||||
## @param size Persistent Volume size
|
## @param size Persistent Volume size
|
||||||
## @param replicas Number of Postgres replicas
|
## @param replicas Number of replicas
|
||||||
## @param storageClass StorageClass used to store the data
|
## @param storageClass StorageClass used to store the data
|
||||||
##
|
##
|
||||||
external: false
|
external: false
|
||||||
@@ -11,8 +11,8 @@ replicas: 2
|
|||||||
storageClass: ""
|
storageClass: ""
|
||||||
|
|
||||||
## Configuration for the quorum-based synchronous replication
|
## Configuration for the quorum-based synchronous replication
|
||||||
## @param quorum.minSyncReplicas Minimum number of synchronous replicas that must acknowledge a transaction before it is considered committed.
|
## @param quorum.minSyncReplicas Minimum number of synchronous replicas that must acknowledge a transaction before it is considered committed
|
||||||
## @param quorum.maxSyncReplicas Maximum number of synchronous replicas that can acknowledge a transaction (must be lower than the number of instances).
|
## @param quorum.maxSyncReplicas Maximum number of synchronous replicas that can acknowledge a transaction (must be lower than the total number of replicas)
|
||||||
quorum:
|
quorum:
|
||||||
minSyncReplicas: 0
|
minSyncReplicas: 0
|
||||||
maxSyncReplicas: 0
|
maxSyncReplicas: 0
|
||||||
@@ -31,7 +31,7 @@ users: {}
|
|||||||
|
|
||||||
## @section Backup parameters
|
## @section Backup parameters
|
||||||
|
|
||||||
## @param backup.enabled Enable pereiodic backups
|
## @param backup.enabled Enable periodic backups
|
||||||
## @param backup.s3Region The AWS S3 region where backups are stored
|
## @param backup.s3Region The AWS S3 region where backups are stored
|
||||||
## @param backup.s3Bucket The S3 bucket used for storing backups
|
## @param backup.s3Bucket The S3 bucket used for storing backups
|
||||||
## @param backup.schedule Cron schedule for automated backups
|
## @param backup.schedule Cron schedule for automated backups
|
||||||
@@ -49,11 +49,11 @@ backup:
|
|||||||
s3SecretKey: ju3eum4dekeich9ahM1te8waeGai0oog
|
s3SecretKey: ju3eum4dekeich9ahM1te8waeGai0oog
|
||||||
resticPassword: ChaXoveekoh6eigh4siesheeda2quai0
|
resticPassword: ChaXoveekoh6eigh4siesheeda2quai0
|
||||||
|
|
||||||
## @param resources Resources
|
## @param resources Explicit CPU and memory configuration for each FerretDB replica. When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
resources: {}
|
resources: {}
|
||||||
# resources:
|
# resources:
|
||||||
# cpu: 4000m
|
# cpu: 4000m
|
||||||
# memory: 4Gi
|
# memory: 4Gi
|
||||||
|
|
||||||
## @param resourcesPreset Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)
|
## @param resourcesPreset Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.
|
||||||
resourcesPreset: "nano"
|
resourcesPreset: "nano"
|
||||||
|
|||||||
@@ -16,7 +16,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.5.2
|
version: 0.6.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
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ image-nginx:
|
|||||||
|
|
||||||
generate:
|
generate:
|
||||||
readme-generator -v values.yaml -s values.schema.json -r README.md
|
readme-generator -v values.yaml -s values.schema.json -r README.md
|
||||||
|
yq -i -o json --indent 4 '.properties.haproxy.properties.resourcesPreset.enum = ["none", "nano", "micro", "small", "medium", "large", "xlarge", "2xlarge"]' values.schema.json
|
||||||
|
yq -i -o json --indent 4 '.properties.nginx.properties.resourcesPreset.enum = ["none", "nano", "micro", "small", "medium", "large", "xlarge", "2xlarge"]' values.schema.json
|
||||||
|
|
||||||
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}') && \
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
# Managed Nginx Caching Service
|
# Managed Nginx-based HTTP Cache Service
|
||||||
|
|
||||||
The Nginx Caching Service is designed to optimize web traffic and enhance web application performance. This service combines custom-built Nginx instances with HAproxy for efficient caching and load balancing.
|
The Nginx-based HTTP caching service is designed to optimize web traffic and enhance web application performance.
|
||||||
|
This service combines custom-built Nginx instances with HAProxy for efficient caching and load balancing.
|
||||||
|
|
||||||
## Deployment infromation
|
## Deployment information
|
||||||
|
|
||||||
The Nginx instances include the following modules and features:
|
The Nginx instances include the following modules and features:
|
||||||
|
|
||||||
@@ -53,27 +54,67 @@ The deployment architecture is illustrated in the diagram below:
|
|||||||
|
|
||||||
## Known issues
|
## Known issues
|
||||||
|
|
||||||
VTS module shows wrong upstream resonse time
|
- VTS module shows wrong upstream response time, [github.com/vozlt/nginx-module-vts#198](https://github.com/vozlt/nginx-module-vts/issues/198)
|
||||||
- https://github.com/vozlt/nginx-module-vts/issues/198
|
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
### Common parameters
|
### Common parameters
|
||||||
|
|
||||||
| Name | Description | Value |
|
| Name | Description | Value |
|
||||||
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------- |
|
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ------- |
|
||||||
| `external` | Enable external access from outside the cluster | `false` |
|
| `external` | Enable external access from outside the cluster | `false` |
|
||||||
| `size` | Persistent Volume size | `10Gi` |
|
| `size` | Persistent Volume size | `10Gi` |
|
||||||
| `storageClass` | StorageClass used to store the data | `""` |
|
| `storageClass` | StorageClass used to store the data | `""` |
|
||||||
| `haproxy.replicas` | Number of HAProxy replicas | `2` |
|
| `haproxy.replicas` | Number of HAProxy replicas | `2` |
|
||||||
| `nginx.replicas` | Number of Nginx replicas | `2` |
|
| `nginx.replicas` | Number of Nginx replicas | `2` |
|
||||||
| `haproxy.resources` | | `{}` |
|
| `haproxy.resources` | Explicit CPU and memory configuration for each HAProxy replica. When left empty, the preset defined in `resourcesPreset` is applied. | `{}` |
|
||||||
| `haproxy.resourcesPreset` | Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge) | `nano` |
|
| `haproxy.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge. | `nano` |
|
||||||
| `nginx.resources` | Resources | `{}` |
|
| `nginx.resources` | Explicit CPU and memory configuration for each nginx replica. When left empty, the preset defined in `resourcesPreset` is applied. | `{}` |
|
||||||
| `nginx.resourcesPreset` | Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge) | `nano` |
|
| `nginx.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge. | `nano` |
|
||||||
|
|
||||||
### Configuration parameters
|
### Configuration parameters
|
||||||
|
|
||||||
| Name | Description | Value |
|
| Name | Description | Value |
|
||||||
| ----------- | ----------------------- | ----- |
|
| ----------- | ----------------------- | ----- |
|
||||||
| `endpoints` | Endpoints configuration | `[]` |
|
| `endpoints` | Endpoints configuration | `[]` |
|
||||||
|
|
||||||
|
## Parameter examples and reference
|
||||||
|
|
||||||
|
### resources and resourcesPreset
|
||||||
|
|
||||||
|
`resources` sets explicit CPU and memory configurations for each replica.
|
||||||
|
When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
resources:
|
||||||
|
cpu: 4000m
|
||||||
|
memory: 4Gi
|
||||||
|
```
|
||||||
|
|
||||||
|
`resourcesPreset` sets named CPU and memory configurations for each replica.
|
||||||
|
This setting is ignored if the corresponding `resources` value is set.
|
||||||
|
|
||||||
|
| Preset name | CPU | memory |
|
||||||
|
|-------------|--------|---------|
|
||||||
|
| `nano` | `250m` | `128Mi` |
|
||||||
|
| `micro` | `500m` | `256Mi` |
|
||||||
|
| `small` | `1` | `512Mi` |
|
||||||
|
| `medium` | `1` | `1Gi` |
|
||||||
|
| `large` | `3` | `2Gi` |
|
||||||
|
| `xlarge` | `4` | `4Gi` |
|
||||||
|
| `2xlarge` | `8` | `8Gi` |
|
||||||
|
|
||||||
|
|
||||||
|
### endpoints
|
||||||
|
|
||||||
|
`endpoints` is a flat list of IP addresses:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
ghcr.io/cozystack/cozystack/nginx-cache:0.5.2@sha256:e0a07082bb6fc6aeaae2315f335386f1705a646c72f9e0af512aebbca5cb2b15
|
ghcr.io/cozystack/cozystack/nginx-cache:0.6.0@sha256:b7633717cd7449c0042ae92d8ca9b36e4d69566561f5c7d44e21058e7d05c6d5
|
||||||
|
|||||||
@@ -33,11 +33,7 @@ spec:
|
|||||||
containers:
|
containers:
|
||||||
- image: haproxy:latest
|
- image: haproxy:latest
|
||||||
name: haproxy
|
name: haproxy
|
||||||
{{- if .Values.haproxy.resources }}
|
resources: {{- include "cozy-lib.resources.defaultingSanitize" (list .Values.haproxy.resourcesPreset .Values.haproxy.resources $) | nindent 10 }}
|
||||||
resources: {{- include "cozy-lib.resources.sanitize" (list .Values.haproxy.resources $) | nindent 10 }}
|
|
||||||
{{- else if ne .Values.haproxy.resourcesPreset "none" }}
|
|
||||||
resources: {{- include "cozy-lib.resources.preset" (list .Values.haproxy.resourcesPreset $) | nindent 10 }}
|
|
||||||
{{- end }}
|
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8080
|
- containerPort: 8080
|
||||||
name: http
|
name: http
|
||||||
|
|||||||
@@ -52,11 +52,7 @@ spec:
|
|||||||
shareProcessNamespace: true
|
shareProcessNamespace: true
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
{{- if $.Values.nginx.resources }}
|
resources: {{- include "cozy-lib.resources.defaultingSanitize" (list $.Values.nginx.resourcesPreset $.Values.nginx.resources $) | nindent 10 }}
|
||||||
resources: {{- include "cozy-lib.resources.sanitize" (list $.Values.nginx.resources $) | nindent 10 }}
|
|
||||||
{{- else if ne $.Values.nginx.resourcesPreset "none" }}
|
|
||||||
resources: {{- include "cozy-lib.resources.preset" (list $.Values.nginx.resourcesPreset $) | nindent 10 }}
|
|
||||||
{{- end }}
|
|
||||||
image: "{{ $.Files.Get "images/nginx-cache.tag" | trim }}"
|
image: "{{ $.Files.Get "images/nginx-cache.tag" | trim }}"
|
||||||
readinessProbe:
|
readinessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
|
|||||||
@@ -27,13 +27,23 @@
|
|||||||
},
|
},
|
||||||
"resources": {
|
"resources": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"description": "",
|
"description": "Explicit CPU and memory configuration for each HAProxy replica. When left empty, the preset defined in `resourcesPreset` is applied.",
|
||||||
"default": {}
|
"default": {}
|
||||||
},
|
},
|
||||||
"resourcesPreset": {
|
"resourcesPreset": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)",
|
"description": "Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.",
|
||||||
"default": "nano"
|
"default": "nano",
|
||||||
|
"enum": [
|
||||||
|
"none",
|
||||||
|
"nano",
|
||||||
|
"micro",
|
||||||
|
"small",
|
||||||
|
"medium",
|
||||||
|
"large",
|
||||||
|
"xlarge",
|
||||||
|
"2xlarge"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -47,13 +57,23 @@
|
|||||||
},
|
},
|
||||||
"resources": {
|
"resources": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"description": "Resources",
|
"description": "Explicit CPU and memory configuration for each nginx replica. When left empty, the preset defined in `resourcesPreset` is applied.",
|
||||||
"default": {}
|
"default": {}
|
||||||
},
|
},
|
||||||
"resourcesPreset": {
|
"resourcesPreset": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)",
|
"description": "Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.",
|
||||||
"default": "nano"
|
"default": "nano",
|
||||||
|
"enum": [
|
||||||
|
"none",
|
||||||
|
"nano",
|
||||||
|
"micro",
|
||||||
|
"small",
|
||||||
|
"medium",
|
||||||
|
"large",
|
||||||
|
"xlarge",
|
||||||
|
"2xlarge"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -64,4 +84,4 @@
|
|||||||
"items": {}
|
"items": {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,23 +12,23 @@ size: 10Gi
|
|||||||
storageClass: ""
|
storageClass: ""
|
||||||
haproxy:
|
haproxy:
|
||||||
replicas: 2
|
replicas: 2
|
||||||
## @param haproxy.resources
|
## @param haproxy.resources Explicit CPU and memory configuration for each HAProxy replica. When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
resources: {}
|
resources: {}
|
||||||
# resources:
|
# resources:
|
||||||
# cpu: 4000m
|
# cpu: 4000m
|
||||||
# memory: 4Gi
|
# memory: 4Gi
|
||||||
|
|
||||||
## @param haproxy.resourcesPreset Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)
|
## @param haproxy.resourcesPreset Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.
|
||||||
resourcesPreset: "nano"
|
resourcesPreset: "nano"
|
||||||
nginx:
|
nginx:
|
||||||
replicas: 2
|
replicas: 2
|
||||||
## @param nginx.resources Resources
|
## @param nginx.resources Explicit CPU and memory configuration for each nginx replica. When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
resources: {}
|
resources: {}
|
||||||
# resources:
|
# resources:
|
||||||
# cpu: 4000m
|
# cpu: 4000m
|
||||||
# memory: 4Gi
|
# memory: 4Gi
|
||||||
|
|
||||||
## @param nginx.resourcesPreset Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)
|
## @param nginx.resourcesPreset Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.
|
||||||
resourcesPreset: "nano"
|
resourcesPreset: "nano"
|
||||||
|
|
||||||
## @section Configuration parameters
|
## @section Configuration parameters
|
||||||
|
|||||||
@@ -16,7 +16,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.7.1
|
version: 0.8.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
|
||||||
|
|||||||
@@ -2,3 +2,5 @@ include ../../../scripts/package.mk
|
|||||||
|
|
||||||
generate:
|
generate:
|
||||||
readme-generator -v values.yaml -s values.schema.json -r README.md
|
readme-generator -v values.yaml -s values.schema.json -r README.md
|
||||||
|
yq -i -o json --indent 4 '.properties.kafka.properties.resourcesPreset.enum = ["none", "nano", "micro", "small", "medium", "large", "xlarge", "2xlarge"]' values.schema.json
|
||||||
|
yq -i -o json --indent 4 '.properties.zookeeper.properties.resourcesPreset.enum = ["none", "nano", "micro", "small", "medium", "large", "xlarge", "2xlarge"]' values.schema.json
|
||||||
|
|||||||
@@ -4,22 +4,67 @@
|
|||||||
|
|
||||||
### Common parameters
|
### Common parameters
|
||||||
|
|
||||||
| Name | Description | Value |
|
| Name | Description | Value |
|
||||||
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------- |
|
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | ------- |
|
||||||
| `external` | Enable external access from outside the cluster | `false` |
|
| `external` | Enable external access from outside the cluster | `false` |
|
||||||
| `kafka.size` | Persistent Volume size for Kafka | `10Gi` |
|
| `kafka.size` | Persistent Volume size for Kafka | `10Gi` |
|
||||||
| `kafka.replicas` | Number of Kafka replicas | `3` |
|
| `kafka.replicas` | Number of Kafka replicas | `3` |
|
||||||
| `kafka.storageClass` | StorageClass used to store the Kafka data | `""` |
|
| `kafka.storageClass` | StorageClass used to store the Kafka data | `""` |
|
||||||
| `zookeeper.size` | Persistent Volume size for ZooKeeper | `5Gi` |
|
| `zookeeper.size` | Persistent Volume size for ZooKeeper | `5Gi` |
|
||||||
| `zookeeper.replicas` | Number of ZooKeeper replicas | `3` |
|
| `zookeeper.replicas` | Number of ZooKeeper replicas | `3` |
|
||||||
| `zookeeper.storageClass` | StorageClass used to store the ZooKeeper data | `""` |
|
| `zookeeper.storageClass` | StorageClass used to store the ZooKeeper data | `""` |
|
||||||
| `kafka.resources` | Resources | `{}` |
|
| `kafka.resources` | Explicit CPU and memory configuration for each Kafka replica. When left empty, the preset defined in `resourcesPreset` is applied. | `{}` |
|
||||||
| `kafka.resourcesPreset` | Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge) | `small` |
|
| `kafka.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge. | `small` |
|
||||||
| `zookeeper.resources` | Resources | `{}` |
|
| `zookeeper.resources` | Explicit CPU and memory configuration for each Zookeeper replica. When left empty, the preset defined in `resourcesPreset` is applied. | `{}` |
|
||||||
| `zookeeper.resourcesPreset` | Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge) | `small` |
|
| `zookeeper.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge. | `small` |
|
||||||
|
|
||||||
### Configuration parameters
|
### Configuration parameters
|
||||||
|
|
||||||
| Name | Description | Value |
|
| Name | Description | Value |
|
||||||
| -------- | -------------------- | ----- |
|
| -------- | -------------------- | ----- |
|
||||||
| `topics` | Topics configuration | `[]` |
|
| `topics` | Topics configuration | `[]` |
|
||||||
|
|
||||||
|
## Parameter examples and reference
|
||||||
|
|
||||||
|
### resources and resourcesPreset
|
||||||
|
|
||||||
|
`resources` sets explicit CPU and memory configurations for each replica.
|
||||||
|
When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
resources:
|
||||||
|
cpu: 4000m
|
||||||
|
memory: 4Gi
|
||||||
|
```
|
||||||
|
|
||||||
|
`resourcesPreset` sets named CPU and memory configurations for each replica.
|
||||||
|
This setting is ignored if the corresponding `resources` value is set.
|
||||||
|
|
||||||
|
| Preset name | CPU | memory |
|
||||||
|
|-------------|--------|---------|
|
||||||
|
| `nano` | `250m` | `128Mi` |
|
||||||
|
| `micro` | `500m` | `256Mi` |
|
||||||
|
| `small` | `1` | `512Mi` |
|
||||||
|
| `medium` | `1` | `1Gi` |
|
||||||
|
| `large` | `3` | `2Gi` |
|
||||||
|
| `xlarge` | `4` | `4Gi` |
|
||||||
|
| `2xlarge` | `8` | `8Gi` |
|
||||||
|
|
||||||
|
### topics
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
topics:
|
||||||
|
- name: Results
|
||||||
|
partitions: 1
|
||||||
|
replicas: 3
|
||||||
|
config:
|
||||||
|
min.insync.replicas: 2
|
||||||
|
- name: Orders
|
||||||
|
config:
|
||||||
|
cleanup.policy: compact
|
||||||
|
segment.ms: 3600000
|
||||||
|
max.compaction.lag.ms: 5400000
|
||||||
|
min.insync.replicas: 2
|
||||||
|
partitions: 1
|
||||||
|
replicas: 3
|
||||||
|
```
|
||||||
|
|||||||
@@ -8,11 +8,7 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
kafka:
|
kafka:
|
||||||
replicas: {{ .Values.kafka.replicas }}
|
replicas: {{ .Values.kafka.replicas }}
|
||||||
{{- if .Values.kafka.resources }}
|
resources: {{- include "cozy-lib.resources.defaultingSanitize" (list .Values.kafka.resourcesPreset .Values.kafka.resources $) | nindent 6 }}
|
||||||
resources: {{- include "cozy-lib.resources.sanitize" (list .Values.kafka.resources $) | nindent 6 }}
|
|
||||||
{{- else if ne .Values.kafka.resourcesPreset "none" }}
|
|
||||||
resources: {{- include "cozy-lib.resources.preset" (list .Values.kafka.resourcesPreset $) | nindent 6 }}
|
|
||||||
{{- end }}
|
|
||||||
listeners:
|
listeners:
|
||||||
- name: plain
|
- name: plain
|
||||||
port: 9092
|
port: 9092
|
||||||
@@ -70,11 +66,7 @@ spec:
|
|||||||
key: kafka-metrics-config.yml
|
key: kafka-metrics-config.yml
|
||||||
zookeeper:
|
zookeeper:
|
||||||
replicas: {{ .Values.zookeeper.replicas }}
|
replicas: {{ .Values.zookeeper.replicas }}
|
||||||
{{- if .Values.zookeeper.resources }}
|
resources: {{- include "cozy-lib.resources.defaultingSanitize" (list .Values.zookeeper.resourcesPreset .Values.zookeeper.resources $) | nindent 6 }}
|
||||||
resources: {{- include "cozy-lib.resources.sanitize" (list .Values.zookeeper.resources $) | nindent 6 }}
|
|
||||||
{{- else if ne .Values.zookeeper.resourcesPreset "none" }}
|
|
||||||
resources: {{- include "cozy-lib.resources.preset" (list .Values.zookeeper.resourcesPreset $) | nindent 6 }}
|
|
||||||
{{- end }}
|
|
||||||
storage:
|
storage:
|
||||||
type: persistent-claim
|
type: persistent-claim
|
||||||
{{- with .Values.zookeeper.size }}
|
{{- with .Values.zookeeper.size }}
|
||||||
|
|||||||
@@ -27,13 +27,23 @@
|
|||||||
},
|
},
|
||||||
"resources": {
|
"resources": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"description": "Resources",
|
"description": "Explicit CPU and memory configuration for each Kafka replica. When left empty, the preset defined in `resourcesPreset` is applied.",
|
||||||
"default": {}
|
"default": {}
|
||||||
},
|
},
|
||||||
"resourcesPreset": {
|
"resourcesPreset": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)",
|
"description": "Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.",
|
||||||
"default": "small"
|
"default": "small",
|
||||||
|
"enum": [
|
||||||
|
"none",
|
||||||
|
"nano",
|
||||||
|
"micro",
|
||||||
|
"small",
|
||||||
|
"medium",
|
||||||
|
"large",
|
||||||
|
"xlarge",
|
||||||
|
"2xlarge"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -57,13 +67,23 @@
|
|||||||
},
|
},
|
||||||
"resources": {
|
"resources": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"description": "Resources",
|
"description": "Explicit CPU and memory configuration for each Zookeeper replica. When left empty, the preset defined in `resourcesPreset` is applied.",
|
||||||
"default": {}
|
"default": {}
|
||||||
},
|
},
|
||||||
"resourcesPreset": {
|
"resourcesPreset": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)",
|
"description": "Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.",
|
||||||
"default": "small"
|
"default": "small",
|
||||||
|
"enum": [
|
||||||
|
"none",
|
||||||
|
"nano",
|
||||||
|
"micro",
|
||||||
|
"small",
|
||||||
|
"medium",
|
||||||
|
"large",
|
||||||
|
"xlarge",
|
||||||
|
"2xlarge"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -74,4 +94,4 @@
|
|||||||
"items": {}
|
"items": {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,26 +14,24 @@ kafka:
|
|||||||
size: 10Gi
|
size: 10Gi
|
||||||
replicas: 3
|
replicas: 3
|
||||||
storageClass: ""
|
storageClass: ""
|
||||||
## @param kafka.resources Resources
|
## @param kafka.resources Explicit CPU and memory configuration for each Kafka replica. When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
resources: {}
|
resources: {}
|
||||||
# resources:
|
# resources:
|
||||||
# cpu: 4000m
|
# cpu: 4000m
|
||||||
# memory: 4Gi
|
# memory: 4Gi
|
||||||
|
## @param kafka.resourcesPreset Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.
|
||||||
## @param kafka.resourcesPreset Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)
|
|
||||||
resourcesPreset: "small"
|
resourcesPreset: "small"
|
||||||
|
|
||||||
zookeeper:
|
zookeeper:
|
||||||
size: 5Gi
|
size: 5Gi
|
||||||
replicas: 3
|
replicas: 3
|
||||||
storageClass: ""
|
storageClass: ""
|
||||||
## @param zookeeper.resources Resources
|
## @param zookeeper.resources Explicit CPU and memory configuration for each Zookeeper replica. When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
resources: {}
|
resources: {}
|
||||||
# resources:
|
# resources:
|
||||||
# cpu: 4000m
|
# cpu: 4000m
|
||||||
# memory: 4Gi
|
# memory: 4Gi
|
||||||
|
## @param zookeeper.resourcesPreset Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.
|
||||||
## @param zookeeper.resourcesPreset Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)
|
|
||||||
resourcesPreset: "small"
|
resourcesPreset: "small"
|
||||||
|
|
||||||
## @section Configuration parameters
|
## @section Configuration parameters
|
||||||
|
|||||||
@@ -16,7 +16,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.24.2
|
version: 0.25.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
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ include ../../../scripts/package.mk
|
|||||||
|
|
||||||
generate:
|
generate:
|
||||||
readme-generator -v values.yaml -s values.schema.json -r README.md
|
readme-generator -v values.yaml -s values.schema.json -r README.md
|
||||||
|
yq -o json -i '.properties.addons.properties.ingressNginx.properties.exposeMethod.enum = ["Proxied","LoadBalancer"]' values.schema.json
|
||||||
yq -o json -i '.properties.controlPlane.properties.apiServer.properties.resourcesPreset.enum = ["none","nano","micro","small","medium","large","xlarge","2xlarge"]' values.schema.json
|
yq -o json -i '.properties.controlPlane.properties.apiServer.properties.resourcesPreset.enum = ["none","nano","micro","small","medium","large","xlarge","2xlarge"]' values.schema.json
|
||||||
yq -o json -i '.properties.controlPlane.properties.controllerManager.properties.resourcesPreset.enum = ["none","nano","micro","small","medium","large","xlarge","2xlarge"]' values.schema.json
|
yq -o json -i '.properties.controlPlane.properties.controllerManager.properties.resourcesPreset.enum = ["none","nano","micro","small","medium","large","xlarge","2xlarge"]' values.schema.json
|
||||||
yq -o json -i '.properties.controlPlane.properties.scheduler.properties.resourcesPreset.enum = ["none","nano","micro","small","medium","large","xlarge","2xlarge"]' values.schema.json
|
yq -o json -i '.properties.controlPlane.properties.scheduler.properties.resourcesPreset.enum = ["none","nano","micro","small","medium","large","xlarge","2xlarge"]' values.schema.json
|
||||||
|
|||||||
@@ -90,53 +90,65 @@ See the reference for components utilized in this service:
|
|||||||
|
|
||||||
### Cluster Addons
|
### Cluster Addons
|
||||||
|
|
||||||
| Name | Description | Value |
|
| Name | Description | Value |
|
||||||
| --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
|
| --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- |
|
||||||
| `addons.certManager.enabled` | Enable cert-manager, which automatically creates and manages SSL/TLS certificates. | `false` |
|
| `addons.certManager.enabled` | Enable cert-manager, which automatically creates and manages SSL/TLS certificates. | `false` |
|
||||||
| `addons.certManager.valuesOverride` | Custom values to override | `{}` |
|
| `addons.certManager.valuesOverride` | Custom values to override | `{}` |
|
||||||
| `addons.cilium.valuesOverride` | Custom values to override | `{}` |
|
| `addons.cilium.valuesOverride` | Custom values to override | `{}` |
|
||||||
| `addons.gatewayAPI.enabled` | Enable the Gateway API | `false` |
|
| `addons.gatewayAPI.enabled` | Enable the Gateway API | `false` |
|
||||||
| `addons.ingressNginx.enabled` | Enable the Ingress-NGINX controller (requires nodes labeled with the 'ingress-nginx' role). | `false` |
|
| `addons.ingressNginx.enabled` | Enable the Ingress-NGINX controller (requires nodes labeled with the 'ingress-nginx' role). | `false` |
|
||||||
| `addons.ingressNginx.valuesOverride` | Custom values to override | `{}` |
|
| `addons.ingressNginx.valuesOverride` | Custom values to override | `{}` |
|
||||||
| `addons.ingressNginx.hosts` | List of domain names that the parent cluster should route to this tenant cluster. | `[]` |
|
| `addons.ingressNginx.exposeMethod` | Method to expose the Ingress-NGINX controller. (allowed values: Proxied, LoadBalancer) | `Proxied` |
|
||||||
| `addons.gpuOperator.enabled` | Enable the GPU-operator | `false` |
|
| `addons.ingressNginx.hosts` | List of domain names that the parent cluster should route to this tenant cluster. Taken into account only when `exposeMethod` is set to `Proxied`. | `[]` |
|
||||||
| `addons.gpuOperator.valuesOverride` | Custom values to override | `{}` |
|
| `addons.gpuOperator.enabled` | Enable the GPU-operator | `false` |
|
||||||
| `addons.fluxcd.enabled` | Enable FluxCD | `false` |
|
| `addons.gpuOperator.valuesOverride` | Custom values to override | `{}` |
|
||||||
| `addons.fluxcd.valuesOverride` | Custom values to override | `{}` |
|
| `addons.fluxcd.enabled` | Enable FluxCD | `false` |
|
||||||
| `addons.monitoringAgents.enabled` | Enable monitoring agents (Fluent Bit and VMAgents) to send logs and metrics. If tenant monitoring is enabled, data is sent to tenant storage; otherwise, it goes to root storage. | `false` |
|
| `addons.fluxcd.valuesOverride` | Custom values to override | `{}` |
|
||||||
| `addons.monitoringAgents.valuesOverride` | Custom values to override | `{}` |
|
| `addons.monitoringAgents.enabled` | Enable monitoring agents (Fluent Bit and VMAgents) to send logs and metrics. If tenant monitoring is enabled, data is sent to tenant storage; otherwise, it goes to root storage. | `false` |
|
||||||
| `addons.verticalPodAutoscaler.valuesOverride` | Custom values to override | `{}` |
|
| `addons.monitoringAgents.valuesOverride` | Custom values to override | `{}` |
|
||||||
|
| `addons.verticalPodAutoscaler.valuesOverride` | Custom values to override | `{}` |
|
||||||
|
| `addons.velero.enabled` | Enable velero for backup and restore k8s cluster. | `false` |
|
||||||
|
| `addons.velero.valuesOverride` | Custom values to override | `{}` |
|
||||||
|
|
||||||
### Kubernetes Control Plane Configuration
|
### Kubernetes Control Plane Configuration
|
||||||
|
|
||||||
| Name | Description | Value |
|
| Name | Description | Value |
|
||||||
| -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | -------- |
|
| -------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------- |
|
||||||
| `controlPlane.apiServer.resources` | Explicit CPU/memory resource requests and limits for the API server. | `{}` |
|
| `controlPlane.apiServer.resources` | Explicit CPU and memory configuration for the API Server. When left empty, the preset defined in `resourcesPreset` is applied. | `{}` |
|
||||||
| `controlPlane.apiServer.resourcesPreset` | Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge) | `medium` |
|
| `controlPlane.apiServer.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge. | `medium` |
|
||||||
| `controlPlane.controllerManager.resources` | Explicit CPU/memory resource requests and limits for the controller manager. | `{}` |
|
| `controlPlane.controllerManager.resources` | Explicit CPU and memory configuration for the Controller Manager. When left empty, the preset defined in `resourcesPreset` is applied. | `{}` |
|
||||||
| `controlPlane.controllerManager.resourcesPreset` | Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge) | `micro` |
|
| `controlPlane.controllerManager.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge. | `micro` |
|
||||||
| `controlPlane.scheduler.resources` | Explicit CPU/memory resource requests and limits for the scheduler. | `{}` |
|
| `controlPlane.scheduler.resources` | Explicit CPU and memory configuration for the Scheduler. When left empty, the preset defined in `resourcesPreset` is applied. | `{}` |
|
||||||
| `controlPlane.scheduler.resourcesPreset` | Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge) | `micro` |
|
| `controlPlane.scheduler.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge. | `micro` |
|
||||||
| `controlPlane.konnectivity.server.resources` | Explicit CPU/memory resource requests and limits for the Konnectivity. | `{}` |
|
| `controlPlane.konnectivity.server.resources` | Explicit CPU and memory configuration for Konnectivity. When left empty, the preset defined in `resourcesPreset` is applied. | `{}` |
|
||||||
| `controlPlane.konnectivity.server.resourcesPreset` | Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge) | `micro` |
|
| `controlPlane.konnectivity.server.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge. | `micro` |
|
||||||
|
|
||||||
In production environments, it's recommended to set `resources` explicitly.
|
|
||||||
Example of `controlPlane.*.resources`:
|
## Parameter examples and reference
|
||||||
|
|
||||||
|
### resources and resourcesPreset
|
||||||
|
|
||||||
|
`resources` sets explicit CPU and memory configurations for each replica.
|
||||||
|
When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
resources:
|
resources:
|
||||||
limits:
|
cpu: 4000m
|
||||||
cpu: 4000m
|
memory: 4Gi
|
||||||
memory: 4Gi
|
|
||||||
requests:
|
|
||||||
cpu: 100m
|
|
||||||
memory: 512Mi
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Allowed values for `controlPlane.*.resourcesPreset` are `none`, `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.
|
`resourcesPreset` sets named CPU and memory configurations for each replica.
|
||||||
This value is ignored if the corresponding `resources` value is set.
|
This setting is ignored if the corresponding `resources` value is set.
|
||||||
|
|
||||||
## Resources Reference
|
| Preset name | CPU | memory |
|
||||||
|
|-------------|--------|---------|
|
||||||
|
| `nano` | `250m` | `128Mi` |
|
||||||
|
| `micro` | `500m` | `256Mi` |
|
||||||
|
| `small` | `1` | `512Mi` |
|
||||||
|
| `medium` | `1` | `1Gi` |
|
||||||
|
| `large` | `3` | `2Gi` |
|
||||||
|
| `xlarge` | `4` | `4Gi` |
|
||||||
|
| `2xlarge` | `8` | `8Gi` |
|
||||||
|
|
||||||
### instanceType Resources
|
### instanceType Resources
|
||||||
|
|
||||||
@@ -300,4 +312,3 @@ Specific characteristics of this series are:
|
|||||||
workload.
|
workload.
|
||||||
- *vCPU-To-Memory Ratio (1:4)* - A vCPU-to-Memory ratio of 1:4 starting from
|
- *vCPU-To-Memory Ratio (1:4)* - A vCPU-to-Memory ratio of 1:4 starting from
|
||||||
the medium size.
|
the medium size.
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
ghcr.io/cozystack/cozystack/cluster-autoscaler:0.24.2@sha256:3a8170433e1632e5cc2b6d9db34d0605e8e6c63c158282c38450415e700e932e
|
ghcr.io/cozystack/cozystack/cluster-autoscaler:0.25.0@sha256:3a8170433e1632e5cc2b6d9db34d0605e8e6c63c158282c38450415e700e932e
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
ghcr.io/cozystack/cozystack/kubevirt-cloud-provider:0.24.2@sha256:b478952fab735f85c3ba15835012b1de8af5578b33a8a2670eaf532ffc17681e
|
ghcr.io/cozystack/cozystack/kubevirt-cloud-provider:0.25.0@sha256:412ed2b3c77249bd1b973e6dc9c87976d31863717fb66ba74ccda573af737eb1
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
ghcr.io/cozystack/cozystack/kubevirt-csi-driver:0.24.2@sha256:598ab20550dbf495717e8e123e6b626bb36298f88dde851664301d393ac06ca3
|
ghcr.io/cozystack/cozystack/kubevirt-csi-driver:0.25.0@sha256:445c2727b04ac68595b43c988ff17b3d69a7b22b0644fde3b10c65b47a7bc036
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ ARG builder_image=docker.io/library/golang:1.22.5
|
|||||||
FROM ${builder_image} AS builder
|
FROM ${builder_image} AS builder
|
||||||
RUN git clone https://github.com/kubevirt/csi-driver /src/kubevirt-csi-driver \
|
RUN git clone https://github.com/kubevirt/csi-driver /src/kubevirt-csi-driver \
|
||||||
&& cd /src/kubevirt-csi-driver \
|
&& cd /src/kubevirt-csi-driver \
|
||||||
&& git checkout 35836e0c8b68d9916d29a838ea60cdd3fc6199cf
|
&& git checkout a8d6605bc9997bcfda3fb9f1f82ba6445b4984cc
|
||||||
|
|
||||||
ARG TARGETOS
|
ARG TARGETOS
|
||||||
ARG TARGETARCH
|
ARG TARGETARCH
|
||||||
@@ -11,6 +11,7 @@ ENV GOOS=$TARGETOS
|
|||||||
ENV GOARCH=$TARGETARCH
|
ENV GOARCH=$TARGETARCH
|
||||||
|
|
||||||
WORKDIR /src/kubevirt-csi-driver
|
WORKDIR /src/kubevirt-csi-driver
|
||||||
|
|
||||||
RUN make build
|
RUN make build
|
||||||
|
|
||||||
FROM quay.io/centos/centos:stream9
|
FROM quay.io/centos/centos:stream9
|
||||||
|
|||||||
@@ -120,23 +120,11 @@ metadata:
|
|||||||
kamaji.clastix.io/kubeconfig-secret-key: "super-admin.svc"
|
kamaji.clastix.io/kubeconfig-secret-key: "super-admin.svc"
|
||||||
spec:
|
spec:
|
||||||
apiServer:
|
apiServer:
|
||||||
{{- if .Values.controlPlane.apiServer.resources }}
|
resources: {{- include "cozy-lib.resources.defaultingSanitize" (list .Values.controlPlane.apiServer.resourcesPreset .Values.controlPlane.apiServer.resources $) | nindent 6 }}
|
||||||
resources: {{- include "cozy-lib.resources.sanitize" (list .Values.controlPlane.apiServer.resources $) | nindent 6 }}
|
|
||||||
{{- else if ne .Values.controlPlane.apiServer.resourcesPreset "none" }}
|
|
||||||
resources: {{- include "cozy-lib.resources.preset" (list .Values.controlPlane.apiServer.resourcesPreset $) | nindent 6 }}
|
|
||||||
{{- end }}
|
|
||||||
controllerManager:
|
controllerManager:
|
||||||
{{- if .Values.controlPlane.controllerManager.resources }}
|
resources: {{- include "cozy-lib.resources.defaultingSanitize" (list .Values.controlPlane.controllerManager.resourcesPreset .Values.controlPlane.controllerManager.resources $) | nindent 6 }}
|
||||||
resources: {{- include "cozy-lib.resources.sanitize" (list .Values.controlPlane.controllerManager.resources $) | nindent 6 }}
|
|
||||||
{{- else if ne .Values.controlPlane.controllerManager.resourcesPreset "none" }}
|
|
||||||
resources: {{- include "cozy-lib.resources.preset" (list .Values.controlPlane.controllerManager.resourcesPreset $) | nindent 6 }}
|
|
||||||
{{- end }}
|
|
||||||
scheduler:
|
scheduler:
|
||||||
{{- if .Values.controlPlane.scheduler.resources }}
|
resources: {{- include "cozy-lib.resources.defaultingSanitize" (list .Values.controlPlane.scheduler.resourcesPreset .Values.controlPlane.scheduler.resources $) | nindent 6 }}
|
||||||
resources: {{- include "cozy-lib.resources.sanitize" (list .Values.controlPlane.scheduler.resources $) | nindent 6 }}
|
|
||||||
{{- else if ne .Values.controlPlane.scheduler.resourcesPreset "none" }}
|
|
||||||
resources: {{- include "cozy-lib.resources.preset" (list .Values.controlPlane.scheduler.resourcesPreset $) | nindent 6 }}
|
|
||||||
{{- end }}
|
|
||||||
dataStoreName: "{{ $etcd }}"
|
dataStoreName: "{{ $etcd }}"
|
||||||
addons:
|
addons:
|
||||||
coreDNS:
|
coreDNS:
|
||||||
@@ -145,11 +133,7 @@ spec:
|
|||||||
konnectivity:
|
konnectivity:
|
||||||
server:
|
server:
|
||||||
port: 8132
|
port: 8132
|
||||||
{{- if .Values.controlPlane.konnectivity.server.resources }}
|
resources: {{- include "cozy-lib.resources.defaultingSanitize" (list .Values.controlPlane.konnectivity.server.resourcesPreset .Values.controlPlane.konnectivity.server.resources $) | nindent 10 }}
|
||||||
resources: {{- include "cozy-lib.resources.sanitize" (list .Values.controlPlane.konnectivity.server.resources $) | nindent 10 }}
|
|
||||||
{{- else if ne .Values.controlPlane.konnectivity.server.resourcesPreset "none" }}
|
|
||||||
resources: {{- include "cozy-lib.resources.preset" (list .Values.controlPlane.konnectivity.server.resourcesPreset $) | nindent 10 }}
|
|
||||||
{{- end }}
|
|
||||||
kubelet:
|
kubelet:
|
||||||
cgroupfs: systemd
|
cgroupfs: systemd
|
||||||
preferredAddressTypes:
|
preferredAddressTypes:
|
||||||
|
|||||||
@@ -3,9 +3,11 @@ ingress-nginx:
|
|||||||
fullnameOverride: ingress-nginx
|
fullnameOverride: ingress-nginx
|
||||||
controller:
|
controller:
|
||||||
kind: DaemonSet
|
kind: DaemonSet
|
||||||
|
{{- if eq .Values.addons.ingressNginx.exposeMethod "Proxied" }}
|
||||||
hostNetwork: true
|
hostNetwork: true
|
||||||
service:
|
service:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
{{- end }}
|
||||||
{{- if not .Values.addons.certManager.enabled }}
|
{{- if not .Values.addons.certManager.enabled }}
|
||||||
admissionWebhooks:
|
admissionWebhooks:
|
||||||
certManager:
|
certManager:
|
||||||
|
|||||||
46
packages/apps/kubernetes/templates/helmreleases/velero.yaml
Normal file
46
packages/apps/kubernetes/templates/helmreleases/velero.yaml
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
{{- if .Values.addons.velero.enabled }}
|
||||||
|
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||||
|
kind: HelmRelease
|
||||||
|
metadata:
|
||||||
|
name: {{ .Release.Name }}-velero
|
||||||
|
labels:
|
||||||
|
cozystack.io/repository: system
|
||||||
|
cozystack.io/target-cluster-name: {{ .Release.Name }}
|
||||||
|
spec:
|
||||||
|
interval: 5m
|
||||||
|
releaseName: velero
|
||||||
|
chart:
|
||||||
|
spec:
|
||||||
|
chart: cozy-velero
|
||||||
|
reconcileStrategy: Revision
|
||||||
|
sourceRef:
|
||||||
|
kind: HelmRepository
|
||||||
|
name: cozystack-system
|
||||||
|
namespace: cozy-system
|
||||||
|
version: '>= 0.0.0-0'
|
||||||
|
kubeConfig:
|
||||||
|
secretRef:
|
||||||
|
name: {{ .Release.Name }}-admin-kubeconfig
|
||||||
|
key: super-admin.svc
|
||||||
|
targetNamespace: cozy-velero
|
||||||
|
storageNamespace: cozy-velero
|
||||||
|
install:
|
||||||
|
createNamespace: true
|
||||||
|
remediation:
|
||||||
|
retries: -1
|
||||||
|
upgrade:
|
||||||
|
remediation:
|
||||||
|
retries: -1
|
||||||
|
{{- with .Values.addons.velero.valuesOverride }}
|
||||||
|
values:
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
dependsOn:
|
||||||
|
{{- if lookup "helm.toolkit.fluxcd.io/v2" "HelmRelease" .Release.Namespace .Release.Name }}
|
||||||
|
- name: {{ .Release.Name }}
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
{{- end }}
|
||||||
|
- name: {{ .Release.Name }}-cilium
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
{{- end }}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{{- $myNS := lookup "v1" "Namespace" "" .Release.Namespace }}
|
{{- $myNS := lookup "v1" "Namespace" "" .Release.Namespace }}
|
||||||
{{- $ingress := index $myNS.metadata.annotations "namespace.cozystack.io/ingress" }}
|
{{- $ingress := index $myNS.metadata.annotations "namespace.cozystack.io/ingress" }}
|
||||||
{{- if .Values.addons.ingressNginx.hosts }}
|
{{- if and (eq .Values.addons.ingressNginx.exposeMethod "Proxied") .Values.addons.ingressNginx.hosts }}
|
||||||
---
|
---
|
||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
|
|||||||
@@ -20,12 +20,12 @@
|
|||||||
"properties": {
|
"properties": {
|
||||||
"resources": {
|
"resources": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"description": "Explicit CPU/memory resource requests and limits for the API server.",
|
"description": "Explicit CPU and memory configuration for the API Server. When left empty, the preset defined in `resourcesPreset` is applied.",
|
||||||
"default": {}
|
"default": {}
|
||||||
},
|
},
|
||||||
"resourcesPreset": {
|
"resourcesPreset": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)",
|
"description": "Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.",
|
||||||
"default": "medium",
|
"default": "medium",
|
||||||
"enum": [
|
"enum": [
|
||||||
"none",
|
"none",
|
||||||
@@ -45,12 +45,12 @@
|
|||||||
"properties": {
|
"properties": {
|
||||||
"resources": {
|
"resources": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"description": "Explicit CPU/memory resource requests and limits for the controller manager.",
|
"description": "Explicit CPU and memory configuration for the Controller Manager. When left empty, the preset defined in `resourcesPreset` is applied.",
|
||||||
"default": {}
|
"default": {}
|
||||||
},
|
},
|
||||||
"resourcesPreset": {
|
"resourcesPreset": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)",
|
"description": "Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.",
|
||||||
"default": "micro",
|
"default": "micro",
|
||||||
"enum": [
|
"enum": [
|
||||||
"none",
|
"none",
|
||||||
@@ -70,12 +70,12 @@
|
|||||||
"properties": {
|
"properties": {
|
||||||
"resources": {
|
"resources": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"description": "Explicit CPU/memory resource requests and limits for the scheduler.",
|
"description": "Explicit CPU and memory configuration for the Scheduler. When left empty, the preset defined in `resourcesPreset` is applied.",
|
||||||
"default": {}
|
"default": {}
|
||||||
},
|
},
|
||||||
"resourcesPreset": {
|
"resourcesPreset": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)",
|
"description": "Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.",
|
||||||
"default": "micro",
|
"default": "micro",
|
||||||
"enum": [
|
"enum": [
|
||||||
"none",
|
"none",
|
||||||
@@ -98,12 +98,12 @@
|
|||||||
"properties": {
|
"properties": {
|
||||||
"resources": {
|
"resources": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"description": "Explicit CPU/memory resource requests and limits for the Konnectivity.",
|
"description": "Explicit CPU and memory configuration for Konnectivity. When left empty, the preset defined in `resourcesPreset` is applied.",
|
||||||
"default": {}
|
"default": {}
|
||||||
},
|
},
|
||||||
"resourcesPreset": {
|
"resourcesPreset": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)",
|
"description": "Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.",
|
||||||
"default": "micro",
|
"default": "micro",
|
||||||
"enum": [
|
"enum": [
|
||||||
"none",
|
"none",
|
||||||
@@ -178,9 +178,18 @@
|
|||||||
"description": "Custom values to override",
|
"description": "Custom values to override",
|
||||||
"default": {}
|
"default": {}
|
||||||
},
|
},
|
||||||
|
"exposeMethod": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Method to expose the Ingress-NGINX controller. (allowed values: Proxied, LoadBalancer)",
|
||||||
|
"default": "Proxied",
|
||||||
|
"enum": [
|
||||||
|
"Proxied",
|
||||||
|
"LoadBalancer"
|
||||||
|
]
|
||||||
|
},
|
||||||
"hosts": {
|
"hosts": {
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"description": "List of domain names that the parent cluster should route to this tenant cluster.",
|
"description": "List of domain names that the parent cluster should route to this tenant cluster. Taken into account only when `exposeMethod` is set to `Proxied`.",
|
||||||
"default": [],
|
"default": [],
|
||||||
"items": {}
|
"items": {}
|
||||||
}
|
}
|
||||||
@@ -240,6 +249,21 @@
|
|||||||
"default": {}
|
"default": {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"velero": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"enabled": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Enable velero for backup and restore k8s cluster.",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"valuesOverride": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "Custom values to override",
|
||||||
|
"default": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,12 +61,14 @@ addons:
|
|||||||
## @param addons.ingressNginx.valuesOverride Custom values to override
|
## @param addons.ingressNginx.valuesOverride Custom values to override
|
||||||
##
|
##
|
||||||
enabled: false
|
enabled: false
|
||||||
## @param addons.ingressNginx.hosts List of domain names that the parent cluster should route to this tenant cluster.
|
## @param addons.ingressNginx.exposeMethod Method to expose the Ingress-NGINX controller. (allowed values: Proxied, LoadBalancer)
|
||||||
|
## @param addons.ingressNginx.hosts List of domain names that the parent cluster should route to this tenant cluster. Taken into account only when `exposeMethod` is set to `Proxied`.
|
||||||
## e.g:
|
## e.g:
|
||||||
## hosts:
|
## hosts:
|
||||||
## - example.org
|
## - example.org
|
||||||
## - foo.example.net
|
## - foo.example.net
|
||||||
##
|
##
|
||||||
|
exposeMethod: Proxied
|
||||||
hosts: []
|
hosts: []
|
||||||
valuesOverride: {}
|
valuesOverride: {}
|
||||||
|
|
||||||
@@ -103,6 +105,15 @@ addons:
|
|||||||
##
|
##
|
||||||
valuesOverride: {}
|
valuesOverride: {}
|
||||||
|
|
||||||
|
## Velero
|
||||||
|
##
|
||||||
|
velero:
|
||||||
|
## @param addons.velero.enabled Enable velero for backup and restore k8s cluster.
|
||||||
|
## @param addons.velero.valuesOverride Custom values to override
|
||||||
|
##
|
||||||
|
enabled: false
|
||||||
|
valuesOverride: {}
|
||||||
|
|
||||||
## @section Kubernetes Control Plane Configuration
|
## @section Kubernetes Control Plane Configuration
|
||||||
##
|
##
|
||||||
|
|
||||||
@@ -110,8 +121,8 @@ controlPlane:
|
|||||||
replicas: 2
|
replicas: 2
|
||||||
|
|
||||||
apiServer:
|
apiServer:
|
||||||
## @param controlPlane.apiServer.resources Explicit CPU/memory resource requests and limits for the API server.
|
## @param controlPlane.apiServer.resources Explicit CPU and memory configuration for the API Server. When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
## @param controlPlane.apiServer.resourcesPreset Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)
|
## @param controlPlane.apiServer.resourcesPreset Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.
|
||||||
## e.g:
|
## e.g:
|
||||||
## resources:
|
## resources:
|
||||||
## cpu: 4000m
|
## cpu: 4000m
|
||||||
@@ -121,20 +132,20 @@ controlPlane:
|
|||||||
resources: {}
|
resources: {}
|
||||||
|
|
||||||
controllerManager:
|
controllerManager:
|
||||||
## @param controlPlane.controllerManager.resources Explicit CPU/memory resource requests and limits for the controller manager.
|
## @param controlPlane.controllerManager.resources Explicit CPU and memory configuration for the Controller Manager. When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
## @param controlPlane.controllerManager.resourcesPreset Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)
|
## @param controlPlane.controllerManager.resourcesPreset Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.
|
||||||
resourcesPreset: "micro"
|
resourcesPreset: "micro"
|
||||||
resources: {}
|
resources: {}
|
||||||
|
|
||||||
scheduler:
|
scheduler:
|
||||||
## @param controlPlane.scheduler.resources Explicit CPU/memory resource requests and limits for the scheduler.
|
## @param controlPlane.scheduler.resources Explicit CPU and memory configuration for the Scheduler. When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
## @param controlPlane.scheduler.resourcesPreset Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)
|
## @param controlPlane.scheduler.resourcesPreset Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.
|
||||||
resourcesPreset: "micro"
|
resourcesPreset: "micro"
|
||||||
resources: {}
|
resources: {}
|
||||||
|
|
||||||
konnectivity:
|
konnectivity:
|
||||||
server:
|
server:
|
||||||
## @param controlPlane.konnectivity.server.resources Explicit CPU/memory resource requests and limits for the Konnectivity.
|
## @param controlPlane.konnectivity.server.resources Explicit CPU and memory configuration for Konnectivity. When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
## @param controlPlane.konnectivity.server.resourcesPreset Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)
|
## @param controlPlane.konnectivity.server.resourcesPreset Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.
|
||||||
resourcesPreset: "micro"
|
resourcesPreset: "micro"
|
||||||
resources: {}
|
resources: {}
|
||||||
|
|||||||
@@ -16,7 +16,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.8.1
|
version: 0.9.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
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ include ../../../scripts/package.mk
|
|||||||
|
|
||||||
generate:
|
generate:
|
||||||
readme-generator -v values.yaml -s values.schema.json -r README.md
|
readme-generator -v values.yaml -s values.schema.json -r README.md
|
||||||
|
yq -i -o json --indent 4 '.properties.resourcesPreset.enum = ["none", "nano", "micro", "small", "medium", "large", "xlarge", "2xlarge"]' values.schema.json
|
||||||
|
|
||||||
image:
|
image:
|
||||||
docker buildx build images/mariadb-backup \
|
docker buildx build images/mariadb-backup \
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
## Managed MariaDB Service
|
## Managed MariaDB Service
|
||||||
|
|
||||||
The Managed MariaDB Service offers a powerful and widely used relational database solution. This service allows you to create and manage a replicated MariaDB cluster seamlessly.
|
The Managed MariaDB Service offers a powerful and widely used relational database solution.
|
||||||
|
This service allows you to create and manage a replicated MariaDB cluster seamlessly.
|
||||||
|
|
||||||
## Deployment Details
|
## Deployment Details
|
||||||
|
|
||||||
@@ -46,7 +47,7 @@ restic -r s3:s3.example.org/mariadb-backups/database_name restore latest --targe
|
|||||||
```
|
```
|
||||||
|
|
||||||
more details:
|
more details:
|
||||||
- https://itnext.io/restic-effective-backup-from-stdin-4bc1e8f083c1
|
- https://blog.aenix.io/restic-effective-backup-from-stdin-4bc1e8f083c1
|
||||||
|
|
||||||
### Known issues
|
### Known issues
|
||||||
|
|
||||||
@@ -83,16 +84,66 @@ more details:
|
|||||||
|
|
||||||
### Backup parameters
|
### Backup parameters
|
||||||
|
|
||||||
| Name | Description | Value |
|
| Name | Description | Value |
|
||||||
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------ |
|
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------ |
|
||||||
| `backup.enabled` | Enable pereiodic backups | `false` |
|
| `backup.enabled` | Enable periodic backups | `false` |
|
||||||
| `backup.s3Region` | The AWS S3 region where backups are stored | `us-east-1` |
|
| `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.s3Bucket` | The S3 bucket used for storing backups | `s3.example.org/postgres-backups` |
|
||||||
| `backup.schedule` | Cron schedule for automated backups | `0 2 * * *` |
|
| `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.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.s3AccessKey` | The access key for S3, used for authentication | `oobaiRus9pah8PhohL1ThaeTa4UVa7gu` |
|
||||||
| `backup.s3SecretKey` | The secret key for S3, used for authentication | `ju3eum4dekeich9ahM1te8waeGai0oog` |
|
| `backup.s3SecretKey` | The secret key for S3, used for authentication | `ju3eum4dekeich9ahM1te8waeGai0oog` |
|
||||||
| `backup.resticPassword` | The password for Restic backup encryption | `ChaXoveekoh6eigh4siesheeda2quai0` |
|
| `backup.resticPassword` | The password for Restic backup encryption | `ChaXoveekoh6eigh4siesheeda2quai0` |
|
||||||
| `resources` | Resources | `{}` |
|
| `resources` | Explicit CPU and memory configuration for each MariaDB replica. When left empty, the preset defined in `resourcesPreset` is applied. | `{}` |
|
||||||
| `resourcesPreset` | Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge) | `nano` |
|
| `resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge. | `nano` |
|
||||||
|
|
||||||
|
## Parameter examples and reference
|
||||||
|
|
||||||
|
### resources and resourcesPreset
|
||||||
|
|
||||||
|
`resources` sets explicit CPU and memory configurations for each replica.
|
||||||
|
When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
resources:
|
||||||
|
cpu: 4000m
|
||||||
|
memory: 4Gi
|
||||||
|
```
|
||||||
|
|
||||||
|
`resourcesPreset` sets named CPU and memory configurations for each replica.
|
||||||
|
This setting is ignored if the corresponding `resources` value is set.
|
||||||
|
|
||||||
|
| Preset name | CPU | memory |
|
||||||
|
|-------------|--------|---------|
|
||||||
|
| `nano` | `250m` | `128Mi` |
|
||||||
|
| `micro` | `500m` | `256Mi` |
|
||||||
|
| `small` | `1` | `512Mi` |
|
||||||
|
| `medium` | `1` | `1Gi` |
|
||||||
|
| `large` | `3` | `2Gi` |
|
||||||
|
| `xlarge` | `4` | `4Gi` |
|
||||||
|
| `2xlarge` | `8` | `8Gi` |
|
||||||
|
|
||||||
|
### users
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
users:
|
||||||
|
user1:
|
||||||
|
maxUserConnections: 1000
|
||||||
|
password: hackme
|
||||||
|
user2:
|
||||||
|
maxUserConnections: 1000
|
||||||
|
password: hackme
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### databases
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
databases:
|
||||||
|
myapp1:
|
||||||
|
roles:
|
||||||
|
admin:
|
||||||
|
- user1
|
||||||
|
readonly:
|
||||||
|
- user2
|
||||||
|
```
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
ghcr.io/cozystack/cozystack/mariadb-backup:0.8.1@sha256:cfd1c37d8ad24e10681d82d6e6ce8a641b4602c1b0ffa8516ae15b4958bb12d4
|
ghcr.io/cozystack/cozystack/mariadb-backup:0.9.0@sha256:cfd1c37d8ad24e10681d82d6e6ce8a641b4602c1b0ffa8516ae15b4958bb12d4
|
||||||
|
|||||||
@@ -61,7 +61,9 @@ spec:
|
|||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/instance: {{ $.Release.Name }}
|
app.kubernetes.io/instance: {{ $.Release.Name }}
|
||||||
|
{{- if and .Values.external (eq (int .Values.replicas) 1) }}
|
||||||
|
type: LoadBalancer
|
||||||
|
{{- end }}
|
||||||
storage:
|
storage:
|
||||||
size: {{ .Values.size }}
|
size: {{ .Values.size }}
|
||||||
resizeInUseVolumes: true
|
resizeInUseVolumes: true
|
||||||
@@ -70,7 +72,7 @@ spec:
|
|||||||
storageClassName: {{ . }}
|
storageClassName: {{ . }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{- if .Values.external }}
|
{{- if and .Values.external (gt (int .Values.replicas) 1) }}
|
||||||
primaryService:
|
primaryService:
|
||||||
type: LoadBalancer
|
type: LoadBalancer
|
||||||
{{- end }}
|
{{- end }}
|
||||||
@@ -78,8 +80,4 @@ spec:
|
|||||||
#secondaryService:
|
#secondaryService:
|
||||||
# type: LoadBalancer
|
# type: LoadBalancer
|
||||||
|
|
||||||
{{- if .Values.resources }}
|
resources: {{- include "cozy-lib.resources.defaultingSanitize" (list .Values.resourcesPreset .Values.resources $) | nindent 4 }}
|
||||||
resources: {{- include "cozy-lib.resources.sanitize" (list .Values.resources $) | nindent 4 }}
|
|
||||||
{{- else if ne .Values.resourcesPreset "none" }}
|
|
||||||
resources: {{- include "cozy-lib.resources.preset" (list .Values.resourcesPreset $) | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
"properties": {
|
"properties": {
|
||||||
"enabled": {
|
"enabled": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Enable pereiodic backups",
|
"description": "Enable periodic backups",
|
||||||
"default": false
|
"default": false
|
||||||
},
|
},
|
||||||
"s3Region": {
|
"s3Region": {
|
||||||
@@ -69,13 +69,23 @@
|
|||||||
},
|
},
|
||||||
"resources": {
|
"resources": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"description": "Resources",
|
"description": "Explicit CPU and memory configuration for each MariaDB replica. When left empty, the preset defined in `resourcesPreset` is applied.",
|
||||||
"default": {}
|
"default": {}
|
||||||
},
|
},
|
||||||
"resourcesPreset": {
|
"resourcesPreset": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)",
|
"description": "Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.",
|
||||||
"default": "nano"
|
"default": "nano",
|
||||||
|
"enum": [
|
||||||
|
"none",
|
||||||
|
"nano",
|
||||||
|
"micro",
|
||||||
|
"small",
|
||||||
|
"medium",
|
||||||
|
"large",
|
||||||
|
"xlarge",
|
||||||
|
"2xlarge"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ databases: {}
|
|||||||
|
|
||||||
## @section Backup parameters
|
## @section Backup parameters
|
||||||
|
|
||||||
## @param backup.enabled Enable pereiodic backups
|
## @param backup.enabled Enable periodic backups
|
||||||
## @param backup.s3Region The AWS S3 region where backups are stored
|
## @param backup.s3Region The AWS S3 region where backups are stored
|
||||||
## @param backup.s3Bucket The S3 bucket used for storing backups
|
## @param backup.s3Bucket The S3 bucket used for storing backups
|
||||||
## @param backup.schedule Cron schedule for automated backups
|
## @param backup.schedule Cron schedule for automated backups
|
||||||
@@ -55,11 +55,11 @@ backup:
|
|||||||
s3SecretKey: ju3eum4dekeich9ahM1te8waeGai0oog
|
s3SecretKey: ju3eum4dekeich9ahM1te8waeGai0oog
|
||||||
resticPassword: ChaXoveekoh6eigh4siesheeda2quai0
|
resticPassword: ChaXoveekoh6eigh4siesheeda2quai0
|
||||||
|
|
||||||
## @param resources Resources
|
## @param resources Explicit CPU and memory configuration for each MariaDB replica. When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
resources: {}
|
resources: {}
|
||||||
# resources:
|
# resources:
|
||||||
# cpu: 4000m
|
# cpu: 4000m
|
||||||
# memory: 4Gi
|
# memory: 4Gi
|
||||||
|
|
||||||
## @param resourcesPreset Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)
|
## @param resourcesPreset Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.
|
||||||
resourcesPreset: "nano"
|
resourcesPreset: "nano"
|
||||||
|
|||||||
@@ -16,7 +16,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.7.1
|
version: 0.8.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
|
||||||
|
|||||||
@@ -2,3 +2,4 @@ include ../../../scripts/package.mk
|
|||||||
|
|
||||||
generate:
|
generate:
|
||||||
readme-generator -v values.yaml -s values.schema.json -r README.md
|
readme-generator -v values.yaml -s values.schema.json -r README.md
|
||||||
|
yq -i -o json --indent 4 '.properties.resourcesPreset.enum = ["none", "nano", "micro", "small", "medium", "large", "xlarge", "2xlarge"]' values.schema.json
|
||||||
|
|||||||
@@ -1,18 +1,48 @@
|
|||||||
# Managed NATS Service
|
# Managed NATS Service
|
||||||
|
|
||||||
|
NATS is an open-source, simple, secure, and high performance messaging system.
|
||||||
|
It provides a data layer for cloud native applications, IoT messaging, and microservices architectures.
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
### Common parameters
|
### Common parameters
|
||||||
|
|
||||||
| Name | Description | Value |
|
| Name | Description | Value |
|
||||||
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------- |
|
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------- | ------- |
|
||||||
| `external` | Enable external access from outside the cluster | `false` |
|
| `external` | Enable external access from outside the cluster | `false` |
|
||||||
| `replicas` | Persistent Volume size for NATS | `2` |
|
| `replicas` | Persistent Volume size for NATS | `2` |
|
||||||
| `storageClass` | StorageClass used to store the data | `""` |
|
| `storageClass` | StorageClass used to store the data | `""` |
|
||||||
| `users` | Users configuration | `{}` |
|
| `users` | Users configuration | `{}` |
|
||||||
| `jetstream.size` | Jetstream persistent storage size | `10Gi` |
|
| `jetstream.size` | Jetstream persistent storage size | `10Gi` |
|
||||||
| `jetstream.enabled` | Enable or disable Jetstream | `true` |
|
| `jetstream.enabled` | Enable or disable Jetstream | `true` |
|
||||||
| `config.merge` | Additional configuration to merge into NATS config | `{}` |
|
| `config.merge` | Additional configuration to merge into NATS config | `{}` |
|
||||||
| `config.resolver` | Additional configuration to merge into NATS config | `{}` |
|
| `config.resolver` | Additional configuration to merge into NATS config | `{}` |
|
||||||
| `resources` | Resources | `{}` |
|
| `resources` | Explicit CPU and memory configuration for each NATS replica. When left empty, the preset defined in `resourcesPreset` is applied. | `{}` |
|
||||||
| `resourcesPreset` | Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge) | `nano` |
|
| `resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge. | `nano` |
|
||||||
|
|
||||||
|
## Parameter examples and reference
|
||||||
|
|
||||||
|
### resources and resourcesPreset
|
||||||
|
|
||||||
|
`resources` sets explicit CPU and memory configurations for each replica.
|
||||||
|
When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
resources:
|
||||||
|
cpu: 4000m
|
||||||
|
memory: 4Gi
|
||||||
|
```
|
||||||
|
|
||||||
|
`resourcesPreset` sets named CPU and memory configurations for each replica.
|
||||||
|
This setting is ignored if the corresponding `resources` value is set.
|
||||||
|
|
||||||
|
| Preset name | CPU | memory |
|
||||||
|
|-------------|--------|---------|
|
||||||
|
| `nano` | `250m` | `128Mi` |
|
||||||
|
| `micro` | `500m` | `256Mi` |
|
||||||
|
| `small` | `1` | `512Mi` |
|
||||||
|
| `medium` | `1` | `1Gi` |
|
||||||
|
| `large` | `3` | `2Gi` |
|
||||||
|
| `xlarge` | `4` | `4Gi` |
|
||||||
|
| `2xlarge` | `8` | `8Gi` |
|
||||||
|
|
||||||
|
|||||||
@@ -46,11 +46,7 @@ spec:
|
|||||||
containers:
|
containers:
|
||||||
- name: nats
|
- name: nats
|
||||||
image: nats:2.10.17-alpine
|
image: nats:2.10.17-alpine
|
||||||
{{- if .Values.resources }}
|
resources: {{- include "cozy-lib.resources.defaultingSanitize" (list .Values.resourcesPreset .Values.resources $) | nindent 22 }}
|
||||||
resources: {{- include "cozy-lib.resources.sanitize" (list .Values.resources $) | nindent 22 }}
|
|
||||||
{{- else if ne .Values.resourcesPreset "none" }}
|
|
||||||
resources: {{- include "cozy-lib.resources.preset" (list .Values.resourcesPreset $) | nindent 22 }}
|
|
||||||
{{- end }}
|
|
||||||
fullnameOverride: {{ .Release.Name }}
|
fullnameOverride: {{ .Release.Name }}
|
||||||
config:
|
config:
|
||||||
cluster:
|
cluster:
|
||||||
|
|||||||
@@ -49,13 +49,23 @@
|
|||||||
},
|
},
|
||||||
"resources": {
|
"resources": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"description": "Resources",
|
"description": "Explicit CPU and memory configuration for each NATS replica. When left empty, the preset defined in `resourcesPreset` is applied.",
|
||||||
"default": {}
|
"default": {}
|
||||||
},
|
},
|
||||||
"resourcesPreset": {
|
"resourcesPreset": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)",
|
"description": "Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.",
|
||||||
"default": "nano"
|
"default": "nano",
|
||||||
|
"enum": [
|
||||||
|
"none",
|
||||||
|
"nano",
|
||||||
|
"micro",
|
||||||
|
"small",
|
||||||
|
"medium",
|
||||||
|
"large",
|
||||||
|
"xlarge",
|
||||||
|
"2xlarge"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,11 +62,11 @@ config:
|
|||||||
## Example see: https://github.com/nats-io/k8s/blob/main/helm/charts/nats/values.yaml#L247
|
## Example see: https://github.com/nats-io/k8s/blob/main/helm/charts/nats/values.yaml#L247
|
||||||
resolver: {}
|
resolver: {}
|
||||||
|
|
||||||
## @param resources Resources
|
## @param resources Explicit CPU and memory configuration for each NATS replica. When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
resources: {}
|
resources: {}
|
||||||
# resources:
|
# resources:
|
||||||
# cpu: 4000m
|
# cpu: 4000m
|
||||||
# memory: 4Gi
|
# memory: 4Gi
|
||||||
|
|
||||||
## @param resourcesPreset Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)
|
## @param resourcesPreset Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.
|
||||||
resourcesPreset: "nano"
|
resourcesPreset: "nano"
|
||||||
|
|||||||
@@ -16,7 +16,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.15.1
|
version: 0.16.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
|
||||||
|
|||||||
@@ -2,3 +2,4 @@ include ../../../scripts/package.mk
|
|||||||
|
|
||||||
generate:
|
generate:
|
||||||
readme-generator -v values.yaml -s values.schema.json -r README.md
|
readme-generator -v values.yaml -s values.schema.json -r README.md
|
||||||
|
yq -i -o json --indent 4 '.properties.resourcesPreset.enum = ["none", "nano", "micro", "small", "medium", "large", "xlarge", "2xlarge"]' values.schema.json
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
# Managed PostgreSQL Service
|
# Managed PostgreSQL Service
|
||||||
|
|
||||||
PostgreSQL is currently the leading choice among relational databases, known for its robust features and performance. Our Managed PostgreSQL Service takes advantage of platform-side implementation to provide a self-healing replicated cluster. This cluster is efficiently managed using the highly acclaimed CloudNativePG operator, which has gained popularity within the community.
|
PostgreSQL is currently the leading choice among relational databases, known for its robust features and performance.
|
||||||
|
The Managed PostgreSQL Service takes advantage of platform-side implementation to provide a self-healing replicated cluster.
|
||||||
|
This cluster is efficiently managed using the highly acclaimed CloudNativePG operator, which has gained popularity within the community.
|
||||||
|
|
||||||
## Deployment Details
|
## Deployment Details
|
||||||
|
|
||||||
@@ -11,7 +13,7 @@ This managed service is controlled by the CloudNativePG operator, ensuring effic
|
|||||||
|
|
||||||
## HowTos
|
## HowTos
|
||||||
|
|
||||||
### How to switch master/slave replica
|
### How to switch primary/secondary replica
|
||||||
|
|
||||||
See:
|
See:
|
||||||
|
|
||||||
@@ -33,7 +35,7 @@ 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://blog.aenix.io/restic-effective-backup-from-stdin-4bc1e8f083c1>
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
@@ -70,10 +72,70 @@ more details:
|
|||||||
|
|
||||||
### Bootstrap parameters
|
### Bootstrap parameters
|
||||||
|
|
||||||
| Name | Description | Value |
|
| Name | Description | Value |
|
||||||
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------- |
|
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------- | ------- |
|
||||||
| `bootstrap.enabled` | Restore cluster from backup | `false` |
|
| `bootstrap.enabled` | Restore cluster from backup | `false` |
|
||||||
| `bootstrap.recoveryTime` | Time stamp up to which recovery will proceed, expressed in RFC 3339 format, if empty, will restore latest | `""` |
|
| `bootstrap.recoveryTime` | Time stamp up to which recovery will proceed, expressed in RFC 3339 format, if empty, will restore latest | `""` |
|
||||||
| `bootstrap.oldName` | Name of cluster before deleting | `""` |
|
| `bootstrap.oldName` | Name of cluster before deleting | `""` |
|
||||||
| `resources` | Resources | `{}` |
|
| `resources` | Explicit CPU and memory configuration for each PostgreSQL replica. When left empty, the preset defined in `resourcesPreset` is applied. | `{}` |
|
||||||
| `resourcesPreset` | Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge) | `micro` |
|
| `resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge. | `micro` |
|
||||||
|
|
||||||
|
|
||||||
|
## Parameter examples and reference
|
||||||
|
|
||||||
|
### resources and resourcesPreset
|
||||||
|
|
||||||
|
`resources` sets explicit CPU and memory configurations for each replica.
|
||||||
|
When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
resources:
|
||||||
|
cpu: 4000m
|
||||||
|
memory: 4Gi
|
||||||
|
```
|
||||||
|
|
||||||
|
`resourcesPreset` sets named CPU and memory configurations for each replica.
|
||||||
|
This setting is ignored if the corresponding `resources` value is set.
|
||||||
|
|
||||||
|
| Preset name | CPU | memory |
|
||||||
|
|-------------|--------|---------|
|
||||||
|
| `nano` | `250m` | `128Mi` |
|
||||||
|
| `micro` | `500m` | `256Mi` |
|
||||||
|
| `small` | `1` | `512Mi` |
|
||||||
|
| `medium` | `1` | `1Gi` |
|
||||||
|
| `large` | `3` | `2Gi` |
|
||||||
|
| `xlarge` | `4` | `4Gi` |
|
||||||
|
| `2xlarge` | `8` | `8Gi` |
|
||||||
|
|
||||||
|
### users
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
users:
|
||||||
|
user1:
|
||||||
|
password: strongpassword
|
||||||
|
user2:
|
||||||
|
password: hackme
|
||||||
|
airflow:
|
||||||
|
password: qwerty123
|
||||||
|
debezium:
|
||||||
|
replication: true
|
||||||
|
```
|
||||||
|
|
||||||
|
### databases
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
databases:
|
||||||
|
myapp:
|
||||||
|
roles:
|
||||||
|
admin:
|
||||||
|
- user1
|
||||||
|
- debezium
|
||||||
|
readonly:
|
||||||
|
- user2
|
||||||
|
airflow:
|
||||||
|
roles:
|
||||||
|
admin:
|
||||||
|
- airflow
|
||||||
|
extensions:
|
||||||
|
- hstore
|
||||||
|
```
|
||||||
|
|||||||
@@ -42,11 +42,7 @@ spec:
|
|||||||
key: AWS_SECRET_ACCESS_KEY
|
key: AWS_SECRET_ACCESS_KEY
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{- if .Values.resources }}
|
resources: {{- include "cozy-lib.resources.defaultingSanitize" (list .Values.resourcesPreset .Values.resources $) | nindent 4 }}
|
||||||
resources: {{- include "cozy-lib.resources.sanitize" (list .Values.resources $) | nindent 4 }}
|
|
||||||
{{- else if ne .Values.resourcesPreset "none" }}
|
|
||||||
resources: {{- include "cozy-lib.resources.preset" (list .Values.resourcesPreset $) | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
enableSuperuserAccess: true
|
enableSuperuserAccess: true
|
||||||
{{- $configMap := lookup "v1" "ConfigMap" "cozy-system" "cozystack-scheduling" }}
|
{{- $configMap := lookup "v1" "ConfigMap" "cozy-system" "cozystack-scheduling" }}
|
||||||
|
|||||||
@@ -119,13 +119,23 @@
|
|||||||
},
|
},
|
||||||
"resources": {
|
"resources": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"description": "Resources",
|
"description": "Explicit CPU and memory configuration for each PostgreSQL replica. When left empty, the preset defined in `resourcesPreset` is applied.",
|
||||||
"default": {}
|
"default": {}
|
||||||
},
|
},
|
||||||
"resourcesPreset": {
|
"resourcesPreset": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)",
|
"description": "Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.",
|
||||||
"default": "micro"
|
"default": "micro",
|
||||||
|
"enum": [
|
||||||
|
"none",
|
||||||
|
"nano",
|
||||||
|
"micro",
|
||||||
|
"small",
|
||||||
|
"medium",
|
||||||
|
"large",
|
||||||
|
"xlarge",
|
||||||
|
"2xlarge"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,11 +87,11 @@ bootstrap:
|
|||||||
recoveryTime: ""
|
recoveryTime: ""
|
||||||
oldName: ""
|
oldName: ""
|
||||||
|
|
||||||
## @param resources Resources
|
## @param resources Explicit CPU and memory configuration for each PostgreSQL replica. When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
resources: {}
|
resources: {}
|
||||||
# resources:
|
# resources:
|
||||||
# cpu: 4000m
|
# cpu: 4000m
|
||||||
# memory: 4Gi
|
# memory: 4Gi
|
||||||
|
|
||||||
## @param resourcesPreset Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)
|
## @param resourcesPreset Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.
|
||||||
resourcesPreset: "micro"
|
resourcesPreset: "micro"
|
||||||
|
|||||||
@@ -16,7 +16,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.7.1
|
version: 0.8.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
|
||||||
|
|||||||
@@ -2,3 +2,4 @@ include ../../../scripts/package.mk
|
|||||||
|
|
||||||
generate:
|
generate:
|
||||||
readme-generator -v values.yaml -s values.schema.json -r README.md
|
readme-generator -v values.yaml -s values.schema.json -r README.md
|
||||||
|
yq -i -o json --indent 4 '.properties.resourcesPreset.enum = ["none", "nano", "micro", "small", "medium", "large", "xlarge", "2xlarge"]' values.schema.json
|
||||||
|
|||||||
@@ -22,9 +22,36 @@ The service utilizes official RabbitMQ operator. This ensures the reliability an
|
|||||||
|
|
||||||
### Configuration parameters
|
### Configuration parameters
|
||||||
|
|
||||||
| Name | Description | Value |
|
| Name | Description | Value |
|
||||||
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------ |
|
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------ |
|
||||||
| `users` | Users configuration | `{}` |
|
| `users` | Users configuration | `{}` |
|
||||||
| `vhosts` | Virtual Hosts configuration | `{}` |
|
| `vhosts` | Virtual Hosts configuration | `{}` |
|
||||||
| `resources` | Resources | `{}` |
|
| `resources` | Explicit CPU and memory configuration for each RabbitMQ replica. When left empty, the preset defined in `resourcesPreset` is applied. | `{}` |
|
||||||
| `resourcesPreset` | Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge) | `nano` |
|
| `resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge. | `nano` |
|
||||||
|
|
||||||
|
## Parameter examples and reference
|
||||||
|
|
||||||
|
### resources and resourcesPreset
|
||||||
|
|
||||||
|
`resources` sets explicit CPU and memory configurations for each replica.
|
||||||
|
When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
resources:
|
||||||
|
cpu: 4000m
|
||||||
|
memory: 4Gi
|
||||||
|
```
|
||||||
|
|
||||||
|
`resourcesPreset` sets named CPU and memory configurations for each replica.
|
||||||
|
This setting is ignored if the corresponding `resources` value is set.
|
||||||
|
|
||||||
|
| Preset name | CPU | memory |
|
||||||
|
|-------------|--------|---------|
|
||||||
|
| `nano` | `100m` | `128Mi` |
|
||||||
|
| `micro` | `250m` | `256Mi` |
|
||||||
|
| `small` | `500m` | `512Mi` |
|
||||||
|
| `medium` | `500m` | `1Gi` |
|
||||||
|
| `large` | `1` | `2Gi` |
|
||||||
|
| `xlarge` | `2` | `4Gi` |
|
||||||
|
| `2xlarge` | `4` | `8Gi` |
|
||||||
|
|
||||||
|
|||||||
@@ -11,11 +11,7 @@ spec:
|
|||||||
service:
|
service:
|
||||||
type: LoadBalancer
|
type: LoadBalancer
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.resources }}
|
resources: {{- include "cozy-lib.resources.defaultingSanitize" (list .Values.resourcesPreset .Values.resources $) | nindent 4 }}
|
||||||
resources: {{- include "cozy-lib.resources.sanitize" (list .Values.resources $) | nindent 4 }}
|
|
||||||
{{- else if ne .Values.resourcesPreset "none" }}
|
|
||||||
resources: {{- include "cozy-lib.resources.preset" (list .Values.resourcesPreset $) | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
override:
|
override:
|
||||||
statefulSet:
|
statefulSet:
|
||||||
spec:
|
spec:
|
||||||
|
|||||||
@@ -29,13 +29,23 @@
|
|||||||
},
|
},
|
||||||
"resources": {
|
"resources": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"description": "Resources",
|
"description": "Explicit CPU and memory configuration for each RabbitMQ replica. When left empty, the preset defined in `resourcesPreset` is applied.",
|
||||||
"default": {}
|
"default": {}
|
||||||
},
|
},
|
||||||
"resourcesPreset": {
|
"resourcesPreset": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)",
|
"description": "Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.",
|
||||||
"default": "nano"
|
"default": "nano",
|
||||||
|
"enum": [
|
||||||
|
"none",
|
||||||
|
"nano",
|
||||||
|
"micro",
|
||||||
|
"small",
|
||||||
|
"medium",
|
||||||
|
"large",
|
||||||
|
"xlarge",
|
||||||
|
"2xlarge"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,11 +40,11 @@ users: {}
|
|||||||
## - user3
|
## - user3
|
||||||
vhosts: {}
|
vhosts: {}
|
||||||
|
|
||||||
## @param resources Resources
|
## @param resources Explicit CPU and memory configuration for each RabbitMQ replica. When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
resources: {}
|
resources: {}
|
||||||
# resources:
|
# resources:
|
||||||
# cpu: 4000m
|
# cpu: 4000m
|
||||||
# memory: 4Gi
|
# memory: 4Gi
|
||||||
|
|
||||||
## @param resourcesPreset Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)
|
## @param resourcesPreset Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.
|
||||||
resourcesPreset: "nano"
|
resourcesPreset: "nano"
|
||||||
|
|||||||
@@ -16,7 +16,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.8.1
|
version: 0.9.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
|
||||||
|
|||||||
@@ -2,3 +2,4 @@ include ../../../scripts/package.mk
|
|||||||
|
|
||||||
generate:
|
generate:
|
||||||
readme-generator -v values.yaml -s values.schema.json -r README.md
|
readme-generator -v values.yaml -s values.schema.json -r README.md
|
||||||
|
yq -i -o json --indent 4 '.properties.resourcesPreset.enum = ["none", "nano", "micro", "small", "medium", "large", "xlarge", "2xlarge"]' values.schema.json
|
||||||
|
|||||||
@@ -13,14 +13,38 @@ Service utilizes the Spotahome Redis Operator for efficient management and orche
|
|||||||
|
|
||||||
### Common parameters
|
### Common parameters
|
||||||
|
|
||||||
| Name | Description | Value |
|
| Name | Description | Value |
|
||||||
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------- |
|
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------- |
|
||||||
| `external` | Enable external access from outside the cluster | `false` |
|
| `external` | Enable external access from outside the cluster | `false` |
|
||||||
| `size` | Persistent Volume size | `1Gi` |
|
| `size` | Persistent Volume size | `1Gi` |
|
||||||
| `replicas` | Number of Redis replicas | `2` |
|
| `replicas` | Number of Redis replicas | `2` |
|
||||||
| `storageClass` | StorageClass used to store the data | `""` |
|
| `storageClass` | StorageClass used to store the data | `""` |
|
||||||
| `authEnabled` | Enable password generation | `true` |
|
| `authEnabled` | Enable password generation | `true` |
|
||||||
| `resources` | Resources | `{}` |
|
| `resources` | Explicit CPU and memory configuration for each Redis replica. When left empty, the preset defined in `resourcesPreset` is applied. | `{}` |
|
||||||
| `resourcesPreset` | Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge) | `nano` |
|
| `resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge. | `nano` |
|
||||||
|
|
||||||
|
## Parameter examples and reference
|
||||||
|
|
||||||
|
### resources and resourcesPreset
|
||||||
|
|
||||||
|
`resources` sets explicit CPU and memory configurations for each replica.
|
||||||
|
When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
resources:
|
||||||
|
cpu: 4000m
|
||||||
|
memory: 4Gi
|
||||||
|
```
|
||||||
|
|
||||||
|
`resourcesPreset` sets named CPU and memory configurations for each replica.
|
||||||
|
This setting is ignored if the corresponding `resources` value is set.
|
||||||
|
|
||||||
|
| Preset name | CPU | memory |
|
||||||
|
|-------------|--------|---------|
|
||||||
|
| `nano` | `250m` | `128Mi` |
|
||||||
|
| `micro` | `500m` | `256Mi` |
|
||||||
|
| `small` | `1` | `512Mi` |
|
||||||
|
| `medium` | `1` | `1Gi` |
|
||||||
|
| `large` | `3` | `2Gi` |
|
||||||
|
| `xlarge` | `4` | `4Gi` |
|
||||||
|
| `2xlarge` | `8` | `8Gi` |
|
||||||
|
|||||||
@@ -25,18 +25,10 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
sentinel:
|
sentinel:
|
||||||
replicas: 3
|
replicas: 3
|
||||||
{{- if .Values.resources }}
|
resources: {{- include "cozy-lib.resources.defaultingSanitize" (list .Values.resourcesPreset .Values.resources $) | nindent 6 }}
|
||||||
resources: {{- include "cozy-lib.resources.sanitize" (list .Values.resources $) | nindent 6 }}
|
|
||||||
{{- else if ne .Values.resourcesPreset "none" }}
|
|
||||||
resources: {{- include "cozy-lib.resources.preset" (list .Values.resourcesPreset $) | nindent 6 }}
|
|
||||||
{{- end }}
|
|
||||||
redis:
|
redis:
|
||||||
|
resources: {{- include "cozy-lib.resources.defaultingSanitize" (list .Values.resourcesPreset .Values.resources $) | nindent 6 }}
|
||||||
replicas: {{ .Values.replicas }}
|
replicas: {{ .Values.replicas }}
|
||||||
{{- if .Values.resources }}
|
|
||||||
resources: {{- include "cozy-lib.resources.sanitize" (list .Values.resources $) | nindent 6 }}
|
|
||||||
{{- else if ne .Values.resourcesPreset "none" }}
|
|
||||||
resources: {{- include "cozy-lib.resources.preset" (list .Values.resourcesPreset $) | nindent 6 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with .Values.size }}
|
{{- with .Values.size }}
|
||||||
storage:
|
storage:
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
|
|||||||
@@ -29,13 +29,23 @@
|
|||||||
},
|
},
|
||||||
"resources": {
|
"resources": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"description": "Resources",
|
"description": "Explicit CPU and memory configuration for each Redis replica. When left empty, the preset defined in `resourcesPreset` is applied.",
|
||||||
"default": {}
|
"default": {}
|
||||||
},
|
},
|
||||||
"resourcesPreset": {
|
"resourcesPreset": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)",
|
"description": "Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.",
|
||||||
"default": "nano"
|
"default": "nano",
|
||||||
|
"enum": [
|
||||||
|
"none",
|
||||||
|
"nano",
|
||||||
|
"micro",
|
||||||
|
"small",
|
||||||
|
"medium",
|
||||||
|
"large",
|
||||||
|
"xlarge",
|
||||||
|
"2xlarge"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,11 +12,11 @@ replicas: 2
|
|||||||
storageClass: ""
|
storageClass: ""
|
||||||
authEnabled: true
|
authEnabled: true
|
||||||
|
|
||||||
## @param resources Resources
|
## @param resources Explicit CPU and memory configuration for each Redis replica. When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
resources: {}
|
resources: {}
|
||||||
# resources:
|
# resources:
|
||||||
# cpu: 4000m
|
# cpu: 4000m
|
||||||
# memory: 4Gi
|
# memory: 4Gi
|
||||||
|
|
||||||
## @param resourcesPreset Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)
|
## @param resourcesPreset Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.
|
||||||
resourcesPreset: "nano"
|
resourcesPreset: "nano"
|
||||||
|
|||||||
@@ -16,7 +16,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.4.2
|
version: 0.5.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
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
include ../../../scripts/package.mk
|
include ../../../scripts/package.mk
|
||||||
|
|
||||||
generate:
|
generate:
|
||||||
readme-generator -v values.yaml -s values.schema.json.tmp -r README.md
|
readme-generator -v values.yaml -s values.schema.json -r README.md
|
||||||
cat values.schema.json.tmp | jq '.properties.httpAndHttps.properties.mode.enum = ["tcp","tcp-with-proxy"]' > values.schema.json
|
yq -i -o json --indent 2 '.properties.httpAndHttps.properties.mode.enum = ["tcp","tcp-with-proxy"]' values.schema.json
|
||||||
|
yq -i -o json --indent 2 '.properties.resourcesPreset.enum = ["none", "nano", "micro", "small", "medium", "large", "xlarge", "2xlarge"]' values.schema.json
|
||||||
rm -f values.schema.json.tmp
|
rm -f values.schema.json.tmp
|
||||||
|
|||||||
@@ -19,13 +19,39 @@ Managed TCP Load Balancer Service efficiently utilizes HAProxy for load balancin
|
|||||||
|
|
||||||
### Configuration parameters
|
### Configuration parameters
|
||||||
|
|
||||||
| Name | Description | Value |
|
| Name | Description | Value |
|
||||||
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------- |
|
| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ------- |
|
||||||
| `httpAndHttps.mode` | Mode for balancer. Allowed values: `tcp` and `tcp-with-proxy` | `tcp` |
|
| `httpAndHttps.mode` | Mode for balancer. Allowed values: `tcp` and `tcp-with-proxy` | `tcp` |
|
||||||
| `httpAndHttps.targetPorts.http` | HTTP port number. | `80` |
|
| `httpAndHttps.targetPorts.http` | HTTP port number. | `80` |
|
||||||
| `httpAndHttps.targetPorts.https` | HTTPS port number. | `443` |
|
| `httpAndHttps.targetPorts.https` | HTTPS port number. | `443` |
|
||||||
| `httpAndHttps.endpoints` | Endpoint addresses list | `[]` |
|
| `httpAndHttps.endpoints` | Endpoint addresses list | `[]` |
|
||||||
| `whitelistHTTP` | Secure HTTP by enabling client networks whitelisting | `false` |
|
| `whitelistHTTP` | Secure HTTP by enabling client networks whitelisting | `false` |
|
||||||
| `whitelist` | List of client networks | `[]` |
|
| `whitelist` | List of client networks | `[]` |
|
||||||
| `resources` | Resources | `{}` |
|
| `resources` | Explicit CPU and memory configuration for each TCP Balancer replica. When left empty, the preset defined in `resourcesPreset` is applied. | `{}` |
|
||||||
| `resourcesPreset` | Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge) | `nano` |
|
| `resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge. | `nano` |
|
||||||
|
|
||||||
|
## Parameter examples and reference
|
||||||
|
|
||||||
|
### resources and resourcesPreset
|
||||||
|
|
||||||
|
`resources` sets explicit CPU and memory configurations for each replica.
|
||||||
|
When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
resources:
|
||||||
|
cpu: 4000m
|
||||||
|
memory: 4Gi
|
||||||
|
```
|
||||||
|
|
||||||
|
`resourcesPreset` sets named CPU and memory configurations for each replica.
|
||||||
|
This setting is ignored if the corresponding `resources` value is set.
|
||||||
|
|
||||||
|
| Preset name | CPU | memory |
|
||||||
|
|-------------|--------|---------|
|
||||||
|
| `nano` | `250m` | `128Mi` |
|
||||||
|
| `micro` | `500m` | `256Mi` |
|
||||||
|
| `small` | `1` | `512Mi` |
|
||||||
|
| `medium` | `1` | `1Gi` |
|
||||||
|
| `large` | `3` | `2Gi` |
|
||||||
|
| `xlarge` | `4` | `4Gi` |
|
||||||
|
| `2xlarge` | `8` | `8Gi` |
|
||||||
|
|||||||
@@ -34,11 +34,7 @@ spec:
|
|||||||
containers:
|
containers:
|
||||||
- image: haproxy:latest
|
- image: haproxy:latest
|
||||||
name: haproxy
|
name: haproxy
|
||||||
{{- if .Values.resources }}
|
resources: {{- include "cozy-lib.resources.defaultingSanitize" (list .Values.resourcesPreset .Values.resources $) | nindent 10 }}
|
||||||
resources: {{- include "cozy-lib.resources.sanitize" (list .Values.resources $) | nindent 10 }}
|
|
||||||
{{- else if ne .Values.resourcesPreset "none" }}
|
|
||||||
resources: {{- include "cozy-lib.resources.preset" (list .Values.resourcesPreset $) | nindent 10 }}
|
|
||||||
{{- end }}
|
|
||||||
ports:
|
ports:
|
||||||
{{- with .Values.httpAndHttps }}
|
{{- with .Values.httpAndHttps }}
|
||||||
- containerPort: 8080
|
- containerPort: 8080
|
||||||
|
|||||||
@@ -60,13 +60,23 @@
|
|||||||
},
|
},
|
||||||
"resources": {
|
"resources": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"description": "Resources",
|
"description": "Explicit CPU and memory configuration for each TCP Balancer replica. When left empty, the preset defined in `resourcesPreset` is applied.",
|
||||||
"default": {}
|
"default": {}
|
||||||
},
|
},
|
||||||
"resourcesPreset": {
|
"resourcesPreset": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)",
|
"description": "Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.",
|
||||||
"default": "nano"
|
"default": "nano",
|
||||||
|
"enum": [
|
||||||
|
"none",
|
||||||
|
"nano",
|
||||||
|
"micro",
|
||||||
|
"small",
|
||||||
|
"medium",
|
||||||
|
"large",
|
||||||
|
"xlarge",
|
||||||
|
"2xlarge"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,11 +44,11 @@ httpAndHttps:
|
|||||||
whitelistHTTP: false
|
whitelistHTTP: false
|
||||||
whitelist: []
|
whitelist: []
|
||||||
|
|
||||||
## @param resources Resources
|
## @param resources Explicit CPU and memory configuration for each TCP Balancer replica. When left empty, the preset defined in `resourcesPreset` is applied.
|
||||||
resources: {}
|
resources: {}
|
||||||
# resources:
|
# resources:
|
||||||
# cpu: 4000m
|
# cpu: 4000m
|
||||||
# memory: 4Gi
|
# memory: 4Gi
|
||||||
|
|
||||||
## @param resourcesPreset Use a common resources preset when `resources` is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge)
|
## @param resourcesPreset Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge.
|
||||||
resourcesPreset: "nano"
|
resourcesPreset: "nano"
|
||||||
|
|||||||
@@ -4,4 +4,4 @@ description: Separated tenant namespace
|
|||||||
icon: /logos/tenant.svg
|
icon: /logos/tenant.svg
|
||||||
|
|
||||||
type: application
|
type: application
|
||||||
version: 1.10.0
|
version: 1.11.0
|
||||||
|
|||||||
@@ -6,5 +6,5 @@ metadata:
|
|||||||
namespace: {{ include "tenant.name" . }}
|
namespace: {{ include "tenant.name" . }}
|
||||||
spec:
|
spec:
|
||||||
hard:
|
hard:
|
||||||
{{- toYaml .Values.resourceQuotas | nindent 4 }}
|
{{- include "cozy-lib.resources.flatten" (list .Values.resourceQuotas $) | nindent 6 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@@ -15,9 +15,7 @@ seaweedfs: false
|
|||||||
isolated: true
|
isolated: true
|
||||||
resourceQuotas: {}
|
resourceQuotas: {}
|
||||||
# resourceQuotas:
|
# resourceQuotas:
|
||||||
# requests.cpu: "1"
|
# cpu: "1"
|
||||||
# requests.memory: "1Gi"
|
# memory: "1Gi"
|
||||||
# limits.cpu: "2"
|
# nvidia.com/gpu: 4
|
||||||
# limits.memory: "2Gi"
|
# storage: 100Gi
|
||||||
# requests.nvidia.com/gpu: 4
|
|
||||||
# requests.storage: 100Gi
|
|
||||||
|
|||||||
@@ -13,7 +13,8 @@ clickhouse 0.7.0 93bdf411
|
|||||||
clickhouse 0.9.0 6130f43d
|
clickhouse 0.9.0 6130f43d
|
||||||
clickhouse 0.9.2 632224a3
|
clickhouse 0.9.2 632224a3
|
||||||
clickhouse 0.10.0 6358fd7a
|
clickhouse 0.10.0 6358fd7a
|
||||||
clickhouse 0.10.1 HEAD
|
clickhouse 0.10.1 4369b031
|
||||||
|
clickhouse 0.11.0 HEAD
|
||||||
ferretdb 0.1.0 e9716091
|
ferretdb 0.1.0 e9716091
|
||||||
ferretdb 0.1.1 91b0499a
|
ferretdb 0.1.1 91b0499a
|
||||||
ferretdb 0.2.0 6c5cf5bf
|
ferretdb 0.2.0 6c5cf5bf
|
||||||
@@ -25,7 +26,8 @@ ferretdb 0.5.0 93bdf411
|
|||||||
ferretdb 0.6.0 6130f43d
|
ferretdb 0.6.0 6130f43d
|
||||||
ferretdb 0.6.1 632224a3
|
ferretdb 0.6.1 632224a3
|
||||||
ferretdb 0.7.0 62cb694d
|
ferretdb 0.7.0 62cb694d
|
||||||
ferretdb 0.7.1 HEAD
|
ferretdb 0.7.1 4369b031
|
||||||
|
ferretdb 0.8.0 HEAD
|
||||||
http-cache 0.1.0 263e47be
|
http-cache 0.1.0 263e47be
|
||||||
http-cache 0.2.0 53f2365e
|
http-cache 0.2.0 53f2365e
|
||||||
http-cache 0.3.0 6c5cf5bf
|
http-cache 0.3.0 6c5cf5bf
|
||||||
@@ -33,7 +35,8 @@ http-cache 0.3.1 0f312d5c
|
|||||||
http-cache 0.4.0 93bdf411
|
http-cache 0.4.0 93bdf411
|
||||||
http-cache 0.5.0 6130f43d
|
http-cache 0.5.0 6130f43d
|
||||||
http-cache 0.5.1 62cb694d
|
http-cache 0.5.1 62cb694d
|
||||||
http-cache 0.5.2 HEAD
|
http-cache 0.5.2 4369b031
|
||||||
|
http-cache 0.6.0 HEAD
|
||||||
kafka 0.1.0 f7eaab0a
|
kafka 0.1.0 f7eaab0a
|
||||||
kafka 0.2.0 c0685f43
|
kafka 0.2.0 c0685f43
|
||||||
kafka 0.2.1 dfbc210b
|
kafka 0.2.1 dfbc210b
|
||||||
@@ -48,9 +51,10 @@ kafka 0.5.0 93bdf411
|
|||||||
kafka 0.6.0 6130f43d
|
kafka 0.6.0 6130f43d
|
||||||
kafka 0.6.1 632224a3
|
kafka 0.6.1 632224a3
|
||||||
kafka 0.7.0 6358fd7a
|
kafka 0.7.0 6358fd7a
|
||||||
kafka 0.7.1 HEAD
|
kafka 0.7.1 4369b031
|
||||||
|
kafka 0.8.0 HEAD
|
||||||
kubernetes 0.24.0 62cb694d
|
kubernetes 0.24.0 62cb694d
|
||||||
kubernetes 0.24.2 HEAD
|
kubernetes 0.25.0 HEAD
|
||||||
mysql 0.1.0 263e47be
|
mysql 0.1.0 263e47be
|
||||||
mysql 0.2.0 c24a103f
|
mysql 0.2.0 c24a103f
|
||||||
mysql 0.3.0 53f2365e
|
mysql 0.3.0 53f2365e
|
||||||
@@ -63,7 +67,8 @@ mysql 0.6.0 93bdf411
|
|||||||
mysql 0.7.0 6130f43d
|
mysql 0.7.0 6130f43d
|
||||||
mysql 0.7.1 632224a3
|
mysql 0.7.1 632224a3
|
||||||
mysql 0.8.0 62cb694d
|
mysql 0.8.0 62cb694d
|
||||||
mysql 0.8.1 HEAD
|
mysql 0.8.1 4369b031
|
||||||
|
mysql 0.9.0 HEAD
|
||||||
nats 0.1.0 e9716091
|
nats 0.1.0 e9716091
|
||||||
nats 0.2.0 6c5cf5bf
|
nats 0.2.0 6c5cf5bf
|
||||||
nats 0.3.0 78366f19
|
nats 0.3.0 78366f19
|
||||||
@@ -74,7 +79,8 @@ nats 0.5.0 93bdf411
|
|||||||
nats 0.6.0 6130f43d
|
nats 0.6.0 6130f43d
|
||||||
nats 0.6.1 632224a3
|
nats 0.6.1 632224a3
|
||||||
nats 0.7.0 62cb694d
|
nats 0.7.0 62cb694d
|
||||||
nats 0.7.1 HEAD
|
nats 0.7.1 4369b031
|
||||||
|
nats 0.8.0 HEAD
|
||||||
postgres 0.1.0 263e47be
|
postgres 0.1.0 263e47be
|
||||||
postgres 0.2.0 53f2365e
|
postgres 0.2.0 53f2365e
|
||||||
postgres 0.2.1 d7cfa53c
|
postgres 0.2.1 d7cfa53c
|
||||||
@@ -94,7 +100,8 @@ postgres 0.11.0 f9f8bb2f
|
|||||||
postgres 0.12.0 6130f43d
|
postgres 0.12.0 6130f43d
|
||||||
postgres 0.12.1 632224a3
|
postgres 0.12.1 632224a3
|
||||||
postgres 0.14.0 62cb694d
|
postgres 0.14.0 62cb694d
|
||||||
postgres 0.15.1 HEAD
|
postgres 0.15.1 4369b031
|
||||||
|
postgres 0.16.0 HEAD
|
||||||
rabbitmq 0.1.0 263e47be
|
rabbitmq 0.1.0 263e47be
|
||||||
rabbitmq 0.2.0 53f2365e
|
rabbitmq 0.2.0 53f2365e
|
||||||
rabbitmq 0.3.0 6c5cf5bf
|
rabbitmq 0.3.0 6c5cf5bf
|
||||||
@@ -106,7 +113,8 @@ rabbitmq 0.4.4 8267072d
|
|||||||
rabbitmq 0.5.0 93bdf411
|
rabbitmq 0.5.0 93bdf411
|
||||||
rabbitmq 0.6.0 632224a3
|
rabbitmq 0.6.0 632224a3
|
||||||
rabbitmq 0.7.0 62cb694d
|
rabbitmq 0.7.0 62cb694d
|
||||||
rabbitmq 0.7.1 HEAD
|
rabbitmq 0.7.1 4369b031
|
||||||
|
rabbitmq 0.8.0 HEAD
|
||||||
redis 0.1.1 263e47be
|
redis 0.1.1 263e47be
|
||||||
redis 0.2.0 53f2365e
|
redis 0.2.0 53f2365e
|
||||||
redis 0.3.0 6c5cf5bf
|
redis 0.3.0 6c5cf5bf
|
||||||
@@ -117,14 +125,17 @@ redis 0.6.0 93bdf411
|
|||||||
redis 0.7.0 6130f43d
|
redis 0.7.0 6130f43d
|
||||||
redis 0.7.1 632224a3
|
redis 0.7.1 632224a3
|
||||||
redis 0.8.0 62cb694d
|
redis 0.8.0 62cb694d
|
||||||
redis 0.8.1 HEAD
|
redis 0.8.1 4369b031
|
||||||
|
redis 0.9.0 HEAD
|
||||||
tcp-balancer 0.1.0 263e47be
|
tcp-balancer 0.1.0 263e47be
|
||||||
tcp-balancer 0.2.0 53f2365e
|
tcp-balancer 0.2.0 53f2365e
|
||||||
tcp-balancer 0.3.0 93bdf411
|
tcp-balancer 0.3.0 93bdf411
|
||||||
tcp-balancer 0.4.0 6130f43d
|
tcp-balancer 0.4.0 6130f43d
|
||||||
tcp-balancer 0.4.1 62cb694d
|
tcp-balancer 0.4.1 62cb694d
|
||||||
tcp-balancer 0.4.2 HEAD
|
tcp-balancer 0.4.2 4369b031
|
||||||
tenant 1.10.0 HEAD
|
tcp-balancer 0.5.0 HEAD
|
||||||
|
tenant 1.10.0 4369b031
|
||||||
|
tenant 1.11.0 HEAD
|
||||||
virtual-machine 0.1.4 f2015d65
|
virtual-machine 0.1.4 f2015d65
|
||||||
virtual-machine 0.1.5 263e47be
|
virtual-machine 0.1.5 263e47be
|
||||||
virtual-machine 0.2.0 c0685f43
|
virtual-machine 0.2.0 c0685f43
|
||||||
@@ -141,11 +152,13 @@ virtual-machine 0.9.0 721c12a7
|
|||||||
virtual-machine 0.9.1 93bdf411
|
virtual-machine 0.9.1 93bdf411
|
||||||
virtual-machine 0.10.0 6130f43d
|
virtual-machine 0.10.0 6130f43d
|
||||||
virtual-machine 0.10.2 632224a3
|
virtual-machine 0.10.2 632224a3
|
||||||
virtual-machine 0.11.0 HEAD
|
virtual-machine 0.11.0 4369b031
|
||||||
|
virtual-machine 0.12.0 HEAD
|
||||||
vm-disk 0.1.0 d971f2ff
|
vm-disk 0.1.0 d971f2ff
|
||||||
vm-disk 0.1.1 6130f43d
|
vm-disk 0.1.1 6130f43d
|
||||||
vm-disk 0.1.2 632224a3
|
vm-disk 0.1.2 632224a3
|
||||||
vm-disk 0.2.0 HEAD
|
vm-disk 0.2.0 4369b031
|
||||||
|
vm-disk 0.3.0 HEAD
|
||||||
vm-instance 0.1.0 1ec10165
|
vm-instance 0.1.0 1ec10165
|
||||||
vm-instance 0.2.0 84f3ccc0
|
vm-instance 0.2.0 84f3ccc0
|
||||||
vm-instance 0.3.0 4e68e65c
|
vm-instance 0.3.0 4e68e65c
|
||||||
@@ -156,7 +169,8 @@ vm-instance 0.5.1 de19450f
|
|||||||
vm-instance 0.6.0 721c12a7
|
vm-instance 0.6.0 721c12a7
|
||||||
vm-instance 0.7.0 6130f43d
|
vm-instance 0.7.0 6130f43d
|
||||||
vm-instance 0.7.2 632224a3
|
vm-instance 0.7.2 632224a3
|
||||||
vm-instance 0.8.0 HEAD
|
vm-instance 0.8.0 4369b031
|
||||||
|
vm-instance 0.9.0 HEAD
|
||||||
vpn 0.1.0 263e47be
|
vpn 0.1.0 263e47be
|
||||||
vpn 0.2.0 53f2365e
|
vpn 0.2.0 53f2365e
|
||||||
vpn 0.3.0 6c5cf5bf
|
vpn 0.3.0 6c5cf5bf
|
||||||
@@ -165,4 +179,5 @@ vpn 0.4.0 93bdf411
|
|||||||
vpn 0.5.0 6130f43d
|
vpn 0.5.0 6130f43d
|
||||||
vpn 0.5.1 632224a3
|
vpn 0.5.1 632224a3
|
||||||
vpn 0.6.1 62cb694d
|
vpn 0.6.1 62cb694d
|
||||||
vpn 0.6.2 HEAD
|
vpn 0.6.2 4369b031
|
||||||
|
vpn 0.7.0 HEAD
|
||||||
|
|||||||
@@ -17,10 +17,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.11.0
|
version: 0.12.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: 0.11.0
|
appVersion: 0.12.0
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user