Skip to main content

A deployment tool for WheelOS.

Project description

whl_deploy

whl_deploy is a powerful tool designed specifically for Apollo deployment, aiming to significantly simplify the setup of Apollo environments and the import/export of resources. By automating key steps, whl_deploy ensures an efficient, consistent, and seamless Apollo deployment experience.

✨ Key Features

whl_deploy provides three core functionalities, covering the essential aspects of the Apollo deployment lifecycle:

  1. Automated Environment Setup: Installs and configures Docker, NVIDIA Container Toolkit, and optimizes the system, providing an ideal environment for Apollo.
  2. Apollo Resource Import: Unified import of core Apollo components, including Docker images, source code, AI models, high-definition maps, and compiled caches, drastically reducing initial setup and startup times.
  3. Resource Packaging & Distribution: Packages pre-configured or downloaded Apollo resources into reusable bundles, facilitating rapid deployment across multiple machines, especially useful in offline environments.

🚀 Quick Start

This section guides you on how to quickly install and use whl_deploy, focusing on the most common end-to-end deployment flow.

1. Installation

To ensure compatibility, please upgrade your setuptools and pip first:

# Highly Recommended: Upgrade setuptools and pip first
pip install setuptools -U
pip install --upgrade pip

# Install whl-deploy
pip install whl-deploy

2. End-to-End Deployment - Express Mode!

The following two commands are the essence of whl_deploy, covering the vast majority of Apollo deployment scenarios:

Step A: Prepare Host Environment

This command will automatically install Docker, the NVIDIA Container Toolkit, and perform necessary system configurations. This is the foundation for running Apollo.

whl-deploy setup all

Step B: Import Apollo Resources

After setting up the environment, you can import all pre-packaged core Apollo resources, such as source code, Docker images, AI models, etc., with a single command. Please ensure your source package is ready.

whl-deploy import all --package=source

3. More Granular Control

If you require more fine-grained control, whl_deploy also provides individual commands.

3.1. Host Environment Configuration - Step-by-Step

In some cases, you might want to configure the host environment step-by-step:

# Only install and configure Docker
whl-deploy setup docker

# Only install and configure NVIDIA Container Toolkit
whl-deploy setup nvidia

# Only perform system-level host configurations (e.g., kernel parameters, user groups)
whl-deploy setup host

3.2. Resource Import & Export - Category Management

whl_deploy allows you to manage various Apollo resources separately.

a. Source Code

  • Import Source Code Package: Imports a zipped Apollo source code archive to a specified location.
    whl-deploy import source-code --input=apollo-lite-main.zip
    
  • Export Source Code Package: Packages the source code from the current Apollo environment for reuse elsewhere.
    whl-deploy export source-code --output=apollo-main.zip
    

b. Compiled Cache (Bazel Cache)

The Bazel compilation cache is crucial for accelerating the Apollo build process.

  • Import Compiled Cache: Imports a pre-packaged Bazel cache.
    whl-deploy import cache --input=bazel_cache.tar.gz
    
  • Export Compiled Cache: Exports the current Bazel cache for use across multiple machines or in future deployments.
    whl-deploy export cache --output=bazel_cache.tar.gz
    

c. Docker Images

Manage Apollo's core container images.

  • Import Docker Image: Imports a Docker image from a .tar file. This is useful for offline deployments or pre-loading images.
    whl-deploy import docker-image --input=whl_docker_image.tar
    
  • Export Docker Image:
    • Export information about all currently recognized Apollo-related Docker images:
      whl-deploy export docker-image --info
      
    • Export a specific Docker image to a .tar file:
      whl-deploy export docker-image --input=nvidia/cuda:11.8.0-cudnn8-devel-ubuntu20.04 --output=cuda_image.tar
      
      • Note: Here, the --input parameter should specify the name and tag of the image to be exported. For example, to export an Apollo development image, use: whl-deploy export docker-image --input=apollo:dev-latest --output=apollo_dev.tar

d. High-Definition Maps (HD Maps) (TODO - To Be Implemented)

  • whl-deploy import hd-maps --input=...
  • whl-deploy export hd-maps --output=...

e. AI Models (TODO - To Be Implemented)

  • whl-deploy import models --input=...
  • whl-deploy export models --output=...

🤝 Contribution & Support

whl_deploy aims to simplify Apollo deployment. If you have any questions, suggestions, or wish to contribute code, feel free to submit an Issue or a Pull Request.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

whl_deploy-0.0.1.tar.gz (44.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

whl_deploy-0.0.1-py3-none-any.whl (52.3 kB view details)

Uploaded Python 3

File details

Details for the file whl_deploy-0.0.1.tar.gz.

File metadata

  • Download URL: whl_deploy-0.0.1.tar.gz
  • Upload date:
  • Size: 44.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.1

File hashes

Hashes for whl_deploy-0.0.1.tar.gz
Algorithm Hash digest
SHA256 4113d85649ba877ce4c7ccb43b09381d2efec790c867b7de857b4faa00b7a2cf
MD5 7f87364850d6ff658ed3191d44bad507
BLAKE2b-256 b3757dc981cbe60c29a2d26e77315a567426312abe2632b979a7071c3bcfec4a

See more details on using hashes here.

File details

Details for the file whl_deploy-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: whl_deploy-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 52.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.1

File hashes

Hashes for whl_deploy-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ddf88222d15c0d4a0facdb567eb817d1f3e7a70c2a7c95d6e093547c48a56350
MD5 46c2f0bdb6ca96aa6896e9fdfb5a8046
BLAKE2b-256 970318fc6cb16d14203f76250b6bcbd84f578eafd7502e1bca31b2d7a57a68e4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page