mirror of
https://github.com/outbackdingo/cozystack.git
synced 2026-02-06 01:06:27 +00:00
Compare commits
105 Commits
ci-wait-ca
...
fix-geniso
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c7074cd47c | ||
|
|
31b110cd39 | ||
|
|
b4da00f96f | ||
|
|
0369852035 | ||
|
|
115497b73f | ||
|
|
4f78b133c2 | ||
|
|
d550a67f19 | ||
|
|
8e6941dfbd | ||
|
|
c54567ab45 | ||
|
|
dd592ca676 | ||
|
|
5273722769 | ||
|
|
fb26e3e9b7 | ||
|
|
5e0b0167fc | ||
|
|
73fdc5ded7 | ||
|
|
5fe7b3bf16 | ||
|
|
4ecf492cd4 | ||
|
|
c42a50229f | ||
|
|
6f55a66328 | ||
|
|
9d551cc69b | ||
|
|
93b8dbb9ab | ||
|
|
8ad010d331 | ||
|
|
404579c361 | ||
|
|
f8210cf276 | ||
|
|
545e256695 | ||
|
|
e9c463c867 | ||
|
|
798ca12e43 | ||
|
|
3780925a68 | ||
|
|
a240c0b6ed | ||
|
|
de1b38c64b | ||
|
|
15d7b6d99e | ||
|
|
9377f55000 | ||
|
|
d002879b0b | ||
|
|
2c6338a2ef | ||
|
|
fd72d7c486 | ||
|
|
db34f31175 | ||
|
|
653e2bc774 | ||
|
|
31ea5eeeb2 | ||
|
|
4a2c67e045 | ||
|
|
68fb7570f7 | ||
|
|
56fc08fab4 | ||
|
|
b00ba53171 | ||
|
|
4dd52290ea | ||
|
|
492aff5265 | ||
|
|
395cdc3af1 | ||
|
|
e6f3000b3c | ||
|
|
e21c38c103 | ||
|
|
7a7512da30 | ||
|
|
58b5f6610d | ||
|
|
e81053f7dd | ||
|
|
424aab4a83 | ||
|
|
77e6db3381 | ||
|
|
f6e3188ab8 | ||
|
|
1ca0594060 | ||
|
|
ac59b4540b | ||
|
|
d0bd4b1329 | ||
|
|
ccbcaf6331 | ||
|
|
1ad1b15a5b | ||
|
|
2349ff61c1 | ||
|
|
13139dd71d | ||
|
|
57ac614865 | ||
|
|
bbb93c647d | ||
|
|
951ba75d93 | ||
|
|
15c9c4a068 | ||
|
|
57fefde732 | ||
|
|
b4a04df6f3 | ||
|
|
1e63b5e8ce | ||
|
|
6ad30915eb | ||
|
|
557ffa536f | ||
|
|
ae05d2f545 | ||
|
|
563c643813 | ||
|
|
68c85ac9ef | ||
|
|
3ac00ea4ec | ||
|
|
29b49496f2 | ||
|
|
3c27192d3e | ||
|
|
dca732cde0 | ||
|
|
0346dc05bb | ||
|
|
a03cdeff04 | ||
|
|
062d72805a | ||
|
|
70fed8148d | ||
|
|
12c6df83f5 | ||
|
|
f61a7817e6 | ||
|
|
c482289b14 | ||
|
|
1e59e5fbb6 | ||
|
|
6106a9fe51 | ||
|
|
ec9e26c054 | ||
|
|
108fc647ea | ||
|
|
a9b235048d | ||
|
|
e1c14619d2 | ||
|
|
f644bf20c5 | ||
|
|
93bdf41144 | ||
|
|
bacf15f037 | ||
|
|
9239852ec8 | ||
|
|
87a286fc74 | ||
|
|
6d253b937b | ||
|
|
255176c321 | ||
|
|
fa341deaac | ||
|
|
f08566d3f1 | ||
|
|
a29040faf7 | ||
|
|
637551eb33 | ||
|
|
58d959b305 | ||
|
|
fcc7056e5c | ||
|
|
5d7e56bffe | ||
|
|
69b3ddf717 | ||
|
|
79b5c6b5af | ||
|
|
076128c783 |
2
.github/workflows/pre-commit.yml
vendored
2
.github/workflows/pre-commit.yml
vendored
@@ -3,8 +3,6 @@ name: Pre-Commit Checks
|
|||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
types: [labeled, opened, synchronize, reopened]
|
types: [labeled, opened, synchronize, reopened]
|
||||||
paths-ignore:
|
|
||||||
- '**.md'
|
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: pre-commit-${{ github.workflow }}-${{ github.event.pull_request.number }}
|
group: pre-commit-${{ github.workflow }}-${{ github.event.pull_request.number }}
|
||||||
|
|||||||
8
.github/workflows/pull-requests-release.yaml
vendored
8
.github/workflows/pull-requests-release.yaml
vendored
@@ -136,13 +136,13 @@ jobs:
|
|||||||
uses: actions/github-script@v7
|
uses: actions/github-script@v7
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
const tag = '${{ steps.get_tag.outputs.tag }}'; // v0.31.5-rc1
|
const tag = '${{ steps.get_tag.outputs.tag }}'; // v0.31.5-rc.1
|
||||||
const m = tag.match(/^v(\d+\.\d+\.\d+)(-rc\d+)?$/);
|
const m = tag.match(/^v(\d+\.\d+\.\d+)(-rc\.\d+)?$/);
|
||||||
if (!m) {
|
if (!m) {
|
||||||
core.setFailed(`❌ tag '${tag}' must match 'vX.Y.Z' or 'vX.Y.Z-rcN'`);
|
core.setFailed(`❌ tag '${tag}' must match 'vX.Y.Z' or 'vX.Y.Z-rc.N'`);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const version = m[1] + (m[2] ?? ''); // 0.31.5‑rc1
|
const version = m[1] + (m[2] ?? ''); // 0.31.5‑rc.1
|
||||||
const isRc = Boolean(m[2]);
|
const isRc = Boolean(m[2]);
|
||||||
core.setOutput('is_rc', isRc);
|
core.setOutput('is_rc', isRc);
|
||||||
const outdated = '${{ steps.semver.outputs.comparison-result }}' === '<';
|
const outdated = '${{ steps.semver.outputs.comparison-result }}' === '<';
|
||||||
|
|||||||
19
.github/workflows/tags.yaml
vendored
19
.github/workflows/tags.yaml
vendored
@@ -3,7 +3,9 @@ name: Versioned Tag
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
tags:
|
tags:
|
||||||
- 'v*.*.*' # vX.Y.Z or vX.Y.Z-rcN
|
- 'v*.*.*' # vX.Y.Z
|
||||||
|
- 'v*.*.*-rc.*' # vX.Y.Z-rc.N
|
||||||
|
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: tags-${{ github.workflow }}-${{ github.ref }}
|
group: tags-${{ github.workflow }}-${{ github.ref }}
|
||||||
@@ -17,6 +19,7 @@ jobs:
|
|||||||
contents: write
|
contents: write
|
||||||
packages: write
|
packages: write
|
||||||
pull-requests: write
|
pull-requests: write
|
||||||
|
actions: write
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
# Check if a non-draft release with this tag already exists
|
# Check if a non-draft release with this tag already exists
|
||||||
@@ -46,18 +49,18 @@ jobs:
|
|||||||
uses: actions/github-script@v7
|
uses: actions/github-script@v7
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
const ref = context.ref.replace('refs/tags/', ''); // e.g. v0.31.5-rc1
|
const ref = context.ref.replace('refs/tags/', ''); // e.g. v0.31.5-rc.1
|
||||||
const m = ref.match(/^v(\d+\.\d+\.\d+)(-rc\d+)?$/);
|
const m = ref.match(/^v(\d+\.\d+\.\d+)(-rc\.\d+)?$/); // ['0.31.5', '-rc.1']
|
||||||
if (!m) {
|
if (!m) {
|
||||||
core.setFailed(`❌ tag '${ref}' must match 'vX.Y.Z' or 'vX.Y.Z-rcN'`);
|
core.setFailed(`❌ tag '${ref}' must match 'vX.Y.Z' or 'vX.Y.Z-rc.N'`);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const version = m[1] + (m[2] ?? ''); // 0.31.5‑rc1
|
const version = m[1] + (m[2] ?? ''); // 0.31.5‑rc.1
|
||||||
const isRc = Boolean(m[2]);
|
const isRc = Boolean(m[2]);
|
||||||
const [maj, min] = m[1].split('.');
|
const [maj, min] = m[1].split('.');
|
||||||
core.setOutput('tag', ref);
|
core.setOutput('tag', ref); // v0.31.5-rc.1
|
||||||
core.setOutput('version', version);
|
core.setOutput('version', version); // 0.31.5-rc.1
|
||||||
core.setOutput('is_rc', isRc);
|
core.setOutput('is_rc', isRc); // true
|
||||||
core.setOutput('line', `${maj}.${min}`); // 0.31
|
core.setOutput('line', `${maj}.${min}`); // 0.31
|
||||||
|
|
||||||
# Detect base branch (main or release‑X.Y) the tag was pushed from
|
# Detect base branch (main or release‑X.Y) the tag was pushed from
|
||||||
|
|||||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,6 +1,7 @@
|
|||||||
_out
|
_out
|
||||||
.git
|
.git
|
||||||
.idea
|
.idea
|
||||||
|
.vscode
|
||||||
|
|
||||||
# User-specific stuff
|
# User-specific stuff
|
||||||
.idea/**/workspace.xml
|
.idea/**/workspace.xml
|
||||||
@@ -75,4 +76,4 @@ fabric.properties
|
|||||||
.idea/caches/build_file_checksums.ser
|
.idea/caches/build_file_checksums.ser
|
||||||
|
|
||||||
.DS_Store
|
.DS_Store
|
||||||
**/.DS_Store
|
**/.DS_Store
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ repos:
|
|||||||
(cd "$dir" && make generate)
|
(cd "$dir" && make generate)
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
git diff --color=always | cat
|
||||||
'
|
'
|
||||||
language: script
|
language: script
|
||||||
files: ^.*$
|
files: ^.*$
|
||||||
|
|||||||
2
Makefile
2
Makefile
@@ -20,6 +20,7 @@ build: build-deps
|
|||||||
make -C packages/system/kubeovn image
|
make -C packages/system/kubeovn image
|
||||||
make -C packages/system/kubeovn-webhook image
|
make -C packages/system/kubeovn-webhook image
|
||||||
make -C packages/system/dashboard image
|
make -C packages/system/dashboard image
|
||||||
|
make -C packages/system/metallb image
|
||||||
make -C packages/system/kamaji image
|
make -C packages/system/kamaji image
|
||||||
make -C packages/system/bucket image
|
make -C packages/system/bucket image
|
||||||
make -C packages/core/testing image
|
make -C packages/core/testing image
|
||||||
@@ -47,7 +48,6 @@ assets:
|
|||||||
test:
|
test:
|
||||||
make -C packages/core/testing apply
|
make -C packages/core/testing apply
|
||||||
make -C packages/core/testing test
|
make -C packages/core/testing test
|
||||||
#make -C packages/core/testing test-applications
|
|
||||||
|
|
||||||
generate:
|
generate:
|
||||||
hack/update-codegen.sh
|
hack/update-codegen.sh
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ import (
|
|||||||
cozystackiov1alpha1 "github.com/cozystack/cozystack/api/v1alpha1"
|
cozystackiov1alpha1 "github.com/cozystack/cozystack/api/v1alpha1"
|
||||||
"github.com/cozystack/cozystack/internal/controller"
|
"github.com/cozystack/cozystack/internal/controller"
|
||||||
"github.com/cozystack/cozystack/internal/telemetry"
|
"github.com/cozystack/cozystack/internal/telemetry"
|
||||||
|
|
||||||
|
helmv2 "github.com/fluxcd/helm-controller/api/v2"
|
||||||
// +kubebuilder:scaffold:imports
|
// +kubebuilder:scaffold:imports
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -51,6 +53,7 @@ func init() {
|
|||||||
utilruntime.Must(clientgoscheme.AddToScheme(scheme))
|
utilruntime.Must(clientgoscheme.AddToScheme(scheme))
|
||||||
|
|
||||||
utilruntime.Must(cozystackiov1alpha1.AddToScheme(scheme))
|
utilruntime.Must(cozystackiov1alpha1.AddToScheme(scheme))
|
||||||
|
utilruntime.Must(helmv2.AddToScheme(scheme))
|
||||||
// +kubebuilder:scaffold:scheme
|
// +kubebuilder:scaffold:scheme
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -182,6 +185,14 @@ func main() {
|
|||||||
if err = (&controller.WorkloadReconciler{
|
if err = (&controller.WorkloadReconciler{
|
||||||
Client: mgr.GetClient(),
|
Client: mgr.GetClient(),
|
||||||
Scheme: mgr.GetScheme(),
|
Scheme: mgr.GetScheme(),
|
||||||
|
}).SetupWithManager(mgr); err != nil {
|
||||||
|
setupLog.Error(err, "unable to create controller", "controller", "WorkloadReconciler")
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err = (&controller.TenantHelmReconciler{
|
||||||
|
Client: mgr.GetClient(),
|
||||||
|
Scheme: mgr.GetScheme(),
|
||||||
}).SetupWithManager(mgr); err != nil {
|
}).SetupWithManager(mgr); err != nil {
|
||||||
setupLog.Error(err, "unable to create controller", "controller", "Workload")
|
setupLog.Error(err, "unable to create controller", "controller", "Workload")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
|
|||||||
@@ -1,10 +1,37 @@
|
|||||||
# Release Workflow
|
# Release Workflow
|
||||||
|
|
||||||
This section explains how Cozystack builds and releases are made.
|
This document describes Cozystack’s release process.
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
Cozystack uses a staged release process to ensure stability and flexibility during development.
|
||||||
|
|
||||||
|
There are three types of releases:
|
||||||
|
|
||||||
|
- **Release Candidates (RC)** – Preview versions (e.g., `v0.42.0-rc.1`) used for final testing and validation.
|
||||||
|
- **Regular Releases** – Final versions (e.g., `v0.42.0`) that are feature-complete and thoroughly tested.
|
||||||
|
- **Patch Releases** – Bugfix-only updates (e.g., `v0.42.1`) made after a stable release, based on a dedicated release branch.
|
||||||
|
|
||||||
|
Each type plays a distinct role in delivering reliable and tested updates while allowing ongoing development to continue smoothly.
|
||||||
|
|
||||||
|
## Release Candidates
|
||||||
|
|
||||||
|
Release candidates are Cozystack versions that introduce new features and are published before a stable release.
|
||||||
|
Their purpose is to help validate stability before finalizing a new feature release.
|
||||||
|
They allow for final rounds of testing and bug fixes without freezing development.
|
||||||
|
|
||||||
|
Release candidates are given numbers `vX.Y.0-rc.N`, for example, `v0.42.0-rc.1`.
|
||||||
|
They are created directly in the `main` branch.
|
||||||
|
An RC is typically tagged when all major features for the upcoming release have been merged into main and the release enters its testing phase.
|
||||||
|
However, new features and changes can still be added before the regular release `vX.Y.0`.
|
||||||
|
|
||||||
|
Each RC contributes to a cumulative set of release notes that will be finalized when `vX.Y.0` is released.
|
||||||
|
After testing, if no critical issues remain, the regular release (`vX.Y.0`) is tagged from the last RC or a later commit in main.
|
||||||
|
This begins the regular release process, creates a dedicated `release-X.Y` branch, and opens the way for patch releases.
|
||||||
|
|
||||||
## Regular Releases
|
## Regular Releases
|
||||||
|
|
||||||
When making regular releases, we take a commit in `main` and decide to make it a release `x.y.0`.
|
When making a regular release, we tag the latest RC or a subsequent minimal-change commit as `vX.Y.0`.
|
||||||
In this explanation, we'll use version `v0.42.0` as an example:
|
In this explanation, we'll use version `v0.42.0` as an example:
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
|
|||||||
@@ -1,165 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
RED='\033[0;31m'
|
|
||||||
GREEN='\033[0;32m'
|
|
||||||
RESET='\033[0m'
|
|
||||||
YELLOW='\033[0;33m'
|
|
||||||
|
|
||||||
|
|
||||||
ROOT_NS="tenant-root"
|
|
||||||
TEST_TENANT="tenant-e2e"
|
|
||||||
|
|
||||||
values_base_path="/hack/testdata/"
|
|
||||||
checks_base_path="/hack/testdata/"
|
|
||||||
|
|
||||||
function delete_hr() {
|
|
||||||
local release_name="$1"
|
|
||||||
local namespace="$2"
|
|
||||||
|
|
||||||
if [[ -z "$release_name" ]]; then
|
|
||||||
echo -e "${RED}Error: Release name is required.${RESET}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z "$namespace" ]]; then
|
|
||||||
echo -e "${RED}Error: Namespace name is required.${RESET}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$release_name" == "tenant-e2e" ]]; then
|
|
||||||
echo -e "${YELLOW}Skipping deletion for release tenant-e2e.${RESET}"
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
kubectl delete helmrelease $release_name -n $namespace
|
|
||||||
}
|
|
||||||
|
|
||||||
function install_helmrelease() {
|
|
||||||
local release_name="$1"
|
|
||||||
local namespace="$2"
|
|
||||||
local chart_path="$3"
|
|
||||||
local repo_name="$4"
|
|
||||||
local repo_ns="$5"
|
|
||||||
local values_file="$6"
|
|
||||||
|
|
||||||
if [[ -z "$release_name" ]]; then
|
|
||||||
echo -e "${RED}Error: Release name is required.${RESET}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z "$namespace" ]]; then
|
|
||||||
echo -e "${RED}Error: Namespace name is required.${RESET}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z "$chart_path" ]]; then
|
|
||||||
echo -e "${RED}Error: Chart path name is required.${RESET}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -n "$values_file" && -f "$values_file" ]]; then
|
|
||||||
local values_section
|
|
||||||
values_section=$(echo " values:" && sed 's/^/ /' "$values_file")
|
|
||||||
fi
|
|
||||||
|
|
||||||
local helmrelease_file=$(mktemp /tmp/HelmRelease.XXXXXX.yaml)
|
|
||||||
{
|
|
||||||
echo "apiVersion: helm.toolkit.fluxcd.io/v2"
|
|
||||||
echo "kind: HelmRelease"
|
|
||||||
echo "metadata:"
|
|
||||||
echo " labels:"
|
|
||||||
echo " cozystack.io/ui: \"true\""
|
|
||||||
echo " name: \"$release_name\""
|
|
||||||
echo " namespace: \"$namespace\""
|
|
||||||
echo "spec:"
|
|
||||||
echo " chart:"
|
|
||||||
echo " spec:"
|
|
||||||
echo " chart: \"$chart_path\""
|
|
||||||
echo " reconcileStrategy: Revision"
|
|
||||||
echo " sourceRef:"
|
|
||||||
echo " kind: HelmRepository"
|
|
||||||
echo " name: \"$repo_name\""
|
|
||||||
echo " namespace: \"$repo_ns\""
|
|
||||||
echo " version: '*'"
|
|
||||||
echo " interval: 1m0s"
|
|
||||||
echo " timeout: 5m0s"
|
|
||||||
[[ -n "$values_section" ]] && echo "$values_section"
|
|
||||||
} > "$helmrelease_file"
|
|
||||||
|
|
||||||
kubectl apply -f "$helmrelease_file"
|
|
||||||
|
|
||||||
rm -f "$helmrelease_file"
|
|
||||||
}
|
|
||||||
|
|
||||||
function install_tenant (){
|
|
||||||
local release_name="$1"
|
|
||||||
local namespace="$2"
|
|
||||||
local values_file="${values_base_path}tenant/values.yaml"
|
|
||||||
local repo_name="cozystack-apps"
|
|
||||||
local repo_ns="cozy-public"
|
|
||||||
install_helmrelease "$release_name" "$namespace" "tenant" "$repo_name" "$repo_ns" "$values_file"
|
|
||||||
}
|
|
||||||
|
|
||||||
function make_extra_checks(){
|
|
||||||
local checks_file="$1"
|
|
||||||
echo "after exec make $checks_file"
|
|
||||||
if [[ -n "$checks_file" && -f "$checks_file" ]]; then
|
|
||||||
echo -e "${YELLOW}Start extra checks with file: ${checks_file}${RESET}"
|
|
||||||
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function check_helmrelease_status() {
|
|
||||||
local release_name="$1"
|
|
||||||
local namespace="$2"
|
|
||||||
local checks_file="$3"
|
|
||||||
local timeout=300 # Timeout in seconds
|
|
||||||
local interval=5 # Interval between checks in seconds
|
|
||||||
local elapsed=0
|
|
||||||
|
|
||||||
|
|
||||||
while [[ $elapsed -lt $timeout ]]; do
|
|
||||||
local status_output
|
|
||||||
status_output=$(kubectl get helmrelease "$release_name" -n "$namespace" -o json | jq -r '.status.conditions[-1].reason')
|
|
||||||
|
|
||||||
if [[ "$status_output" == "InstallSucceeded" || "$status_output" == "UpgradeSucceeded" ]]; then
|
|
||||||
echo -e "${GREEN}Helm release '$release_name' is ready.${RESET}"
|
|
||||||
make_extra_checks "$checks_file"
|
|
||||||
delete_hr $release_name $namespace
|
|
||||||
return 0
|
|
||||||
elif [[ "$status_output" == "InstallFailed" ]]; then
|
|
||||||
echo -e "${RED}Helm release '$release_name': InstallFailed${RESET}"
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
echo -e "${YELLOW}Helm release '$release_name' is not ready. Current status: $status_output${RESET}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
sleep "$interval"
|
|
||||||
elapsed=$((elapsed + interval))
|
|
||||||
done
|
|
||||||
|
|
||||||
echo -e "${RED}Timeout reached. Helm release '$release_name' is still not ready after $timeout seconds.${RESET}"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
chart_name="$1"
|
|
||||||
|
|
||||||
if [ -z "$chart_name" ]; then
|
|
||||||
echo -e "${RED}No chart name provided. Exiting...${RESET}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
checks_file="${checks_base_path}${chart_name}/check.sh"
|
|
||||||
repo_name="cozystack-apps"
|
|
||||||
repo_ns="cozy-public"
|
|
||||||
release_name="$chart_name-e2e"
|
|
||||||
values_file="${values_base_path}${chart_name}/values.yaml"
|
|
||||||
|
|
||||||
install_tenant $TEST_TENANT $ROOT_NS
|
|
||||||
check_helmrelease_status $TEST_TENANT $ROOT_NS "${checks_base_path}tenant/check.sh"
|
|
||||||
|
|
||||||
echo -e "${YELLOW}Running tests for chart: $chart_name${RESET}"
|
|
||||||
|
|
||||||
install_helmrelease $release_name $TEST_TENANT $chart_name $repo_name $repo_ns $values_file
|
|
||||||
check_helmrelease_status $release_name $TEST_TENANT $checks_file
|
|
||||||
21
hack/e2e.sh
21
hack/e2e.sh
@@ -60,7 +60,8 @@ done
|
|||||||
|
|
||||||
# Prepare system drive
|
# Prepare system drive
|
||||||
if [ ! -f nocloud-amd64.raw ]; then
|
if [ ! -f nocloud-amd64.raw ]; then
|
||||||
wget https://github.com/cozystack/cozystack/releases/latest/download/nocloud-amd64.raw.xz -O nocloud-amd64.raw.xz --show-progress --output-file /dev/stdout --progress=dot:giga 2>/dev/null
|
wget https://github.com/cozystack/cozystack/releases/latest/download/nocloud-amd64.raw.xz \
|
||||||
|
-O nocloud-amd64.raw.xz --show-progress --output-file /dev/stdout --progress=dot:giga 2>/dev/null
|
||||||
rm -f nocloud-amd64.raw
|
rm -f nocloud-amd64.raw
|
||||||
xz --decompress nocloud-amd64.raw.xz
|
xz --decompress nocloud-amd64.raw.xz
|
||||||
fi
|
fi
|
||||||
@@ -85,7 +86,8 @@ done
|
|||||||
# Start VMs
|
# Start VMs
|
||||||
for i in 1 2 3; do
|
for i in 1 2 3; do
|
||||||
qemu-system-x86_64 -machine type=pc,accel=kvm -cpu host -smp 8 -m 16384 \
|
qemu-system-x86_64 -machine type=pc,accel=kvm -cpu host -smp 8 -m 16384 \
|
||||||
-device virtio-net,netdev=net0,mac=52:54:00:12:34:5$i -netdev tap,id=net0,ifname=cozy-srv$i,script=no,downscript=no \
|
-device virtio-net,netdev=net0,mac=52:54:00:12:34:5$i \
|
||||||
|
-netdev tap,id=net0,ifname=cozy-srv$i,script=no,downscript=no \
|
||||||
-drive file=srv$i/system.img,if=virtio,format=raw \
|
-drive file=srv$i/system.img,if=virtio,format=raw \
|
||||||
-drive file=srv$i/seed.img,if=virtio,format=raw \
|
-drive file=srv$i/seed.img,if=virtio,format=raw \
|
||||||
-drive file=srv$i/data.img,if=virtio,format=raw \
|
-drive file=srv$i/data.img,if=virtio,format=raw \
|
||||||
@@ -121,7 +123,7 @@ machine:
|
|||||||
files:
|
files:
|
||||||
- content: |
|
- content: |
|
||||||
[plugins]
|
[plugins]
|
||||||
[plugins."io.containerd.grpc.v1.cri"]
|
[plugins."io.containerd.cri.v1.runtime"]
|
||||||
device_ownership_from_security_context = true
|
device_ownership_from_security_context = true
|
||||||
path: /etc/cri/conf.d/20-customization.part
|
path: /etc/cri/conf.d/20-customization.part
|
||||||
op: create
|
op: create
|
||||||
@@ -231,7 +233,14 @@ timeout 60 sh -c 'until kubectl get hr -A | grep cozy; do sleep 1; done'
|
|||||||
|
|
||||||
sleep 5
|
sleep 5
|
||||||
|
|
||||||
kubectl get hr -A | awk 'NR>1 {print "kubectl wait --timeout=20m --for=condition=ready -n " $1 " hr/" $2 " &"} END{print "wait"}' | sh -x
|
# Wait for all HelmReleases to be installed
|
||||||
|
kubectl get hr -A | awk 'NR>1 {print "kubectl wait --timeout=15m --for=condition=ready -n " $1 " hr/" $2 " &"} END{print "wait"}' | sh -x
|
||||||
|
|
||||||
|
failed_hrs=$(kubectl get hr -A | grep -v True)
|
||||||
|
if [ -n "$(echo "$failed_hrs" | grep -v NAME)" ]; then
|
||||||
|
printf 'Failed HelmReleases:\n%s\n' "$failed_hrs" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Wait for Cluster-API providers
|
# Wait for Cluster-API providers
|
||||||
timeout 60 sh -c 'until kubectl get deploy -n cozy-cluster-api capi-controller-manager capi-kamaji-controller-manager capi-kubeadm-bootstrap-controller-manager capi-operator-cluster-api-operator capk-controller-manager; do sleep 1; done'
|
timeout 60 sh -c 'until kubectl get deploy -n cozy-cluster-api capi-controller-manager capi-kamaji-controller-manager capi-kubeadm-bootstrap-controller-manager capi-operator-cluster-api-operator capk-controller-manager; do sleep 1; done'
|
||||||
@@ -325,8 +334,8 @@ if ! kubectl wait --timeout=2m --for=condition=ready -n tenant-root hr monitorin
|
|||||||
kubectl wait --timeout=2m --for=condition=ready -n tenant-root hr monitoring
|
kubectl wait --timeout=2m --for=condition=ready -n tenant-root hr monitoring
|
||||||
fi
|
fi
|
||||||
|
|
||||||
kubectl patch -n tenant-root ingresses.apps.cozystack.io ingress --type=merge -p '{"spec":{
|
kubectl patch -n cozy-system cm cozystack --type=merge -p '{"data":{
|
||||||
"dashboard": true
|
"expose-services": "api,dashboard,cdi-uploadproxy,vm-exportproxy,keycloak"
|
||||||
}}'
|
}}'
|
||||||
|
|
||||||
# Wait for nginx-ingress-controller
|
# Wait for nginx-ingress-controller
|
||||||
|
|||||||
1
hack/testdata/http-cache/check.sh
vendored
1
hack/testdata/http-cache/check.sh
vendored
@@ -1 +0,0 @@
|
|||||||
return 0
|
|
||||||
2
hack/testdata/http-cache/values.yaml
vendored
2
hack/testdata/http-cache/values.yaml
vendored
@@ -1,2 +0,0 @@
|
|||||||
endpoints:
|
|
||||||
- 8.8.8.8:443
|
|
||||||
1
hack/testdata/kubernetes/check.sh
vendored
1
hack/testdata/kubernetes/check.sh
vendored
@@ -1 +0,0 @@
|
|||||||
return 0
|
|
||||||
62
hack/testdata/kubernetes/values.yaml
vendored
62
hack/testdata/kubernetes/values.yaml
vendored
@@ -1,62 +0,0 @@
|
|||||||
## @section Common parameters
|
|
||||||
|
|
||||||
## @param host The hostname used to access the Kubernetes cluster externally (defaults to using the cluster name as a subdomain for the tenant host).
|
|
||||||
## @param controlPlane.replicas Number of replicas for Kubernetes contorl-plane components
|
|
||||||
## @param storageClass StorageClass used to store user data
|
|
||||||
##
|
|
||||||
host: ""
|
|
||||||
controlPlane:
|
|
||||||
replicas: 2
|
|
||||||
storageClass: replicated
|
|
||||||
|
|
||||||
## @param nodeGroups [object] nodeGroups configuration
|
|
||||||
##
|
|
||||||
nodeGroups:
|
|
||||||
md0:
|
|
||||||
minReplicas: 0
|
|
||||||
maxReplicas: 10
|
|
||||||
instanceType: "u1.medium"
|
|
||||||
ephemeralStorage: 20Gi
|
|
||||||
roles:
|
|
||||||
- ingress-nginx
|
|
||||||
|
|
||||||
resources:
|
|
||||||
cpu: ""
|
|
||||||
memory: ""
|
|
||||||
|
|
||||||
## @section Cluster Addons
|
|
||||||
##
|
|
||||||
addons:
|
|
||||||
|
|
||||||
## Cert-manager: automatically creates and manages SSL/TLS certificate
|
|
||||||
##
|
|
||||||
certManager:
|
|
||||||
## @param addons.certManager.enabled Enables the cert-manager
|
|
||||||
## @param addons.certManager.valuesOverride Custom values to override
|
|
||||||
enabled: true
|
|
||||||
valuesOverride: {}
|
|
||||||
|
|
||||||
## Ingress-NGINX Controller
|
|
||||||
##
|
|
||||||
ingressNginx:
|
|
||||||
## @param addons.ingressNginx.enabled Enable Ingress-NGINX controller (expect nodes with 'ingress-nginx' role)
|
|
||||||
## @param addons.ingressNginx.valuesOverride Custom values to override
|
|
||||||
##
|
|
||||||
enabled: true
|
|
||||||
## @param addons.ingressNginx.hosts List of domain names that should be passed through to the cluster by upper cluster
|
|
||||||
## e.g:
|
|
||||||
## hosts:
|
|
||||||
## - example.org
|
|
||||||
## - foo.example.net
|
|
||||||
##
|
|
||||||
hosts: []
|
|
||||||
valuesOverride: {}
|
|
||||||
|
|
||||||
## Flux CD
|
|
||||||
##
|
|
||||||
fluxcd:
|
|
||||||
## @param addons.fluxcd.enabled Enables Flux CD
|
|
||||||
## @param addons.fluxcd.valuesOverride Custom values to override
|
|
||||||
##
|
|
||||||
enabled: true
|
|
||||||
valuesOverride: {}
|
|
||||||
1
hack/testdata/nats/check.sh
vendored
1
hack/testdata/nats/check.sh
vendored
@@ -1 +0,0 @@
|
|||||||
return 0
|
|
||||||
10
hack/testdata/nats/values.yaml
vendored
10
hack/testdata/nats/values.yaml
vendored
@@ -1,10 +0,0 @@
|
|||||||
|
|
||||||
## @section Common parameters
|
|
||||||
|
|
||||||
## @param external Enable external access from outside the cluster
|
|
||||||
## @param replicas Persistent Volume size for NATS
|
|
||||||
## @param storageClass StorageClass used to store the data
|
|
||||||
##
|
|
||||||
external: false
|
|
||||||
replicas: 2
|
|
||||||
storageClass: ""
|
|
||||||
1
hack/testdata/tenant/check.sh
vendored
1
hack/testdata/tenant/check.sh
vendored
@@ -1 +0,0 @@
|
|||||||
return 0
|
|
||||||
6
hack/testdata/tenant/values.yaml
vendored
6
hack/testdata/tenant/values.yaml
vendored
@@ -1,6 +0,0 @@
|
|||||||
host: ""
|
|
||||||
etcd: false
|
|
||||||
monitoring: false
|
|
||||||
ingress: false
|
|
||||||
seaweedfs: false
|
|
||||||
isolated: true
|
|
||||||
158
internal/controller/tenant_helm_reconciler.go
Normal file
158
internal/controller/tenant_helm_reconciler.go
Normal file
@@ -0,0 +1,158 @@
|
|||||||
|
package controller
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
e "errors"
|
||||||
|
|
||||||
|
helmv2 "github.com/fluxcd/helm-controller/api/v2"
|
||||||
|
"gopkg.in/yaml.v2"
|
||||||
|
corev1 "k8s.io/api/core/v1"
|
||||||
|
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/api/errors"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
ctrl "sigs.k8s.io/controller-runtime"
|
||||||
|
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||||
|
"sigs.k8s.io/controller-runtime/pkg/log"
|
||||||
|
)
|
||||||
|
|
||||||
|
type TenantHelmReconciler struct {
|
||||||
|
client.Client
|
||||||
|
Scheme *runtime.Scheme
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *TenantHelmReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
|
||||||
|
logger := log.FromContext(ctx)
|
||||||
|
|
||||||
|
hr := &helmv2.HelmRelease{}
|
||||||
|
if err := r.Get(ctx, req.NamespacedName, hr); err != nil {
|
||||||
|
if errors.IsNotFound(err) {
|
||||||
|
return ctrl.Result{}, nil
|
||||||
|
}
|
||||||
|
logger.Error(err, "unable to fetch HelmRelease")
|
||||||
|
return ctrl.Result{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if !strings.HasPrefix(hr.Name, "tenant-") {
|
||||||
|
return ctrl.Result{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(hr.Status.Conditions) == 0 || hr.Status.Conditions[0].Type != "Ready" {
|
||||||
|
return ctrl.Result{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(hr.Status.History) == 0 {
|
||||||
|
logger.Info("no history in HelmRelease status", "name", hr.Name)
|
||||||
|
return ctrl.Result{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if hr.Status.History[0].Status != "deployed" {
|
||||||
|
return ctrl.Result{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
newDigest := hr.Status.History[0].Digest
|
||||||
|
var hrList helmv2.HelmReleaseList
|
||||||
|
childNamespace := getChildNamespace(hr.Namespace, hr.Name)
|
||||||
|
if childNamespace == "tenant-root" && hr.Name == "tenant-root" {
|
||||||
|
if hr.Spec.Values == nil {
|
||||||
|
logger.Error(e.New("hr.Spec.Values is nil"), "cant annotate tenant-root ns")
|
||||||
|
return ctrl.Result{}, nil
|
||||||
|
}
|
||||||
|
err := annotateTenantRootNs(*hr.Spec.Values, r.Client)
|
||||||
|
if err != nil {
|
||||||
|
logger.Error(err, "cant annotate tenant-root ns")
|
||||||
|
return ctrl.Result{}, nil
|
||||||
|
}
|
||||||
|
logger.Info("namespace 'tenant-root' annotated")
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := r.List(ctx, &hrList, client.InNamespace(childNamespace)); err != nil {
|
||||||
|
logger.Error(err, "unable to list HelmReleases in namespace", "namespace", hr.Name)
|
||||||
|
return ctrl.Result{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, item := range hrList.Items {
|
||||||
|
if item.Name == hr.Name {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
oldDigest := item.GetAnnotations()["cozystack.io/tenant-config-digest"]
|
||||||
|
if oldDigest == newDigest {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
patchTarget := item.DeepCopy()
|
||||||
|
|
||||||
|
if patchTarget.Annotations == nil {
|
||||||
|
patchTarget.Annotations = map[string]string{}
|
||||||
|
}
|
||||||
|
ts := time.Now().Format(time.RFC3339Nano)
|
||||||
|
|
||||||
|
patchTarget.Annotations["cozystack.io/tenant-config-digest"] = newDigest
|
||||||
|
patchTarget.Annotations["reconcile.fluxcd.io/forceAt"] = ts
|
||||||
|
patchTarget.Annotations["reconcile.fluxcd.io/requestedAt"] = ts
|
||||||
|
|
||||||
|
patch := client.MergeFrom(item.DeepCopy())
|
||||||
|
if err := r.Patch(ctx, patchTarget, patch); err != nil {
|
||||||
|
logger.Error(err, "failed to patch HelmRelease", "name", patchTarget.Name)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.Info("patched HelmRelease with new digest", "name", patchTarget.Name, "digest", newDigest, "version", hr.Status.History[0].Version)
|
||||||
|
}
|
||||||
|
|
||||||
|
return ctrl.Result{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *TenantHelmReconciler) SetupWithManager(mgr ctrl.Manager) error {
|
||||||
|
return ctrl.NewControllerManagedBy(mgr).
|
||||||
|
For(&helmv2.HelmRelease{}).
|
||||||
|
Complete(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
func getChildNamespace(currentNamespace, hrName string) string {
|
||||||
|
tenantName := strings.TrimPrefix(hrName, "tenant-")
|
||||||
|
|
||||||
|
switch {
|
||||||
|
case currentNamespace == "tenant-root" && hrName == "tenant-root":
|
||||||
|
// 1) root tenant inside root namespace
|
||||||
|
return "tenant-root"
|
||||||
|
|
||||||
|
case currentNamespace == "tenant-root":
|
||||||
|
// 2) any other tenant in root namespace
|
||||||
|
return fmt.Sprintf("tenant-%s", tenantName)
|
||||||
|
|
||||||
|
default:
|
||||||
|
// 3) tenant in a dedicated namespace
|
||||||
|
return fmt.Sprintf("%s-%s", currentNamespace, tenantName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func annotateTenantRootNs(values apiextensionsv1.JSON, c client.Client) error {
|
||||||
|
var data map[string]interface{}
|
||||||
|
if err := yaml.Unmarshal(values.Raw, &data); err != nil {
|
||||||
|
return fmt.Errorf("failed to parse HelmRelease values: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
host, ok := data["host"].(string)
|
||||||
|
if !ok || host == "" {
|
||||||
|
return fmt.Errorf("host field not found or not a string")
|
||||||
|
}
|
||||||
|
|
||||||
|
var ns corev1.Namespace
|
||||||
|
if err := c.Get(context.TODO(), client.ObjectKey{Name: "tenant-root"}, &ns); err != nil {
|
||||||
|
return fmt.Errorf("failed to get namespace tenant-root: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if ns.Annotations == nil {
|
||||||
|
ns.Annotations = map[string]string{}
|
||||||
|
}
|
||||||
|
ns.Annotations["namespace.cozystack.io/host"] = host
|
||||||
|
|
||||||
|
if err := c.Update(context.TODO(), &ns); err != nil {
|
||||||
|
return fmt.Errorf("failed to update namespace: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
@@ -39,6 +39,15 @@ func (r *WorkloadReconciler) Reconcile(ctx context.Context, req ctrl.Request) (c
|
|||||||
}
|
}
|
||||||
|
|
||||||
t := getMonitoredObject(w)
|
t := getMonitoredObject(w)
|
||||||
|
|
||||||
|
if t == nil {
|
||||||
|
err = r.Delete(ctx, w)
|
||||||
|
if err != nil {
|
||||||
|
logger.Error(err, "failed to delete workload")
|
||||||
|
}
|
||||||
|
return ctrl.Result{}, err
|
||||||
|
}
|
||||||
|
|
||||||
err = r.Get(ctx, types.NamespacedName{Name: t.GetName(), Namespace: t.GetNamespace()}, t)
|
err = r.Get(ctx, types.NamespacedName{Name: t.GetName(), Namespace: t.GetNamespace()}, t)
|
||||||
|
|
||||||
// found object, nothing to do
|
// found object, nothing to do
|
||||||
@@ -68,20 +77,23 @@ func (r *WorkloadReconciler) SetupWithManager(mgr ctrl.Manager) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func getMonitoredObject(w *cozyv1alpha1.Workload) client.Object {
|
func getMonitoredObject(w *cozyv1alpha1.Workload) client.Object {
|
||||||
if strings.HasPrefix(w.Name, "pvc-") {
|
switch {
|
||||||
|
case strings.HasPrefix(w.Name, "pvc-"):
|
||||||
obj := &corev1.PersistentVolumeClaim{}
|
obj := &corev1.PersistentVolumeClaim{}
|
||||||
obj.Name = strings.TrimPrefix(w.Name, "pvc-")
|
obj.Name = strings.TrimPrefix(w.Name, "pvc-")
|
||||||
obj.Namespace = w.Namespace
|
obj.Namespace = w.Namespace
|
||||||
return obj
|
return obj
|
||||||
}
|
case strings.HasPrefix(w.Name, "svc-"):
|
||||||
if strings.HasPrefix(w.Name, "svc-") {
|
|
||||||
obj := &corev1.Service{}
|
obj := &corev1.Service{}
|
||||||
obj.Name = strings.TrimPrefix(w.Name, "svc-")
|
obj.Name = strings.TrimPrefix(w.Name, "svc-")
|
||||||
obj.Namespace = w.Namespace
|
obj.Namespace = w.Namespace
|
||||||
return obj
|
return obj
|
||||||
|
case strings.HasPrefix(w.Name, "pod-"):
|
||||||
|
obj := &corev1.Pod{}
|
||||||
|
obj.Name = strings.TrimPrefix(w.Name, "pod-")
|
||||||
|
obj.Namespace = w.Namespace
|
||||||
|
return obj
|
||||||
}
|
}
|
||||||
obj := &corev1.Pod{}
|
var obj client.Object
|
||||||
obj.Name = w.Name
|
|
||||||
obj.Namespace = w.Namespace
|
|
||||||
return obj
|
return obj
|
||||||
}
|
}
|
||||||
|
|||||||
26
internal/controller/workload_controller_test.go
Normal file
26
internal/controller/workload_controller_test.go
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
package controller
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
cozyv1alpha1 "github.com/cozystack/cozystack/api/v1alpha1"
|
||||||
|
corev1 "k8s.io/api/core/v1"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestUnprefixedMonitoredObjectReturnsNil(t *testing.T) {
|
||||||
|
w := &cozyv1alpha1.Workload{}
|
||||||
|
w.Name = "unprefixed-name"
|
||||||
|
obj := getMonitoredObject(w)
|
||||||
|
if obj != nil {
|
||||||
|
t.Errorf(`getMonitoredObject(&Workload{Name: "%s"}) == %v, want nil`, w.Name, obj)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestPodMonitoredObject(t *testing.T) {
|
||||||
|
w := &cozyv1alpha1.Workload{}
|
||||||
|
w.Name = "pod-mypod"
|
||||||
|
obj := getMonitoredObject(w)
|
||||||
|
if pod, ok := obj.(*corev1.Pod); !ok || pod.Name != "mypod" {
|
||||||
|
t.Errorf(`getMonitoredObject(&Workload{Name: "%s"}) == %v, want &Pod{Name: "mypod"}`, w.Name, obj)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -212,15 +212,12 @@ func (r *WorkloadMonitorReconciler) reconcilePodForMonitor(
|
|||||||
) error {
|
) error {
|
||||||
logger := log.FromContext(ctx)
|
logger := log.FromContext(ctx)
|
||||||
|
|
||||||
// Combine both init containers and normal containers to sum resources properly
|
// totalResources will store the sum of all container resource requests
|
||||||
combinedContainers := append(pod.Spec.InitContainers, pod.Spec.Containers...)
|
|
||||||
|
|
||||||
// totalResources will store the sum of all container resource limits
|
|
||||||
totalResources := make(map[string]resource.Quantity)
|
totalResources := make(map[string]resource.Quantity)
|
||||||
|
|
||||||
// Iterate over all containers to aggregate their Limits
|
// Iterate over all containers to aggregate their requests
|
||||||
for _, container := range combinedContainers {
|
for _, container := range pod.Spec.Containers {
|
||||||
for name, qty := range container.Resources.Limits {
|
for name, qty := range container.Resources.Requests {
|
||||||
if existing, exists := totalResources[name.String()]; exists {
|
if existing, exists := totalResources[name.String()]; exists {
|
||||||
existing.Add(qty)
|
existing.Add(qty)
|
||||||
totalResources[name.String()] = existing
|
totalResources[name.String()] = existing
|
||||||
@@ -249,7 +246,7 @@ func (r *WorkloadMonitorReconciler) reconcilePodForMonitor(
|
|||||||
|
|
||||||
workload := &cozyv1alpha1.Workload{
|
workload := &cozyv1alpha1.Workload{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: pod.Name,
|
Name: fmt.Sprintf("pod-%s", pod.Name),
|
||||||
Namespace: pod.Namespace,
|
Namespace: pod.Namespace,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
3
packages/apps/bucket/README.md
Normal file
3
packages/apps/bucket/README.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# S3 bucket
|
||||||
|
|
||||||
|
## Parameters
|
||||||
@@ -11,7 +11,7 @@ spec:
|
|||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: cozystack-system
|
name: cozystack-system
|
||||||
namespace: cozy-system
|
namespace: cozy-system
|
||||||
version: '*'
|
version: '>= 0.0.0-0'
|
||||||
interval: 1m0s
|
interval: 1m0s
|
||||||
timeout: 5m0s
|
timeout: 5m0s
|
||||||
values:
|
values:
|
||||||
|
|||||||
5
packages/apps/bucket/values.schema.json
Normal file
5
packages/apps/bucket/values.schema.json
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"title": "Chart Values",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {}
|
||||||
|
}
|
||||||
1
packages/apps/bucket/values.yaml
Normal file
1
packages/apps/bucket/values.yaml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
@@ -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.0
|
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
|
||||||
|
|||||||
@@ -7,8 +7,10 @@ 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
|
||||||
|
|
||||||
image:
|
image:
|
||||||
docker buildx build --platform linux/amd64 --build-arg ARCH=amd64 images/clickhouse-backup \
|
docker buildx build images/clickhouse-backup \
|
||||||
--provenance false \
|
--provenance false \
|
||||||
|
--builder=$(BUILDER) \
|
||||||
|
--platform=$(PLATFORM) \
|
||||||
--tag $(REGISTRY)/clickhouse-backup:$(call settag,$(CLICKHOUSE_BACKUP_TAG)) \
|
--tag $(REGISTRY)/clickhouse-backup:$(call settag,$(CLICKHOUSE_BACKUP_TAG)) \
|
||||||
--cache-from type=registry,ref=$(REGISTRY)/clickhouse-backup:latest \
|
--cache-from type=registry,ref=$(REGISTRY)/clickhouse-backup:latest \
|
||||||
--cache-to type=inline \
|
--cache-to type=inline \
|
||||||
|
|||||||
@@ -11,35 +11,34 @@ These presets are for basic testing and not meant to be used in production
|
|||||||
{{ include "resources.preset" (dict "type" "nano") -}}
|
{{ include "resources.preset" (dict "type" "nano") -}}
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "resources.preset" -}}
|
{{- define "resources.preset" -}}
|
||||||
{{/* The limits are the requests increased by 50% (except ephemeral-storage and xlarge/2xlarge sizes)*/}}
|
|
||||||
{{- $presets := dict
|
{{- $presets := dict
|
||||||
"nano" (dict
|
"nano" (dict
|
||||||
"requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "150m" "memory" "192Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "128Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"micro" (dict
|
"micro" (dict
|
||||||
"requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "375m" "memory" "384Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "256Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"small" (dict
|
"small" (dict
|
||||||
"requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "750m" "memory" "768Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "512Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"medium" (dict
|
"medium" (dict
|
||||||
"requests" (dict "cpu" "500m" "memory" "1024Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "500m" "memory" "1Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "750m" "memory" "1536Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "1Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"large" (dict
|
"large" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "2048Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "1" "memory" "2Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "1.5" "memory" "3072Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "2Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"xlarge" (dict
|
"xlarge" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "2" "memory" "4Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "3.0" "memory" "6144Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "4Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"2xlarge" (dict
|
"2xlarge" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "4" "memory" "8Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "6.0" "memory" "12288Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "8Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
{{- if hasKey $presets .type -}}
|
{{- if hasKey $presets .type -}}
|
||||||
|
|||||||
@@ -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.0
|
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
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
ghcr.io/cozystack/cozystack/postgres-backup:0.10.0@sha256:10179ed56457460d95cd5708db2a00130901255fa30c4dd76c65d2ef5622b61f
|
ghcr.io/cozystack/cozystack/postgres-backup:0.10.1@sha256:10179ed56457460d95cd5708db2a00130901255fa30c4dd76c65d2ef5622b61f
|
||||||
|
|||||||
@@ -11,35 +11,34 @@ These presets are for basic testing and not meant to be used in production
|
|||||||
{{ include "resources.preset" (dict "type" "nano") -}}
|
{{ include "resources.preset" (dict "type" "nano") -}}
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "resources.preset" -}}
|
{{- define "resources.preset" -}}
|
||||||
{{/* The limits are the requests increased by 50% (except ephemeral-storage and xlarge/2xlarge sizes)*/}}
|
|
||||||
{{- $presets := dict
|
{{- $presets := dict
|
||||||
"nano" (dict
|
"nano" (dict
|
||||||
"requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "150m" "memory" "192Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "128Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"micro" (dict
|
"micro" (dict
|
||||||
"requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "375m" "memory" "384Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "256Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"small" (dict
|
"small" (dict
|
||||||
"requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "750m" "memory" "768Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "512Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"medium" (dict
|
"medium" (dict
|
||||||
"requests" (dict "cpu" "500m" "memory" "1024Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "500m" "memory" "1Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "750m" "memory" "1536Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "1Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"large" (dict
|
"large" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "2048Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "1" "memory" "2Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "1.5" "memory" "3072Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "2Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"xlarge" (dict
|
"xlarge" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "2" "memory" "4Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "3.0" "memory" "6144Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "4Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"2xlarge" (dict
|
"2xlarge" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "4" "memory" "8Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "6.0" "memory" "12288Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "8Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
{{- if hasKey $presets .type -}}
|
{{- if hasKey $presets .type -}}
|
||||||
|
|||||||
@@ -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.0
|
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
|
||||||
|
|||||||
@@ -6,8 +6,10 @@ include ../../../scripts/package.mk
|
|||||||
image: image-nginx
|
image: image-nginx
|
||||||
|
|
||||||
image-nginx:
|
image-nginx:
|
||||||
docker buildx build --platform linux/amd64 --build-arg ARCH=amd64 images/nginx-cache \
|
docker buildx build images/nginx-cache \
|
||||||
--provenance false \
|
--provenance false \
|
||||||
|
--builder=$(BUILDER) \
|
||||||
|
--platform=$(PLATFORM) \
|
||||||
--tag $(REGISTRY)/nginx-cache:$(call settag,$(NGINX_CACHE_TAG)) \
|
--tag $(REGISTRY)/nginx-cache:$(call settag,$(NGINX_CACHE_TAG)) \
|
||||||
--cache-from type=registry,ref=$(REGISTRY)/nginx-cache:latest \
|
--cache-from type=registry,ref=$(REGISTRY)/nginx-cache:latest \
|
||||||
--cache-to type=inline \
|
--cache-to type=inline \
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
ghcr.io/cozystack/cozystack/nginx-cache:0.4.0@sha256:bef7344da098c4dc400a9e20ffad10ac991df67d09a30026207454abbc91f28b
|
ghcr.io/cozystack/cozystack/nginx-cache:0.4.0@sha256:4e1f5153d2673a399b315252238f4dc3eb5d6c59295aef594691710cc5b72eb4
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM ubuntu:22.04 as stage
|
FROM ubuntu:22.04 AS stage
|
||||||
|
|
||||||
ARG NGINX_VERSION=1.25.3
|
ARG NGINX_VERSION=1.25.3
|
||||||
ARG IP2LOCATION_C_VERSION=8.6.1
|
ARG IP2LOCATION_C_VERSION=8.6.1
|
||||||
@@ -9,11 +9,15 @@ ARG FIFTYONEDEGREES_NGINX_VERSION=3.2.21.1
|
|||||||
ARG NGINX_CACHE_PURGE_VERSION=2.5.3
|
ARG NGINX_CACHE_PURGE_VERSION=2.5.3
|
||||||
ARG NGINX_VTS_VERSION=0.2.2
|
ARG NGINX_VTS_VERSION=0.2.2
|
||||||
|
|
||||||
|
ARG TARGETOS
|
||||||
|
ARG TARGETARCH
|
||||||
|
|
||||||
# Install required packages for development
|
# Install required packages for development
|
||||||
RUN apt-get update -q \
|
RUN apt update -q \
|
||||||
&& apt-get install -yq \
|
&& apt install -yq --no-install-recommends \
|
||||||
|
ca-certificates \
|
||||||
unzip \
|
unzip \
|
||||||
autoconf \
|
automake \
|
||||||
build-essential \
|
build-essential \
|
||||||
libtool \
|
libtool \
|
||||||
libpcre3 \
|
libpcre3 \
|
||||||
@@ -68,7 +72,7 @@ RUN checkinstall \
|
|||||||
--default \
|
--default \
|
||||||
--pkgname=ip2location-c \
|
--pkgname=ip2location-c \
|
||||||
--pkgversion=${IP2LOCATION_C_VERSION} \
|
--pkgversion=${IP2LOCATION_C_VERSION} \
|
||||||
--pkgarch=amd64 \
|
--pkgarch=${TARGETARCH} \
|
||||||
--pkggroup=lib \
|
--pkggroup=lib \
|
||||||
--pkgsource="https://github.com/chrislim2888/IP2Location-C-Library" \
|
--pkgsource="https://github.com/chrislim2888/IP2Location-C-Library" \
|
||||||
--maintainer="Eduard Generalov <eduard@generalov.net>" \
|
--maintainer="Eduard Generalov <eduard@generalov.net>" \
|
||||||
@@ -97,7 +101,7 @@ RUN checkinstall \
|
|||||||
--default \
|
--default \
|
||||||
--pkgname=ip2proxy-c \
|
--pkgname=ip2proxy-c \
|
||||||
--pkgversion=${IP2PROXY_C_VERSION} \
|
--pkgversion=${IP2PROXY_C_VERSION} \
|
||||||
--pkgarch=amd64 \
|
--pkgarch=${TARGETARCH} \
|
||||||
--pkggroup=lib \
|
--pkggroup=lib \
|
||||||
--pkgsource="https://github.com/ip2location/ip2proxy-c" \
|
--pkgsource="https://github.com/ip2location/ip2proxy-c" \
|
||||||
--maintainer="Eduard Generalov <eduard@generalov.net>" \
|
--maintainer="Eduard Generalov <eduard@generalov.net>" \
|
||||||
@@ -144,7 +148,7 @@ RUN checkinstall \
|
|||||||
--default \
|
--default \
|
||||||
--pkgname=nginx \
|
--pkgname=nginx \
|
||||||
--pkgversion=$VERS \
|
--pkgversion=$VERS \
|
||||||
--pkgarch=amd64 \
|
--pkgarch=${TARGETARCH} \
|
||||||
--pkggroup=web \
|
--pkggroup=web \
|
||||||
--provides=nginx \
|
--provides=nginx \
|
||||||
--requires=ip2location-c,ip2proxy-c,libssl3,libc-bin,libc6,libzstd1,libpcre++0v5,libpcre16-3,libpcre2-8-0,libpcre3,libpcre32-3,libpcrecpp0v5,libmaxminddb0 \
|
--requires=ip2location-c,ip2proxy-c,libssl3,libc-bin,libc6,libzstd1,libpcre++0v5,libpcre16-3,libpcre2-8-0,libpcre3,libpcre32-3,libpcrecpp0v5,libmaxminddb0 \
|
||||||
@@ -165,10 +169,9 @@ COPY nginx-reloader.sh /usr/bin/nginx-reloader.sh
|
|||||||
RUN set -x \
|
RUN set -x \
|
||||||
&& groupadd --system --gid 101 nginx \
|
&& groupadd --system --gid 101 nginx \
|
||||||
&& useradd --system --gid nginx --no-create-home --home /nonexistent --comment "nginx user" --shell /bin/false --uid 101 nginx \
|
&& useradd --system --gid nginx --no-create-home --home /nonexistent --comment "nginx user" --shell /bin/false --uid 101 nginx \
|
||||||
&& apt update \
|
&& apt update -q \
|
||||||
&& apt-get install --no-install-recommends --no-install-suggests -y gnupg1 ca-certificates inotify-tools \
|
&& apt install -yq --no-install-recommends --no-install-suggests gnupg1 ca-certificates inotify-tools \
|
||||||
&& apt -y install /packages/*.deb \
|
&& apt install -y /packages/*.deb \
|
||||||
&& apt-get clean \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
&& mkdir -p /var/lib/nginx /var/log/nginx \
|
&& mkdir -p /var/lib/nginx /var/log/nginx \
|
||||||
&& ln -sf /dev/stdout /var/log/nginx/access.log \
|
&& ln -sf /dev/stdout /var/log/nginx/access.log \
|
||||||
|
|||||||
@@ -11,35 +11,34 @@ These presets are for basic testing and not meant to be used in production
|
|||||||
{{ include "resources.preset" (dict "type" "nano") -}}
|
{{ include "resources.preset" (dict "type" "nano") -}}
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "resources.preset" -}}
|
{{- define "resources.preset" -}}
|
||||||
{{/* The limits are the requests increased by 50% (except ephemeral-storage and xlarge/2xlarge sizes)*/}}
|
|
||||||
{{- $presets := dict
|
{{- $presets := dict
|
||||||
"nano" (dict
|
"nano" (dict
|
||||||
"requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "150m" "memory" "192Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "128Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"micro" (dict
|
"micro" (dict
|
||||||
"requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "375m" "memory" "384Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "256Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"small" (dict
|
"small" (dict
|
||||||
"requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "750m" "memory" "768Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "512Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"medium" (dict
|
"medium" (dict
|
||||||
"requests" (dict "cpu" "500m" "memory" "1024Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "500m" "memory" "1Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "750m" "memory" "1536Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "1Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"large" (dict
|
"large" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "2048Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "1" "memory" "2Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "1.5" "memory" "3072Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "2Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"xlarge" (dict
|
"xlarge" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "2" "memory" "4Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "3.0" "memory" "6144Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "4Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"2xlarge" (dict
|
"2xlarge" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "4" "memory" "8Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "6.0" "memory" "12288Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "8Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
{{- if hasKey $presets .type -}}
|
{{- if hasKey $presets .type -}}
|
||||||
|
|||||||
@@ -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.0
|
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
|
||||||
|
|||||||
@@ -11,35 +11,34 @@ These presets are for basic testing and not meant to be used in production
|
|||||||
{{ include "resources.preset" (dict "type" "nano") -}}
|
{{ include "resources.preset" (dict "type" "nano") -}}
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "resources.preset" -}}
|
{{- define "resources.preset" -}}
|
||||||
{{/* The limits are the requests increased by 50% (except ephemeral-storage and xlarge/2xlarge sizes)*/}}
|
|
||||||
{{- $presets := dict
|
{{- $presets := dict
|
||||||
"nano" (dict
|
"nano" (dict
|
||||||
"requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "150m" "memory" "192Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "128Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"micro" (dict
|
"micro" (dict
|
||||||
"requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "375m" "memory" "384Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "256Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"small" (dict
|
"small" (dict
|
||||||
"requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "750m" "memory" "768Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "512Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"medium" (dict
|
"medium" (dict
|
||||||
"requests" (dict "cpu" "500m" "memory" "1024Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "500m" "memory" "1Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "750m" "memory" "1536Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "1Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"large" (dict
|
"large" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "2048Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "1" "memory" "2Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "1.5" "memory" "3072Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "2Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"xlarge" (dict
|
"xlarge" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "2" "memory" "4Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "3.0" "memory" "6144Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "4Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"2xlarge" (dict
|
"2xlarge" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "4" "memory" "8Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "6.0" "memory" "12288Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "8Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
{{- if hasKey $presets .type -}}
|
{{- if hasKey $presets .type -}}
|
||||||
|
|||||||
@@ -16,10 +16,10 @@ type: application
|
|||||||
# This is the chart version. This version number should be incremented each time you make changes
|
# This is the chart version. This version number should be incremented each time you make changes
|
||||||
# to the chart and its templates, including the app version.
|
# to the chart and its templates, including the app version.
|
||||||
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
||||||
version: 0.19.0
|
version: 0.20.0
|
||||||
|
|
||||||
# This is the version number of the application being deployed. This version number should be
|
# This is the version number of the application being deployed. This version number should be
|
||||||
# incremented each time you make changes to the application. Versions are not expected to
|
# incremented each time you make changes to the application. Versions are not expected to
|
||||||
# follow Semantic Versioning. They should reflect the version the application is using.
|
# follow Semantic Versioning. They should reflect the version the application is using.
|
||||||
# It is recommended to use it with quotes.
|
# It is recommended to use it with quotes.
|
||||||
appVersion: "1.30.1"
|
appVersion: 1.32.4
|
||||||
|
|||||||
@@ -14,8 +14,10 @@ generate:
|
|||||||
image: image-ubuntu-container-disk image-kubevirt-cloud-provider image-kubevirt-csi-driver image-cluster-autoscaler
|
image: image-ubuntu-container-disk image-kubevirt-cloud-provider image-kubevirt-csi-driver image-cluster-autoscaler
|
||||||
|
|
||||||
image-ubuntu-container-disk:
|
image-ubuntu-container-disk:
|
||||||
docker buildx build --platform linux/amd64 --build-arg ARCH=amd64 images/ubuntu-container-disk \
|
docker buildx build images/ubuntu-container-disk \
|
||||||
--provenance false \
|
--provenance false \
|
||||||
|
--builder=$(BUILDER) \
|
||||||
|
--platform=$(PLATFORM) \
|
||||||
--build-arg KUBERNETES_VERSION=${KUBERNETES_VERSION} \
|
--build-arg KUBERNETES_VERSION=${KUBERNETES_VERSION} \
|
||||||
--tag $(REGISTRY)/ubuntu-container-disk:$(call settag,$(KUBERNETES_VERSION)) \
|
--tag $(REGISTRY)/ubuntu-container-disk:$(call settag,$(KUBERNETES_VERSION)) \
|
||||||
--tag $(REGISTRY)/ubuntu-container-disk:$(call settag,$(KUBERNETES_VERSION)-$(TAG)) \
|
--tag $(REGISTRY)/ubuntu-container-disk:$(call settag,$(KUBERNETES_VERSION)-$(TAG)) \
|
||||||
@@ -30,8 +32,10 @@ image-ubuntu-container-disk:
|
|||||||
rm -f images/ubuntu-container-disk.json
|
rm -f images/ubuntu-container-disk.json
|
||||||
|
|
||||||
image-kubevirt-cloud-provider:
|
image-kubevirt-cloud-provider:
|
||||||
docker buildx build --platform linux/amd64 --build-arg ARCH=amd64 images/kubevirt-cloud-provider \
|
docker buildx build images/kubevirt-cloud-provider \
|
||||||
--provenance false \
|
--provenance false \
|
||||||
|
--builder=$(BUILDER) \
|
||||||
|
--platform=$(PLATFORM) \
|
||||||
--tag $(REGISTRY)/kubevirt-cloud-provider:$(call settag,$(KUBERNETES_PKG_TAG)) \
|
--tag $(REGISTRY)/kubevirt-cloud-provider:$(call settag,$(KUBERNETES_PKG_TAG)) \
|
||||||
--tag $(REGISTRY)/kubevirt-cloud-provider:$(call settag,$(KUBERNETES_PKG_TAG)-$(TAG)) \
|
--tag $(REGISTRY)/kubevirt-cloud-provider:$(call settag,$(KUBERNETES_PKG_TAG)-$(TAG)) \
|
||||||
--cache-from type=registry,ref=$(REGISTRY)/kubevirt-cloud-provider:latest \
|
--cache-from type=registry,ref=$(REGISTRY)/kubevirt-cloud-provider:latest \
|
||||||
@@ -45,8 +49,10 @@ image-kubevirt-cloud-provider:
|
|||||||
rm -f images/kubevirt-cloud-provider.json
|
rm -f images/kubevirt-cloud-provider.json
|
||||||
|
|
||||||
image-kubevirt-csi-driver:
|
image-kubevirt-csi-driver:
|
||||||
docker buildx build --platform linux/amd64 --build-arg ARCH=amd64 images/kubevirt-csi-driver \
|
docker buildx build images/kubevirt-csi-driver \
|
||||||
--provenance false \
|
--provenance false \
|
||||||
|
--builder=$(BUILDER) \
|
||||||
|
--platform=$(PLATFORM) \
|
||||||
--tag $(REGISTRY)/kubevirt-csi-driver:$(call settag,$(KUBERNETES_PKG_TAG)) \
|
--tag $(REGISTRY)/kubevirt-csi-driver:$(call settag,$(KUBERNETES_PKG_TAG)) \
|
||||||
--tag $(REGISTRY)/kubevirt-csi-driver:$(call settag,$(KUBERNETES_PKG_TAG)-$(TAG)) \
|
--tag $(REGISTRY)/kubevirt-csi-driver:$(call settag,$(KUBERNETES_PKG_TAG)-$(TAG)) \
|
||||||
--cache-from type=registry,ref=$(REGISTRY)/kubevirt-csi-driver:latest \
|
--cache-from type=registry,ref=$(REGISTRY)/kubevirt-csi-driver:latest \
|
||||||
@@ -61,8 +67,10 @@ image-kubevirt-csi-driver:
|
|||||||
|
|
||||||
|
|
||||||
image-cluster-autoscaler:
|
image-cluster-autoscaler:
|
||||||
docker buildx build --platform linux/amd64 --build-arg ARCH=amd64 images/cluster-autoscaler \
|
docker buildx build images/cluster-autoscaler \
|
||||||
--provenance false \
|
--provenance false \
|
||||||
|
--builder=$(BUILDER) \
|
||||||
|
--platform=$(PLATFORM) \
|
||||||
--tag $(REGISTRY)/cluster-autoscaler:$(call settag,$(KUBERNETES_PKG_TAG)) \
|
--tag $(REGISTRY)/cluster-autoscaler:$(call settag,$(KUBERNETES_PKG_TAG)) \
|
||||||
--tag $(REGISTRY)/cluster-autoscaler:$(call settag,$(KUBERNETES_PKG_TAG)-$(TAG)) \
|
--tag $(REGISTRY)/cluster-autoscaler:$(call settag,$(KUBERNETES_PKG_TAG)-$(TAG)) \
|
||||||
--cache-from type=registry,ref=$(REGISTRY)/cluster-autoscaler:latest \
|
--cache-from type=registry,ref=$(REGISTRY)/cluster-autoscaler:latest \
|
||||||
|
|||||||
@@ -44,6 +44,8 @@ kubectl get secret -n <namespace> kubernetes-<clusterName>-admin-kubeconfig -o g
|
|||||||
| --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
|
| --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
|
||||||
| `addons.certManager.enabled` | Enables the cert-manager | `false` |
|
| `addons.certManager.enabled` | Enables the cert-manager | `false` |
|
||||||
| `addons.certManager.valuesOverride` | Custom values to override | `{}` |
|
| `addons.certManager.valuesOverride` | Custom values to override | `{}` |
|
||||||
|
| `addons.cilium.valuesOverride` | Custom values to override | `{}` |
|
||||||
|
| `addons.gatewayAPI.enabled` | Enables the Gateway API | `false` |
|
||||||
| `addons.ingressNginx.enabled` | Enable Ingress-NGINX controller (expect nodes with 'ingress-nginx' role) | `false` |
|
| `addons.ingressNginx.enabled` | Enable Ingress-NGINX controller (expect nodes with '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 should be passed through to the cluster by upper cluster | `[]` |
|
| `addons.ingressNginx.hosts` | List of domain names that should be passed through to the cluster by upper cluster | `[]` |
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
ghcr.io/cozystack/cozystack/cluster-autoscaler:0.18.0@sha256:85371c6aabf5a7fea2214556deac930c600e362f92673464fe2443784e2869c3
|
ghcr.io/cozystack/cozystack/cluster-autoscaler:0.19.0@sha256:85371c6aabf5a7fea2214556deac930c600e362f92673464fe2443784e2869c3
|
||||||
|
|||||||
@@ -1,7 +1,14 @@
|
|||||||
# Source: https://raw.githubusercontent.com/kubernetes/autoscaler/refs/heads/master/cluster-autoscaler/Dockerfile.amd64
|
# Source: https://raw.githubusercontent.com/kubernetes/autoscaler/refs/heads/master/cluster-autoscaler/Dockerfile.amd64
|
||||||
ARG builder_image=docker.io/library/golang:1.23.4
|
ARG builder_image=docker.io/library/golang:1.23.4
|
||||||
ARG BASEIMAGE=gcr.io/distroless/static:nonroot-amd64
|
ARG BASEIMAGE=gcr.io/distroless/static:nonroot-${TARGETARCH}
|
||||||
|
|
||||||
FROM ${builder_image} AS builder
|
FROM ${builder_image} AS builder
|
||||||
|
|
||||||
|
ARG TARGETOS
|
||||||
|
ARG TARGETARCH
|
||||||
|
ENV GOOS=$TARGETOS
|
||||||
|
ENV GOARCH=$TARGETARCH
|
||||||
|
|
||||||
RUN git clone https://github.com/kubernetes/autoscaler /src/autoscaler \
|
RUN git clone https://github.com/kubernetes/autoscaler /src/autoscaler \
|
||||||
&& cd /src/autoscaler/cluster-autoscaler \
|
&& cd /src/autoscaler/cluster-autoscaler \
|
||||||
&& git checkout cluster-autoscaler-1.32.0
|
&& git checkout cluster-autoscaler-1.32.0
|
||||||
@@ -14,6 +21,8 @@ RUN make build
|
|||||||
FROM $BASEIMAGE
|
FROM $BASEIMAGE
|
||||||
LABEL maintainer="Marcin Wielgus <mwielgus@google.com>"
|
LABEL maintainer="Marcin Wielgus <mwielgus@google.com>"
|
||||||
|
|
||||||
COPY --from=builder /src/autoscaler/cluster-autoscaler/cluster-autoscaler-amd64 /cluster-autoscaler
|
ARG TARGETARCH
|
||||||
|
|
||||||
|
COPY --from=builder /src/autoscaler/cluster-autoscaler/cluster-autoscaler-${TARGETARCH} /cluster-autoscaler
|
||||||
WORKDIR /
|
WORKDIR /
|
||||||
CMD ["/cluster-autoscaler"]
|
CMD ["/cluster-autoscaler"]
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
ghcr.io/cozystack/cozystack/kubevirt-cloud-provider:0.18.0@sha256:795d8e1ef4b2b0df2aa1e09d96cd13476ebb545b4bf4b5779b7547a70ef64cf9
|
ghcr.io/cozystack/cozystack/kubevirt-cloud-provider:0.19.0@sha256:795d8e1ef4b2b0df2aa1e09d96cd13476ebb545b4bf4b5779b7547a70ef64cf9
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
# Source: https://github.com/kubevirt/cloud-provider-kubevirt/blob/main/build/images/kubevirt-cloud-controller-manager/Dockerfile
|
# Source: https://github.com/kubevirt/cloud-provider-kubevirt/blob/main/build/images/kubevirt-cloud-controller-manager/Dockerfile
|
||||||
FROM --platform=linux/amd64 golang:1.20.6 AS builder
|
FROM golang:1.20.6 AS builder
|
||||||
|
|
||||||
|
ARG TARGETOS
|
||||||
|
ARG TARGETARCH
|
||||||
|
ENV GOOS=$TARGETOS
|
||||||
|
ENV GOARCH=$TARGETARCH
|
||||||
|
|
||||||
RUN git clone https://github.com/kubevirt/cloud-provider-kubevirt /go/src/kubevirt.io/cloud-provider-kubevirt \
|
RUN git clone https://github.com/kubevirt/cloud-provider-kubevirt /go/src/kubevirt.io/cloud-provider-kubevirt \
|
||||||
&& cd /go/src/kubevirt.io/cloud-provider-kubevirt \
|
&& cd /go/src/kubevirt.io/cloud-provider-kubevirt \
|
||||||
@@ -14,7 +19,7 @@ RUN go get 'k8s.io/endpointslice/util@v0.28' 'k8s.io/apiserver@v0.28'
|
|||||||
RUN go mod tidy
|
RUN go mod tidy
|
||||||
RUN go mod vendor
|
RUN go mod vendor
|
||||||
|
|
||||||
RUN CGO_ENABLED=0 GOOS=linux go build -mod=vendor -ldflags="-s -w" -o bin/kubevirt-cloud-controller-manager ./cmd/kubevirt-cloud-controller-manager
|
RUN CGO_ENABLED=0 go build -mod=vendor -ldflags="-s -w" -o bin/kubevirt-cloud-controller-manager ./cmd/kubevirt-cloud-controller-manager
|
||||||
|
|
||||||
FROM registry.access.redhat.com/ubi9/ubi-micro
|
FROM registry.access.redhat.com/ubi9/ubi-micro
|
||||||
COPY --from=builder /go/src/kubevirt.io/cloud-provider-kubevirt/bin/kubevirt-cloud-controller-manager /bin/kubevirt-cloud-controller-manager
|
COPY --from=builder /go/src/kubevirt.io/cloud-provider-kubevirt/bin/kubevirt-cloud-controller-manager /bin/kubevirt-cloud-controller-manager
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
ghcr.io/cozystack/cozystack/kubevirt-csi-driver:0.18.0@sha256:6f9091c3e7e4951c5e43fdafd505705fcc9f1ead290ee3ae42e97e9ec2b87b20
|
ghcr.io/cozystack/cozystack/kubevirt-csi-driver:0.19.0@sha256:5717919c75e609902c6d67138311a2a8fd07be822e2173f3802b67cf5f3486e9
|
||||||
|
|||||||
@@ -5,6 +5,11 @@ 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 35836e0c8b68d9916d29a838ea60cdd3fc6199cf
|
||||||
|
|
||||||
|
ARG TARGETOS
|
||||||
|
ARG TARGETARCH
|
||||||
|
ENV GOOS=$TARGETOS
|
||||||
|
ENV GOARCH=$TARGETARCH
|
||||||
|
|
||||||
WORKDIR /src/kubevirt-csi-driver
|
WORKDIR /src/kubevirt-csi-driver
|
||||||
RUN make build
|
RUN make build
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
ghcr.io/cozystack/cozystack/ubuntu-container-disk:v1.30.1@sha256:07392e7a87a3d4ef1c86c1b146e6c5de5c2b524aed5a53bf48870dc8a296f99a
|
ghcr.io/cozystack/cozystack/ubuntu-container-disk:v1.32@sha256:4a4f8bee150e04d1efcd5ff1ea83e12f495a98851cc5fd47ef41ac7aebce9b74
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# TODO: Here we use ubuntu:22.04, as guestfish has some network issues running in ubuntu:24.04
|
# TODO: Here we use ubuntu:22.04, as guestfish has some network issues running in ubuntu:24.04
|
||||||
FROM ubuntu:22.04 as guestfish
|
FROM ubuntu:22.04 AS guestfish
|
||||||
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
RUN apt-get update \
|
RUN apt-get update \
|
||||||
@@ -8,15 +8,17 @@ RUN apt-get update \
|
|||||||
linux-image-generic \
|
linux-image-generic \
|
||||||
wget \
|
wget \
|
||||||
make \
|
make \
|
||||||
bash-completion \
|
bash-completion
|
||||||
&& apt-get clean
|
|
||||||
|
|
||||||
WORKDIR /build
|
WORKDIR /build
|
||||||
|
|
||||||
FROM guestfish as builder
|
FROM guestfish AS builder
|
||||||
|
|
||||||
|
ARG TARGETOS
|
||||||
|
ARG TARGETARCH
|
||||||
|
|
||||||
# noble is a code name for the Ubuntu 24.04 LTS release
|
# noble is a code name for the Ubuntu 24.04 LTS release
|
||||||
RUN wget -O image.img https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img --show-progress --output-file /dev/stdout --progress=dot:giga 2>/dev/null
|
RUN wget -O image.img https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-${TARGETARCH}.img --show-progress --output-file /dev/stdout --progress=dot:giga 2>/dev/null
|
||||||
|
|
||||||
ARG KUBERNETES_VERSION
|
ARG KUBERNETES_VERSION
|
||||||
|
|
||||||
@@ -29,19 +31,21 @@ RUN qemu-img resize image.img 5G \
|
|||||||
&& guestfish --remote command "resize2fs /dev/sda1" \
|
&& guestfish --remote command "resize2fs /dev/sda1" \
|
||||||
# docker repo
|
# docker repo
|
||||||
&& guestfish --remote sh "curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg" \
|
&& guestfish --remote sh "curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg" \
|
||||||
&& guestfish --remote sh 'echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list' \
|
&& guestfish --remote sh 'echo "deb [signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list' \
|
||||||
# kubernetes repo
|
# kubernetes repo
|
||||||
&& guestfish --remote sh "curl -fsSL https://pkgs.k8s.io/core:/stable:/${KUBERNETES_VERSION}/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg" \
|
&& guestfish --remote sh "curl -fsSL https://pkgs.k8s.io/core:/stable:/${KUBERNETES_VERSION}/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg" \
|
||||||
&& guestfish --remote sh "echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/${KUBERNETES_VERSION}/deb/ /' | tee /etc/apt/sources.list.d/kubernetes.list" \
|
&& guestfish --remote sh "echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/${KUBERNETES_VERSION}/deb/ /' | tee /etc/apt/sources.list.d/kubernetes.list" \
|
||||||
|
&& guestfish --remote command "apt-get check -q" \
|
||||||
# install containerd
|
# install containerd
|
||||||
&& guestfish --remote command "apt-get update -y" \
|
&& guestfish --remote command "apt-get update -q" \
|
||||||
&& guestfish --remote command "apt-get install -y containerd.io" \
|
&& guestfish --remote command "apt-get install -yq containerd.io" \
|
||||||
# configure containerd
|
# configure containerd
|
||||||
&& guestfish --remote command "mkdir -p /etc/containerd" \
|
&& guestfish --remote command "mkdir -p /etc/containerd" \
|
||||||
&& guestfish --remote sh "containerd config default | tee /etc/containerd/config.toml" \
|
&& guestfish --remote sh "containerd config default | tee /etc/containerd/config.toml" \
|
||||||
&& guestfish --remote command "sed -i '/SystemdCgroup/ s/=.*/= true/' /etc/containerd/config.toml" \
|
&& guestfish --remote command "sed -i '/SystemdCgroup/ s/=.*/= true/' /etc/containerd/config.toml" \
|
||||||
|
&& guestfish --remote command "containerd config dump >/dev/null" \
|
||||||
# install kubernetes
|
# install kubernetes
|
||||||
&& guestfish --remote command "apt-get install -y kubelet kubeadm" \
|
&& guestfish --remote command "apt-get install -yq kubelet kubeadm" \
|
||||||
# clean apt cache
|
# clean apt cache
|
||||||
&& guestfish --remote sh 'apt-get clean && rm -rf /var/lib/apt/lists/*' \
|
&& guestfish --remote sh 'apt-get clean && rm -rf /var/lib/apt/lists/*' \
|
||||||
# write system configuration
|
# write system configuration
|
||||||
|
|||||||
@@ -11,35 +11,34 @@ These presets are for basic testing and not meant to be used in production
|
|||||||
{{ include "resources.preset" (dict "type" "nano") -}}
|
{{ include "resources.preset" (dict "type" "nano") -}}
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "resources.preset" -}}
|
{{- define "resources.preset" -}}
|
||||||
{{/* The limits are the requests increased by 50% (except ephemeral-storage and xlarge/2xlarge sizes)*/}}
|
|
||||||
{{- $presets := dict
|
{{- $presets := dict
|
||||||
"nano" (dict
|
"nano" (dict
|
||||||
"requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "150m" "memory" "192Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "128Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"micro" (dict
|
"micro" (dict
|
||||||
"requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "375m" "memory" "384Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "256Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"small" (dict
|
"small" (dict
|
||||||
"requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "750m" "memory" "768Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "512Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"medium" (dict
|
"medium" (dict
|
||||||
"requests" (dict "cpu" "500m" "memory" "1024Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "500m" "memory" "1Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "750m" "memory" "1536Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "1Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"large" (dict
|
"large" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "2048Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "1" "memory" "2Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "1.5" "memory" "3072Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "2Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"xlarge" (dict
|
"xlarge" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "2" "memory" "4Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "3.0" "memory" "6144Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "4Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"2xlarge" (dict
|
"2xlarge" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "4" "memory" "8Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "6.0" "memory" "12288Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "8Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
{{- if hasKey $presets .type -}}
|
{{- if hasKey $presets .type -}}
|
||||||
|
|||||||
@@ -150,14 +150,14 @@ spec:
|
|||||||
ingress:
|
ingress:
|
||||||
extraAnnotations:
|
extraAnnotations:
|
||||||
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
|
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
|
||||||
hostname: {{ .Values.host | default (printf "%s.%s" .Release.Name $host) }}
|
hostname: {{ .Values.host | default (printf "%s.%s" .Release.Name $host) }}:443
|
||||||
className: "{{ $ingress }}"
|
className: "{{ $ingress }}"
|
||||||
deployment:
|
deployment:
|
||||||
podAdditionalMetadata:
|
podAdditionalMetadata:
|
||||||
labels:
|
labels:
|
||||||
policy.cozystack.io/allow-to-etcd: "true"
|
policy.cozystack.io/allow-to-etcd: "true"
|
||||||
replicas: 2
|
replicas: 2
|
||||||
version: 1.30.1
|
version: {{ $.Chart.AppVersion }}
|
||||||
---
|
---
|
||||||
apiVersion: cozystack.io/v1alpha1
|
apiVersion: cozystack.io/v1alpha1
|
||||||
kind: WorkloadMonitor
|
kind: WorkloadMonitor
|
||||||
@@ -283,7 +283,7 @@ spec:
|
|||||||
kind: KubevirtMachineTemplate
|
kind: KubevirtMachineTemplate
|
||||||
name: {{ $.Release.Name }}-{{ $groupName }}-{{ $kubevirtmachinetemplateHash }}
|
name: {{ $.Release.Name }}-{{ $groupName }}-{{ $kubevirtmachinetemplateHash }}
|
||||||
namespace: {{ $.Release.Namespace }}
|
namespace: {{ $.Release.Namespace }}
|
||||||
version: v1.32.3
|
version: v{{ $.Chart.AppVersion }}
|
||||||
---
|
---
|
||||||
apiVersion: cluster.x-k8s.io/v1beta1
|
apiVersion: cluster.x-k8s.io/v1beta1
|
||||||
kind: MachineHealthCheck
|
kind: MachineHealthCheck
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ spec:
|
|||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: cozystack-system
|
name: cozystack-system
|
||||||
namespace: cozy-system
|
namespace: cozy-system
|
||||||
|
version: '>= 0.0.0-0'
|
||||||
kubeConfig:
|
kubeConfig:
|
||||||
secretRef:
|
secretRef:
|
||||||
name: {{ .Release.Name }}-admin-kubeconfig
|
name: {{ .Release.Name }}-admin-kubeconfig
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ spec:
|
|||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: cozystack-system
|
name: cozystack-system
|
||||||
namespace: cozy-system
|
namespace: cozy-system
|
||||||
|
version: '>= 0.0.0-0'
|
||||||
kubeConfig:
|
kubeConfig:
|
||||||
secretRef:
|
secretRef:
|
||||||
name: {{ .Release.Name }}-admin-kubeconfig
|
name: {{ .Release.Name }}-admin-kubeconfig
|
||||||
|
|||||||
@@ -1,3 +1,18 @@
|
|||||||
|
{{- define "cozystack.defaultCiliumValues" -}}
|
||||||
|
cilium:
|
||||||
|
k8sServiceHost: {{ .Release.Name }}.{{ .Release.Namespace }}.svc
|
||||||
|
k8sServicePort: 6443
|
||||||
|
routingMode: tunnel
|
||||||
|
enableIPv4Masquerade: true
|
||||||
|
ipv4NativeRoutingCIDR: ""
|
||||||
|
{{- if $.Values.addons.gatewayAPI.enabled }}
|
||||||
|
gatewayAPI:
|
||||||
|
enabled: true
|
||||||
|
envoy:
|
||||||
|
enabled: true
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||||
kind: HelmRelease
|
kind: HelmRelease
|
||||||
metadata:
|
metadata:
|
||||||
@@ -16,6 +31,7 @@ spec:
|
|||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: cozystack-system
|
name: cozystack-system
|
||||||
namespace: cozy-system
|
namespace: cozy-system
|
||||||
|
version: '>= 0.0.0-0'
|
||||||
kubeConfig:
|
kubeConfig:
|
||||||
secretRef:
|
secretRef:
|
||||||
name: {{ .Release.Name }}-admin-kubeconfig
|
name: {{ .Release.Name }}-admin-kubeconfig
|
||||||
@@ -30,14 +46,13 @@ spec:
|
|||||||
remediation:
|
remediation:
|
||||||
retries: -1
|
retries: -1
|
||||||
values:
|
values:
|
||||||
cilium:
|
{{- toYaml (deepCopy .Values.addons.cilium.valuesOverride | mergeOverwrite (fromYaml (include "cozystack.defaultCiliumValues" .))) | nindent 4 }}
|
||||||
k8sServiceHost: {{ .Release.Name }}.{{ .Release.Namespace }}.svc
|
|
||||||
k8sServicePort: 6443
|
|
||||||
routingMode: tunnel
|
|
||||||
enableIPv4Masquerade: true
|
|
||||||
ipv4NativeRoutingCIDR: ""
|
|
||||||
dependsOn:
|
dependsOn:
|
||||||
{{- if lookup "helm.toolkit.fluxcd.io/v2" "HelmRelease" .Release.Namespace .Release.Name }}
|
{{- if lookup "helm.toolkit.fluxcd.io/v2" "HelmRelease" .Release.Namespace .Release.Name }}
|
||||||
- name: {{ .Release.Name }}
|
- name: {{ .Release.Name }}
|
||||||
namespace: {{ .Release.Namespace }}
|
namespace: {{ .Release.Namespace }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if $.Values.addons.gatewayAPI.enabled }}
|
||||||
|
- name: {{ .Release.Name }}-gateway-api-crds
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
{{- end }}
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ spec:
|
|||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: cozystack-system
|
name: cozystack-system
|
||||||
namespace: cozy-system
|
namespace: cozy-system
|
||||||
|
version: '>= 0.0.0-0'
|
||||||
kubeConfig:
|
kubeConfig:
|
||||||
secretRef:
|
secretRef:
|
||||||
name: {{ .Release.Name }}-admin-kubeconfig
|
name: {{ .Release.Name }}-admin-kubeconfig
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ spec:
|
|||||||
patch
|
patch
|
||||||
helmrelease
|
helmrelease
|
||||||
{{ .Release.Name }}-cilium
|
{{ .Release.Name }}-cilium
|
||||||
|
{{ .Release.Name }}-gateway-api-crds
|
||||||
{{ .Release.Name }}-csi
|
{{ .Release.Name }}-csi
|
||||||
{{ .Release.Name }}-cert-manager
|
{{ .Release.Name }}-cert-manager
|
||||||
{{ .Release.Name }}-cert-manager-crds
|
{{ .Release.Name }}-cert-manager-crds
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ spec:
|
|||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: cozystack-system
|
name: cozystack-system
|
||||||
namespace: cozy-system
|
namespace: cozy-system
|
||||||
|
version: '>= 0.0.0-0'
|
||||||
kubeConfig:
|
kubeConfig:
|
||||||
secretRef:
|
secretRef:
|
||||||
name: {{ .Release.Name }}-admin-kubeconfig
|
name: {{ .Release.Name }}-admin-kubeconfig
|
||||||
@@ -61,6 +62,7 @@ spec:
|
|||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: cozystack-system
|
name: cozystack-system
|
||||||
namespace: cozy-system
|
namespace: cozy-system
|
||||||
|
version: '>= 0.0.0-0'
|
||||||
kubeConfig:
|
kubeConfig:
|
||||||
secretRef:
|
secretRef:
|
||||||
name: {{ .Release.Name }}-kubeconfig
|
name: {{ .Release.Name }}-kubeconfig
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
{{- if $.Values.addons.gatewayAPI.enabled }}
|
||||||
|
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||||
|
kind: HelmRelease
|
||||||
|
metadata:
|
||||||
|
name: {{ .Release.Name }}-gateway-api-crds
|
||||||
|
labels:
|
||||||
|
cozystack.io/repository: system
|
||||||
|
cozystack.io/target-cluster-name: {{ .Release.Name }}
|
||||||
|
spec:
|
||||||
|
interval: 5m
|
||||||
|
releaseName: gateway-api-crds
|
||||||
|
chart:
|
||||||
|
spec:
|
||||||
|
chart: cozy-gateway-api-crds
|
||||||
|
reconcileStrategy: Revision
|
||||||
|
sourceRef:
|
||||||
|
kind: HelmRepository
|
||||||
|
name: cozystack-system
|
||||||
|
namespace: cozy-system
|
||||||
|
kubeConfig:
|
||||||
|
secretRef:
|
||||||
|
name: {{ .Release.Name }}-admin-kubeconfig
|
||||||
|
key: super-admin.svc
|
||||||
|
targetNamespace: kube-system
|
||||||
|
storageNamespace: kube-system
|
||||||
|
install:
|
||||||
|
createNamespace: false
|
||||||
|
remediation:
|
||||||
|
retries: -1
|
||||||
|
upgrade:
|
||||||
|
remediation:
|
||||||
|
retries: -1
|
||||||
|
dependsOn:
|
||||||
|
{{- if lookup "helm.toolkit.fluxcd.io/v2" "HelmRelease" .Release.Namespace .Release.Name }}
|
||||||
|
- name: {{ .Release.Name }}
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
@@ -17,6 +17,7 @@ spec:
|
|||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: cozystack-system
|
name: cozystack-system
|
||||||
namespace: cozy-system
|
namespace: cozy-system
|
||||||
|
version: '>= 0.0.0-0'
|
||||||
kubeConfig:
|
kubeConfig:
|
||||||
secretRef:
|
secretRef:
|
||||||
name: {{ .Release.Name }}-admin-kubeconfig
|
name: {{ .Release.Name }}-admin-kubeconfig
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ spec:
|
|||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: cozystack-system
|
name: cozystack-system
|
||||||
namespace: cozy-system
|
namespace: cozy-system
|
||||||
|
version: '>= 0.0.0-0'
|
||||||
kubeConfig:
|
kubeConfig:
|
||||||
secretRef:
|
secretRef:
|
||||||
name: {{ .Release.Name }}-admin-kubeconfig
|
name: {{ .Release.Name }}-admin-kubeconfig
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ spec:
|
|||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: cozystack-system
|
name: cozystack-system
|
||||||
namespace: cozy-system
|
namespace: cozy-system
|
||||||
|
version: '>= 0.0.0-0'
|
||||||
kubeConfig:
|
kubeConfig:
|
||||||
secretRef:
|
secretRef:
|
||||||
name: {{ .Release.Name }}-admin-kubeconfig
|
name: {{ .Release.Name }}-admin-kubeconfig
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ spec:
|
|||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: cozystack-system
|
name: cozystack-system
|
||||||
namespace: cozy-system
|
namespace: cozy-system
|
||||||
|
version: '>= 0.0.0-0'
|
||||||
kubeConfig:
|
kubeConfig:
|
||||||
secretRef:
|
secretRef:
|
||||||
name: {{ .Release.Name }}-admin-kubeconfig
|
name: {{ .Release.Name }}-admin-kubeconfig
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ spec:
|
|||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: cozystack-system
|
name: cozystack-system
|
||||||
namespace: cozy-system
|
namespace: cozy-system
|
||||||
|
version: '>= 0.0.0-0'
|
||||||
kubeConfig:
|
kubeConfig:
|
||||||
secretRef:
|
secretRef:
|
||||||
name: {{ .Release.Name }}-admin-kubeconfig
|
name: {{ .Release.Name }}-admin-kubeconfig
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ spec:
|
|||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: cozystack-system
|
name: cozystack-system
|
||||||
namespace: cozy-system
|
namespace: cozy-system
|
||||||
|
version: '>= 0.0.0-0'
|
||||||
kubeConfig:
|
kubeConfig:
|
||||||
secretRef:
|
secretRef:
|
||||||
name: {{ .Release.Name }}-admin-kubeconfig
|
name: {{ .Release.Name }}-admin-kubeconfig
|
||||||
|
|||||||
@@ -145,6 +145,26 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"cilium": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"valuesOverride": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "Custom values to override",
|
||||||
|
"default": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gatewayAPI": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"enabled": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Enables the Gateway API",
|
||||||
|
"default": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"ingressNginx": {
|
"ingressNginx": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
|||||||
@@ -42,6 +42,18 @@ addons:
|
|||||||
enabled: false
|
enabled: false
|
||||||
valuesOverride: {}
|
valuesOverride: {}
|
||||||
|
|
||||||
|
## Cilium CNI plugin
|
||||||
|
##
|
||||||
|
cilium:
|
||||||
|
## @param addons.cilium.valuesOverride Custom values to override
|
||||||
|
valuesOverride: {}
|
||||||
|
|
||||||
|
## Gateway API
|
||||||
|
##
|
||||||
|
gatewayAPI:
|
||||||
|
## @param addons.gatewayAPI.enabled Enables the Gateway API
|
||||||
|
enabled: false
|
||||||
|
|
||||||
## Ingress-NGINX Controller
|
## Ingress-NGINX Controller
|
||||||
##
|
##
|
||||||
ingressNginx:
|
ingressNginx:
|
||||||
|
|||||||
@@ -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.6.0
|
version: 0.7.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
|
||||||
|
|||||||
@@ -7,8 +7,10 @@ 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
|
||||||
|
|
||||||
image:
|
image:
|
||||||
docker buildx build --platform linux/amd64 --build-arg ARCH=amd64 images/mariadb-backup \
|
docker buildx build images/mariadb-backup \
|
||||||
--provenance false \
|
--provenance false \
|
||||||
|
--builder=$(BUILDER) \
|
||||||
|
--platform=$(PLATFORM) \
|
||||||
--tag $(REGISTRY)/mariadb-backup:$(call settag,$(MARIADB_BACKUP_TAG)) \
|
--tag $(REGISTRY)/mariadb-backup:$(call settag,$(MARIADB_BACKUP_TAG)) \
|
||||||
--cache-from type=registry,ref=$(REGISTRY)/mariadb-backup:latest \
|
--cache-from type=registry,ref=$(REGISTRY)/mariadb-backup:latest \
|
||||||
--cache-to type=inline \
|
--cache-to type=inline \
|
||||||
|
|||||||
@@ -11,35 +11,34 @@ These presets are for basic testing and not meant to be used in production
|
|||||||
{{ include "resources.preset" (dict "type" "nano") -}}
|
{{ include "resources.preset" (dict "type" "nano") -}}
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "resources.preset" -}}
|
{{- define "resources.preset" -}}
|
||||||
{{/* The limits are the requests increased by 50% (except ephemeral-storage and xlarge/2xlarge sizes)*/}}
|
|
||||||
{{- $presets := dict
|
{{- $presets := dict
|
||||||
"nano" (dict
|
"nano" (dict
|
||||||
"requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "150m" "memory" "192Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "128Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"micro" (dict
|
"micro" (dict
|
||||||
"requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "375m" "memory" "384Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "256Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"small" (dict
|
"small" (dict
|
||||||
"requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "750m" "memory" "768Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "512Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"medium" (dict
|
"medium" (dict
|
||||||
"requests" (dict "cpu" "500m" "memory" "1024Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "500m" "memory" "1Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "750m" "memory" "1536Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "1Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"large" (dict
|
"large" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "2048Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "1" "memory" "2Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "1.5" "memory" "3072Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "2Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"xlarge" (dict
|
"xlarge" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "2" "memory" "4Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "3.0" "memory" "6144Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "4Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"2xlarge" (dict
|
"2xlarge" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "4" "memory" "8Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "6.0" "memory" "12288Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "8Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
{{- if hasKey $presets .type -}}
|
{{- if hasKey $presets .type -}}
|
||||||
|
|||||||
@@ -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.0
|
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
|
||||||
|
|||||||
@@ -11,35 +11,34 @@ These presets are for basic testing and not meant to be used in production
|
|||||||
{{ include "resources.preset" (dict "type" "nano") -}}
|
{{ include "resources.preset" (dict "type" "nano") -}}
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "resources.preset" -}}
|
{{- define "resources.preset" -}}
|
||||||
{{/* The limits are the requests increased by 50% (except ephemeral-storage and xlarge/2xlarge sizes)*/}}
|
|
||||||
{{- $presets := dict
|
{{- $presets := dict
|
||||||
"nano" (dict
|
"nano" (dict
|
||||||
"requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "150m" "memory" "192Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "128Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"micro" (dict
|
"micro" (dict
|
||||||
"requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "375m" "memory" "384Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "256Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"small" (dict
|
"small" (dict
|
||||||
"requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "750m" "memory" "768Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "512Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"medium" (dict
|
"medium" (dict
|
||||||
"requests" (dict "cpu" "500m" "memory" "1024Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "500m" "memory" "1Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "750m" "memory" "1536Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "1Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"large" (dict
|
"large" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "2048Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "1" "memory" "2Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "1.5" "memory" "3072Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "2Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"xlarge" (dict
|
"xlarge" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "2" "memory" "4Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "3.0" "memory" "6144Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "4Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"2xlarge" (dict
|
"2xlarge" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "4" "memory" "8Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "6.0" "memory" "12288Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "8Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
{{- if hasKey $presets .type -}}
|
{{- if hasKey $presets .type -}}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ spec:
|
|||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: cozystack-system
|
name: cozystack-system
|
||||||
namespace: cozy-system
|
namespace: cozy-system
|
||||||
version: '*'
|
version: '>= 0.0.0-0'
|
||||||
interval: 1m0s
|
interval: 1m0s
|
||||||
timeout: 5m0s
|
timeout: 5m0s
|
||||||
values:
|
values:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -7,8 +7,10 @@ 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
|
||||||
|
|
||||||
image:
|
image:
|
||||||
docker buildx build --platform linux/amd64 --build-arg ARCH=amd64 images/postgres-backup \
|
docker buildx build images/postgres-backup \
|
||||||
--provenance false \
|
--provenance false \
|
||||||
|
--builder=$(BUILDER) \
|
||||||
|
--platform=$(PLATFORM) \
|
||||||
--tag $(REGISTRY)/postgres-backup:$(call settag,$(POSTGRES_BACKUP_TAG)) \
|
--tag $(REGISTRY)/postgres-backup:$(call settag,$(POSTGRES_BACKUP_TAG)) \
|
||||||
--cache-from type=registry,ref=$(REGISTRY)/postgres-backup:latest \
|
--cache-from type=registry,ref=$(REGISTRY)/postgres-backup:latest \
|
||||||
--cache-to type=inline \
|
--cache-to type=inline \
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
ghcr.io/cozystack/cozystack/postgres-backup:0.10.0@sha256:10179ed56457460d95cd5708db2a00130901255fa30c4dd76c65d2ef5622b61f
|
ghcr.io/cozystack/cozystack/postgres-backup:0.10.1@sha256:10179ed56457460d95cd5708db2a00130901255fa30c4dd76c65d2ef5622b61f
|
||||||
|
|||||||
@@ -11,35 +11,34 @@ These presets are for basic testing and not meant to be used in production
|
|||||||
{{ include "resources.preset" (dict "type" "nano") -}}
|
{{ include "resources.preset" (dict "type" "nano") -}}
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "resources.preset" -}}
|
{{- define "resources.preset" -}}
|
||||||
{{/* The limits are the requests increased by 50% (except ephemeral-storage and xlarge/2xlarge sizes)*/}}
|
|
||||||
{{- $presets := dict
|
{{- $presets := dict
|
||||||
"nano" (dict
|
"nano" (dict
|
||||||
"requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "150m" "memory" "192Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "128Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"micro" (dict
|
"micro" (dict
|
||||||
"requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "375m" "memory" "384Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "256Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"small" (dict
|
"small" (dict
|
||||||
"requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "750m" "memory" "768Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "512Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"medium" (dict
|
"medium" (dict
|
||||||
"requests" (dict "cpu" "500m" "memory" "1024Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "500m" "memory" "1Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "750m" "memory" "1536Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "1Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"large" (dict
|
"large" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "2048Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "1" "memory" "2Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "1.5" "memory" "3072Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "2Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"xlarge" (dict
|
"xlarge" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "2" "memory" "4Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "3.0" "memory" "6144Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "4Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"2xlarge" (dict
|
"2xlarge" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "4" "memory" "8Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "6.0" "memory" "12288Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "8Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
{{- if hasKey $presets .type -}}
|
{{- if hasKey $presets .type -}}
|
||||||
|
|||||||
@@ -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.0
|
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
|
||||||
|
|||||||
@@ -11,35 +11,34 @@ These presets are for basic testing and not meant to be used in production
|
|||||||
{{ include "resources.preset" (dict "type" "nano") -}}
|
{{ include "resources.preset" (dict "type" "nano") -}}
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "resources.preset" -}}
|
{{- define "resources.preset" -}}
|
||||||
{{/* The limits are the requests increased by 50% (except ephemeral-storage and xlarge/2xlarge sizes)*/}}
|
|
||||||
{{- $presets := dict
|
{{- $presets := dict
|
||||||
"nano" (dict
|
"nano" (dict
|
||||||
"requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "150m" "memory" "192Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "128Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"micro" (dict
|
"micro" (dict
|
||||||
"requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "375m" "memory" "384Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "256Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"small" (dict
|
"small" (dict
|
||||||
"requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "750m" "memory" "768Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "512Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"medium" (dict
|
"medium" (dict
|
||||||
"requests" (dict "cpu" "500m" "memory" "1024Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "500m" "memory" "1Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "750m" "memory" "1536Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "1Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"large" (dict
|
"large" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "2048Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "1" "memory" "2Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "1.5" "memory" "3072Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "2Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"xlarge" (dict
|
"xlarge" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "2" "memory" "4Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "3.0" "memory" "6144Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "4Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"2xlarge" (dict
|
"2xlarge" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "4" "memory" "8Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "6.0" "memory" "12288Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "8Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
{{- if hasKey $presets .type -}}
|
{{- if hasKey $presets .type -}}
|
||||||
|
|||||||
@@ -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.6.0
|
version: 0.7.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
|
||||||
|
|||||||
@@ -11,35 +11,34 @@ These presets are for basic testing and not meant to be used in production
|
|||||||
{{ include "resources.preset" (dict "type" "nano") -}}
|
{{ include "resources.preset" (dict "type" "nano") -}}
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "resources.preset" -}}
|
{{- define "resources.preset" -}}
|
||||||
{{/* The limits are the requests increased by 50% (except ephemeral-storage and xlarge/2xlarge sizes)*/}}
|
|
||||||
{{- $presets := dict
|
{{- $presets := dict
|
||||||
"nano" (dict
|
"nano" (dict
|
||||||
"requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "150m" "memory" "192Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "128Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"micro" (dict
|
"micro" (dict
|
||||||
"requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "375m" "memory" "384Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "256Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"small" (dict
|
"small" (dict
|
||||||
"requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "750m" "memory" "768Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "512Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"medium" (dict
|
"medium" (dict
|
||||||
"requests" (dict "cpu" "500m" "memory" "1024Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "500m" "memory" "1Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "750m" "memory" "1536Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "1Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"large" (dict
|
"large" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "2048Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "1" "memory" "2Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "1.5" "memory" "3072Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "2Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"xlarge" (dict
|
"xlarge" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "2" "memory" "4Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "3.0" "memory" "6144Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "4Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"2xlarge" (dict
|
"2xlarge" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "4" "memory" "8Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "6.0" "memory" "12288Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "8Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
{{- if hasKey $presets .type -}}
|
{{- if hasKey $presets .type -}}
|
||||||
|
|||||||
@@ -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.3.0
|
version: 0.4.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
|
||||||
|
|||||||
@@ -11,35 +11,34 @@ These presets are for basic testing and not meant to be used in production
|
|||||||
{{ include "resources.preset" (dict "type" "nano") -}}
|
{{ include "resources.preset" (dict "type" "nano") -}}
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "resources.preset" -}}
|
{{- define "resources.preset" -}}
|
||||||
{{/* The limits are the requests increased by 50% (except ephemeral-storage and xlarge/2xlarge sizes)*/}}
|
|
||||||
{{- $presets := dict
|
{{- $presets := dict
|
||||||
"nano" (dict
|
"nano" (dict
|
||||||
"requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "150m" "memory" "192Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "128Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"micro" (dict
|
"micro" (dict
|
||||||
"requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "375m" "memory" "384Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "256Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"small" (dict
|
"small" (dict
|
||||||
"requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "750m" "memory" "768Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "512Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"medium" (dict
|
"medium" (dict
|
||||||
"requests" (dict "cpu" "500m" "memory" "1024Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "500m" "memory" "1Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "750m" "memory" "1536Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "1Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"large" (dict
|
"large" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "2048Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "1" "memory" "2Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "1.5" "memory" "3072Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "2Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"xlarge" (dict
|
"xlarge" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "2" "memory" "4Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "3.0" "memory" "6144Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "4Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"2xlarge" (dict
|
"2xlarge" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "4" "memory" "8Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "6.0" "memory" "12288Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "8Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
{{- if hasKey $presets .type -}}
|
{{- if hasKey $presets .type -}}
|
||||||
|
|||||||
@@ -8,7 +8,8 @@ clickhouse 0.5.0 0f312d5c
|
|||||||
clickhouse 0.6.0 1ec10165
|
clickhouse 0.6.0 1ec10165
|
||||||
clickhouse 0.6.1 c62a83a7
|
clickhouse 0.6.1 c62a83a7
|
||||||
clickhouse 0.6.2 8267072d
|
clickhouse 0.6.2 8267072d
|
||||||
clickhouse 0.7.0 HEAD
|
clickhouse 0.7.0 93bdf411
|
||||||
|
clickhouse 0.8.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
|
||||||
@@ -16,12 +17,14 @@ ferretdb 0.3.0 b8e33d19
|
|||||||
ferretdb 0.4.0 b40e1b09
|
ferretdb 0.4.0 b40e1b09
|
||||||
ferretdb 0.4.1 1ec10165
|
ferretdb 0.4.1 1ec10165
|
||||||
ferretdb 0.4.2 8267072d
|
ferretdb 0.4.2 8267072d
|
||||||
ferretdb 0.5.0 HEAD
|
ferretdb 0.5.0 93bdf411
|
||||||
|
ferretdb 0.6.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
|
||||||
http-cache 0.3.1 0f312d5c
|
http-cache 0.3.1 0f312d5c
|
||||||
http-cache 0.4.0 HEAD
|
http-cache 0.4.0 93bdf411
|
||||||
|
http-cache 0.5.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
|
||||||
@@ -32,7 +35,8 @@ kafka 0.3.1 c62a83a7
|
|||||||
kafka 0.3.2 93c46161
|
kafka 0.3.2 93c46161
|
||||||
kafka 0.3.3 8267072d
|
kafka 0.3.3 8267072d
|
||||||
kafka 0.4.0 85ec09b8
|
kafka 0.4.0 85ec09b8
|
||||||
kafka 0.5.0 HEAD
|
kafka 0.5.0 93bdf411
|
||||||
|
kafka 0.6.0 HEAD
|
||||||
kubernetes 0.1.0 263e47be
|
kubernetes 0.1.0 263e47be
|
||||||
kubernetes 0.2.0 53f2365e
|
kubernetes 0.2.0 53f2365e
|
||||||
kubernetes 0.3.0 007d414f
|
kubernetes 0.3.0 007d414f
|
||||||
@@ -59,7 +63,8 @@ kubernetes 0.16.0 077045b0
|
|||||||
kubernetes 0.17.0 1fbbfcd0
|
kubernetes 0.17.0 1fbbfcd0
|
||||||
kubernetes 0.17.1 fd240701
|
kubernetes 0.17.1 fd240701
|
||||||
kubernetes 0.18.0 721c12a7
|
kubernetes 0.18.0 721c12a7
|
||||||
kubernetes 0.19.0 HEAD
|
kubernetes 0.19.0 93bdf411
|
||||||
|
kubernetes 0.20.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
|
||||||
@@ -68,14 +73,16 @@ mysql 0.5.0 b40e1b09
|
|||||||
mysql 0.5.1 0f312d5c
|
mysql 0.5.1 0f312d5c
|
||||||
mysql 0.5.2 1ec10165
|
mysql 0.5.2 1ec10165
|
||||||
mysql 0.5.3 8267072d
|
mysql 0.5.3 8267072d
|
||||||
mysql 0.6.0 HEAD
|
mysql 0.6.0 93bdf411
|
||||||
|
mysql 0.7.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
|
||||||
nats 0.3.1 c62a83a7
|
nats 0.3.1 c62a83a7
|
||||||
nats 0.4.0 898374b5
|
nats 0.4.0 898374b5
|
||||||
nats 0.4.1 8267072d
|
nats 0.4.1 8267072d
|
||||||
nats 0.5.0 HEAD
|
nats 0.5.0 93bdf411
|
||||||
|
nats 0.6.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
|
||||||
@@ -90,7 +97,8 @@ postgres 0.7.1 1ec10165
|
|||||||
postgres 0.8.0 4e68e65c
|
postgres 0.8.0 4e68e65c
|
||||||
postgres 0.9.0 8267072d
|
postgres 0.9.0 8267072d
|
||||||
postgres 0.10.0 721c12a7
|
postgres 0.10.0 721c12a7
|
||||||
postgres 0.10.1 HEAD
|
postgres 0.10.1 93bdf411
|
||||||
|
postgres 0.11.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
|
||||||
@@ -99,17 +107,20 @@ rabbitmq 0.4.1 1128d0cb
|
|||||||
rabbitmq 0.4.2 4b90bf5a
|
rabbitmq 0.4.2 4b90bf5a
|
||||||
rabbitmq 0.4.3 1ec10165
|
rabbitmq 0.4.3 1ec10165
|
||||||
rabbitmq 0.4.4 8267072d
|
rabbitmq 0.4.4 8267072d
|
||||||
rabbitmq 0.5.0 HEAD
|
rabbitmq 0.5.0 93bdf411
|
||||||
|
rabbitmq 0.6.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
|
||||||
redis 0.3.1 c62a83a7
|
redis 0.3.1 c62a83a7
|
||||||
redis 0.4.0 84f3ccc0
|
redis 0.4.0 84f3ccc0
|
||||||
redis 0.5.0 4e68e65c
|
redis 0.5.0 4e68e65c
|
||||||
redis 0.6.0 HEAD
|
redis 0.6.0 93bdf411
|
||||||
|
redis 0.7.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 HEAD
|
tcp-balancer 0.3.0 93bdf411
|
||||||
|
tcp-balancer 0.4.0 HEAD
|
||||||
tenant 0.1.4 afc997ef
|
tenant 0.1.4 afc997ef
|
||||||
tenant 0.1.5 e3ab858a
|
tenant 0.1.5 e3ab858a
|
||||||
tenant 1.0.0 263e47be
|
tenant 1.0.0 263e47be
|
||||||
@@ -162,4 +173,5 @@ 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
|
||||||
vpn 0.3.1 1ec10165
|
vpn 0.3.1 1ec10165
|
||||||
vpn 0.4.0 HEAD
|
vpn 0.4.0 93bdf411
|
||||||
|
vpn 0.5.0 HEAD
|
||||||
|
|||||||
@@ -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.0
|
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
|
||||||
|
|||||||
@@ -11,35 +11,34 @@ These presets are for basic testing and not meant to be used in production
|
|||||||
{{ include "resources.preset" (dict "type" "nano") -}}
|
{{ include "resources.preset" (dict "type" "nano") -}}
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "resources.preset" -}}
|
{{- define "resources.preset" -}}
|
||||||
{{/* The limits are the requests increased by 50% (except ephemeral-storage and xlarge/2xlarge sizes)*/}}
|
|
||||||
{{- $presets := dict
|
{{- $presets := dict
|
||||||
"nano" (dict
|
"nano" (dict
|
||||||
"requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "150m" "memory" "192Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "128Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"micro" (dict
|
"micro" (dict
|
||||||
"requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "375m" "memory" "384Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "256Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"small" (dict
|
"small" (dict
|
||||||
"requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "750m" "memory" "768Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "512Mi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"medium" (dict
|
"medium" (dict
|
||||||
"requests" (dict "cpu" "500m" "memory" "1024Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "500m" "memory" "1Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "750m" "memory" "1536Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "1Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"large" (dict
|
"large" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "2048Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "1" "memory" "2Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "1.5" "memory" "3072Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "2Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"xlarge" (dict
|
"xlarge" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "2" "memory" "4Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "3.0" "memory" "6144Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "4Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
"2xlarge" (dict
|
"2xlarge" (dict
|
||||||
"requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
|
"requests" (dict "cpu" "4" "memory" "8Gi" "ephemeral-storage" "50Mi")
|
||||||
"limits" (dict "cpu" "6.0" "memory" "12288Mi" "ephemeral-storage" "2Gi")
|
"limits" (dict "memory" "8Gi" "ephemeral-storage" "2Gi")
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
{{- if hasKey $presets .type -}}
|
{{- if hasKey $presets .type -}}
|
||||||
|
|||||||
@@ -3,24 +3,24 @@
|
|||||||
arch: amd64
|
arch: amd64
|
||||||
platform: metal
|
platform: metal
|
||||||
secureboot: false
|
secureboot: false
|
||||||
version: v1.9.5
|
version: v1.10.1
|
||||||
input:
|
input:
|
||||||
kernel:
|
kernel:
|
||||||
path: /usr/install/amd64/vmlinuz
|
path: /usr/install/amd64/vmlinuz
|
||||||
initramfs:
|
initramfs:
|
||||||
path: /usr/install/amd64/initramfs.xz
|
path: /usr/install/amd64/initramfs.xz
|
||||||
baseInstaller:
|
baseInstaller:
|
||||||
imageRef: ghcr.io/siderolabs/installer:v1.9.5
|
imageRef: ghcr.io/siderolabs/installer:v1.10.1
|
||||||
systemExtensions:
|
systemExtensions:
|
||||||
- imageRef: ghcr.io/siderolabs/amd-ucode:20250311
|
- imageRef: ghcr.io/siderolabs/amd-ucode:20250410
|
||||||
- imageRef: ghcr.io/siderolabs/amdgpu-firmware:20241110
|
- imageRef: ghcr.io/siderolabs/amdgpu-firmware:20241110
|
||||||
- imageRef: ghcr.io/siderolabs/bnx2-bnx2x:20250311
|
- imageRef: ghcr.io/siderolabs/bnx2-bnx2x:20250410
|
||||||
- imageRef: ghcr.io/siderolabs/i915-ucode:20241110
|
- imageRef: ghcr.io/siderolabs/i915-ucode:20241110
|
||||||
- imageRef: ghcr.io/siderolabs/intel-ice-firmware:20250311
|
- imageRef: ghcr.io/siderolabs/intel-ice-firmware:20250410
|
||||||
- imageRef: ghcr.io/siderolabs/intel-ucode:20250211
|
- imageRef: ghcr.io/siderolabs/intel-ucode:20250211
|
||||||
- imageRef: ghcr.io/siderolabs/qlogic-firmware:20250311
|
- imageRef: ghcr.io/siderolabs/qlogic-firmware:20250410
|
||||||
- imageRef: ghcr.io/siderolabs/drbd:9.2.12-v1.9.5
|
- imageRef: ghcr.io/siderolabs/drbd:9.2.13-v1.10.1
|
||||||
- imageRef: ghcr.io/siderolabs/zfs:2.2.7-v1.9.5
|
- imageRef: ghcr.io/siderolabs/zfs:2.3.1-v1.10.1
|
||||||
output:
|
output:
|
||||||
kind: initramfs
|
kind: initramfs
|
||||||
imageOptions: {}
|
imageOptions: {}
|
||||||
|
|||||||
@@ -3,24 +3,24 @@
|
|||||||
arch: amd64
|
arch: amd64
|
||||||
platform: metal
|
platform: metal
|
||||||
secureboot: false
|
secureboot: false
|
||||||
version: v1.9.5
|
version: v1.10.1
|
||||||
input:
|
input:
|
||||||
kernel:
|
kernel:
|
||||||
path: /usr/install/amd64/vmlinuz
|
path: /usr/install/amd64/vmlinuz
|
||||||
initramfs:
|
initramfs:
|
||||||
path: /usr/install/amd64/initramfs.xz
|
path: /usr/install/amd64/initramfs.xz
|
||||||
baseInstaller:
|
baseInstaller:
|
||||||
imageRef: ghcr.io/siderolabs/installer:v1.9.5
|
imageRef: ghcr.io/siderolabs/installer:v1.10.1
|
||||||
systemExtensions:
|
systemExtensions:
|
||||||
- imageRef: ghcr.io/siderolabs/amd-ucode:20250311
|
- imageRef: ghcr.io/siderolabs/amd-ucode:20250410
|
||||||
- imageRef: ghcr.io/siderolabs/amdgpu-firmware:20241110
|
- imageRef: ghcr.io/siderolabs/amdgpu-firmware:20241110
|
||||||
- imageRef: ghcr.io/siderolabs/bnx2-bnx2x:20250311
|
- imageRef: ghcr.io/siderolabs/bnx2-bnx2x:20250410
|
||||||
- imageRef: ghcr.io/siderolabs/i915-ucode:20241110
|
- imageRef: ghcr.io/siderolabs/i915-ucode:20241110
|
||||||
- imageRef: ghcr.io/siderolabs/intel-ice-firmware:20250311
|
- imageRef: ghcr.io/siderolabs/intel-ice-firmware:20250410
|
||||||
- imageRef: ghcr.io/siderolabs/intel-ucode:20250211
|
- imageRef: ghcr.io/siderolabs/intel-ucode:20250211
|
||||||
- imageRef: ghcr.io/siderolabs/qlogic-firmware:20250311
|
- imageRef: ghcr.io/siderolabs/qlogic-firmware:20250410
|
||||||
- imageRef: ghcr.io/siderolabs/drbd:9.2.12-v1.9.5
|
- imageRef: ghcr.io/siderolabs/drbd:9.2.13-v1.10.1
|
||||||
- imageRef: ghcr.io/siderolabs/zfs:2.2.7-v1.9.5
|
- imageRef: ghcr.io/siderolabs/zfs:2.3.1-v1.10.1
|
||||||
output:
|
output:
|
||||||
kind: installer
|
kind: installer
|
||||||
imageOptions: {}
|
imageOptions: {}
|
||||||
|
|||||||
@@ -3,24 +3,24 @@
|
|||||||
arch: amd64
|
arch: amd64
|
||||||
platform: metal
|
platform: metal
|
||||||
secureboot: false
|
secureboot: false
|
||||||
version: v1.9.5
|
version: v1.10.1
|
||||||
input:
|
input:
|
||||||
kernel:
|
kernel:
|
||||||
path: /usr/install/amd64/vmlinuz
|
path: /usr/install/amd64/vmlinuz
|
||||||
initramfs:
|
initramfs:
|
||||||
path: /usr/install/amd64/initramfs.xz
|
path: /usr/install/amd64/initramfs.xz
|
||||||
baseInstaller:
|
baseInstaller:
|
||||||
imageRef: ghcr.io/siderolabs/installer:v1.9.5
|
imageRef: ghcr.io/siderolabs/installer:v1.10.1
|
||||||
systemExtensions:
|
systemExtensions:
|
||||||
- imageRef: ghcr.io/siderolabs/amd-ucode:20250311
|
- imageRef: ghcr.io/siderolabs/amd-ucode:20250410
|
||||||
- imageRef: ghcr.io/siderolabs/amdgpu-firmware:20241110
|
- imageRef: ghcr.io/siderolabs/amdgpu-firmware:20241110
|
||||||
- imageRef: ghcr.io/siderolabs/bnx2-bnx2x:20250311
|
- imageRef: ghcr.io/siderolabs/bnx2-bnx2x:20250410
|
||||||
- imageRef: ghcr.io/siderolabs/i915-ucode:20241110
|
- imageRef: ghcr.io/siderolabs/i915-ucode:20241110
|
||||||
- imageRef: ghcr.io/siderolabs/intel-ice-firmware:20250311
|
- imageRef: ghcr.io/siderolabs/intel-ice-firmware:20250410
|
||||||
- imageRef: ghcr.io/siderolabs/intel-ucode:20250211
|
- imageRef: ghcr.io/siderolabs/intel-ucode:20250211
|
||||||
- imageRef: ghcr.io/siderolabs/qlogic-firmware:20250311
|
- imageRef: ghcr.io/siderolabs/qlogic-firmware:20250410
|
||||||
- imageRef: ghcr.io/siderolabs/drbd:9.2.12-v1.9.5
|
- imageRef: ghcr.io/siderolabs/drbd:9.2.13-v1.10.1
|
||||||
- imageRef: ghcr.io/siderolabs/zfs:2.2.7-v1.9.5
|
- imageRef: ghcr.io/siderolabs/zfs:2.3.1-v1.10.1
|
||||||
output:
|
output:
|
||||||
kind: iso
|
kind: iso
|
||||||
imageOptions: {}
|
imageOptions: {}
|
||||||
|
|||||||
@@ -3,24 +3,24 @@
|
|||||||
arch: amd64
|
arch: amd64
|
||||||
platform: metal
|
platform: metal
|
||||||
secureboot: false
|
secureboot: false
|
||||||
version: v1.9.5
|
version: v1.10.1
|
||||||
input:
|
input:
|
||||||
kernel:
|
kernel:
|
||||||
path: /usr/install/amd64/vmlinuz
|
path: /usr/install/amd64/vmlinuz
|
||||||
initramfs:
|
initramfs:
|
||||||
path: /usr/install/amd64/initramfs.xz
|
path: /usr/install/amd64/initramfs.xz
|
||||||
baseInstaller:
|
baseInstaller:
|
||||||
imageRef: ghcr.io/siderolabs/installer:v1.9.5
|
imageRef: ghcr.io/siderolabs/installer:v1.10.1
|
||||||
systemExtensions:
|
systemExtensions:
|
||||||
- imageRef: ghcr.io/siderolabs/amd-ucode:20250311
|
- imageRef: ghcr.io/siderolabs/amd-ucode:20250410
|
||||||
- imageRef: ghcr.io/siderolabs/amdgpu-firmware:20241110
|
- imageRef: ghcr.io/siderolabs/amdgpu-firmware:20241110
|
||||||
- imageRef: ghcr.io/siderolabs/bnx2-bnx2x:20250311
|
- imageRef: ghcr.io/siderolabs/bnx2-bnx2x:20250410
|
||||||
- imageRef: ghcr.io/siderolabs/i915-ucode:20241110
|
- imageRef: ghcr.io/siderolabs/i915-ucode:20241110
|
||||||
- imageRef: ghcr.io/siderolabs/intel-ice-firmware:20250311
|
- imageRef: ghcr.io/siderolabs/intel-ice-firmware:20250410
|
||||||
- imageRef: ghcr.io/siderolabs/intel-ucode:20250211
|
- imageRef: ghcr.io/siderolabs/intel-ucode:20250211
|
||||||
- imageRef: ghcr.io/siderolabs/qlogic-firmware:20250311
|
- imageRef: ghcr.io/siderolabs/qlogic-firmware:20250410
|
||||||
- imageRef: ghcr.io/siderolabs/drbd:9.2.12-v1.9.5
|
- imageRef: ghcr.io/siderolabs/drbd:9.2.13-v1.10.1
|
||||||
- imageRef: ghcr.io/siderolabs/zfs:2.2.7-v1.9.5
|
- imageRef: ghcr.io/siderolabs/zfs:2.3.1-v1.10.1
|
||||||
output:
|
output:
|
||||||
kind: kernel
|
kind: kernel
|
||||||
imageOptions: {}
|
imageOptions: {}
|
||||||
|
|||||||
@@ -3,24 +3,24 @@
|
|||||||
arch: amd64
|
arch: amd64
|
||||||
platform: metal
|
platform: metal
|
||||||
secureboot: false
|
secureboot: false
|
||||||
version: v1.9.5
|
version: v1.10.1
|
||||||
input:
|
input:
|
||||||
kernel:
|
kernel:
|
||||||
path: /usr/install/amd64/vmlinuz
|
path: /usr/install/amd64/vmlinuz
|
||||||
initramfs:
|
initramfs:
|
||||||
path: /usr/install/amd64/initramfs.xz
|
path: /usr/install/amd64/initramfs.xz
|
||||||
baseInstaller:
|
baseInstaller:
|
||||||
imageRef: ghcr.io/siderolabs/installer:v1.9.5
|
imageRef: ghcr.io/siderolabs/installer:v1.10.1
|
||||||
systemExtensions:
|
systemExtensions:
|
||||||
- imageRef: ghcr.io/siderolabs/amd-ucode:20250311
|
- imageRef: ghcr.io/siderolabs/amd-ucode:20250410
|
||||||
- imageRef: ghcr.io/siderolabs/amdgpu-firmware:20241110
|
- imageRef: ghcr.io/siderolabs/amdgpu-firmware:20241110
|
||||||
- imageRef: ghcr.io/siderolabs/bnx2-bnx2x:20250311
|
- imageRef: ghcr.io/siderolabs/bnx2-bnx2x:20250410
|
||||||
- imageRef: ghcr.io/siderolabs/i915-ucode:20241110
|
- imageRef: ghcr.io/siderolabs/i915-ucode:20241110
|
||||||
- imageRef: ghcr.io/siderolabs/intel-ice-firmware:20250311
|
- imageRef: ghcr.io/siderolabs/intel-ice-firmware:20250410
|
||||||
- imageRef: ghcr.io/siderolabs/intel-ucode:20250211
|
- imageRef: ghcr.io/siderolabs/intel-ucode:20250211
|
||||||
- imageRef: ghcr.io/siderolabs/qlogic-firmware:20250311
|
- imageRef: ghcr.io/siderolabs/qlogic-firmware:20250410
|
||||||
- imageRef: ghcr.io/siderolabs/drbd:9.2.12-v1.9.5
|
- imageRef: ghcr.io/siderolabs/drbd:9.2.13-v1.10.1
|
||||||
- imageRef: ghcr.io/siderolabs/zfs:2.2.7-v1.9.5
|
- imageRef: ghcr.io/siderolabs/zfs:2.3.1-v1.10.1
|
||||||
output:
|
output:
|
||||||
kind: image
|
kind: image
|
||||||
imageOptions: { diskSize: 1306525696, diskFormat: raw }
|
imageOptions: { diskSize: 1306525696, diskFormat: raw }
|
||||||
|
|||||||
@@ -3,24 +3,24 @@
|
|||||||
arch: amd64
|
arch: amd64
|
||||||
platform: nocloud
|
platform: nocloud
|
||||||
secureboot: false
|
secureboot: false
|
||||||
version: v1.9.5
|
version: v1.10.1
|
||||||
input:
|
input:
|
||||||
kernel:
|
kernel:
|
||||||
path: /usr/install/amd64/vmlinuz
|
path: /usr/install/amd64/vmlinuz
|
||||||
initramfs:
|
initramfs:
|
||||||
path: /usr/install/amd64/initramfs.xz
|
path: /usr/install/amd64/initramfs.xz
|
||||||
baseInstaller:
|
baseInstaller:
|
||||||
imageRef: ghcr.io/siderolabs/installer:v1.9.5
|
imageRef: ghcr.io/siderolabs/installer:v1.10.1
|
||||||
systemExtensions:
|
systemExtensions:
|
||||||
- imageRef: ghcr.io/siderolabs/amd-ucode:20250311
|
- imageRef: ghcr.io/siderolabs/amd-ucode:20250410
|
||||||
- imageRef: ghcr.io/siderolabs/amdgpu-firmware:20241110
|
- imageRef: ghcr.io/siderolabs/amdgpu-firmware:20241110
|
||||||
- imageRef: ghcr.io/siderolabs/bnx2-bnx2x:20250311
|
- imageRef: ghcr.io/siderolabs/bnx2-bnx2x:20250410
|
||||||
- imageRef: ghcr.io/siderolabs/i915-ucode:20241110
|
- imageRef: ghcr.io/siderolabs/i915-ucode:20241110
|
||||||
- imageRef: ghcr.io/siderolabs/intel-ice-firmware:20250311
|
- imageRef: ghcr.io/siderolabs/intel-ice-firmware:20250410
|
||||||
- imageRef: ghcr.io/siderolabs/intel-ucode:20250211
|
- imageRef: ghcr.io/siderolabs/intel-ucode:20250211
|
||||||
- imageRef: ghcr.io/siderolabs/qlogic-firmware:20250311
|
- imageRef: ghcr.io/siderolabs/qlogic-firmware:20250410
|
||||||
- imageRef: ghcr.io/siderolabs/drbd:9.2.12-v1.9.5
|
- imageRef: ghcr.io/siderolabs/drbd:9.2.13-v1.10.1
|
||||||
- imageRef: ghcr.io/siderolabs/zfs:2.2.7-v1.9.5
|
- imageRef: ghcr.io/siderolabs/zfs:2.3.1-v1.10.1
|
||||||
output:
|
output:
|
||||||
kind: image
|
kind: image
|
||||||
imageOptions: { diskSize: 1306525696, diskFormat: raw }
|
imageOptions: { diskSize: 1306525696, diskFormat: raw }
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
cozystack:
|
cozystack:
|
||||||
image: ghcr.io/cozystack/cozystack/installer:v0.30.2@sha256:59996588b5d59b5593fb34442b2f2ed8ef466d138b229a8d37beb6f70141a690
|
image: ghcr.io/cozystack/cozystack/installer:v0.31.0-rc.1@sha256:ab0e8fd97632ba784a42a3d0714806ea327440f82ffa5c4896a87c5fb7c1ec6e
|
||||||
|
|||||||
@@ -161,7 +161,7 @@ releases:
|
|||||||
releaseName: piraeus-operator
|
releaseName: piraeus-operator
|
||||||
chart: cozy-piraeus-operator
|
chart: cozy-piraeus-operator
|
||||||
namespace: cozy-linstor
|
namespace: cozy-linstor
|
||||||
dependsOn: [cilium,cert-manager,victoria-metrics-operator]
|
dependsOn: [cilium,cert-manager]
|
||||||
|
|
||||||
- name: snapshot-controller
|
- name: snapshot-controller
|
||||||
releaseName: snapshot-controller
|
releaseName: snapshot-controller
|
||||||
|
|||||||
@@ -134,6 +134,11 @@ releases:
|
|||||||
namespace: cozy-kubevirt
|
namespace: cozy-kubevirt
|
||||||
privileged: true
|
privileged: true
|
||||||
dependsOn: [cilium,kubeovn,kubevirt-operator]
|
dependsOn: [cilium,kubeovn,kubevirt-operator]
|
||||||
|
{{- $cpuAllocationRatio := index $cozyConfig.data "cpu-allocation-ratio" }}
|
||||||
|
{{- if $cpuAllocationRatio }}
|
||||||
|
values:
|
||||||
|
cpuAllocationRatio: {{ $cpuAllocationRatio }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
- name: kubevirt-instancetypes
|
- name: kubevirt-instancetypes
|
||||||
releaseName: kubevirt-instancetypes
|
releaseName: kubevirt-instancetypes
|
||||||
@@ -255,72 +260,15 @@ releases:
|
|||||||
releaseName: dashboard
|
releaseName: dashboard
|
||||||
chart: cozy-dashboard
|
chart: cozy-dashboard
|
||||||
namespace: cozy-dashboard
|
namespace: cozy-dashboard
|
||||||
dependsOn: [cilium,kubeovn,keycloak-configure]
|
|
||||||
values:
|
values:
|
||||||
kubeapps:
|
{{- $dashboardKCconfig := lookup "v1" "ConfigMap" "cozy-dashboard" "kubeapps-auth-config" }}
|
||||||
{{- if .Capabilities.APIVersions.Has "source.toolkit.fluxcd.io/v1" }}
|
{{- $dashboardKCValues := dig "data" "values.yaml" "" $dashboardKCconfig | fromYaml }}
|
||||||
{{- with (lookup "source.toolkit.fluxcd.io/v1" "HelmRepository" "cozy-public" "").items }}
|
{{- toYaml (deepCopy $dashboardKCValues | mergeOverwrite (fromYaml (include "cozystack.defaultDashboardValues" .))) | nindent 4 }}
|
||||||
redis:
|
dependsOn:
|
||||||
master:
|
- cilium
|
||||||
podAnnotations:
|
- kubeovn
|
||||||
{{- range $index, $repo := . }}
|
|
||||||
{{- with (($repo.status).artifact).revision }}
|
|
||||||
repository.cozystack.io/{{ $repo.metadata.name }}: {{ quote . }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
frontend:
|
|
||||||
resourcesPreset: "none"
|
|
||||||
dashboard:
|
|
||||||
resourcesPreset: "none"
|
|
||||||
{{- $cozystackBranding:= lookup "v1" "ConfigMap" "cozy-system" "cozystack-branding" }}
|
|
||||||
{{- $branding := dig "data" "branding" "" $cozystackBranding }}
|
|
||||||
{{- if $branding }}
|
|
||||||
customLocale:
|
|
||||||
"Kubeapps": {{ $branding }}
|
|
||||||
{{- end }}
|
|
||||||
customStyle: |
|
|
||||||
{{- $logoImage := dig "data" "logo" "" $cozystackBranding }}
|
|
||||||
{{- if $logoImage }}
|
|
||||||
.kubeapps-logo {
|
|
||||||
background-image: {{ $logoImage }}
|
|
||||||
}
|
|
||||||
{{- end }}
|
|
||||||
#serviceaccount-selector {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.login-moreinfo {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
a[href="#/docs"] {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.login-group .clr-form-control .clr-control-label {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.appview-separator div.appview-first-row div.center {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.appview-separator div.appview-first-row section[aria-labelledby="app-secrets"] {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.appview-first-row section[aria-labelledby="access-urls-title"] {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
{{- $dashboardKCconfig := lookup "v1" "ConfigMap" "cozy-dashboard" "kubeapps-auth-config" }}
|
|
||||||
{{- $dashboardKCValues := dig "data" "values.yaml" "" $dashboardKCconfig }}
|
|
||||||
{{- if $dashboardKCValues }}
|
|
||||||
valuesFrom:
|
|
||||||
- kind: ConfigMap
|
|
||||||
name: kubeapps-auth-config
|
|
||||||
valuesKey: values.yaml
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- if eq $oidcEnabled "true" }}
|
{{- if eq $oidcEnabled "true" }}
|
||||||
dependsOn: [keycloak-configure]
|
- keycloak-configure
|
||||||
{{- else }}
|
|
||||||
dependsOn: []
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
- name: kamaji
|
- name: kamaji
|
||||||
|
|||||||
@@ -155,66 +155,9 @@ releases:
|
|||||||
chart: cozy-dashboard
|
chart: cozy-dashboard
|
||||||
namespace: cozy-dashboard
|
namespace: cozy-dashboard
|
||||||
values:
|
values:
|
||||||
kubeapps:
|
{{- $dashboardKCconfig := lookup "v1" "ConfigMap" "cozy-dashboard" "kubeapps-auth-config" }}
|
||||||
{{- if .Capabilities.APIVersions.Has "source.toolkit.fluxcd.io/v1" }}
|
{{- $dashboardKCValues := dig "data" "values.yaml" (dict) $dashboardKCconfig }}
|
||||||
{{- with (lookup "source.toolkit.fluxcd.io/v1" "HelmRepository" "cozy-public" "").items }}
|
{{- toYaml (deepCopy $dashboardKCValues | mergeOverwrite (fromYaml (include "cozystack.defaultDashboardValues" .))) | nindent 4 }}
|
||||||
redis:
|
|
||||||
master:
|
|
||||||
podAnnotations:
|
|
||||||
{{- range $index, $repo := . }}
|
|
||||||
{{- with (($repo.status).artifact).revision }}
|
|
||||||
repository.cozystack.io/{{ $repo.metadata.name }}: {{ quote . }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
frontend:
|
|
||||||
resourcesPreset: "none"
|
|
||||||
dashboard:
|
|
||||||
resourcesPreset: "none"
|
|
||||||
{{- $cozystackBranding:= lookup "v1" "ConfigMap" "cozy-system" "cozystack-branding" }}
|
|
||||||
{{- $branding := dig "data" "branding" "" $cozystackBranding }}
|
|
||||||
{{- if $branding }}
|
|
||||||
customLocale:
|
|
||||||
"Kubeapps": {{ $branding }}
|
|
||||||
{{- end }}
|
|
||||||
customStyle: |
|
|
||||||
{{- $logoImage := dig "data" "logo" "" $cozystackBranding }}
|
|
||||||
{{- if $logoImage }}
|
|
||||||
.kubeapps-logo {
|
|
||||||
background-image: {{ $logoImage }}
|
|
||||||
}
|
|
||||||
{{- end }}
|
|
||||||
#serviceaccount-selector {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.login-moreinfo {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
a[href="#/docs"] {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.login-group .clr-form-control .clr-control-label {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.appview-separator div.appview-first-row div.center {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.appview-separator div.appview-first-row section[aria-labelledby="app-secrets"] {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.appview-first-row section[aria-labelledby="access-urls-title"] {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
{{- $dashboardKCconfig := lookup "v1" "ConfigMap" "cozy-dashboard" "kubeapps-auth-config" }}
|
|
||||||
{{- $dashboardKCValues := dig "data" "values.yaml" "" $dashboardKCconfig }}
|
|
||||||
{{- if $dashboardKCValues }}
|
|
||||||
valuesFrom:
|
|
||||||
- kind: ConfigMap
|
|
||||||
name: kubeapps-auth-config
|
|
||||||
valuesKey: values.yaml
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- if eq $oidcEnabled "true" }}
|
{{- if eq $oidcEnabled "true" }}
|
||||||
dependsOn: [keycloak-configure]
|
dependsOn: [keycloak-configure]
|
||||||
{{- else }}
|
{{- else }}
|
||||||
|
|||||||
@@ -16,3 +16,57 @@ Get IP-addresses of master nodes
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{ join "," $ips }}
|
{{ join "," $ips }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "cozystack.defaultDashboardValues" -}}
|
||||||
|
kubeapps:
|
||||||
|
{{- if .Capabilities.APIVersions.Has "source.toolkit.fluxcd.io/v1" }}
|
||||||
|
{{- with (lookup "source.toolkit.fluxcd.io/v1" "HelmRepository" "cozy-public" "").items }}
|
||||||
|
redis:
|
||||||
|
master:
|
||||||
|
podAnnotations:
|
||||||
|
{{- range $index, $repo := . }}
|
||||||
|
{{- with (($repo.status).artifact).revision }}
|
||||||
|
repository.cozystack.io/{{ $repo.metadata.name }}: {{ quote . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
frontend:
|
||||||
|
resourcesPreset: "none"
|
||||||
|
dashboard:
|
||||||
|
resourcesPreset: "none"
|
||||||
|
{{- $cozystackBranding:= lookup "v1" "ConfigMap" "cozy-system" "cozystack-branding" }}
|
||||||
|
{{- $branding := dig "data" "branding" "" $cozystackBranding }}
|
||||||
|
{{- if $branding }}
|
||||||
|
customLocale:
|
||||||
|
"Kubeapps": {{ $branding }}
|
||||||
|
{{- end }}
|
||||||
|
customStyle: |
|
||||||
|
{{- $logoImage := dig "data" "logo" "" $cozystackBranding }}
|
||||||
|
{{- if $logoImage }}
|
||||||
|
.kubeapps-logo {
|
||||||
|
background-image: {{ $logoImage }}
|
||||||
|
}
|
||||||
|
{{- end }}
|
||||||
|
#serviceaccount-selector {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.login-moreinfo {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
a[href="#/docs"] {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.login-group .clr-form-control .clr-control-label {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.appview-separator div.appview-first-row div.center {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.appview-separator div.appview-first-row section[aria-labelledby="app-secrets"] {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.appview-first-row section[aria-labelledby="access-urls-title"] {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
{{- end }}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
{{- $host = index $cozyConfig.data "root-host" }}
|
{{- $host = index $cozyConfig.data "root-host" }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- $tenantRoot := list }}
|
{{- $tenantRoot := dict }}
|
||||||
{{- if .Capabilities.APIVersions.Has "helm.toolkit.fluxcd.io/v2" }}
|
{{- if .Capabilities.APIVersions.Has "helm.toolkit.fluxcd.io/v2" }}
|
||||||
{{- $tenantRoot = lookup "helm.toolkit.fluxcd.io/v2" "HelmRelease" "tenant-root" "tenant-root" }}
|
{{- $tenantRoot = lookup "helm.toolkit.fluxcd.io/v2" "HelmRelease" "tenant-root" "tenant-root" }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
@@ -37,7 +37,7 @@ metadata:
|
|||||||
labels:
|
labels:
|
||||||
cozystack.io/ui: "true"
|
cozystack.io/ui: "true"
|
||||||
spec:
|
spec:
|
||||||
interval: 1m
|
interval: 0s
|
||||||
releaseName: tenant-root
|
releaseName: tenant-root
|
||||||
install:
|
install:
|
||||||
remediation:
|
remediation:
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ spec:
|
|||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: cozystack-system
|
name: cozystack-system
|
||||||
namespace: cozy-system
|
namespace: cozy-system
|
||||||
|
version: '>= 0.0.0-0'
|
||||||
{{- with $x.valuesFiles }}
|
{{- with $x.valuesFiles }}
|
||||||
valuesFiles:
|
valuesFiles:
|
||||||
{{- toYaml $x.valuesFiles | nindent 6 }}
|
{{- toYaml $x.valuesFiles | nindent 6 }}
|
||||||
@@ -71,17 +72,6 @@ spec:
|
|||||||
{{- toYaml . | nindent 4}}
|
{{- toYaml . | nindent 4}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{- if $x.valuesFrom }}
|
|
||||||
valuesFrom:
|
|
||||||
{{- range $source := $x.valuesFrom }}
|
|
||||||
- kind: {{ $source.kind }}
|
|
||||||
name: {{ $source.name }}
|
|
||||||
{{- if $source.valuesKey }}
|
|
||||||
valuesKey: {{ $source.valuesKey }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- with $x.dependsOn }}
|
{{- with $x.dependsOn }}
|
||||||
dependsOn:
|
dependsOn:
|
||||||
{{- range $dep := . }}
|
{{- range $dep := . }}
|
||||||
|
|||||||
@@ -11,20 +11,14 @@ include ../../../scripts/common-envs.mk
|
|||||||
|
|
||||||
help: ## Show this help.
|
help: ## Show this help.
|
||||||
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {sub("\\\\n",sprintf("\n%22c"," "), $$2);printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
|
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {sub("\\\\n",sprintf("\n%22c"," "), $$2);printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
|
||||||
show:
|
|
||||||
helm template -n $(NAMESPACE) $(NAME) .
|
|
||||||
|
|
||||||
apply: ## Create sandbox in existing Kubernetes cluster.
|
|
||||||
helm template -n $(NAMESPACE) $(NAME) . | kubectl apply -f -
|
|
||||||
|
|
||||||
diff:
|
|
||||||
helm template -n $(NAMESPACE) $(NAME) . | kubectl diff -f -
|
|
||||||
|
|
||||||
image: image-e2e-sandbox
|
image: image-e2e-sandbox
|
||||||
|
|
||||||
image-e2e-sandbox:
|
image-e2e-sandbox:
|
||||||
docker buildx build -f images/e2e-sandbox/Dockerfile ../../.. \
|
docker buildx build -f images/e2e-sandbox/Dockerfile ../../.. \
|
||||||
--provenance false \
|
--provenance false \
|
||||||
|
--builder=$(BUILDER) \
|
||||||
|
--platform=$(PLATFORM) \
|
||||||
--tag $(REGISTRY)/e2e-sandbox:$(call settag,$(TAG)) \
|
--tag $(REGISTRY)/e2e-sandbox:$(call settag,$(TAG)) \
|
||||||
--cache-from type=registry,ref=$(REGISTRY)/e2e-sandbox:latest \
|
--cache-from type=registry,ref=$(REGISTRY)/e2e-sandbox:latest \
|
||||||
--cache-to type=inline \
|
--cache-to type=inline \
|
||||||
@@ -39,26 +33,11 @@ image-e2e-sandbox:
|
|||||||
test: ## Run the end-to-end tests in existing sandbox.
|
test: ## Run the end-to-end tests in existing sandbox.
|
||||||
docker exec "${SANDBOX_NAME}" sh -c 'cd /workspace && export COZYSTACK_INSTALLER_YAML=$$(helm template -n cozy-system installer ./packages/core/installer) && hack/e2e.sh'
|
docker exec "${SANDBOX_NAME}" sh -c 'cd /workspace && export COZYSTACK_INSTALLER_YAML=$$(helm template -n cozy-system installer ./packages/core/installer) && hack/e2e.sh'
|
||||||
|
|
||||||
test-applications: ## Run the end-to-end tests in existing sandbox for applications.
|
|
||||||
for app in $(TESTING_APPS); do \
|
|
||||||
docker exec ${SANDBOX_NAME} bash -c "/hack/e2e.application.sh $${app}"; \
|
|
||||||
done
|
|
||||||
docker exec ${SANDBOX_NAME} bash -c "kubectl get hr -A | grep -v 'True'"
|
|
||||||
|
|
||||||
delete: ## Remove sandbox from existing Kubernetes cluster.
|
delete: ## Remove sandbox from existing Kubernetes cluster.
|
||||||
docker rm -f "${SANDBOX_NAME}" || true
|
docker rm -f "${SANDBOX_NAME}" || true
|
||||||
|
|
||||||
exec: ## Opens an interactive shell in the sandbox container.
|
exec: ## Opens an interactive shell in the sandbox container.
|
||||||
docker exec -ti "${SANDBOX_NAME}" -- bash
|
docker exec -ti "${SANDBOX_NAME}" bash
|
||||||
|
|
||||||
proxy: sync-hosts ## Enable a SOCKS5 proxy server; mirrord and gost must be installed.
|
|
||||||
mirrord exec --target deploy/cozystack-e2e-sandbox --target-namespace cozy-e2e-tests -- gost -L=127.0.0.1:10080
|
|
||||||
|
|
||||||
login: ## Downloads the kubeconfig into a temporary directory and runs a shell with the sandbox environment; mirrord must be installed.
|
|
||||||
mirrord exec --target deploy/cozystack-e2e-sandbox --target-namespace cozy-e2e-tests -- "$$SHELL"
|
|
||||||
|
|
||||||
sync-hosts:
|
|
||||||
kubectl exec -n $(NAMESPACE) deploy/cozystack-e2e-$(NAME) -- sh -c 'kubectl get ing -A -o go-template='\''{{ "127.0.0.1 localhost\n"}}{{ range .items }}{{ range .status.loadBalancer.ingress }}{{ .ip }}{{ end }} {{ range .spec.rules }}{{ .host }}{{ end }}{{ "\n" }}{{ end }}'\'' > /etc/hosts'
|
|
||||||
|
|
||||||
apply: delete
|
apply: delete
|
||||||
docker run -d --rm --name "${SANDBOX_NAME}" --privileged "$$(yq .e2e.image values.yaml)" sleep infinity
|
docker run -d --rm --name "${SANDBOX_NAME}" --privileged "$$(yq .e2e.image values.yaml)" sleep infinity
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user