-
Notifications
You must be signed in to change notification settings - Fork 14
add ACP Registry Capacity Planning Guide doc #119
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
WalkthroughAdds 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
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ 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. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
docs/en/solutions/Alauda_Container_Platform_Registry_Capacity_Planning_Guide.md
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix 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.
| * **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.
| **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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix 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.
| **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.
| **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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix 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.
| **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.
| ### 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. | | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
| ### 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.
| ### 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. | | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
| ### 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.
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.