Skip to content

Conversation

@zhhray
Copy link
Contributor

@zhhray zhhray commented Jan 22, 2026

Summary by CodeRabbit

  • Documentation
    • Added Capacity Planning Guide for Alauda Container Platform Registry with detailed hardware resource profiles, multiple scalability scenarios, replica count recommendations, and resource allocation guidance for optimized deployment performance.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 22, 2026

Walkthrough

Adds a new comprehensive documentation guide for Alauda Container Platform Registry and Registry Gateway capacity planning. The document provides hardware resource recommendations, resource profiles for both components, and three scalability scenarios with specific replica counts and container resource specifications.

Changes

Cohort / File(s) Summary
Capacity Planning Documentation
docs/en/solutions/Alauda_Container_Platform_Registry_Capacity_Planning_Guide.md
New guide covering hardware resource recommendations, component characteristics (I/O/memory/CPU sensitivity, latency considerations), and three scalability scenarios with tabular resource specs and recommendations for iterative baselining

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 A guide has sprouted from the docs so deep,
With registry wisdom for capacity to reap,
From tiny to massive, scenarios three,
Resource profiles set containers free!
✨ Planning perfected, scalability's key

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'add ACP Registry Capacity Planning Guide doc' clearly and specifically describes the main change: adding a new documentation file about capacity planning for the Alauda Container Platform Registry.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@docs/en/solutions/Alauda_Container_Pltform_Registry_Sizing_Guide.md`:
- Line 10: The file name contains a typo: rename the file from
Alauda_Container_Pltform_Registry_Sizing_Guide.md to
Alauda_Container_Platform_Registry_Sizing_Guide.md so it matches the title
"Alauda Container Platform Registry & Registry Gateway Capacity Planning Guide"
and improves consistency and searchability; update any internal links or
references that point to Alauda_Container_Pltform_Registry_Sizing_Guide.md to
the new filename.
🧹 Nitpick comments (3)
docs/en/solutions/Alauda_Container_Pltform_Registry_Sizing_Guide.md (3)

24-35: Fix unordered list indentation to satisfy markdownlint.

MD007 flags these lists due to extra indentation. Removing the leading spaces will align with the lint rule.

♻️ Proposed fix
-  * **I/O Intensive**: Performance is heavily dependent on storage backend speed (for layer push/pull operations).
-  * **Memory Sensitive**: Requires adequate memory for layer caching during pushes and pulls, and for handling concurrent connections.
-  * **Moderate CPU**: CPU is used for compression, hashing, and request handling.
+* **I/O Intensive**: Performance is heavily dependent on storage backend speed (for layer push/pull operations).
+* **Memory Sensitive**: Requires adequate memory for layer caching during pushes and pulls, and for handling concurrent connections.
+* **Moderate CPU**: CPU is used for compression, hashing, and request handling.
@@
-  * **CPU Intensive**: Due to JSON parsing, size calculation, and request proxying.
-  * **Latency Sensitive**: Performance is tightly coupled with the response time of the backend Registry's tag listing endpoint.
-  * **Memory Sensitive**: Needs buffer for large manifest requests and maintains session cache.
+* **CPU Intensive**: Due to JSON parsing, size calculation, and request proxying.
+* **Latency Sensitive**: Performance is tightly coupled with the response time of the backend Registry's tag listing endpoint.
+* **Memory Sensitive**: Needs buffer for large manifest requests and maintains session cache.

39-55: Add blank lines around tables to satisfy markdownlint (MD058).

Each table should be surrounded by blank lines to avoid lint failures.

♻️ Proposed fix
 ### Scenario 1: ~100 Concurrent Pods (Light Usage)
+
 | Component | Recommended Replicas | Container Resources (Requests / Limits) | Notes |
 | --------- | -------------------- | -------------------------------------- | ---------------- |
 | Alauda Container Platform Registry | 1-2 | CPU: `500m` / `1000m` <br> Memory: `512Mi` / `1Gi` | Single replica may suffice. |
 | Registry Gateway | 1-2 | CPU: `200m-300m` / `500m` <br> Memory: `256Mi-512Mi` / `1Gi` | Resources accommodate bursty image pushes requiring manifest parsing. |
+
 
 ### Scenario 2: ~1000 Concurrent Pods (Medium Usage)
+
 | Component | Recommended Replicas | Container Resources (Requests / Limits) | Notes |
 | --------- | -------------------- | -------------------------------------- | ---------------- |
 | Alauda Container Platform Registry | 2-3 | CPU: `1000m` / `2000m` <br> Memory: `1Gi` / `2Gi` | Requires multiple replicas. |
 | Registry Gateway | 2-3 | CPU: `300m-500m` / `1000m-2000m` <br> Memory: `512Mi-1Gi` / `2Gi` | The synchronous tag-list check becomes a primary bottleneck. Higher CPU limits are needed. |
+
 
 ### Scenario 3: ~5000 Concurrent Pods (Large Usage)
+
 | Component | Recommended Replicas | Container Resources (Requests / Limits) | Notes |
 | --------- | -------------------- | -------------------------------------- | ---------------- |
 | Alauda Container Platform Registry | 3-5+ | CPU: `2000m` / `4000m` <br> Memory: `2Gi` / `4Gi` | Requires significant horizontal scaling. |
 | Registry Gateway | 3-5+ | CPU: `500m-1000m` / `2000m-4000m` <br> Memory: `1Gi-2Gi` / `4Gi` | Tag validation latency can cause cascading delays. |
+

36-55: Clarify what “Concurrent Pods” means and workload assumptions.

Consider adding a short note clarifying whether “concurrent pods” refers to image pulls, total cluster pods, or peak pod churn, and the assumed push/pull rates. This helps readers choose the right scenario.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

🤖 Fix all issues with AI agents
In
`@docs/en/solutions/Alauda_Container_Platform_Registry_Capacity_Planning_Guide.md`:
- Around line 45-50: Add a blank line between the section heading "### Scenario
2: ~1000 Concurrent Pods (Medium Usage)" and the following table so the markdown
renders correctly and passes linting; edit the block containing the table rows
for "Alauda Container Platform Registry" and "Registry Gateway" to insert one
empty line immediately after the heading.
- Line 16: Summary: Fix hyphenation in the "Registry Gateway" bullet so the
compound adjective is consistent. Locate the bullet starting with "Registry
Gateway" (the line containing "CPU and network-latency intensive") and change
"network-latency intensive" to "network-latency-intensive" so the phrase reads
"CPU and network-latency-intensive". Ensure the rest of the bullet remains
unchanged.
- Around line 24-27: The unordered list under the "Resource Profile" heading is
indented by two spaces, which breaks Markdown list parsing; remove the leading
two spaces before each bullet so the three items ("I/O Intensive", "Memory
Sensitive", "Moderate CPU") start at column zero directly under the heading,
ensuring they are rendered as a proper list.
- Around line 31-34: The three bullet lines under the "Resource Profile" heading
("CPU Intensive", "Latency Sensitive", "Memory Sensitive") are indented with two
spaces which breaks standard Markdown list rendering; remove the two leading
spaces so each list item starts at column 0 (i.e., immediately under the
heading) to make the unordered list properly formatted and render as a normal
top-level list.
- Around line 39-44: Add a blank line between the section heading "### Scenario
1: ~100 Concurrent Pods (Light Usage)" and the Markdown table that follows so
the table renders correctly and passes linting; edit the block containing the
table (the Alauda Container Platform Registry / Registry Gateway rows) to insert
one empty line directly after the heading.
♻️ Duplicate comments (1)
docs/en/solutions/Alauda_Container_Platform_Registry_Capacity_Planning_Guide.md (1)

51-56: Add blank line before table.

Markdown formatting standards require a blank line between the section heading and the table for proper rendering and linting compliance.

📝 Proposed fix
 ### Scenario 3: ~5000 Concurrent Pods (Large Usage)
+
 | Component | Recommended Replicas | Container Resources (Requests / Limits) | Notes |

This document provides hardware resource specification recommendations for **Alauda Container Platform Registry** in Kubernetes environments. The stack consists of two core components:

* **Alauda Container Platform Registry**: The OCI image registry server responsible for storing and distributing image layers and manifests. It is I/O and network-intensive.
* **Registry Gateway**: A proxy middleware that enforces policies such as image size limits and repository tag count limits before requests reach the registry. It is primarily CPU and network-latency intensive.
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Fix hyphenation in compound adjective.

The phrase "CPU and network-latency intensive" should use consistent hyphenation: "network-latency-intensive" to form a proper compound adjective.

📝 Proposed fix
-* **Registry Gateway**: A proxy middleware that enforces policies such as image size limits and repository tag count limits before requests reach the registry. It is primarily CPU and network-latency intensive.
+* **Registry Gateway**: A proxy middleware that enforces policies such as image size limits and repository tag count limits before requests reach the registry. It is primarily CPU- and network-latency-intensive.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
* **Registry Gateway**: A proxy middleware that enforces policies such as image size limits and repository tag count limits before requests reach the registry. It is primarily CPU and network-latency intensive.
* **Registry Gateway**: A proxy middleware that enforces policies such as image size limits and repository tag count limits before requests reach the registry. It is primarily CPU- and network-latency-intensive.
🧰 Tools
🪛 LanguageTool

[grammar] ~16-~16: Use a hyphen to join words.
Context: ... It is primarily CPU and network-latency intensive. The recommendations are base...

(QB_NEW_EN_HYPHEN)

🤖 Prompt for AI Agents
In
`@docs/en/solutions/Alauda_Container_Platform_Registry_Capacity_Planning_Guide.md`
at line 16, Summary: Fix hyphenation in the "Registry Gateway" bullet so the
compound adjective is consistent. Locate the bullet starting with "Registry
Gateway" (the line containing "CPU and network-latency intensive") and change
"network-latency intensive" to "network-latency-intensive" so the phrase reads
"CPU and network-latency-intensive". Ensure the rest of the bullet remains
unchanged.

Comment on lines +24 to +27
**Resource Profile**:
* **I/O Intensive**: Performance is heavily dependent on storage backend speed (for layer push/pull operations).
* **Memory Sensitive**: Requires adequate memory for layer caching during pushes and pulls, and for handling concurrent connections.
* **Moderate CPU**: CPU is used for compression, hashing, and request handling.
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Fix unordered list indentation.

The bullet points under "Resource Profile" should have 0 indentation rather than 2 spaces to comply with markdown formatting standards.

📝 Proposed fix
 **Resource Profile**:
-  * **I/O Intensive**: Performance is heavily dependent on storage backend speed (for layer push/pull operations).
-  * **Memory Sensitive**: Requires adequate memory for layer caching during pushes and pulls, and for handling concurrent connections.
-  * **Moderate CPU**: CPU is used for compression, hashing, and request handling.
+* **I/O Intensive**: Performance is heavily dependent on storage backend speed (for layer push/pull operations).
+* **Memory Sensitive**: Requires adequate memory for layer caching during pushes and pulls, and for handling concurrent connections.
+* **Moderate CPU**: CPU is used for compression, hashing, and request handling.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
**Resource Profile**:
* **I/O Intensive**: Performance is heavily dependent on storage backend speed (for layer push/pull operations).
* **Memory Sensitive**: Requires adequate memory for layer caching during pushes and pulls, and for handling concurrent connections.
* **Moderate CPU**: CPU is used for compression, hashing, and request handling.
**Resource Profile**:
* **I/O Intensive**: Performance is heavily dependent on storage backend speed (for layer push/pull operations).
* **Memory Sensitive**: Requires adequate memory for layer caching during pushes and pulls, and for handling concurrent connections.
* **Moderate CPU**: CPU is used for compression, hashing, and request handling.
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

25-25: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


26-26: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


27-27: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)

🤖 Prompt for AI Agents
In
`@docs/en/solutions/Alauda_Container_Platform_Registry_Capacity_Planning_Guide.md`
around lines 24 - 27, The unordered list under the "Resource Profile" heading is
indented by two spaces, which breaks Markdown list parsing; remove the leading
two spaces before each bullet so the three items ("I/O Intensive", "Memory
Sensitive", "Moderate CPU") start at column zero directly under the heading,
ensuring they are rendered as a proper list.

Comment on lines +31 to +34
**Resource Profile**:
* **CPU Intensive**: Due to JSON parsing, size calculation, and request proxying.
* **Latency Sensitive**: Performance is tightly coupled with the response time of the backend Registry's tag listing endpoint.
* **Memory Sensitive**: Needs buffer for large manifest requests and maintains session cache.
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Fix unordered list indentation.

The bullet points under "Resource Profile" should have 0 indentation rather than 2 spaces to comply with markdown formatting standards.

📝 Proposed fix
 **Resource Profile**:
-  * **CPU Intensive**: Due to JSON parsing, size calculation, and request proxying.
-  * **Latency Sensitive**: Performance is tightly coupled with the response time of the backend Registry's tag listing endpoint.
-  * **Memory Sensitive**: Needs buffer for large manifest requests and maintains session cache.
+* **CPU Intensive**: Due to JSON parsing, size calculation, and request proxying.
+* **Latency Sensitive**: Performance is tightly coupled with the response time of the backend Registry's tag listing endpoint.
+* **Memory Sensitive**: Needs buffer for large manifest requests and maintains session cache.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
**Resource Profile**:
* **CPU Intensive**: Due to JSON parsing, size calculation, and request proxying.
* **Latency Sensitive**: Performance is tightly coupled with the response time of the backend Registry's tag listing endpoint.
* **Memory Sensitive**: Needs buffer for large manifest requests and maintains session cache.
**Resource Profile**:
* **CPU Intensive**: Due to JSON parsing, size calculation, and request proxying.
* **Latency Sensitive**: Performance is tightly coupled with the response time of the backend Registry's tag listing endpoint.
* **Memory Sensitive**: Needs buffer for large manifest requests and maintains session cache.
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

32-32: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


33-33: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


34-34: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)

🤖 Prompt for AI Agents
In
`@docs/en/solutions/Alauda_Container_Platform_Registry_Capacity_Planning_Guide.md`
around lines 31 - 34, The three bullet lines under the "Resource Profile"
heading ("CPU Intensive", "Latency Sensitive", "Memory Sensitive") are indented
with two spaces which breaks standard Markdown list rendering; remove the two
leading spaces so each list item starts at column 0 (i.e., immediately under the
heading) to make the unordered list properly formatted and render as a normal
top-level list.

Comment on lines +39 to +44
### Scenario 1: ~100 Concurrent Pods (Light Usage)
| Component | Recommended Replicas | Container Resources (Requests / Limits) | Notes |
| --------- | -------------------- | -------------------------------------- | ---------------- |
| Alauda Container Platform Registry | 1-2 | CPU: `500m` / `1000m` <br> Memory: `512Mi` / `1Gi` | Single replica may suffice. |
| Registry Gateway | 1-2 | CPU: `200m-300m` / `500m` <br> Memory: `256Mi-512Mi` / `1Gi` | Resources accommodate bursty image pushes requiring manifest parsing. |

Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Add blank line before table.

Markdown formatting standards require a blank line between the section heading and the table for proper rendering and linting compliance.

📝 Proposed fix
 ### Scenario 1: ~100 Concurrent Pods (Light Usage)
+
 | Component | Recommended Replicas | Container Resources (Requests / Limits) | Notes |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
### Scenario 1: ~100 Concurrent Pods (Light Usage)
| Component | Recommended Replicas | Container Resources (Requests / Limits) | Notes |
| --------- | -------------------- | -------------------------------------- | ---------------- |
| Alauda Container Platform Registry | 1-2 | CPU: `500m` / `1000m` <br> Memory: `512Mi` / `1Gi` | Single replica may suffice. |
| Registry Gateway | 1-2 | CPU: `200m-300m` / `500m` <br> Memory: `256Mi-512Mi` / `1Gi` | Resources accommodate bursty image pushes requiring manifest parsing. |
### Scenario 1: ~100 Concurrent Pods (Light Usage)
| Component | Recommended Replicas | Container Resources (Requests / Limits) | Notes |
| --------- | -------------------- | -------------------------------------- | ---------------- |
| Alauda Container Platform Registry | 1-2 | CPU: `500m` / `1000m` <br> Memory: `512Mi` / `1Gi` | Single replica may suffice. |
| Registry Gateway | 1-2 | CPU: `200m-300m` / `500m` <br> Memory: `256Mi-512Mi` / `1Gi` | Resources accommodate bursty image pushes requiring manifest parsing. |
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

40-40: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)

🤖 Prompt for AI Agents
In
`@docs/en/solutions/Alauda_Container_Platform_Registry_Capacity_Planning_Guide.md`
around lines 39 - 44, Add a blank line between the section heading "### Scenario
1: ~100 Concurrent Pods (Light Usage)" and the Markdown table that follows so
the table renders correctly and passes linting; edit the block containing the
table (the Alauda Container Platform Registry / Registry Gateway rows) to insert
one empty line directly after the heading.

Comment on lines +45 to +50
### Scenario 2: ~1000 Concurrent Pods (Medium Usage)
| Component | Recommended Replicas | Container Resources (Requests / Limits) | Notes |
| --------- | -------------------- | -------------------------------------- | ---------------- |
| Alauda Container Platform Registry | 2-3 | CPU: `1000m` / `2000m` <br> Memory: `1Gi` / `2Gi` | Requires multiple replicas. |
| Registry Gateway | 2-3 | CPU: `300m-500m` / `1000m-2000m` <br> Memory: `512Mi-1Gi` / `2Gi` | The synchronous tag-list check becomes a primary bottleneck. Higher CPU limits are needed. |

Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Add blank line before table.

Markdown formatting standards require a blank line between the section heading and the table for proper rendering and linting compliance.

📝 Proposed fix
 ### Scenario 2: ~1000 Concurrent Pods (Medium Usage)
+
 | Component | Recommended Replicas | Container Resources (Requests / Limits) | Notes |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
### Scenario 2: ~1000 Concurrent Pods (Medium Usage)
| Component | Recommended Replicas | Container Resources (Requests / Limits) | Notes |
| --------- | -------------------- | -------------------------------------- | ---------------- |
| Alauda Container Platform Registry | 2-3 | CPU: `1000m` / `2000m` <br> Memory: `1Gi` / `2Gi` | Requires multiple replicas. |
| Registry Gateway | 2-3 | CPU: `300m-500m` / `1000m-2000m` <br> Memory: `512Mi-1Gi` / `2Gi` | The synchronous tag-list check becomes a primary bottleneck. Higher CPU limits are needed. |
### Scenario 2: ~1000 Concurrent Pods (Medium Usage)
| Component | Recommended Replicas | Container Resources (Requests / Limits) | Notes |
| --------- | -------------------- | -------------------------------------- | ---------------- |
| Alauda Container Platform Registry | 2-3 | CPU: `1000m` / `2000m` <br> Memory: `1Gi` / `2Gi` | Requires multiple replicas. |
| Registry Gateway | 2-3 | CPU: `300m-500m` / `1000m-2000m` <br> Memory: `512Mi-1Gi` / `2Gi` | The synchronous tag-list check becomes a primary bottleneck. Higher CPU limits are needed. |
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

46-46: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)

🤖 Prompt for AI Agents
In
`@docs/en/solutions/Alauda_Container_Platform_Registry_Capacity_Planning_Guide.md`
around lines 45 - 50, Add a blank line between the section heading "### Scenario
2: ~1000 Concurrent Pods (Medium Usage)" and the following table so the markdown
renders correctly and passes linting; edit the block containing the table rows
for "Alauda Container Platform Registry" and "Registry Gateway" to insert one
empty line immediately after the heading.

@zhhray zhhray requested a review from jianliao82 January 22, 2026 11:42
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.

3 participants