Advanced agent setup
This guide provides information on how to set up the W&B Launch agent to build container images in different environments.Build is only required for git and code artifact jobs. Image jobs do not require build.See Create a launch job for more information on job types.
Builders
The Launch agent can build images using Docker or Kaniko.- Kaniko: builds a container image in Kubernetes without running the build as a privileged container.
- Docker: builds a container image by executing a
docker build
command locally.
builder.type
key in the launch agent config to either docker
, kaniko
, or noop
to turn off build. By default, the agent helm chart sets the builder.type
to noop
. Additional keys in the builder
section will be used to configure the build process.
If no builder is specified in the agent config and a working docker
CLI is found, the agent will default to using Docker. If Docker is not available the agent will default to noop
.
Use Kaniko for building images in a Kubernetes cluster. Use Docker for all other cases.
Pushing to a container registry
The launch agent tags all images it builds with a unique source hash. The agent pushes the image to the registry specified in thebuilder.destination
key.
For example, if the builder.destination
key is set to my-registry.example.com/my-repository
, the agent will tag and push the image to my-registry.example.com/my-repository:<source-hash>
. If the image exists in the registry, the build is skipped.
Agent configuration
If you are deploying the agent via our Helm chart, the agent config should be provided in theagentConfig
key in the values.yaml
file.
If you are invoking the agent yourself with wandb launch-agent
, you can provide the agent config as a path to a YAML file with the --config
flag. By default, the config will be loaded from ~/.config/wandb/launch-config.yaml
.
Within your launch agent config (launch-config.yaml
), provide the name of the target resource environment and the container registry for the environment
and registry
keys, respectively.
The following tabs demonstrates how to configure the launch agent based on your environment and registry.
- AWS
- GCP
- Azure
The AWS environment configuration requires the region key. The region should be the AWS region that the agent runs in.The agent uses boto3 to load the default AWS credentials. See the boto3 documentation for more information on how to configure default AWS credentials.
launch-config.yaml
Agent permissions
The agent permissions required vary by use case.Cloud registry permissions
Below are the permissions that are generally required by launch agents to interact with cloud registries.- AWS
- GCP
- Azure
Storage permissions for Kaniko
The launch agent requires permission to push to cloud storage if the agent uses the Kaniko builder. Kaniko uses a context store outside of the pod running the build job.- AWS
- GCP
- Azure
The recommended context store for the Kaniko builder on AWS is Amazon S3. The following policy can be used to give the agent access to an S3 bucket:
Customizing the Kaniko build
Specify the Kubernetes Job spec that the Kaniko job uses in thebuilder.kaniko-config
key of the agent configuration. For example:
launch-config.yaml
Deploy Launch agent into CoreWeave
Optionally deploy the W&B Launch agent to CoreWeave Cloud infrastructure. CoreWeave is a cloud infrastructure that is purpose built for GPU-accelerated workloads. For information on how to deploy the Launch agent to CoreWeave, see the CoreWeave documentation.You will need to create a CoreWeave account in order to deploy the Launch agent into a CoreWeave infrastructure.