-
Notifications
You must be signed in to change notification settings - Fork 65
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add values and checks #454
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -9,15 +9,29 @@ YELLOW='\033[0;33m' | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ROOT_NS="tenant-root" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TEST_TENANT="tenant-e2e" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
function clean() { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kubectl delete helmrelease.helm.toolkit.fluxcd.io $TEST_TENANT -n $ROOT_NS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if true; then | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo -e "${GREEN}Cleanup successful!${RESET}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
else | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo -e "${RED}Cleanup failed!${RESET}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fi | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kubectl delete helmrelease $release_name -n $namespace | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Quote variables in commands to prevent potential word splitting or globbing issues. It's recommended to quote variables when used in commands to handle cases where variables might contain spaces or special characters. Apply this diff to quote the variables: - kubectl delete helmrelease $release_name -n $namespace
+ kubectl delete helmrelease "$release_name" -n "$namespace" 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
function install_helmrelease() { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -43,6 +57,11 @@ function install_helmrelease() { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
exit 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fi | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if [[ -n "$values_file" && -f "$values_file" ]]; then | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
local values_section | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
values_section=$(echo " values:" && sed 's/^/ /' "$values_file") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fi | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+60
to
+63
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ensure correct YAML indentation when constructing The current method of constructing Consider using a YAML-aware tool like |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
local helmrelease_file=$(mktemp /tmp/HelmRelease.XXXXXX.yaml) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "apiVersion: helm.toolkit.fluxcd.io/v2" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -64,11 +83,7 @@ function install_helmrelease() { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo " version: '*'" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo " interval: 1m0s" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo " timeout: 5m0s" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if [[ -n "$values_file" && -f "$values_file" ]]; then | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo " values:" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cat "$values_file" | sed 's/^/ /' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fi | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[[ -n "$values_section" ]] && echo "$values_section" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} > "$helmrelease_file" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kubectl apply -f "$helmrelease_file" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -79,26 +94,38 @@ function install_helmrelease() { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
function install_tenant (){ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
local release_name="$1" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
local namespace="$2" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
local values_file="${3:-tenant.yaml}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+103
to
+110
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
The Modify the function to execute the checks 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}"
+ bash "$checks_file"
fi
} 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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" ]]; then | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+125
to
+128
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Avoid immediate deletion of HelmRelease after it becomes ready. Deleting the HelmRelease immediately after it reaches a ready state might not allow enough time for all resources to stabilize or for any dependent processes to complete. Consider adding a delay or additional validation steps before deleting the HelmRelease to ensure all resources are fully operational. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
elif [[ "$status_output" == "InstallFailed" ]]; then | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo -e "${RED}Helm release '$release_name': InstallFailed${RESET}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -122,14 +149,17 @@ if [ -z "$chart_name" ]; then | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
exit 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fi | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Running tests for chart: $chart_name" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
install_tenant $TEST_TENANT $ROOT_NS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
check_helmrelease_status $TEST_TENANT $ROOT_NS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
checks_file="${checks_base_path}${chart_name}/check.sh" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
repo_name="cozystack-apps" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
repo_ns="cozy-public" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
release_name="$chart_name-e2e" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
install_helmrelease "$release_name" "$TEST_TENANT" "$chart_name" "$repo_name" "$repo_ns" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
check_helmrelease_status "$release_name" "$TEST_TENANT" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
install_helmrelease $release_name $TEST_TENANT $chart_name $repo_name $repo_ns $values_file | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
check_helmrelease_status $release_name $TEST_TENANT $checks_file | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+153
to
+165
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Add validation for required files. The script should validate that the values and checks files exist before proceeding with the installation and checks. Missing files could lead to silent failures. Add validation before the installation: checks_file="${checks_base_path}${chart_name}/check.sh"
values_file="${values_base_path}${chart_name}/values.yaml"
+
+# Validate required files exist
+if [[ ! -f "$values_file" ]]; then
+ echo -e "${RED}Values file not found: $values_file${RESET}"
+ exit 1
+fi
+
+if [[ ! -f "$checks_file" ]]; then
+ echo -e "${RED}Checks file not found: $checks_file${RESET}"
+ exit 1
+fi 📝 Committable suggestion
Suggested change
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
return 0 |
Original file line number | Diff line number | Diff line change | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,62 @@ | ||||||||||||||
## @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 | ||||||||||||||
Comment on lines
+15
to
+19
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Codebase verification Node group configuration needs adjustment for production use The current configuration requires changes based on the following findings:
Recommendation:
🔗 Analysis chainValidate node group configuration parameters Several configuration values need validation:
🏁 Scripts executedThe following scripts were executed for the analysis: Script: #!/bin/bash
# Search for instance type definitions and validations
rg -l 'instanceType.*u1\.medium'
# Check for any existing node group configurations
rg -l 'minReplicas.*maxReplicas'
Length of output: 299 Script: #!/bin/bash
# Check the content of files containing instance type references
rg -A 5 -B 5 'instanceType.*u1\.medium' packages/apps/vm-instance/README.md packages/apps/virtual-machine/README.md
# Search for node group validation logic
rg -l 'validate.*[Nn]ode[Gg]roup|[Nn]ode[Gg]roup.*validate'
# Look for any minReplicas validation or usage
rg -A 3 'minReplicas'
# Search for instance type validation or enum definitions
ast-grep --pattern 'const $_ = {
$$$
u1.medium: $_,
$$$
}'
Length of output: 20165 |
||||||||||||||
roles: | ||||||||||||||
- ingress-nginx | ||||||||||||||
|
||||||||||||||
resources: | ||||||||||||||
cpu: "" | ||||||||||||||
memory: "" | ||||||||||||||
Comment on lines
+23
to
+25
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Specify default resource limits Empty resource quotas could lead to unbounded resource consumption. Consider setting default values based on your workload requirements. resources:
- cpu: ""
- memory: ""
+ cpu: "1000m"
+ memory: "2Gi" 📝 Committable suggestion
Suggested change
|
||||||||||||||
|
||||||||||||||
## @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: {} |
Original file line number | Diff line number | Diff line change | ||||||
---|---|---|---|---|---|---|---|---|
@@ -0,0 +1 @@ | ||||||||
return 0 | ||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Add shebang line for shell specification. The script is missing a shebang line which is required for proper shell specification and portability. Add this at the beginning of the file: +#!/bin/bash
return 0 📝 Committable suggestion
Suggested change
🧰 Tools🪛 Shellcheck[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive. (SC2148) |
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -0,0 +1,10 @@ | ||||||
|
||||||
## @section Common parameters | ||||||
|
||||||
## @param external Enable external access from outside the cluster | ||||||
## @param replicas Persistent Volume size for NATS | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix incorrect parameter description for The description "Persistent Volume size for NATS" does not match the parameter's purpose. The -## @param replicas Persistent Volume size for NATS
+## @param replicas Number of NATS instances to run in the cluster 📝 Committable suggestion
Suggested change
|
||||||
## @param storageClass StorageClass used to store the data | ||||||
## | ||||||
external: false | ||||||
replicas: 2 | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Codebase verification 🛠️ Refactor suggestion Based on the analysis of the schema files across the repository, I can now provide the final response: Add minimum and maximum constraints for replicas in schema validation Looking at the repository's patterns, while many applications define replica counts in their schema, none currently implement minimum/maximum constraints. However, for NATS, which is a critical messaging system, adding these constraints would be beneficial:
"replicas": {
"type": "number",
"description": "Persistent Volume size for NATS",
"default": 2
}
"replicas": {
"type": "integer",
"description": "Number of NATS replicas",
"minimum": 1,
"maximum": 5,
"default": 2
} Also note that the current description "Persistent Volume size for NATS" is incorrect and should be updated to "Number of NATS replicas" to match the convention used in other charts. 🔗 Analysis chainConsider adding validation for replicas count The Add schema validation in the values.yaml: replicas:
type: integer
minimum: 1
maximum: 5
default: 2 Let me check the content of the found file to understand how replica constraints are implemented in this repository. Let me check if there are any schema validations in the NATS chart or similar Helm charts in the repository. Let me check the schema validation for replicas in the NATS chart to see how it's implemented there. Let me fix the regex and check for replica validation patterns in other schemas. 🏁 Scripts executedThe following scripts were executed for the analysis: Script: #!/bin/bash
# Check if other NATS deployments in the repo have replica constraints
rg -l "replicas.*minimum|maximum.*replicas" --type yaml
Length of output: 131 Script: #!/bin/bash
# Check the content of the found file focusing on replica validation
rg -A 5 -B 5 "replicas.*minimum|maximum.*replicas" packages/system/etcd-operator/charts/etcd-operator/crds/etcd-cluster.yaml
Length of output: 729 Script: #!/bin/bash
# Search for schema validation patterns in Helm charts
rg -g 'values.schema.json' -l .
# Also check for any validation in NATS related files
fd -e yaml -e json . hack/testdata/nats/ --exec cat {}
Length of output: 1870 Script: #!/bin/bash
# Check the content of NATS schema validation
cat packages/apps/nats/values.schema.json
# Also check if there are any other examples of replica validation in other schemas
rg -A 5 -B 5 '"replicas":\s*{' packages/apps/**/values.schema.json
Length of output: 1400 Script: #!/bin/bash
# Check for replica validation patterns in other schema files with fixed regex
rg -A 5 -B 5 '"replicas": \{' packages/apps/**/values.schema.json
# Also check for minimum/maximum constraints in other schema files
rg -A 2 -B 2 '"minimum": |"maximum": ' packages/apps/**/values.schema.json
Length of output: 12402 |
||||||
storageClass: "" |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
return 0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix path definitions to be relative to script location.
The hardcoded paths with leading slashes will cause issues when the script is run from different directories. Use relative paths based on the script's location instead.
Apply this diff:
📝 Committable suggestion