Skip to content

Commit c05e1e1

Browse files
Added Priming Sandboxes (#452)
1 parent 6dddcc3 commit c05e1e1

6 files changed

Lines changed: 90 additions & 10 deletions

File tree

.coderabbit.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ reviews:
1414
collapse_walkthrough: false
1515
sequence_diagrams: false
1616
auto_review:
17-
enabled: true
17+
enabled: false
1818
drafts: false
1919
path_instructions:
2020
- path: "**/*.rst"
@@ -37,4 +37,4 @@ reviews:
3737
docstrings:
3838
enabled: false
3939
chat:
40-
auto_reply: true
40+
auto_reply: false

source/img/sandbox_build.png

31.2 KB
Loading
24.8 KB
Loading

source/img/sandbox_overview.png

30.4 KB
Loading

source/instructors/admin/integration/lms-systems/blackboard.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
Blackboard LTI 1.x
77
==================
88

9-
Please be sure to check out the :ref:`Codio LTI App <lti-app>` which allows for an easy way to integrate and to map Codio course assignments to your LMS. The `following page <https://library.blackboard.com/ref/df5b20ed-ce8d-4428-a595-a0091b23dda3/Content/_admin_app_system/admin_app_basic_lti_tool_providers.htm>`_ explains how to set up external apps in Blackboard Learn.
9+
The `following page <https://library.blackboard.com/ref/df5b20ed-ce8d-4428-a595-a0091b23dda3/Content/_admin_app_system/admin_app_basic_lti_tool_providers.htm>`_ explains how to set up external apps in Blackboard Learn.
1010

1111
In Codio:
1212

source/instructors/admin/sandboxes.rst

Lines changed: 87 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Sandboxes
99
About Sandboxes
1010
---------------
1111

12-
Sandboxes provide timeboxed, ephemeral **AWS Management Console environments** that expire automatically. A sandbox's permissions are defined by a template and can range from full administrator access to leastprivileged roles, depending on need. When a sandbox's duration ends, access is revoked and all resources created inside the sandbox are cleaned up automatically—no user action required.
12+
Sandboxes provide time-boxed, ephemeral **AWS Management Console environments** that expire automatically. A sandbox's permissions are defined by a template and can range from full administrator access to least-privileged roles, depending on need. When a sandbox's duration ends, access is revoked and all resources created inside the sandbox are cleaned up automatically—no user action required.
1313

1414
.. important::
1515

@@ -50,6 +50,8 @@ Key Concepts
5050
- Resource-specific inputs for the sandbox type (for example, EC2 instance settings: ``instance_type``, ``image``, ``volume_size``, ``connection_mode``).
5151
* - **Region**
5252
- The AWS region in which sandboxes are created. Currently fixed to ``us-east-1``.
53+
* - **Prime**
54+
- Optional pre-warming configuration for sandboxes. When enabled, the platform creates "primed" sandboxes ahead of time to reduce wait time for learners.
5355

5456
Lifecycle, Duration, and Cleanup
5557
--------------------------------
@@ -58,10 +60,34 @@ Lifecycle, Duration, and Cleanup
5860
- **Extend:** While running, you may extend the lifetime in ``lifetime_extension`` increments, **not exceeding** ``lifetime_max``.
5961
- **Expire & Clean:** When the lifetime ends, access is revoked and resources created by the sandbox are cleaned up automatically—no user action required.
6062

63+
Creating a Sandbox and a Collection
64+
-----------------------------------
65+
66+
1. Select **Sandboxes** from the Build menu, if that option is not available, Sandboxes are not enabled for your organization.
67+
68+
.. image:: /img/sandbox_build.png
69+
:width: 90%
70+
:align: center
71+
:alt: Select Sandboxes on the top menu.
72+
73+
2. Then click the **New Collection** button in the top right. Give your collection a name and click `Create Collection`.
74+
75+
.. image:: /img/sandbox_newcollection.png
76+
:width: 70%
77+
:align: center
78+
:alt: New Collection screenshot.
79+
80+
3. Once created, your new collection will open automatically. Click `Edit` to start creating sandboxes. The section below explains how to get started quickly.
81+
82+
.. image:: /img/sandbox_overview.png
83+
:width: 90%
84+
:align: center
85+
:alt: View of Sandboxes Overview.
86+
6187
Sandbox Configuration (``sandbox.yml``)
6288
---------------------------------------
6389

64-
Define sandboxes in YAML. The best starting point is using this command to get four **working examples** you can adapt:
90+
Define sandboxes in YAML, one sandbox per folder. The best starting point is using this command to get four **working examples** you can adapt:
6591

6692
.. code-block:: bash
6793
@@ -97,6 +123,10 @@ Top-level keys
97123
- mapping
98124
- Yes
99125
- Configuration block that defines lifetime behavior, permissions, provisioning engine, and resource parameters.
126+
* - ``prime``
127+
- mapping
128+
- No
129+
- Optional pre-warming configuration for **any** sandbox type. Supports priming continuously or on scheduled UTC start dates.
100130

101131
``settings`` (common)
102132
~~~~~~~~~~~~~~~~~~~~~
@@ -156,11 +186,20 @@ After setting ``type`` to ``aws_ec2``, configure the following ``parameters``:
156186
* - ``instance_type``
157187
- string
158188
- Yes
159-
- EC2 instance type to provision (e.g., ``t3.medium``).
189+
- EC2 instance type to provision (e.g., ``t3.medium``). Supported instance types include:
190+
191+
- ``t3.nano`` ``t3.micro`` ``t3.small`` ``t3.medium`` ``t3.large`` ``t3.xlarge`` ``t3.2xlarge``
192+
- ``t3a.nano`` ``t3a.micro`` ``t3a.small`` ``t3a.medium`` ``t3a.large`` ``t3a.xlarge`` ``t3a.2xlarge``
193+
- ``c5a.large`` ``c5a.xlarge`` ``c5a.2xlarge`` ``c5a.4xlarge`` ``c5a.8xlarge`` ``c5a.12xlarge`` ``c5a.16xlarge`` ``c5a.24xlarge``
194+
- ``c6a.large`` ``c6a.xlarge`` ``c6a.2xlarge`` ``c6a.4xlarge`` ``c6a.8xlarge`` ``c6a.12xlarge`` ``c6a.16xlarge`` ``c6a.24xlarge``
195+
- ``g4dn.xlarge`` ``g4dn.2xlarge`` ``g4dn.4xlarge`` ``g4dn.8xlarge`` ``g4dn.16xlarge``
160196
* - ``image``
161197
- string
162198
- Yes
163-
- AMI name or ID for the VM image (e.g., ``codio-aws-windows-base``).
199+
- AMI name or ID for the VM image. Examples:
200+
201+
- Ubuntu: ``codio-aws-ubuntu-base`` (or Ubuntu Codio AMI)
202+
- Windows: ``codio-aws-windows-base`` (or Windows Codio AMI)
164203
* - ``volume_size``
165204
- integer (GB)
166205
- Yes
@@ -169,6 +208,48 @@ After setting ``type`` to ``aws_ec2``, configure the following ``parameters``:
169208
- enum
170209
- Optional
171210
- Default access channel for the instance. Supported values in examples: ``ssh`` or ``vnc``.
211+
If omitted, both connection modes are available.
212+
213+
``prime`` (common)
214+
~~~~~~~~~~~~~~~~~~
215+
216+
Optionally prime (pre-warm) sandboxes to reduce learner wait time. Priming can be:
217+
218+
- **Continuous:** Maintain a steady pool of primed sandboxes.
219+
- **Date-based:** Prime a specific number of sandboxes at specific UTC start times.
220+
221+
.. note::
222+
223+
For **Continuous**, sandboxes will start priming immediately after publishing the Collection. For **Date-based** this date specifies the time sandboxes will start priming, not when they will be ready.
224+
225+
.. list-table::
226+
:widths: 22 14 10 54
227+
:header-rows: 1
228+
229+
* - Key
230+
- Type
231+
- Required
232+
- Description
233+
* - ``type``
234+
- enum
235+
- Yes
236+
- Priming mode. Supported values: ``continuous`` or ``date``.
237+
* - ``count``
238+
- integer
239+
- Conditional
240+
- Required when ``prime.type`` is ``continuous``. Number of primed sandboxes to keep available.
241+
* - ``start_dates``
242+
- list
243+
- Conditional
244+
- Required when ``prime.type`` is ``date``. List of scheduled priming entries (UTC).
245+
* - ``start_dates[].date``
246+
- string (datetime, UTC)
247+
- Conditional
248+
- Required within each ``start_dates`` entry. Date/time (UTC) when priming should occur (e.g., ``2025-11-24T11:40:00Z``).
249+
* - ``start_dates[].count``
250+
- integer
251+
- Conditional
252+
- Required within each ``start_dates`` entry. Number of primed sandboxes to create at the scheduled date/time.
172253

173254
Permissions (Full to Least-Privileged)
174255
--------------------------------------
@@ -182,10 +263,9 @@ This design lets you run anything from **full AWS** environments to tightly cons
182263

183264
.. admonition:: How can I create a policy?
184265

185-
Policies are an AWS concept. If you want to read more, please visit AWS' guide to
186-
`Policies and permissions`__ and the
266+
Policies are an AWS concept. If you want to read more, please visit AWS' guide to
267+
`Policies and permissions`__ and the
187268
`IAM tutorial: Delegate access across AWS accounts using IAM roles`__.
188269

189270
__ https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html
190271
__ https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html
191-

0 commit comments

Comments
 (0)