
Creating Environments
To create an environment:
- Click Create environment at the top-right corner of YonoEBuilder’s main page.
- Complete the required info in the General, Requirements, Launch Settings, and Special Resources tabs as explained in the next subsections.
- If you wish, use the Autocomplete using environment option at the top-right corner of the popup to complete all the required info using an existing environment. Then, you will be able to make any changes before you build.
- Click Build or Express Build.
Environment General Information
Under the General tab, enter the general info of the environment as follows:
- Name is used to uniquely identify the environment.
- Version of the environment in the major.minor.patch format, e.g., 0.0.1.
- Description explains the details of the environment.
- Log File Path is the path of the file in which the logs of the build process will be written. The path should start with slash and end with .log.
- Environment Folder Path is optionally used when you need to build complex environments whose dependencies are beyond the packages in APT, pip, or Conda. You can include any dependencies and scripts in this folder and execute these scripts using the Linux commands you list under the Requirements tab.
- Linux commands are executed from within this folder, i.e., this folder is the context of the build process.
- Although this folder is available for you during the build process of the environment, it is not automatically available during runtime while using this environment as a custom app, YonoArc block, etc. If there is data you need during runtime, you can copy them to your preferred path in the file system of the environment during the build process.
- For reproducibility, a copy of this folder is made to be associated with your environment so that you are free to edit your folder later.
- For convenience, you can check Copy from existing environment to copy the entire folder path of an existing environment instead of setting up a new folder if no changes are needed.
- Resource Model is used to build the environment. The resource model you select here does not limit your options for future uses of the environment. For example, you can build an environment using C1, but later use the same environment to start Jupyter Notebook using C2. You can find more about resource models here and more about deployment regions here.
Environment Requirements
Under the Requirements tab, list the requirements of the environment as follows:
- Base on which you would like to build your environment, so the environment will include everything in the base in addition to the requirements you add. YonoEBuilder supports 4 types of bases as follows:
- Yonohub Base allows you to select one of our predefined bases which include all the required dependencies to easily use your environment later in Yonohub, e.g., in custom apps and YonoArc. Select the appropriate Base Name and Version depending on:
- Whether you need GPU support or not. If you select a GPU base, NVIDIA Drivers and CUDA are already installed for you.
- The Python version you need. We strongly recommend using Python 3 because Python 2 is no longer supported. Yonohub still supports Python 2 for backward compatibility. Environments with Python 3 bases get ready much faster than others when used in any Yonohub app.
- Whether you need Conda for any of your packages. Please beware that using Conda makes the environment size larger, which slows down loading the environment when used in any Yonohub app.
- The target architecture on which this environment will be used. Select an x86_64 base if you plan to use this environment in the cloud, and arm32 or arm64 if you plan to use this environment on a hardware with a different architecture, e.g., a Raspberry Pi or any embedded board. YonoEBuilder can still build non-x86 environments in the cloud using emulation.
- Whether you need GPU accelerated rendering in your VNC-based environments. This allows you to smoothly view your GUI-based tools from within your browser while running this environment later as a custom app or a YonoArc block. If you select a base with GPU accelerated rendering, you need to click noVNC with Accelerated Rendering to add the required URL to the Launch Settings.
- Whether you need ROS 2 instead of ROS. All our bases come with ROS built-in unless otherwise specified.
- It is always recommended to select the latest version of any base so that your environment get ready much faster when used in any Yonohub app.
- Existing Environment allows you to select an existing Environment and its Version. You will not see the requirements of the existing environment inserted in the requirements table, but rest assured that your new environment has everything in the existing environment you select here.
- Docker Image allows you to select a docker image from a public or private docker registry. Set Image URL to the docker image name (e.g., ubuntu:18:04) to get an image from Docker Hub, or prepend the path of a different registry (e.g., myregistry.local:5000/testing/test-image).
- Select the Target Architecture of the docker image.
- Check From private registry and enter the Username and Password if the registry is private.
- Tar File allows you to provide a docker image by selecting the Tar File that was generated from the docker image using the command: docker save. Select the Target Architecture of the docker image.
- Yonohub Base allows you to select one of our predefined bases which include all the required dependencies to easily use your environment later in Yonohub, e.g., in custom apps and YonoArc. Select the appropriate Base Name and Version depending on:
- Check Include Gazebo simulator in order to include it in the environment. This option is no longer needed and is left for backward compatibility. You can now build any complex environments with any of your preferred simulators.
- For convenience, there are many common requirements that you can add with just a single click. For example, if you click TensorFlow, a new row is added in the requirements table: pip tensorflow. Other requirements, such as SSH, add multiple rows and modify the Launch Settings of the environment (explained later). Hover over a requirement to see how many things will be added (e.g., SSH adds 2 packages, 1 URL, and 2 configurations). Some notable mentions are:
- Visual Studio Code or Cloud9 to add an IDE to your environment and make it accessible in custom apps and YonoArc.
- SSH to be able to SSH into this environment while it is running as a custom app or a YonoArc block.
- Your environment may contain GUI-based (not web-based) tools, and you may need to view them from within your browser while running this environment later as a custom app or a YonoArc block. To be able to do so, click noVNC to add the required dependencies (or noVNC with Accelerated Rendering for a base with GPU accelerated rendering).
- Custom App Support to be able to use this environment as a custom app. Do not click this if your environment is based on one of our built-in Yonohub bases (either directly or indirectly) as they already support that.
- Octave for YonoArc if this environment will be used to develop a YonoArc block using our Octave APIs.
- Add the requirements of the environment to the table. Requirements are installed in the same order as they appear in the table. Adding a new requirement requires:
- Manger is the package manager used to install the package, such as apt, pip, or conda. You can also select the option command if you need to execute a Linux command from within the Environment Folder Path (specified under the General tab), i.e., this folder is the context of the build process. This allows executing any custom scripts which makes building complex environments possible.
- Package is the package name as listed in the corresponding manager. Autocompletion is available, but you can force adding your package if it doesn’t appear by clicking the little Add below the Package field.
- Version is the desired version of the package. Autocompletion is available, but you can force adding your version if it doesn’t appear by clicking the little Add below the Version field. Beware that if you leave the version blank, YonoEBuilder will get the latest version whenever you rebuild a new version of the environment. This may break your code because, for example, a newer version of TensorFlow may change the name of a method that your programs use.
- Private Repository is the URL of the private repository (if any).
- Then, click Add to add the requirement to the table.
- You can also click Edit or Delete beside each requirement to edit or delete it. Click Save while editing a requirement to apply your change. Click Clear while adding or editing a requirement to abort the operation.
Environment Launch Settings
Under the Launch Settings tab, If you need to enable this environment to be launched as a custom app on the main view of Yonohub:
|
Environment Special Resources
Information about special resources are available in the here.Tracking the Progress of Environments.
An environment can be in one of the following states as shown in the Status column in the main page of YonoEBuilder:
|
Actions on Environments
The main page of YonoEBuilder lists all the environments you have access to. For each environment, you can see its Name, latest Version, Status, Size of the latest version, and Owner. Note that the size of the environments you build (including all their versions) affects your balance. However, the environments you purchase from YonoStore do not.
You can select an environment by clicking its row. Then, you can select a version of this environment using the drop-down list in the Version column. Then, you can use the buttons at the top to perform many actions:
|
An action button is disabled when the action is not valid at the moment, e.g., cancelling a released environment or getting environment files of a version that didn’t have associated files.
YonoEBuilder Essentials Bundle
In order to help you get started, YonoEBuilder includes an Essentials bundle that is already purchased from YonoStore by default when you sign up. The bundle includes:
- YonoCommons – CPU includes common packages and machine learning frameworks, such as NumPy, OpenCV, Matplotlib, TensorFlow, Keras.
- YonoCommons – GPU includes NVIDIA drivers, CUDA, and the GPU versions of the same common packages