Skip to content

Releases: bacalhau-project/bacalhau

v1.2.3

18 Mar 12:30
50d6afa
Compare
Choose a tag to compare

What's Changed

Read more

v1.2.3-rc2

14 Mar 15:58
50d6afa
Compare
Choose a tag to compare
v1.2.3-rc2 Pre-release
Pre-release

What's Changed

Full Changelog: v1.2.2...v1.2.3-rc2

v1.2.3-rc1

14 Mar 11:16
Compare
Choose a tag to compare
v1.2.3-rc1 Pre-release
Pre-release

What's Changed

Full Changelog: v1.2.2-rc2...v1.2.3-rc1

v1.2.2

01 Mar 03:29
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.2.1...v1.2.2-rc3

v1.2.2-rc2

01 Mar 00:16
9f9ae95
Compare
Choose a tag to compare
v1.2.2-rc2 Pre-release
Pre-release

What's Changed

Full Changelog: v1.2.1...v1.2.2-rc2

v1.2.2-rc1

15 Feb 10:12
d736980
Compare
Choose a tag to compare
v1.2.2-rc1 Pre-release
Pre-release

What's Changed

  • WebUI Enhancements: A series of improvements have been made to the WebUI, including better linting, the addition of Mock Service Worker (MSW) for better frontend testing, storybook integration for UI component testing, and a move from webpack to Vite for a faster development experience. These changes aim to improve the development workflow and user interaction with Bacalhau's WebUI.
  • feat: add metrics to publisher and input storage by @frrist in #3360
  • External CLI tests and subsequent authn/z fixes by @simonwo in #3406
  • NATS based LogStream by @wdbaruni in #3407
  • Improve pagination and filtering of job list command. by @rossjones in #3344
  • Make publisher optional in CLI by @rossjones in #3417
  • Select network address based on type by @rossjones in #3394
  • Remove inmemory jobstore by @rossjones in #3422
  • Removes the compute node's inmemory store by @rossjones in #3424
  • Support anonymous mode authorization for V1 APIs by @simonwo in #3426
  • Require NATS clients to be authenticated with a server secret token by @simonwo in #3425
  • Adds support for specifying a default publisher on the server by @rossjones in #3430
  • Generate TLS server certificates, keys and CA by @olgibbons in #3443
  • Verify signatures of JWTs when authorizing by @simonwo in #3452
  • no job spec with executions by default by @wdbaruni in #3453
  • Improve job describe output by @wdbaruni in #3459

Full Changelog: v1.2.1...v1.2.2-rc1

v1.2.1

30 Jan 21:46
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.2.0...v1.2.1

v1.2.1-rc3

21 Dec 07:45
badbc6d
Compare
Choose a tag to compare
v1.2.1-rc3 Pre-release
Pre-release

What's Changed

Full Changelog: v1.2.0...v1.2.1-rc2

v1.2.1-rc1

20 Dec 12:03
21540cd
Compare
Choose a tag to compare
v1.2.1-rc1 Pre-release
Pre-release

What's Changed

Full Changelog: v1.2.0...v1.2.1-rc1

v1.2.0

11 Dec 18:20
Compare
Choose a tag to compare

Announcing Bacalhau v1.2

📢 We are extremely proud to announce the release of Bacalhau 1.2! Since we announced the release of Bacalhau 1.1 in September 2023, we have been the community has stepped forward to release a number of novel ways to use Bacalhau. For example:

We are also excited to announce that the U.S. Navy Chose Bacalhau to Manage Predictive Maintenance Workloads!

But that’s just the start - Bacalhau 1.2 is packed with new features, enhancements, and bug fixes to improve your workflow and overall user experience.

Read on to learn more about these exciting updates! Or install straight away.

Job templates

Users can now create and customize job templates to streamline their workflow by creating a large number of similar jobs more easily.

A job template contains named placeholders:

Name: docker job
Type: batch
Count: 1
Tasks:
  - Name: main
    Engine:
      Type: docker
      Params:
        Image: ubuntu:latest
        Entrypoint:
          - /bin/bash
        Parameters:
          - -c
          - echo {{.greeting}} {{.name}} 

The placeholders will be filled in during a call to bacalhau job run with environment variables or command-line flags:

export greeting=Hello
bacalhau job run job.yaml --template-vars "name=World" --template-envs "*"

The templating functionality is based on the Go text/template package. This robust library offers a wide range of features for manipulating and formatting text based on template definitions and input variables. For more information about the Go text/template library and its syntax, you can refer to the official documentation: Go text/template Package.

Telemetry from inside WASM jobs with Dylibso integration

This release introduces the ability to collect telemetry data from within WebAssembly (WASM) jobs via integration with the Dylibso Observe SDK.

Now, WebAssembly modules that have been automatically or manually instrumented will pass
tracing information to any OTEL endpoints configured for Bacalhau to use. This happens
automatically if OTEL is configured and the WASM is instrumented. Uninstrumented WASM continues to be run as normal with no required changes.

This allows WASM jobs to pass telemetry into Jaeger or any other configured OTEL client:

279524347-2e2b2226-4e24-49b6-b838-046d7ed63c98

Simplified node bootstrapping

Bacalhau nodes now no longer require peers to be supplied with a LibP2P key, which simplifies configuration of private Bacalhau clusters. Now, Bacalhau only requires an IP address and port number to establish peering with other nodes.

Whereas previously, Bacalhau required a public key to be specified with peer information:

/ip4/35.245.161.250/tcp/1235/p2p/QmbxGSsM6saCTyKkiWSxhJCt6Fgj7M9cns1vzYtfDbB5Ws

A simpler version with automatic key lookup is now supported:

/ip4/35.245.161.250/tcp/1235/http

This means in private environments, node set-up can be considerably simplified, as only the IP address and port need to be known in advance of establishing the cluster.

New browser-based dashboard

We have introduced a modern and intuitive browser-based dashboard, providing web users with a fresh experience. Users can now see both job execution lists and node information:

Screen_Shot_2023-12-04_at_17 26 12

Screen_Shot_2023-12-04_at_17 27 36

For the demonstration network, you can now visit http://bootstrap.production.bacalhau.org to see the dashboard in action.

It is simple to add the web UI to your own private cluster – just pass --web-ui to your bacalhau serve command or set Node.WebUI: yes in your config file. Once set Bacalhau will serve the web UI on port 80 automatically with no further configuration required.

Support for AMD and Intel GPUs

Users can now take advantage of the power of AMD and Intel GPUs for their computational tasks, in addition to our existing support for Nvidia GPUs.

Now, if a compute node has the AMD utlity rocm-smi or Intel utility xpu-smi installed, Bacalhau will automatically detect their GPUs at boot and make them available for use in Docker jobs.

Further, details on available GPUs are now available from the Nodes API. Calls to /api/v1/orchestrator/nodes now return extended GPU information that identifies the GPU’s vendor, available VRAM, and model name.

Support for multiple GPUs in Docker jobs

We now support the utilization of multiple GPUs in Docker jobs, enabling workload splitting and parallel processing.

Users can take advantage of multiple GPUs by passing the --gpu=... flag to bacalhau docker run or by specifying the number of GPUs in the Resources section of the job spec. The job will wait for the requested number of GPUs to become available at which point the job will have exclusive use of the GPUs for as long as it is executing.

Results download from S3-compatible buckets

Users can now download results directly from S3-compatible buckets using bacalhau get, simplifying the data retrieval process.

The S3 Publisher will now generate pre-signed URLs on-demand for use by Bacalhau clients downloading job results without needing to provide credentials to the bucket itself. This requires the requester node to have appropriate IAM permissions for reading buckets.

Support for Google Cloud buckets

Users can now seamlessly integrate Google Cloud Storage (GCS) buckets into their jobs, allowing for easy storage and retrieval of data.

To use GCS buckets, request data from a GCS storage endpoint or configure an S3 publisher using a [storage.googleapis.com](http://storage.googleapis.com) endpoint.

Programmatic API for manipulating config

Developers can now programmatically manipulate configuration settings using the new bacalhau config command, providing more flexibility and automation in managing Bacalhau nodes.

  • Use bacalhau config list to show the current state of configuration variables including defaults.
  • Use bacalhau config set <key> <value> to permanently set a configuration option.
  • Use bacalhau config default to generate a Bacalhau configuration file in YAML format without any user-specific overrides in place.
  • Use bacalhau config auto-resources to detect available system capacity (CPU, RAM, Disk, GPUs, etc.) and write the capacity into the config file. Users can specify a number from 0-100 to limit the capacity to that percentage of total capacity. A number over 100 can also be used to overcommit on capacity, which is useful mainly for setting queue capacities.

Improvements and Bug Fixes

  • Sanity checking of WebAssembly resource usage: we now check that WebAssembly jobs have requested...
Read more