**Compute Profile**

### Metadata
- **Name:** fractional-memory-gpu-dev-pod
- **Description:** Developer Pod with access to Fractional GPU Memory resources. Users can select from 2GB, 5GB, 10GB, 15GB and 20GB GPU Memory with different rate cards for each fraction.
- **Labels:**  
  - paas.envmgmt.io/inventory: pod  
  - paas.envmgmt.io/inventory.config: [  
    {  
        "type": "match",  
        "keyInVariable": "Node Type",  
        "keyInDevice": "tags.node_type"  
    },  
    {  
        "type": "capacity",  
        "keyInVariable": "CPU",  
        "keyInCapacity": "requiredCPU"  
    },  
    {  
        "type": "capacity",  
        "keyInVariable": "Memory",  
        "keyInCapacity": "requiredMemoryMB"  
    },  
    {  
        "type": "capacity",  
        "keyInVariable": "GPU Count",  
        "keyInCapacity": "requiredGPU"  
    }  
  ]
- **Project:** system-catalog  
- **Display Name:** Fractional GPU Memory Dev Pod

### Spec
- **Type:** Compute  
- **Allocation Type:** None  
- **Scalability Type:** None  
- **Environment Template:**  
  - **Name:** system-serverless-pods  
  - **Version:** v7.1

### Variables
1. **Access Mode**  
   - **Value Type:** text  
   - **Description:** Access mode for the persistent volume (e.g., 'ReadWriteOnce', 'ReadOnlyMany', 'ReadWriteMany').

2. **Action**  
   - **Value Type:** json  
   - **Value:** $(trigger.payload.action)$  
   - **Description:** Operation to perform (create, status, logs).  
   - **Required:** true

3. **Annotations**  
   - **Value Type:** json  
   - **Value:** {"injectValue(KeyX)": "injectValue(KeyY)"}  
   - **Description:** Annotations to attach to the container as key-value pairs (e.g., {"env":"dev"}).

4. **Arguments**  
   - **Value Type:** json  
   - **Value:** []  
   - **Description:** Arguments to pass to the container entrypoint as a JSON array of strings.

5. **Autogenerate SSH Key**  
   - **Value Type:** text  
   - **Value:** true  
   - **Description:** Auto-generate SSH key if not provided. Set to 'true' or 'false'.

6. **Container Port**  
   - **Value Type:** text  
   - **Description:** The port on which the application will run inside the pod (e.g., '8888').

7. **CPU**  
   - **Value Type:** text  
   - **Value:** 500  
   - **Description:** Requested CPU resources for the pod in millicores (m).

8. **Enable SSH Access**  
   - **Value Type:** text  
   - **Value:** true  
   - **Description:** Enable SSH access to pod. Set to 'true' or 'false'.

9. **Memory**  
   - **Value Type:** text  
   - **Value:** 512  
   - **Description:** Requested memory resources for the pod in MiB.

10. **Pod Image**  
    - **Value Type:** text  
    - **Value:** registry.dev.rafay-edge.net/ubuntu-24-04-ssh-pod:v1  
    - **Description:** Container image to use for the pod.

### Output
- **Create Private Key File**
- **SSH Command**

### Status
- **Entity Overrides:** 
   1. **Pod Image**  
      - **Value:** registry.dev.rafay-edge.net/ubuntu-24-04-ssh-pod:v1  
   2. **Autogenerate SSH Key**  
      - **Value:** true  
   3. **CPU**  
      - **Value:** 500  
   4. **Memory**  
      - **Value:** 512  
   5. **Public Key**  
      - **Description:** SSH public key to inject into the pod.
