Skip to content

Commit 160f28b

Browse files
feat: refactor cluster requirements documentation to use reusable component
1 parent 60359c2 commit 160f28b

3 files changed

Lines changed: 68 additions & 114 deletions

File tree

docs/admin/deployment/azure/02-prerequisites.md

Lines changed: 2 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ pagination_next: admin/deployment/azure/architecture
99

1010
import Tabs from '@theme/Tabs';
1111
import TabItem from '@theme/TabItem';
12+
import ClusterRequirements from '../common/\_cluster-requirements.mdx';
1213

1314
# Prerequisites
1415

@@ -88,63 +89,7 @@ To restrict access to AI/Run CodeMie and prevent unauthorized access from the pu
8889
- **Office locations** and their public IP addresses or CIDR blocks
8990
- **Any other trusted networks** that require access to the platform
9091

91-
## AKS Cluster Requirements
92-
93-
### Administrative Permissions
94-
95-
The deployment user must have:
96-
97-
- **AKS Admin permissions** with the ability to create and manage namespaces
98-
- Access to configure cluster-level resources (if deploying to an existing cluster)
99-
100-
### Admission Control and Resource Requirements
101-
102-
If deploying to an **existing AKS cluster**, ensure that admission webhooks allow the creation of the following Kubernetes resources:
103-
104-
<Tabs>
105-
<TabItem value="nats" label="NATS Messaging" default>
106-
**Kubernetes API:** `Service` (LoadBalancer type)
107-
108-
**Purpose:** NATS is a core component of the CodeMie Plugin Engine, providing messaging infrastructure for communication between the [codemie-plugins](https://pypi.org/project/codemie-plugins/) CLI tool with MCP and the AI/Run CodeMie platform.
109-
110-
The LoadBalancer configuration depends on where the CLI tool will be executed:
111-
112-
| CLI Tool Execution Location | LoadBalancer Type | Description |
113-
|----------------|------------------|-------------|
114-
| Same virtual network as AKS | Internal LoadBalancer | Secure, private network communication within the VNet |
115-
| External to AKS virtual network | Public LoadBalancer | Cross-network communication when CLI is run outside the VNet |
116-
117-
</TabItem>
118-
119-
<TabItem value="keycloak" label="Keycloak Operator">
120-
**Kubernetes APIs:** `ClusterRole`, `ClusterRoleBinding`, `Role`, `RoleBinding`, Custom Resource Definitions (CRDs), Custom Resources (CRs)
121-
122-
**Purpose:** Manages Keycloak configuration including realms, clients, and user federation
123-
124-
:::note
125-
Requires cluster-wide permissions for identity and access management operations.
126-
:::
127-
128-
</TabItem>
129-
130-
<TabItem value="postgresql" label="PostgreSQL Operator">
131-
**Kubernetes APIs:** `ClusterRole`, `ClusterRoleBinding`, Custom Resource Definitions (CRDs), Custom Resources (CRs)
132-
133-
**Purpose:** Manages PostgreSQL database instances and their lifecycle
134-
135-
:::note
136-
Requires cluster-wide permissions for database provisioning and management.
137-
:::
138-
139-
</TabItem>
140-
141-
<TabItem value="security" label="Security Context">
142-
**Kubernetes API:** `Pod` with `securityContext`
143-
144-
**Requirement:** All AI/Run CodeMie components require `readOnlyRootFilesystem: false` in their security context for proper operation
145-
146-
</TabItem>
147-
</Tabs>
92+
<ClusterRequirements clusterName="AKS" networkName="VNet" />
14893

14994
## Deployment Machine Requirements
15095

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
import Tabs from '@theme/Tabs';
2+
import TabItem from '@theme/TabItem';
3+
4+
## Kubernetes Cluster Requirements
5+
6+
### Administrative Permissions
7+
8+
The deployment user must have:
9+
10+
- **{props.clusterName} Admin permissions** with the ability to create and manage namespaces
11+
- Access to configure cluster-level resources (if deploying to an existing cluster)
12+
13+
### Admission Control and Resource Requirements
14+
15+
If deploying to an **existing {props.clusterName} cluster**, ensure that admission webhooks allow the creation of the following Kubernetes resources:
16+
17+
<Tabs>
18+
<TabItem value="nats" label="NATS Messaging" default>
19+
20+
**Kubernetes API:** `Service` (LoadBalancer type)
21+
22+
**Purpose:** NATS is a core component of the CodeMie Plugin Engine, providing messaging infrastructure for communication between the [codemie-plugins](https://pypi.org/project/codemie-plugins/) CLI tool with MCP and the AI/Run CodeMie platform.
23+
24+
The LoadBalancer configuration depends on where the CLI tool will be executed:
25+
26+
| CLI Tool Execution Location | LoadBalancer Type | Description |
27+
| ------------------------------------------------------- | --------------------- | --------------------------------------------------------------------------- |
28+
| Same {props.networkName} as {props.clusterName} cluster | Internal LoadBalancer | Secure, private network communication within the {props.networkName} |
29+
| External to {props.clusterName} {props.networkName} | Public LoadBalancer | Cross-network communication when CLI is run outside the {props.networkName} |
30+
31+
</TabItem>
32+
33+
<TabItem value="keycloak" label="Keycloak Operator">
34+
35+
**Kubernetes APIs:** `ClusterRole`, `ClusterRoleBinding`, `Role`, `RoleBinding`, Custom Resource Definitions (CRDs), Custom Resources (CRs)
36+
37+
**Purpose:** Manages Keycloak configuration including realms, clients, and user federation
38+
39+
:::note
40+
Requires cluster-wide permissions for identity and access management operations.
41+
:::
42+
43+
</TabItem>
44+
45+
<TabItem value="postgresql" label="PostgreSQL Operator">
46+
47+
**Kubernetes APIs:** `ClusterRole`, `ClusterRoleBinding`, Custom Resource Definitions (CRDs), Custom Resources (CRs)
48+
49+
**Purpose:** Manages PostgreSQL database instances and their lifecycle
50+
51+
:::note
52+
Requires cluster-wide permissions for database provisioning and management.
53+
:::
54+
55+
</TabItem>
56+
57+
<TabItem value="security" label="Security Context">
58+
59+
**Kubernetes API:** `Pod` with `securityContext`
60+
61+
**Requirement:** All AI/Run CodeMie components require `readOnlyRootFilesystem: false` in their security context for proper operation
62+
63+
</TabItem>
64+
</Tabs>

docs/admin/deployment/gcp/02-prerequisites.md

Lines changed: 2 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ pagination_next: admin/deployment/gcp/architecture
99

1010
import Tabs from '@theme/Tabs';
1111
import TabItem from '@theme/TabItem';
12+
import ClusterRequirements from '../common/\_cluster-requirements.mdx';
1213

1314
# Prerequisites
1415

@@ -66,63 +67,7 @@ Your GKE cluster's firewall or VPC firewall rules must allow **outbound access**
6667
| `registry.developers.crunchydata.com` | PostgreSQL operator images |
6768
| Your integration services | GitLab, GitHub, or other services you plan to use with CodeMie |
6869

69-
## GKE Cluster Requirements
70-
71-
### Administrative Permissions
72-
73-
The deployment user must have:
74-
75-
- **GKE Admin permissions** with the ability to create and manage namespaces
76-
- Access to configure cluster-level resources (if deploying to an existing cluster)
77-
78-
### Admission Control and Resource Requirements
79-
80-
If deploying to an **existing GKE cluster**, ensure that admission webhooks allow the creation of the following Kubernetes resources:
81-
82-
<Tabs>
83-
<TabItem value="nats" label="NATS Messaging" default>
84-
**Kubernetes API:** `Service` (LoadBalancer type)
85-
86-
**Purpose:** NATS is a core component of the CodeMie Plugin Engine, providing messaging infrastructure for communication between the [codemie-plugins](https://pypi.org/project/codemie-plugins/) CLI tool with MCP and the AI/Run CodeMie platform.
87-
88-
The LoadBalancer configuration depends on where the CLI tool will be executed:
89-
90-
| CLI Tool Execution Location | LoadBalancer Type | Description |
91-
|----------------|------------------|-------------|
92-
| Same VPC as GKE cluster | Internal LoadBalancer | Secure, private network communication within the VPC |
93-
| External to GKE VPC | Public LoadBalancer | Cross-network communication when CLI is run outside the VPC |
94-
95-
</TabItem>
96-
97-
<TabItem value="keycloak" label="Keycloak Operator">
98-
**Kubernetes APIs:** `ClusterRole`, `ClusterRoleBinding`, `Role`, `RoleBinding`, Custom Resource Definitions (CRDs), Custom Resources (CRs)
99-
100-
**Purpose:** Manages Keycloak configuration including realms, clients, and user federation
101-
102-
:::note
103-
Requires cluster-wide permissions for identity and access management operations.
104-
:::
105-
106-
</TabItem>
107-
108-
<TabItem value="postgresql" label="PostgreSQL Operator">
109-
**Kubernetes APIs:** `ClusterRole`, `ClusterRoleBinding`, Custom Resource Definitions (CRDs), Custom Resources (CRs)
110-
111-
**Purpose:** Manages PostgreSQL database instances and their lifecycle
112-
113-
:::note
114-
Requires cluster-wide permissions for database provisioning and management.
115-
:::
116-
117-
</TabItem>
118-
119-
<TabItem value="security" label="Security Context">
120-
**Kubernetes API:** `Pod` with `securityContext`
121-
122-
**Requirement:** All AI/Run CodeMie components require `readOnlyRootFilesystem: false` in their security context for proper operation
123-
124-
</TabItem>
125-
</Tabs>
70+
<ClusterRequirements clusterName="GKE" networkName="VPC" />
12671

12772
## Deployment Machine Requirements
12873

0 commit comments

Comments
 (0)