Skip to content

bugfix/fix-vpa - #698

Merged
Timofei Larkin (lllamnyp) merged 8 commits into
cozystack:mainfrom
klinch0:bugfix/fix-vpa
Mar 20, 2025
Merged

Timofei Larkin (lllamnyp) merged 8 commits into
cozystack:mainfrom
klinch0:bugfix/fix-vpa

Conversation

@klinch0

@klinch0 klinch0 commented Mar 17, 2025 •

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • New Features
    • Introduced enhanced resource management options across multiple applications with configurable settings for resource limits and requests, including preset selections.
    • Added new resource management parameters for HAProxy, Nginx, Kafka, and other components, allowing users to specify resource limits and presets.
    • Added new feature gate AutoResourceLimitsGate to KubeVirt for improved resource management capabilities.
    • Updated resource specifications for various components in the ingress-nginx, seaweedfs, and monitoring applications, enhancing resource allocation strategies.
  • Documentation
    • Updated configuration guides to include the new resource parameters and presets.
  • Chores
    • Bumped version numbers and updated release metadata for several applications, reflecting overall improvements.

@coderabbitai

coderabbitai Bot commented Mar 17, 2025 •

Copy link
Copy Markdown
Contributor

Walkthrough

The changes update chart versions and version mappings while enhancing resource management across multiple applications. New parameters, presets, and conditional logic have been added to README files, values, schemas, and templates. Several Helm deployment files now check for custom resource values or fallback to preset configurations. Additionally, standardized kubeConfig secret references and minor annotations (including a new feature gate) have been introduced.

Changes

File(s) Change Summary
packages/apps/{http-cache,kafka,kubernetes,tcp-balancer,tenant,vpn}/Chart.yaml
packages/extra/{etcd,monitoring,seaweedfs}/Chart.yaml
packages/apps/versions_map
Updated chart version numbers and version mappings following semantic versioning.
packages/apps/{http-cache,kafka,kubernetes,tcp-balancer,vpn}/(README.md, values.yaml, values.schema.json, templates/*)
packages/extra/{etcd/values.yaml, monitoring/**/*}
packages/extra/seaweedfs/templates/{seaweedfs.yaml,vpa.yaml}
packages/system/ingress-nginx/values.yaml
Added new resource parameters, presets, and Mustache templates; introduced conditional logic for resource allocation (custom values vs. presets) across applications.
packages/apps/kubernetes/templates/helmreleases/{cert-manager-crds.yaml,cert-manager.yaml,cilium.yaml,csi.yaml,fluxcd.yaml,ingress-nginx.yaml,monitoring-agents.yaml} Updated kubeConfig secret references by renaming secrets (-kubeconfig → -admin-kubeconfig) and adding a key field with value super-admin.svc.
packages/apps/tenant/templates/namespace.yaml
packages/system/kubevirt/templates/kubevirt-cr.yaml
Introduced a new namespace annotation and enabled the AutoResourceLimitsGate feature in the kubevirt configuration.

Sequence Diagram(s)

sequenceDiagram
    participant Values as Helm Values
    participant Template as Helm Template Engine
    participant Deployment as Kubernetes Deployment
    Values->>Template: Provide resource configuration
    alt Custom resources provided (.Values.resources defined)
      Template->>Deployment: Render custom resource settings via toYaml
    else Preset selected (.Values.resourcesPreset ≠ "none")
      Template->>Deployment: Render preset resource configuration via preset template
    else
      Template->>Deployment: Render default settings
    end
Loading

Poem

I'm a bunny on the run,
Hoping through code with carrot fun,
New versions hopping high and bright,
Resource presets set things just right,
With secret keys that gleam in sight,
I nibble changes, light and spry –
CodeRabbit cheers as bytes hop by!


🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@klinch0
klinch0 force-pushed the bugfix/fix-vpa branch 3 times, most recently from 1772df6 to f5c544c Compare March 19, 2025 13:16
@klinch0
klinch0 marked this pull request as ready for review March 19, 2025 13:17

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🔭 Outside diff range comments (1)
packages/apps/kubernetes/templates/helmreleases/fluxcd.yaml (1)

64-66: 🛠️ Refactor suggestion

⚠️ Potential issue

Inconsistent kubeConfig Secret in Secondary HelmRelease

In the second HelmRelease block (starting around line 46), the kubeConfig.secretRef still uses the old value ({{ .Release.Name }}-kubeconfig) and lacks the key field. To maintain consistency across your HelmRelease resources, please update this section to match the primary block. For example:

-  kubeConfig:
-    secretRef:
-      name: {{ .Release.Name }}-kubeconfig
+  kubeConfig:
+    secretRef:
+      name: {{ .Release.Name }}-admin-kubeconfig
+      key: super-admin.svc

This change ensures that all references use the new standardized secret configuration.

🧹 Nitpick comments (31)
packages/extra/monitoring/templates/alerta/alerta.yaml (1)

80-80: Resources configuration for Alerta container looks good.

Adding resource specifications for the Alerta container is a good practice to ensure proper resource allocation in the Kubernetes environment.

Make sure .Values.alerta.resources is properly defined in your values file with appropriate defaults to prevent deployment failures if the value is not provided by the user.

packages/apps/kubernetes/templates/_resources.tpl (1)

1-50: Well-structured template for resource presets.

The template provides a comprehensive set of resource presets with appropriate scaling between tiers. The error handling for invalid preset types is also well implemented.

Consider adding documentation about these presets in your README files to make users aware of the available options and their intended use cases. The comment notes these presets are "not meant to be used in production," so it would be helpful to document production recommendations as well.

packages/apps/vpn/templates/_resources.tpl (1)

1-50: Good implementation of reusable resource presets.

The template provides a clean approach to standardizing resource configurations with appropriate error handling.

One observation: The CPU request values for xlarge and 2xlarge configurations are identical (1.0) while having different limits (3.0 vs 6.0). This appears intentional but may warrant documentation about the reasoning.

Consider adding a brief comment explaining the CPU request strategy for the larger tiers, as they share the same request values but have different limits.

packages/apps/tcp-balancer/templates/_resources.tpl (1)

1-50: Consider following DRY principles for resource templates.

This template file is identical to the one in packages/apps/vpn/templates/_resources.tpl. Having duplicate template files across different packages increases maintenance overhead and the risk of divergence.

Consider creating a common library chart that includes these shared templates. This would allow multiple charts to reference the same resource presets without duplication. Alternatively, if using Helm's library chart approach isn't feasible, document the requirement to keep these files synchronized when making changes.

packages/system/seaweedfs/charts/seaweedfs/templates/cosi-deployment.yaml (1)

160-163: Consider separate resource configurations

Both the COSI driver and sidecar containers are using the same resource configuration from .Values.cosi.resources. While this might be intentional, consider whether these containers have different resource requirements that would benefit from separate configurations.

If the containers have different resource needs, consider using separate resource configurations:

- {{- with .Values.cosi.resources }}
+ {{- with .Values.cosi.sidecar.resources }}
  resources:
    {{- toYaml . | nindent 12 }}
  {{- end }}

This would require adding a new value in your values schema for cosi.sidecar.resources.

packages/apps/vpn/README.md (1)

31-31: Minor grammatical issue in resourcesPreset description

There's a subject-verb agreement issue in the description.

-| `resourcesPreset` | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production). | `nano` |
+| `resourcesPreset` | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources are set (resources are recommended for production). | `nano` |
🧰 Tools
🪛 LanguageTool

[uncategorized] ~31-~31: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~31-~31: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano |...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)

packages/apps/tcp-balancer/values.yaml (1)

57-58: Good addition of resourcesPreset with default value

The resourcesPreset parameter provides a convenient way to set standard resource configurations. However, there's a minor grammatical issue in the description.

-## @param resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production).
+## @param resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources are set (resources are recommended for production).
packages/apps/kafka/templates/kafka.yaml (2)

11-14: Review Kafka Resource Templating

The conditional block for injecting Kafka resource configurations looks well implemented. It correctly checks if .Values.kafka.resources is set and falls back to a preset if not. Note that YAMLlint reported an error on line 12 (a "could not find expected ':'" syntax error), which is likely a false positive caused by Helm templating. I recommend verifying the rendered output with a command like helm template to ensure the YAML is generated as expected.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 12-12: syntax error: could not find expected ':'

(syntax)


73-76: Review Zookeeper Resource Templating

The zookeeper resources block mirrors the Kafka conditional structure and appears consistent. Ensure that this templating produces the desired YAML output when rendered—especially with the fallback to resource presets.

packages/apps/tcp-balancer/README.md (1)

30-31: Clarify resourcesPreset Description

The new table row for resourcesPreset is clear overall. However, the phrase "(This is ignored if resources is set (resources is recommended for production))" could be rephrased for improved clarity and grammatical agreement. For example, consider:

resourcesPreset – Set container resources according to a common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This property is ignored if resources is provided, which is recommended for production.

This makes the intent easier to understand by clearly separating the conditional behavior from the recommendation.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~31-~31: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~31-~31: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)

packages/apps/vpn/values.schema.json (1)

28-36: Enhance VPN Schema with Resource Properties

The additions of the "resources" and "resourcesPreset" properties are clear and consistent with similar changes made in other components. The descriptions effectively communicate their roles. Double-check that these changes align with your intended resource management strategies across your charts and that any generated configurations are validated against this schema.

packages/extra/seaweedfs/templates/vpa.yaml (2)

1-21: VPA configuration for filer is correctly implemented.
The VerticalPodAutoscaler resource for the filer component is defined with appropriate update and resource policies. Note that YAML linting tools may flag templated syntax as a block error; if this occurs, confirm that these warnings are false positives due to Helm templating.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 4-4: syntax error: expected , but found ''

(syntax)


45-67: VPA configuration for volume is well-defined.
The configuration sets the correct target references and resource constraints. Just double-check that the Helm templating does not introduce any unintended indentation or formatting issues during rendering.

packages/extra/monitoring/templates/vm/vmcluster.yaml (3)

16-16: vminsert resource configuration update.
The removal of explicit resource definitions (now shown as resources: {}) for the vminsert component indicates a shift in resource management. Make sure that this change is coordinated with the overall autoscaling strategy (e.g., via VPAs) so that the workloads still receive appropriate resource requests.


19-19: vmselect resource configuration update.
Similarly, the elimination of concrete resource limits (resources: {}) for the vmselect component should be deliberate. Confirm that the new system (or defaults) manages these resources properly without leading to scheduling or performance issues.


36-36: vmstorage resource configuration update.
The change to an empty resource definition (resources: {}) for vmstorage suggests reliance on alternative resource control mechanisms. Verify that this decision matches your intended resource allocation strategy and that the absence of explicit limits won’t negatively impact scheduling.

packages/extra/monitoring/templates/vpa.yaml (4)

17-23: Review conditional indentation in the vminsert resource policy.
The conditional block for minAllowed uses templating (with {{- if and .vminsert .vminsert.minAllowed }} and a fallback to default values). Static analysis warns of a potential indentation issue (expected 8 spaces vs. found 10). Please verify the output with helm template and adjust the nindent level if needed to ensure valid YAML.

🧰 Tools
🪛 YAMLlint (1.35.1)

[warning] 20-20: wrong indentation: expected 8 but found 10

(indentation)


[warning] 21-21: wrong indentation: expected 8 but found 10

(indentation)


46-52: Validate indentation in the vmselect conditional block.
Similar to the vminsert section, the conditional block for vmselect’s minAllowed may be over-indented according to static analysis. Confirm that the rendered YAML meets the required structure and adjust the indentation settings as necessary.


75-81: Check indentation in the vmstorage conditional block.
Ensure that the fallback values for minAllowed in the vmstorage section are indented correctly. Running helm template would be beneficial to verify that the final YAML output does not suffer from indentation errors.


1-90: Overall review for VPA templates.
The dynamic templating for VPAs enhances configurability across components by allowing conditional resource limits. However, multiple static analysis warnings point to potential indentation inconsistencies in conditional blocks. Please verify the final rendered YAML (for example, via helm template) to ensure it conforms to YAML standards.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)


[warning] 20-20: wrong indentation: expected 8 but found 10

(indentation)


[warning] 21-21: wrong indentation: expected 8 but found 10

(indentation)

packages/apps/kubernetes/values.yaml (1)

86-86: Resolve Trailing Whitespace Issues
Static analysis indicates trailing spaces on lines 86, 100, 113, and 128, along with the absence of a newline at the end of the file (line 131). Please remove the extra spaces and ensure the file ends with a newline to comply with YAML formatting standards.

Also applies to: 100-100, 113-113, 128-128, 131-131

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 86-86: trailing spaces

(trailing-spaces)

packages/apps/http-cache/README.md (1)

63-73: Enhanced Resource Management Documentation
The table now includes new parameters haproxy.resources, haproxy.resourcesPreset, nginx.resources, and nginx.resourcesPreset. This addition improves clarity around configurable container resources. As a minor language improvement, consider rephrasing the preset description (e.g., "This preset is ignored if custom resources are provided") for better verb agreement and clarity.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~71-~71: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~71-~71: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~73-~73: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~73-~73: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)

packages/apps/kafka/values.yaml (2)

34-45: Addition of ZooKeeper Resource Parameters
The resource configuration for ZooKeeper mirrors that of Kafka, ensuring consistency. Note that there are trailing spaces (e.g., on line 43) as flagged by static analysis—please remove them.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 43-43: trailing spaces

(trailing-spaces)


26-26: Cleanup Trailing Spaces
Trailing spaces have been detected on lines 26 and 43. Removing these will help maintain clean YAML formatting.

Also applies to: 43-43

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 26-26: trailing spaces

(trailing-spaces)

packages/apps/kafka/README.md (1)

7-19: Enhanced Resource Management Documentation for Kafka
The updated parameters for Kafka and ZooKeeper (resources and resourcesPreset) are clearly documented in the parameters table. For clarity and improved readability, consider revising the phrasing in the preset descriptions to use more natural verb agreement (for example, "preset is ignored if custom resources are provided").

🧰 Tools
🪛 LanguageTool

[uncategorized] ~17-~17: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~17-~17: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~19-~19: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~19-~19: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)

packages/apps/http-cache/values.yaml (2)

15-26: HAProxy Resource Parameter Addition and Trailing Whitespace Cleanup:
The new parameters (resources and resourcesPreset) for HAProxy are clear and consistent with the design intent. Please remove the trailing whitespace noted on line 24 to ensure YAML cleanliness.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 24-24: trailing spaces

(trailing-spaces)


29-40: Nginx Resource Parameter Addition and Trailing Whitespace Cleanup:
The addition of nginx.resources and nginx.resourcesPreset mirrors the HAProxy configuration well. Note that line 38 has trailing whitespace that should be removed.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 38-38: trailing spaces

(trailing-spaces)

packages/apps/kubernetes/templates/cluster.yaml (4)

105-110: API Server Resource Configuration:
The conditional logic to include either the explicitly defined resources or a preset for the API server is well implemented. Ensure that the preset value ("none" bypasses the preset inclusion) consistently aligns with the values provided in your defaults.


111-116: Controller Manager Resource Configuration:
The configuration for the controllerManager follows the same clear pattern as the apiServer. Verify that the conditional check properly prevents conflicts when both resources and resourcesPreset are defined.


117-122: Scheduler Resource Configuration:
The scheduler block applies the same conditional logic. Please double-check that the indentation via nindent 6 renders the YAML correctly and that the fallback to the preset ensures proper resource definitions.


128-135: Konnectivity Server Resource Configuration:
The new resource settings for the konnectivity server are an excellent addition. Confirm that when no explicit resource specification is provided, the preset inclusion behaves as expected.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a2af07d and 7575efc.

📒 Files selected for processing (62)
  • packages/apps/http-cache/Chart.yaml (1 hunks)
  • packages/apps/http-cache/README.md (1 hunks)
  • packages/apps/http-cache/templates/_resources.tpl (1 hunks)
  • packages/apps/http-cache/templates/haproxy/deployment.yaml (1 hunks)
  • packages/apps/http-cache/templates/nginx/deployment.yaml (2 hunks)
  • packages/apps/http-cache/values.schema.json (2 hunks)
  • packages/apps/http-cache/values.yaml (1 hunks)
  • packages/apps/kafka/Chart.yaml (1 hunks)
  • packages/apps/kafka/README.md (1 hunks)
  • packages/apps/kafka/templates/kafka.yaml (2 hunks)
  • packages/apps/kafka/values.schema.json (2 hunks)
  • packages/apps/kafka/values.yaml (1 hunks)
  • packages/apps/kubernetes/Chart.yaml (1 hunks)
  • packages/apps/kubernetes/templates/_resources.tpl (1 hunks)
  • packages/apps/kubernetes/templates/cluster-autoscaler/deployment.yaml (1 hunks)
  • packages/apps/kubernetes/templates/cluster.yaml (1 hunks)
  • packages/apps/kubernetes/templates/csi/deploy.yaml (3 hunks)
  • packages/apps/kubernetes/templates/helmreleases/cert-manager-crds.yaml (1 hunks)
  • packages/apps/kubernetes/templates/helmreleases/cert-manager.yaml (1 hunks)
  • packages/apps/kubernetes/templates/helmreleases/cilium.yaml (1 hunks)
  • packages/apps/kubernetes/templates/helmreleases/csi.yaml (1 hunks)
  • packages/apps/kubernetes/templates/helmreleases/fluxcd.yaml (1 hunks)
  • packages/apps/kubernetes/templates/helmreleases/ingress-nginx.yaml (1 hunks)
  • packages/apps/kubernetes/templates/helmreleases/monitoring-agents.yaml (1 hunks)
  • packages/apps/kubernetes/templates/helmreleases/victoria-metrics-operator.yaml (1 hunks)
  • packages/apps/kubernetes/templates/kccm/manager.yaml (1 hunks)
  • packages/apps/kubernetes/values.yaml (1 hunks)
  • packages/apps/tcp-balancer/Chart.yaml (1 hunks)
  • packages/apps/tcp-balancer/README.md (1 hunks)
  • packages/apps/tcp-balancer/templates/_resources.tpl (1 hunks)
  • packages/apps/tcp-balancer/templates/deployment.yaml (1 hunks)
  • packages/apps/tcp-balancer/values.schema.json (1 hunks)
  • packages/apps/tcp-balancer/values.yaml (1 hunks)
  • packages/apps/tenant/Chart.yaml (1 hunks)
  • packages/apps/tenant/templates/namespace.yaml (1 hunks)
  • packages/apps/versions_map (6 hunks)
  • packages/apps/vpn/Chart.yaml (1 hunks)
  • packages/apps/vpn/README.md (1 hunks)
  • packages/apps/vpn/templates/_resources.tpl (1 hunks)
  • packages/apps/vpn/templates/deployment.yaml (1 hunks)
  • packages/apps/vpn/values.schema.json (1 hunks)
  • packages/apps/vpn/values.yaml (1 hunks)
  • packages/extra/etcd/Chart.yaml (1 hunks)
  • packages/extra/etcd/templates/etcd-cluster.yaml (1 hunks)
  • packages/extra/etcd/values.yaml (1 hunks)
  • packages/extra/monitoring/Chart.yaml (1 hunks)
  • packages/extra/monitoring/templates/alerta/alerta-db.yaml (1 hunks)
  • packages/extra/monitoring/templates/alerta/alerta.yaml (1 hunks)
  • packages/extra/monitoring/templates/grafana/db.yaml (1 hunks)
  • packages/extra/monitoring/templates/grafana/grafana.yaml (1 hunks)
  • packages/extra/monitoring/templates/vm/vmcluster.yaml (2 hunks)
  • packages/extra/monitoring/templates/vpa.yaml (1 hunks)
  • packages/extra/monitoring/values.yaml (3 hunks)
  • packages/extra/seaweedfs/Chart.yaml (1 hunks)
  • packages/extra/seaweedfs/templates/seaweedfs.yaml (3 hunks)
  • packages/extra/seaweedfs/templates/vpa.yaml (1 hunks)
  • packages/extra/versions_map (2 hunks)
  • packages/system/ingress-nginx/values.yaml (2 hunks)
  • packages/system/kubevirt/templates/kubevirt-cr.yaml (1 hunks)
  • packages/system/seaweedfs/charts/seaweedfs/templates/cosi-deployment.yaml (1 hunks)
  • packages/system/seaweedfs/templates/database.yaml (1 hunks)
  • packages/system/seaweedfs/values.yaml (0 hunks)
💤 Files with no reviewable changes (1)
  • packages/system/seaweedfs/values.yaml
🧰 Additional context used
🪛 YAMLlint (1.35.1)
packages/apps/kafka/templates/kafka.yaml

[error] 12-12: syntax error: could not find expected ':'

(syntax)

packages/extra/monitoring/templates/vpa.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)


[warning] 20-20: wrong indentation: expected 8 but found 10

(indentation)


[warning] 21-21: wrong indentation: expected 8 but found 10

(indentation)

packages/apps/kubernetes/values.yaml

[error] 86-86: trailing spaces

(trailing-spaces)


[error] 100-100: trailing spaces

(trailing-spaces)


[error] 113-113: trailing spaces

(trailing-spaces)


[error] 128-128: trailing spaces

(trailing-spaces)


[error] 131-131: no new line character at the end of file

(new-line-at-end-of-file)


[error] 131-131: trailing spaces

(trailing-spaces)

packages/apps/http-cache/values.yaml

[error] 24-24: trailing spaces

(trailing-spaces)


[error] 38-38: trailing spaces

(trailing-spaces)

packages/extra/seaweedfs/templates/vpa.yaml

[error] 4-4: syntax error: expected , but found ''

(syntax)

packages/apps/kafka/values.yaml

[error] 26-26: trailing spaces

(trailing-spaces)


[error] 43-43: trailing spaces

(trailing-spaces)

🪛 LanguageTool
packages/apps/kafka/README.md

[uncategorized] ~17-~17: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~17-~17: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~19-~19: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~19-~19: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)

packages/apps/tcp-balancer/README.md

[uncategorized] ~31-~31: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~31-~31: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)

packages/apps/vpn/README.md

[uncategorized] ~31-~31: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~31-~31: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano |...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)

packages/apps/http-cache/README.md

[uncategorized] ~71-~71: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~71-~71: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~73-~73: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~73-~73: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)

🔇 Additional comments (67)
packages/extra/etcd/Chart.yaml (1)

6-6: Approved: etcd chart version updated to 2.7.0
The version bump is straightforward and aligns with the overall update strategy. Ensure that any downstream dependencies expecting the older version are updated accordingly.

packages/apps/kafka/Chart.yaml (1)

19-19: Approved: Kafka chart version updated to 0.5.0
The chart version has been properly incremented following Semantic Versioning. Please verify that the corresponding version mappings (e.g., in versions_map) remain consistent after this change.

packages/extra/monitoring/Chart.yaml (1)

6-6: Approved: Monitoring chart version updated to 1.9.1
This minor version bump reflects the expected iterative improvements. Ensure that updated resource management parameters in related configurations (values.yaml, README, etc.) match these changes.

packages/apps/tcp-balancer/Chart.yaml (1)

19-19: Approved: TCP-balancer chart version updated to 0.3.0
The version update is in line with the release increment guidelines. Confirm that any new resource management features (documented in the README and implemented in templates) are well integrated and documented.

packages/apps/tenant/Chart.yaml (1)

7-7: Approved: Tenant chart version updated to 1.9.1
The minor version update is consistent with other similar changes in this PR. No further changes appear necessary.

packages/extra/seaweedfs/Chart.yaml (1)

19-19: Version Bump for SeaweedFS Chart

The chart version has been updated to 0.4.0. This version bump is in line with the coordinated release strategy and should be paired with the resource management enhancements introduced in related templates.

packages/apps/kubernetes/Chart.yaml (1)

19-19: Kubernetes Chart Version Update

The version field has been incremented to 0.17.0 as expected. Please verify that the accompanying appVersion ("1.30.1") still accurately reflects the deployed application's iteration.

packages/apps/http-cache/Chart.yaml (1)

19-19: HTTP Cache Chart Version Bump

The chart version update to 0.4.0 is correctly applied. Ensure that this change is consistent with any resource management configurations or new parameters added in associated templates and README documentation.

packages/apps/vpn/Chart.yaml (1)

19-19: VPN Chart Version Update

The chart version has been updated to 0.4.0. Confirm that this update aligns with the broader release changes, particularly regarding the new resource management parameters introduced in the related README and values files.

packages/system/kubevirt/templates/kubevirt-cr.yaml (1)

17-17: Addition of AutoResourceLimitsGate

A new feature gate (AutoResourceLimitsGate) has been added to the developerConfiguration's featureGates list. This enhancement supports improved resource management capabilities. Ensure that documentation is updated accordingly and that this feature integrates well with the overall VPA (Vertical Pod Autoscaling) improvements.

packages/apps/tenant/templates/namespace.yaml (1)

44-44: New Annotation Added: Confirm Memory Limits Ratio
The annotation alpha.kubevirt.io/auto-memory-limits-ratio: "1.0" has been added under the metadata. Please verify that this value aligns with your KubeVirt memory management strategy and won’t conflict with other annotations or future overrides.

packages/apps/kubernetes/templates/cluster-autoscaler/deployment.yaml (1)

29-35: Resource Limits and Requests Specification Added
A resources block has been introduced for the cluster-autoscaler container with limits set to cpu: 512m and memory: 512Mi and requests set to cpu: 124m and memory: 124Mi. Ensure these resource values have been validated against your performance and scheduling requirements.

packages/extra/etcd/templates/etcd-cluster.yaml (1)

49-51: Conditional Resource Configuration Added
The addition of a conditional block to render the resources field (using toYaml and nindent 10) when .Values.resources is defined increases configurability. Please verify that the resulting YAML indentation properly aligns with Kubernetes’ expectations.

packages/extra/monitoring/templates/alerta/alerta-db.yaml (1)

20-26: Resource Specifications for alerta-db Added
A new resources section has been introduced, setting limits (cpu: 1024m, memory: 2048Mi) and requests (cpu: 100m, memory: 512Mi) for the alerta-db PostgreSQL cluster. Confirm that these settings meet both performance and cost considerations in your environment.

packages/extra/monitoring/templates/grafana/db.yaml (1)

18-24: Resource Management Added for Grafana DB
The addition of a resources field with defined limits and requests (limits: cpu: 1024m, memory: 2048Mi; requests: cpu: 100m, memory: 512Mi) provides clearer resource allocation for the Grafana database. Please ensure these values are tuned to the expected workload and operational requirements of your monitoring stack.

packages/apps/tcp-balancer/templates/deployment.yaml (1)

36-40: Well-implemented resource management with fallback to presets.

The conditional logic for resource allocation provides good flexibility by allowing custom resource definitions or falling back to presets.

packages/apps/vpn/templates/deployment.yaml (1)

45-49: Resource management for outline-vpn container looks good.

The implementation follows the same pattern as other services in the system, maintaining consistency in how resources are managed across different components.

packages/system/seaweedfs/templates/database.yaml (1)

13-19: Resources for SeaweedFS database are appropriately defined.

The resource configurations look reasonable with good ratios between requests and limits. CPU limits at 1024m and memory at 2048Mi should be sufficient for most database workloads while preventing resource starvation.

packages/extra/monitoring/templates/grafana/grafana.yaml (1)

41-41: Good addition of resource management for Grafana.

Adding resource configuration allows for better capacity planning and predictable performance for the Grafana container.

packages/apps/http-cache/templates/haproxy/deployment.yaml (1)

36-40: Well-implemented resource management with fallback mechanism.

The conditional logic provides good flexibility by:

  1. First using custom resources when specified
  2. Falling back to predefined presets when available
  3. Not setting resources when neither is specified

Note: The "Release" key in the dict passed to the resources.preset template appears to be unused in the template definition, though it doesn't cause any issues.

packages/apps/http-cache/templates/_resources.tpl (1)

1-50: Well-structured resource preset template

This is a well-organized template that defines resource presets for different deployment sizes. The presets provide a good range of options from nano to 2xlarge, with appropriate scaling of CPU and memory resources.

I appreciate the clear documentation stating these presets are for testing and not production use. The error handling for invalid preset types is also well implemented.

packages/apps/kubernetes/templates/helmreleases/victoria-metrics-operator.yaml (1)

22-23: Updated kubeConfig secret reference

The changes to use admin-kubeconfig with the specific key super-admin.svc align with standardizing kubeConfig secret references across the application.

packages/apps/tcp-balancer/values.schema.json (1)

61-69: Good addition of resource management options

Adding both resources and resourcesPreset properties enhances the application's resource management capabilities. The description clearly explains their relationship, with resourcesPreset being ignored when resources is set.

The default "nano" preset is a sensible default for initial deployments, and the documentation appropriately recommends using custom resources for production environments.

packages/system/seaweedfs/charts/seaweedfs/templates/cosi-deployment.yaml (1)

143-146: Resource configuration for COSI driver

The addition of conditional resource configuration for the COSI driver is a good enhancement for resource management.

packages/apps/kubernetes/templates/helmreleases/cilium.yaml (1)

21-22: Update kubeConfig SecretRef and add key field.
The secretRef.name is now set to {{ .Release.Name }}-admin-kubeconfig and a new key field with the value super-admin.svc has been added. This change standardizes the kubeconfig secret naming across components and ensures that a specific key is used when referencing the secret. Please verify that all dependent templates and documentation have been updated accordingly.

packages/apps/http-cache/templates/nginx/deployment.yaml (1)

55-59: Implement Conditional Resource Assignment for Nginx Container.
The new conditional block checks if $.Values.nginx.resources is defined; if not, it falls back to a preset (provided $.Values.nginx.resourcesPreset is not "none"). This approach enhances flexibility, allowing users to fine-tune or preset resource configurations. Ensure that the corresponding default values and presets are properly documented and that the included template "resources.preset" exists and functions as expected.

packages/apps/kubernetes/templates/kccm/manager.yaml (1)

38-44: Refined Resource Specifications for KCCM Container.
The updated resource section now defines limits of cpu: 512m and memory: 512Mi along with requests of cpu: 124m and memory: 124Mi. These values seem aimed at ensuring a balanced allocation for the controller manager. Please confirm that these resource settings meet the application's performance and scheduling requirements under various load conditions.

packages/apps/vpn/values.yaml (1)

32-45: Introduce VPN Resource Parameters and Presets.
New parameters have been introduced: an empty resources object (with sample configurations commented out) and a resourcesPreset set to "nano" by default. This enhancement gives users the flexibility to either specify custom resource configurations or rely on standardized presets. Ensure that any related documentation (e.g., README, values schema) is updated to reflect these changes, and verify that the preset logic in the deployment templates correctly prioritizes a user-defined resources block over the preset.

packages/apps/kubernetes/templates/helmreleases/csi.yaml (1)

21-22: Standardize CSI kubeConfig SecretRef Similar to Cilium.
The secretRef.name has been updated to {{ .Release.Name }}-admin-kubeconfig and a new key field with the value super-admin.svc has been added, mirroring the changes made in the Cilium template. This ensures consistency across deployment templates for managing kubeConfig secrets. Please double-check that other services relying on this configuration have been updated accordingly.

packages/extra/versions_map (3)

11-12: Good version management for etcd

The update establishes a fixed commit reference for etcd 2.6.1 while introducing a new 2.7.0 version at HEAD, which follows good version control practices.


35-36: Good version management for monitoring

Properly establishing a fixed commit reference for monitoring 1.9.0 while introducing the new 1.9.1 version at HEAD, maintaining a clear version history.


40-41: Good version management for seaweedfs

Appropriately locking seaweedfs 0.3.0 to a specific commit while adding the new 0.4.0 version at HEAD, maintaining proper version control.

packages/apps/vpn/README.md (1)

30-31: Good addition of resource management parameters

The new resources and resourcesPreset parameters enhance the configuration options by providing standard Kubernetes resource management capabilities.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~31-~31: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~31-~31: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano |...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)

packages/apps/tcp-balancer/values.yaml (1)

47-56: Good addition of resources configuration with examples

Adding the resources parameter with commented examples provides clear guidance for configuring container resource limits and requests.

packages/apps/kubernetes/templates/helmreleases/cert-manager.yaml (1)

22-23: Improved kubeConfig reference with specific admin credentials

The change from generic kubeconfig to admin-specific kubeconfig with a dedicated key enhances security by using more specific credentials for the cert-manager deployment.

packages/apps/kubernetes/templates/helmreleases/ingress-nginx.yaml (1)

22-23: Standardize kubeConfig Secret Reference

The update to the kubeConfig section now uses {{ .Release.Name }}-admin-kubeconfig with the new key: super-admin.svc. This improves consistency and likely enhances security clarity by explicitly selecting the correct key in the secret.

packages/apps/kubernetes/templates/helmreleases/fluxcd.yaml (1)

21-23: Update Primary kubeConfig Secret Reference

The first HelmRelease block now correctly updates the secret reference to {{ .Release.Name }}-admin-kubeconfig with the extra key field. This is in line with the changes made elsewhere and helps standardize the configuration.

packages/apps/kubernetes/templates/helmreleases/cert-manager-crds.yaml (1)

21-22: Secret reference update is correctly implemented.
The update changes the secret name from {{ .Release.Name }}-kubeconfig to {{ .Release.Name }}-admin-kubeconfig and adds the new key: super-admin.svc field. This standardizes the kubeConfig secret reference across deployments. Please ensure that the corresponding secret is created/updated accordingly in your clusters.

packages/apps/kubernetes/templates/helmreleases/monitoring-agents.yaml (1)

24-25: KubeConfig secret reference update is consistent.
The change to update the secret name to {{ .Release.Name }}-admin-kubeconfig and add key: super-admin.svc aligns with the modifications seen in other HelmRelease files. Verify that this new secret structure is deployed and used uniformly across your configurations.

packages/extra/seaweedfs/templates/vpa.yaml (1)

22-44: VPA configuration for master is appropriately configured.
The VPA for the master component follows the desired pattern with auto update enabled and proper resource policies. Ensure that the Helm rendering process correctly handles the templated values, especially if YAMLlinters report issues.

packages/extra/etcd/values.yaml (1)

10-18: Addition of Resources Parameters
The new resources block is correctly defined with clearly separated limits and requests subsections. This enhances the configurability for etcd deployments.

packages/apps/kubernetes/values.yaml (1)

73-131: Comprehensive Kamaji Control Plane Section
The newly added kamajiControlPlane section is well structured. Each component (apiServer, controllerManager, scheduler, and konnectivity server) is provided with an empty resources object and a default resourcesPreset ("micro"). This design allows for later customization and clearly documents that preset values will be ignored if custom resources are provided.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 86-86: trailing spaces

(trailing-spaces)


[error] 100-100: trailing spaces

(trailing-spaces)


[error] 113-113: trailing spaces

(trailing-spaces)


[error] 128-128: trailing spaces

(trailing-spaces)


[error] 131-131: no new line character at the end of file

(new-line-at-end-of-file)


[error] 131-131: trailing spaces

(trailing-spaces)

packages/apps/kafka/values.yaml (1)

17-29: Introducing Kafka Resource Parameters
The addition of kafka.resources and kafka.resourcesPreset is well implemented and consistent with resource management patterns across the ecosystem. The inline comments also help users understand the purpose and example configurations.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 26-26: trailing spaces

(trailing-spaces)

packages/apps/http-cache/values.schema.json (2)

27-37: HAProxy Schema Enhancement for Resources:
The addition of resources and resourcesPreset properties for HAProxy enhances the schema’s flexibility. The description is sufficiently detailed. Verify that users understand that specifying resources will override the preset.


47-57: Nginx Schema Enhancement for Resources:
The schema updates for nginx mirror the HAProxy section, ensuring consistency across the configuration. The default value "nano" appears suitable if intended.

packages/system/ingress-nginx/values.yaml (3)

23-29: Protobuf-exporter Resource Settings:
The introduction of resource limits and requests for the protobuf-exporter container is clear and will help fine-tune its performance. The values appear reasonable.


50-56: Controller Resources Update:
The updated resource definitions for the controller component (limits and requests) are appropriate for bolstering performance and stability. Ensure these values align with your overall resource management strategy.


61-67: DefaultBackend Resource Definition:
The resource parameters for the defaultBackend have been clearly defined. Confirm that the low resource allocation (10m CPU and 20Mi memory) is sufficient for its expected workload under production conditions.

packages/apps/kafka/values.schema.json (2)

27-37: Kafka Resource Schema Enhancement:
The inclusion of localized resource settings (resources and resourcesPreset) for Kafka is a useful addition that allows for more granular control. The default preset of "nano" should be validated against production requirements.


57-67: ZooKeeper Resource Schema Enhancement:
Similarly, the addition of resources and resourcesPreset for ZooKeeper is consistent and improves resource management granularity. Ensure that the documentation clearly states that these settings override any global configurations that might have existed previously.

packages/apps/versions_map (6)

23-24: Version updates for http-cache look good!

Updated to associate http-cache 0.3.1 with a specific commit and added a new 0.4.0 version as HEAD.


34-35: Version updates for kafka look good!

Updated kafka 0.4.0 to reference a specific commit and added a new 0.5.0 version as HEAD.


57-59: Version updates for kubernetes look good!

Fixed kubernetes 0.15.2 to reference a specific commit and added new versions 0.16.0 and 0.17.0, with 0.17.0 as HEAD.


107-108: Version updates for tcp-balancer look good!

Updated tcp-balancer 0.2.0 to reference a specific commit and added a new 0.3.0 version as HEAD.


130-131: Version updates for tenant look good!

Fixed tenant 1.9.0 to reference a specific commit and added a new 1.9.1 version as HEAD.


156-157: Version updates for vpn look good!

Updated vpn 0.3.1 to reference a specific commit and added a new 0.4.0 version as HEAD.

packages/extra/seaweedfs/templates/seaweedfs.yaml (4)

24-31: Good addition of resource constraints for the master component!

Adding resource requests and limits for the master component is a good practice for Kubernetes resource management.


34-40: Good addition of resource constraints for the volume component!

Adding resource requests and limits for the volume component is a good practice for Kubernetes resource management.


55-61: Good addition of resource constraints for the filer component!

Adding resource requests and limits for the filer component is a good practice for Kubernetes resource management.


78-84: Good addition of resource constraints for the cosi component!

Adding resource requests and limits for the cosi component is a good practice for Kubernetes resource management.

packages/apps/kubernetes/templates/csi/deploy.yaml (4)

66-71: Adding CPU and memory limits for csi-driver is good practice!

Adding resource limits and increasing resource requests for the csi-driver container will help ensure more stable performance.


74-80: Good addition of resource constraints for csi-provisioner!

Adding resource requests and limits for the csi-provisioner container is a good practice for Kubernetes resource management.


115-120: Good addition of resource constraints for csi-attacher!

Adding resource limits and increasing resource requests for the csi-attacher container will help ensure more stable performance.


131-136: Good addition of resource constraints for csi-liveness-probe!

Adding resource limits and increasing resource requests for the csi-liveness-probe container will help ensure more stable performance.

packages/extra/monitoring/values.yaml (3)

16-35: Good approach using VPA min/max allowed resources for metrics components!

Using minAllowed and maxAllowed for vminsert, vmselect, and vmstorage components indicates the use of Vertical Pod Autoscaler (VPA), which provides dynamic resource scaling based on actual usage. This is a good approach for metrics components that can have varying resource needs over time.


64-70: Good addition of resource constraints for alerta!

Adding resource requests and limits for the alerta component will help ensure predictable performance and resource utilization.


91-97: Good addition of resource constraints for grafana!

Adding resource requests and limits for the grafana component will help ensure predictable performance and resource utilization.

Comment thread packages/system/seaweedfs/templates/database.yaml Outdated
Comment thread packages/extra/seaweedfs/templates/vpa.yaml Outdated
Comment thread packages/extra/seaweedfs/templates/vpa.yaml Outdated
Comment thread packages/extra/seaweedfs/templates/vpa.yaml Outdated
Comment thread packages/extra/monitoring/values.yaml Outdated
Comment thread packages/extra/monitoring/values.yaml Outdated
Comment thread packages/apps/kubernetes/templates/kccm/manager.yaml Outdated
Comment thread packages/apps/kubernetes/templates/csi/deploy.yaml Outdated
Comment thread packages/apps/kubernetes/templates/csi/deploy.yaml Outdated
Comment thread packages/apps/kubernetes/templates/csi/deploy.yaml Outdated
Comment thread packages/apps/kubernetes/templates/cluster-autoscaler/deployment.yaml Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
packages/extra/seaweedfs/templates/vpa.yaml (2)

1-4: Helm Templating & YAML Linter Warning
The templating syntax used in the metadata (e.g. {{ .Release.Name }}-filer) can trigger YAML linter errors (see YAMLlint error on line 4). Since this file is a Helm template, consider either configuring your linter to ignore templating expressions or adding an inline disable comment (if supported) to avoid false positives.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 4-4: syntax error: expected , but found ''

(syntax)


67-67: EOF Newline Reminder
Consider adding a newline at the end of the file to conform with best practices and ensure compatibility with various tooling.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between eb7b69b and 4097950.

📒 Files selected for processing (7)
  • packages/extra/monitoring/templates/alerta/alerta-db.yaml (1 hunks)
  • packages/extra/monitoring/templates/grafana/db.yaml (1 hunks)
  • packages/extra/monitoring/values.yaml (3 hunks)
  • packages/extra/seaweedfs/templates/vpa.yaml (1 hunks)
  • packages/system/capi-providers/templates/providers.yaml (1 hunks)
  • packages/system/ingress-nginx/values.yaml (2 hunks)
  • packages/system/seaweedfs/templates/database.yaml (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (4)
  • packages/extra/monitoring/templates/alerta/alerta-db.yaml
  • packages/extra/monitoring/templates/grafana/db.yaml
  • packages/system/seaweedfs/templates/database.yaml
  • packages/system/ingress-nginx/values.yaml
🧰 Additional context used
🪛 YAMLlint (1.35.1)
packages/extra/seaweedfs/templates/vpa.yaml

[error] 4-4: syntax error: expected , but found ''

(syntax)

🔇 Additional comments (9)
packages/system/capi-providers/templates/providers.yaml (1)

22-23: Resource Limit Update: Validate CPU Limit Format

The CPU limit for the manager container has been updated from a millicpu value (e.g., 1024m) to a whole CPU value ("1"). This change is compliant with Kubernetes resource specification standards, but please verify that the cluster's autoscaling (including VPA configurations) and scheduling correctly interpret this format. Also, consider adding documentation or inline comments to explain this change for future reference.

packages/extra/monitoring/values.yaml (5)

16-21: vminsert Resource Range Documentation Updated.
The comments for the vminsert section now document the new resource range model effectively with minAllowed (cpu: 200m, memory: 512Mi) and maxAllowed (cpu: 1500m, memory: 3Gi). This documentation is clear and aligns with the intended resource management approach.


23-28: vmselect Resource Range Configuration Updated.
The vmselect section now reflects the new resource model with minAllowed (cpu: 300m, memory: 1Gi) and maxAllowed (cpu: 3500m, memory: 6Gi). The numbers look reasonable and are consistent with the update strategy.


30-35: vmstorage Resource Range Settings Updated.
The updates for vmstorage now specify minAllowed (cpu: 500m, memory: 2Gi) and maxAllowed (cpu: 4000m, memory: 8Gi), which are clearly documented in the comments. This change enhances clarity regarding expected resource capacities.


64-70: Alerta Resources Configuration Added.
The addition of a resources section for alerta—detailing both limits (cpu: "1", memory: 1Gi) and requests (cpu: 100m, memory: 256Mi)—is a welcome improvement for managing resource allocation in Kubernetes. Please verify that quoting the CPU value ("1") is consistent with other parts of the system or cluster conventions.


91-97: Grafana Resources Specification Added.
Introducing a resources block for grafana that mirrors the configuration for alerta helps standardize resource management. The specified limits (cpu: "1", memory: 1Gi) and requests (cpu: 100m, memory: 256Mi) seem appropriate; double-check that these values are optimal for Grafana’s workload.

packages/extra/seaweedfs/templates/vpa.yaml (3)

5-21: VPA for “Filer”: Resource Policy Verification
The VPA for the “filer” component correctly defines the targetRef, updatePolicy, and resourcePolicy with specified minAllowed and maxAllowed values. However, note that the CPU maximum is set as "1" (a string). Please verify that this is intended and satisfies your resource allocation requirements. This review comment aligns with previous suggestions regarding similar resource values.


24-44: VPA for “Master”: Consistency & Resource Settings
This YAML block for the “master” component mirrors the filer configuration. Reconfirm that the templated name and the resource policy (especially the "1" CPU value in maxAllowed) are as intended. Consistent configuration across VPAs is good, but validating these numeric thresholds against your workload requirements is recommended.


47-67: VPA for “Volume”: Validate Resource Allocation
The third VPA for “volume” is structured similarly to the other two. Ensure that using "1" for the maxAllowed CPU is appropriate for this component’s expected load. Consistency is maintained, but revisiting the resource thresholds against actual usage patterns can help avoid potential under- or over-provisioning.

klinch0 added 8 commits March 20, 2025 14:59
Signed-off-by: kklinch0 <[email protected]>
Signed-off-by: kklinch0 <[email protected]>
Signed-off-by: kklinch0 <[email protected]>
Signed-off-by: kklinch0 <[email protected]>
Signed-off-by: kklinch0 <[email protected]>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (19)
packages/apps/kubernetes/values.yaml (1)

72-130: Resource configuration looks good, with minor formatting issues

The implementation of the kamajiControlPlane section with resource configuration options for each component follows good practices:

  • Empty resource objects with commented examples provide guidance
  • Default resourcesPreset of "micro" is sensible for development environments
  • Documentation via param tags is clear and informative

Fix the trailing whitespace on lines 86, 100, 113, 128, and add a newline at the end of the file (line 131):

    #     memory: 512Mi
-    
+    

    ## @param kamajiControlPlane.apiServer.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production).

(Apply similar fixes to the other instances of trailing whitespace)

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 86-86: trailing spaces

(trailing-spaces)


[error] 100-100: trailing spaces

(trailing-spaces)


[error] 113-113: trailing spaces

(trailing-spaces)


[error] 128-128: trailing spaces

(trailing-spaces)

packages/extra/seaweedfs/templates/vpa.yaml (3)

3-4: Templating & YAML Linter Warning on Metadata

The use of Helm templating ({{ .Release.Name }}) in the metadata (line 4) may trigger YAML linter errors (as noted by the static analysis). This is typically a false positive in Helm charts. Consider adding a linter override or a comment directive (if supported) to ignore these template expressions.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 4-4: syntax error: expected , but found ''

(syntax)


26-27: Metadata Consistency in Master VPA

The metadata for the master VPA (lines 26–27) uses the same Helm templating as the filer. Ensure that this templating is processed correctly during deployment, particularly if YAML linting is performed pre-render.


49-50: Metadata Templating Check for Volume VPA

The templated metadata in the volume VPA (line 50) follows the same pattern as the other VPAs. Confirm that this is handled as intended in your CI/CD and deployment pipelines.

packages/apps/kafka/templates/kafka.yaml (2)

11-15: Refine Kafka Resource Configuration Logic and Validate YAML Formatting

The conditional block for Kafka resource configuration is implemented correctly by first checking for the explicit value (.Values.kafka.resources) before defaulting to the preset. However, YAMLlint has flagged an error on line 12 (syntax error: could not find expected ':'), which is likely a false positive due to Helm templating syntax. If your CI/CD YAML linter cannot process templated content properly, consider adding a YAML lint ignore comment or adjusting its configuration to account for Helm template directives.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 12-12: syntax error: could not find expected ':'

(syntax)


73-77: Review Zookeeper Resource Configuration Block Consistency

This block mirrors the Kafka configuration pattern for resource settings, ensuring consistency between the two components. As with the Kafka block, monitor for YAMLlint issues due to templating and adjust your linter settings if needed.

packages/apps/kafka/README.md (1)

7-19: Clarify Resource Parameter Descriptions and Address LanguageTool Suggestions

The updated table clearly introduces the new parameters (kafka.resources, kafka.resourcesPreset, zookeeper.resources, and zookeeper.resourcesPreset) along with their default values. However, LanguageTool flags a couple of grammatical issues in the descriptions (e.g., “This is ignored...” might be better phrased as “These are ignored...” to agree with the plural subject). Consider rephrasing the description for the presets to improve clarity—for example:

- | `kafka.resourcesPreset`     | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production). | `nano`  |
+ | `kafka.resourcesPreset`     | Set container resources according to a common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). These are ignored if resources are provided (using resources is recommended for production). | `nano`  |

Apply similar improvements to the Zookeeper preset description.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~17-~17: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~17-~17: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~19-~19: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~19-~19: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)

packages/apps/kafka/values.yaml (1)

26-26: Remove Trailing Whitespace

YAMLlint has flagged trailing spaces on lines 26 and 43. Removing these extraneous spaces will help maintain clean YAML formatting and potentially prevent subtle issues with some YAML parsers.

Example diff:

Apply a similar change for line 43.

Also applies to: 43-43

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 26-26: trailing spaces

(trailing-spaces)

packages/apps/tcp-balancer/README.md (1)

22-31: Enhance Grammar in Resource Preset Description.
The new table rows clearly document the resources and resourcesPreset parameters. However, the description for resourcesPreset in line 31 could be improved for grammatical clarity. For example, change "This is ignored if resources is set (resources is recommended for production)" to "It is ignored when resources is provided (using resources is recommended for production)."

-| `resourcesPreset`                | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production). | `nano`  |
+| `resourcesPreset`                | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). It is ignored when `resources` is provided (using `resources` is recommended for production). | `nano`  |
🧰 Tools
🪛 LanguageTool

[uncategorized] ~31-~31: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~31-~31: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)

packages/apps/vpn/README.md (1)

25-31: Improve Grammar in Resource Preset Description.
The addition of the resources and resourcesPreset parameters is well integrated. Similar to the TCP Balancer README, consider rephrasing the description for resourcesPreset to: "It is ignored when resources is provided (using resources is recommended for production)."

-| `resourcesPreset` | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production). | `nano` |
+| `resourcesPreset` | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). It is ignored when `resources` is provided (using `resources` is recommended for production). | `nano` |
🧰 Tools
🪛 LanguageTool

[uncategorized] ~31-~31: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~31-~31: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano |...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)

packages/apps/http-cache/README.md (1)

70-73: Refine Resource Preset Descriptions for HAProxy and Nginx.
The new resource preset rows for both HAProxy and Nginx follow the established pattern; however, the description wording could be more grammatically consistent. Consider updating the phrasing from "This is ignored if resources is set (resources is recommended for production)" to "It is ignored when resources is provided (using resources is recommended for production)."

- | `haproxy.resourcesPreset` | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production). | `nano`  |
+ | `haproxy.resourcesPreset` | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). It is ignored when `resources` is provided (using `resources` is recommended for production). | `nano`  |

- | `nginx.resourcesPreset`   | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production). | `nano`  |
+ | `nginx.resourcesPreset`   | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). It is ignored when `resources` is provided (using `resources` is recommended for production). | `nano`  |
🧰 Tools
🪛 LanguageTool

[uncategorized] ~71-~71: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~71-~71: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~73-~73: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~73-~73: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)

packages/apps/http-cache/values.yaml (2)

15-26: Enhance HAProxy Resource Preset Description & Remove Trailing Spaces.
The new HAProxy parameters are clear and well documented. For improved clarity, consider rewording the description for haproxy.resourcesPreset as suggested below. Also, ensure that any trailing spaces (e.g., on line 24) are removed.

-  ## @param haproxy.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production).
+  ## @param haproxy.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). It is ignored when `resources` is provided (using `resources` is recommended for production).
🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 24-24: trailing spaces

(trailing-spaces)


29-40: Enhance Nginx Resource Preset Description & Clean Trailing Spaces.
Similarly, the Nginx resource parameters are well introduced. Rephrase the description for nginx.resourcesPreset for grammatical consistency and verify that trailing spaces (such as on line 38) are removed.

-  ## @param nginx.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production).
+  ## @param nginx.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). It is ignored when `resources` is provided (using `resources` is recommended for production).
🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 38-38: trailing spaces

(trailing-spaces)

packages/extra/monitoring/templates/vpa.yaml (6)

18-23: Verify YAML Indentation for vminsert minAllowed Block
The conditional block for minAllowed uses nindent 10 to format the custom resource definitions. However, YAMLlint warns that on line 20 the indentation is 10 spaces instead of the expected 8. Please verify by rendering the template (using, for example, helm template) that the produced YAML has the correct structure.

🧰 Tools
🪛 YAMLlint (1.35.1)

[warning] 20-20: wrong indentation: expected 8 but found 10

(indentation)


[warning] 21-21: wrong indentation: expected 8 but found 10

(indentation)


25-30: Verify YAML Indentation for vminsert maxAllowed Block
Similarly, the conditional block for maxAllowed uses nindent 10. Ensure that the extra indentation does not lead to formatting issues in the rendered output.


47-52: Review YAML Indentation in vmselect minAllowed Block
The conditional declaration for minAllowed in the vmselect section follows the same pattern. Please confirm that the use of nindent 10 produces the desired output without extra indentation, as indicated by YAMLlint warnings.


54-59: Review YAML Indentation in vmselect maxAllowed Block
As with the vminsert blocks, verify that the formatting for maxAllowed does not introduce unintended extra indentation. Running a template render can help confirm the correctness of the output.


76-81: Verify YAML Indentation in vmstorage minAllowed Block
The conditional block for vmstorage’s minAllowed again uses nindent 10. YAMLlint has flagged possible indentation discrepancies—please double-check that the rendered YAML meets the intended structure.


83-88: Verify YAML Indentation in vmstorage maxAllowed Block
Confirm that the conditional maxAllowed block for vmstorage produces correct YAML structure. The use of nindent 10 should be validated to ensure it does not trigger extra indentation.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4097950 and f6d4541.

📒 Files selected for processing (63)
  • packages/apps/http-cache/Chart.yaml (1 hunks)
  • packages/apps/http-cache/README.md (1 hunks)
  • packages/apps/http-cache/templates/_resources.tpl (1 hunks)
  • packages/apps/http-cache/templates/haproxy/deployment.yaml (1 hunks)
  • packages/apps/http-cache/templates/nginx/deployment.yaml (2 hunks)
  • packages/apps/http-cache/values.schema.json (2 hunks)
  • packages/apps/http-cache/values.yaml (1 hunks)
  • packages/apps/kafka/Chart.yaml (1 hunks)
  • packages/apps/kafka/README.md (1 hunks)
  • packages/apps/kafka/templates/kafka.yaml (2 hunks)
  • packages/apps/kafka/values.schema.json (2 hunks)
  • packages/apps/kafka/values.yaml (1 hunks)
  • packages/apps/kubernetes/Chart.yaml (1 hunks)
  • packages/apps/kubernetes/templates/_resources.tpl (1 hunks)
  • packages/apps/kubernetes/templates/cluster-autoscaler/deployment.yaml (1 hunks)
  • packages/apps/kubernetes/templates/cluster.yaml (1 hunks)
  • packages/apps/kubernetes/templates/csi/deploy.yaml (3 hunks)
  • packages/apps/kubernetes/templates/helmreleases/cert-manager-crds.yaml (1 hunks)
  • packages/apps/kubernetes/templates/helmreleases/cert-manager.yaml (1 hunks)
  • packages/apps/kubernetes/templates/helmreleases/cilium.yaml (1 hunks)
  • packages/apps/kubernetes/templates/helmreleases/csi.yaml (1 hunks)
  • packages/apps/kubernetes/templates/helmreleases/fluxcd.yaml (1 hunks)
  • packages/apps/kubernetes/templates/helmreleases/ingress-nginx.yaml (1 hunks)
  • packages/apps/kubernetes/templates/helmreleases/monitoring-agents.yaml (1 hunks)
  • packages/apps/kubernetes/templates/helmreleases/victoria-metrics-operator.yaml (1 hunks)
  • packages/apps/kubernetes/templates/kccm/manager.yaml (1 hunks)
  • packages/apps/kubernetes/values.yaml (1 hunks)
  • packages/apps/tcp-balancer/Chart.yaml (1 hunks)
  • packages/apps/tcp-balancer/README.md (1 hunks)
  • packages/apps/tcp-balancer/templates/_resources.tpl (1 hunks)
  • packages/apps/tcp-balancer/templates/deployment.yaml (1 hunks)
  • packages/apps/tcp-balancer/values.schema.json (1 hunks)
  • packages/apps/tcp-balancer/values.yaml (1 hunks)
  • packages/apps/tenant/Chart.yaml (1 hunks)
  • packages/apps/tenant/templates/namespace.yaml (1 hunks)
  • packages/apps/versions_map (6 hunks)
  • packages/apps/vpn/Chart.yaml (1 hunks)
  • packages/apps/vpn/README.md (1 hunks)
  • packages/apps/vpn/templates/_resources.tpl (1 hunks)
  • packages/apps/vpn/templates/deployment.yaml (1 hunks)
  • packages/apps/vpn/values.schema.json (1 hunks)
  • packages/apps/vpn/values.yaml (1 hunks)
  • packages/extra/etcd/Chart.yaml (1 hunks)
  • packages/extra/etcd/templates/etcd-cluster.yaml (1 hunks)
  • packages/extra/etcd/values.yaml (1 hunks)
  • packages/extra/monitoring/Chart.yaml (1 hunks)
  • packages/extra/monitoring/templates/alerta/alerta-db.yaml (1 hunks)
  • packages/extra/monitoring/templates/alerta/alerta.yaml (1 hunks)
  • packages/extra/monitoring/templates/grafana/db.yaml (1 hunks)
  • packages/extra/monitoring/templates/grafana/grafana.yaml (1 hunks)
  • packages/extra/monitoring/templates/vm/vmcluster.yaml (2 hunks)
  • packages/extra/monitoring/templates/vpa.yaml (1 hunks)
  • packages/extra/monitoring/values.yaml (3 hunks)
  • packages/extra/seaweedfs/Chart.yaml (1 hunks)
  • packages/extra/seaweedfs/templates/seaweedfs.yaml (3 hunks)
  • packages/extra/seaweedfs/templates/vpa.yaml (1 hunks)
  • packages/extra/versions_map (2 hunks)
  • packages/system/capi-providers/templates/providers.yaml (1 hunks)
  • packages/system/ingress-nginx/values.yaml (2 hunks)
  • packages/system/kubevirt/templates/kubevirt-cr.yaml (1 hunks)
  • packages/system/seaweedfs/charts/seaweedfs/templates/cosi-deployment.yaml (1 hunks)
  • packages/system/seaweedfs/templates/database.yaml (1 hunks)
  • packages/system/seaweedfs/values.yaml (0 hunks)
💤 Files with no reviewable changes (1)
  • packages/system/seaweedfs/values.yaml
🚧 Files skipped from review as they are similar to previous changes (48)
  • packages/apps/tenant/templates/namespace.yaml
  • packages/apps/http-cache/Chart.yaml
  • packages/extra/monitoring/templates/grafana/grafana.yaml
  • packages/extra/monitoring/Chart.yaml
  • packages/apps/tcp-balancer/Chart.yaml
  • packages/extra/etcd/Chart.yaml
  • packages/extra/monitoring/templates/alerta/alerta.yaml
  • packages/apps/kubernetes/templates/cluster-autoscaler/deployment.yaml
  • packages/apps/kafka/Chart.yaml
  • packages/extra/etcd/templates/etcd-cluster.yaml
  • packages/apps/tcp-balancer/values.yaml
  • packages/extra/seaweedfs/Chart.yaml
  • packages/apps/http-cache/templates/_resources.tpl
  • packages/apps/vpn/templates/deployment.yaml
  • packages/apps/kubernetes/Chart.yaml
  • packages/apps/vpn/Chart.yaml
  • packages/extra/monitoring/templates/alerta/alerta-db.yaml
  • packages/apps/vpn/templates/_resources.tpl
  • packages/extra/monitoring/templates/vm/vmcluster.yaml
  • packages/apps/tcp-balancer/templates/deployment.yaml
  • packages/system/seaweedfs/templates/database.yaml
  • packages/system/kubevirt/templates/kubevirt-cr.yaml
  • packages/apps/http-cache/templates/nginx/deployment.yaml
  • packages/apps/kubernetes/templates/helmreleases/victoria-metrics-operator.yaml
  • packages/system/capi-providers/templates/providers.yaml
  • packages/extra/monitoring/templates/grafana/db.yaml
  • packages/apps/tcp-balancer/values.schema.json
  • packages/apps/http-cache/templates/haproxy/deployment.yaml
  • packages/apps/kubernetes/templates/kccm/manager.yaml
  • packages/apps/tcp-balancer/templates/_resources.tpl
  • packages/apps/kubernetes/templates/helmreleases/cilium.yaml
  • packages/apps/kubernetes/templates/helmreleases/csi.yaml
  • packages/apps/vpn/values.yaml
  • packages/apps/kubernetes/templates/helmreleases/monitoring-agents.yaml
  • packages/system/seaweedfs/charts/seaweedfs/templates/cosi-deployment.yaml
  • packages/apps/kafka/values.schema.json
  • packages/apps/tenant/Chart.yaml
  • packages/apps/kubernetes/templates/helmreleases/cert-manager.yaml
  • packages/extra/etcd/values.yaml
  • packages/apps/vpn/values.schema.json
  • packages/apps/kubernetes/templates/helmreleases/ingress-nginx.yaml
  • packages/extra/versions_map
  • packages/apps/kubernetes/templates/helmreleases/cert-manager-crds.yaml
  • packages/apps/kubernetes/templates/helmreleases/fluxcd.yaml
  • packages/apps/http-cache/values.schema.json
  • packages/apps/kubernetes/templates/csi/deploy.yaml
  • packages/extra/seaweedfs/templates/seaweedfs.yaml
  • packages/apps/versions_map
🧰 Additional context used
🪛 YAMLlint (1.35.1)
packages/apps/kubernetes/values.yaml

[error] 86-86: trailing spaces

(trailing-spaces)


[error] 100-100: trailing spaces

(trailing-spaces)


[error] 113-113: trailing spaces

(trailing-spaces)


[error] 128-128: trailing spaces

(trailing-spaces)


[error] 131-131: no new line character at the end of file

(new-line-at-end-of-file)


[error] 131-131: trailing spaces

(trailing-spaces)

packages/apps/kafka/values.yaml

[error] 26-26: trailing spaces

(trailing-spaces)


[error] 43-43: trailing spaces

(trailing-spaces)

packages/apps/http-cache/values.yaml

[error] 24-24: trailing spaces

(trailing-spaces)


[error] 38-38: trailing spaces

(trailing-spaces)

packages/apps/kafka/templates/kafka.yaml

[error] 12-12: syntax error: could not find expected ':'

(syntax)

packages/extra/monitoring/templates/vpa.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)


[warning] 20-20: wrong indentation: expected 8 but found 10

(indentation)


[warning] 21-21: wrong indentation: expected 8 but found 10

(indentation)

packages/extra/seaweedfs/templates/vpa.yaml

[error] 4-4: syntax error: expected , but found ''

(syntax)

🪛 LanguageTool
packages/apps/kafka/README.md

[uncategorized] ~17-~17: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~17-~17: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~19-~19: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~19-~19: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)

packages/apps/tcp-balancer/README.md

[uncategorized] ~31-~31: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~31-~31: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)

packages/apps/http-cache/README.md

[uncategorized] ~71-~71: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~71-~71: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~73-~73: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~73-~73: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)

packages/apps/vpn/README.md

[uncategorized] ~31-~31: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... 2xlarge). This is ignored if resources is set (resources is recommended for produ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[uncategorized] ~31-~31: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... ignored if resources is set (resources is recommended for production). | nano |...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)

🔇 Additional comments (15)
packages/apps/kubernetes/templates/_resources.tpl (1)

1-50: Well-structured resource preset template

The template creates a standardized way to define resource requirements across the application. It defines presets ranging from "nano" to "2xlarge" with appropriate CPU and memory configurations. The error handling is robust, providing clear messages if an invalid preset is specified.

Considerations:

  • The template includes a comment clarifying that these presets are for basic testing and not meant for production use.
  • The structure uses a 50% increase from requests to limits (except for ephemeral storage), which is a reasonable approach.
packages/apps/kubernetes/templates/cluster.yaml (2)

105-122: Good conditional resource configuration for control plane components

The implementation correctly applies resources to the control plane components:

  • First checks for explicit resource definitions in values
  • Falls back to preset configurations when available
  • Skips resource configuration when preset is set to "none"

The pattern is consistently applied across apiServer, controllerManager, and scheduler components.


128-135: Good konnectivity server configuration with port and resources

The explicit port definition (8132) for the konnectivity server is properly specified, and the resource configuration follows the same pattern as the control plane components.

packages/extra/seaweedfs/templates/vpa.yaml (3)

15-20: Resource Configuration for Filer VPA

The resource limits and requests for the filer VPA are clearly defined. The minAllowed of 250m CPU / 256Mi Memory and maxAllowed of "1" CPU / 2048Mi Memory appear consistent. Verify that the quoted CPU limit ("1") meets your intended configuration and fits within your cluster capacity policies.


38-43: Resource Configuration for Master VPA

The resource settings for the master VPA mirror those of the filer. Double-check that the maxAllowed value of "1" CPU is the intentional upper boundary for master workloads.


61-66: Resource Settings Validation for Volume VPA

The volume VPA’s resource policies (lines 61–66) align with those in the filer and master definitions. As before, review the CPU maxAllowed value "1" to ensure it aligns with the overall resource allocation strategy.

packages/apps/kafka/values.yaml (2)

17-28: Add Kafka-Specific Resource Parameters

The addition of the kafka.resources (initialized as an empty object) and kafka.resourcesPreset (defaulting to "nano") parameters is clear and accompanied by helpful inline comments and examples. This enhances configurability for Kafka resource management without introducing any issues.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 26-26: trailing spaces

(trailing-spaces)


34-45: Add Zookeeper-Specific Resource Parameters

The new definition for Zookeeper resources follows the pattern established for Kafka, ensuring consistency in resource configuration across components. The commented examples provide valuable guidance for users who might want to customize resource limits and requests.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 43-43: trailing spaces

(trailing-spaces)

packages/system/ingress-nginx/values.yaml (3)

18-29: Validate New Resource Configuration for Protobuf Exporter.
The addition of the resources block for the protobuf-exporter container (lines 23–29) is well implemented with both limits and requests defined. Ensure these resource values are in line with your performance and resource planning goals.


50-57: Review Controller Resource Settings.
The updated resource configuration for the ingress-nginx controller (lines 50–57) is clear and concise. Verify that the new resource limits (cpu: "1", memory: 2048Mi) and requests meet the operational requirements for your deployment.


58-67: Check Default Backend Resource Allocation.
The newly introduced resources for the defaultBackend (lines 58–67) follow a straightforward pattern. Confirm that the defined limits (e.g., 10m CPU and 20Mi memory) and requests are sufficient for the expected workload on the default backend.

packages/extra/monitoring/templates/vpa.yaml (1)

1-11: Dynamic Templating and Naming – Looks Good
The template cleanly iterates over .Values.metricsStorages and uses dynamic naming (e.g. vpa-vminsert-{{ .name }} and vminsert-{{ .name }}) to generate unique resources. This approach enhances reusability and scalability.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/extra/monitoring/values.yaml (3)

16-35: Example Resource Definitions for MetricsStorages
The commented example for the resource definitions of vminsert, vmselect, and vmstorage is clear and helps guide users in configuring min/max allowed resources. Ensure that these examples remain in sync with actual operational values.


64-70: Alerta Resource Specifications Updated
The new resources block for the Alerta component clearly specifies both limits and requests. Note that the CPU limit is specified as "1" (a string) which matches previous discussions. If this is intentional and consistent with how Kubernetes expects these values, then it is fine.


91-97: Grafana Resource Specifications Updated
The Grafana component now includes a resources block similar to Alerta. The configuration appears consistent; however, double-check that identical resource settings meet the differing performance requirements of Grafana versus Alerta.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants