SOP: Updating Infrastructure Specifications
1. Purpose​
This Standard Operating Procedure (SOP) defines the process for updating and maintaining the infrastructure specifications for all environments managed in this repository. Its purpose is to provide a single, human-readable source of truth that can be used by both the technical team and the Gemini agent.
2. Scope​
This SOP applies to all infrastructure environments, including on-site, AWS, GCP, and Azure.
3. Roles and Responsibilities​
- Lead Infrastructure Member: Responsible for maintaining this document and ensuring it is kept up-to-date.
- Technical Team: Responsible for following this SOP when making changes to the infrastructure.
- Gemini Agent: Responsible for reading this document and updating the AI-readable context files accordingly.
4. Procedure​
4.1. Adding a New Client Environment​
To add a new client environment, copy the template below and fill in the details. Add the new client to the appropriate environment section (e.g., under "AWS Clients").
Client Template:
- **Client Name**: [Name of the client]
- **Provider**: [aws|gcp|azure|onsite]
- **Storage**:
- **Type**: [efs|glusterfs|bind|etc.]
- **ID/Path**: [EFS ID, GlusterFS path, or mount bind path]
- **Docker**:
- **Default Tags**: [e.g., latest, stable]
- **Node Constraints**: [e.g., node.labels.service_type == web]
- **Paths**:
- **Data Root**: [Path to the data directory]
- **Config Root**: [Path to the config directory]
4.2. Updating an Existing Client Environment​
To update an existing client environment, find the client in the list below and modify its details directly in this document.
4.3. Notifying the Gemini Agent​
After you have updated this SOP, you MUST notify the Gemini agent so it can synchronize the changes with its context files. You can do this by saying:
"@Gemini, please update the environment context from the SOP."
Gemini will then read this document and update the YAML files in the .gemini/contexts/ directory.
5. Infrastructure Specifications​
AWS Clients​
-
Client Name: Client A
- Provider: aws
- Storage:
- Type: efs
- ID/Path: fs-12345678
- Docker:
- Default Tags: latest
- Node Constraints: node.labels.service_type == web
- Paths:
- Data Root: /mnt/efs/data
- Config Root: /mnt/efs/config
-
Client Name: Client B
- Provider: aws
- Storage:
- Type: efs
- ID/Path: fs-abcdefgh
- Docker:
- Default Tags: latest
- Node Constraints:
- Paths:
- Data Root: /efs/client-b/data
- Config Root: /efs/client-b/config
On-site Clients​
-
Client Name: Polaris On-site
- Provider: onsite
- Storage:
- Type: glusterfs
- ID/Path: /gluster/data
- Docker:
- Default Tags: stable
- Node Constraints: node.labels.service_type == database
- Paths:
- Data Root: /gluster/data
- Config Root: /gluster/config
-
Client Name: Single Server Client
- Provider: onsite
- Storage:
- Type: bind
- ID/Path: /data
- Docker:
- Default Tags: latest
- Node Constraints:
- Paths:
- Data Root: /data/appdata
- Config Root: /data/config