Skip to main content

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