Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] main from bacalhau-project:main #8

Merged
merged 12 commits into from
Mar 1, 2024

Conversation

pull[bot]
Copy link

@pull pull bot commented Feb 28, 2024

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

wdbaruni and others added 5 commits February 28, 2024 15:36
For some reason, `config.yaml` file in staging and demo stack have
`JobStore` and `ExecutorStore` entries, but with empty paths, and look
like:
```
...
    Compute:
        ExecutionStore:
            Type: BoltDB
            Path: ""
...
    Requester:
        JobStore:
            Type: BoltDB
            Path: ""
...
```

The v2 -> v3 migrator will skip migrating if the store configs are not
empty. This PR fixes the migrator by checking if the path is empty
instead of if the entry is empty
Currently if you want to build the bacalhau binary, you also have to
build the webui and plugins as well, even if you've no intention of
using them.

This change adds:

### make binary 

Just builds the bacalhau binary (assuming webui is available already for
embedding).

### make binary-web
 
Builds the webui ready for embedding in the binary

### make build-bacalhau 

The existing step now calls binary-web and then binary.

### make build 

Does the same as always
Implements a NATS KV backed store for Node Information to persist node
information across requester node restarts. Currently we only have an
in-memory store, and as a result we lose all knowledge of any compute
nodes when we restart the requester.

The new persistent store is the first step in providing more effective
node information and being able to track compute nodes as they become
inaccessible to the cluster for short periods of time. The KV Store
depends on NATS JetStream and so there have been changes to the set up
of the NAT Server, and a first pass at using a test NATS server in
Bacalhau tests (cf
https://github.com/bacalhau-project/bacalhau/blob/1c1662c595dfacbcbdb124bd4bd4cef3c6bdd6de/pkg/routing/kvstore/kvstore_test.go#L33-L40)

TIme metrics and spans are available for both stores (inmemory for
libp2p and kvstore for NATS) although it is expected that the inmemory
store eventually be removed.

These changes did involve modifications to how the network transport
performed pubsub for adding newly discovered node, only because the
transport depends on the store, but this particular store depends on the
transport and so construction is now a two-step process.

## Summary by CodeRabbit

- **New Features**
- Introduced network storage directory configuration for enhanced data
management.
- Enhanced node discovery process for improved reliability and
efficiency.
- Implemented new logging and node information management features in
transport layers.
- Added key-value store functionality for robust node information
storage and retrieval.
- Introduced metrics and tracing for node management operations,
enhancing monitoring and debugging capabilities.

- **Bug Fixes**
- Adjusted node discovery logic to ensure accurate node selection and
information retrieval.

- **Refactor**
- Unified node information storage interfaces and methods across
different components for consistency and maintainability.
- Streamlined configuration and initialization processes for network and
node components.
@pull pull bot added the ⤵️ pull label Feb 28, 2024
wdbaruni and others added 7 commits February 29, 2024 09:06
We shouldn't print auth tokens unless absolutely necessary. Now the
system will hide the auth token if the user supplied it explicitly.

Resolves #3490.
Adds a new node approval field to the node_info structure where we
currently track information about nodes in the cluster.
The approval field currently defaults to unknown, and is not yet used
for anything. This will be used after:

* Persistent node store can pass filters to list()
* There is a registration endpoint
* The CLI can list/approve/reject nodes.
Currently the V1 CLI commands that we want to move to V2 (docker run,
wasm run) make use of the `pkg/job` package to build a job ready for
submission. The files here make use of pkg/model.

To make it clearer what needs to change in the CLI this PR moves
`pkg/job` to `pkg/legacyjob`. This leaves pkg/job open to
re-implementation following a similar but not identical approach
(builders with options).

This aims to make it easier to move over the job creation commands
_without_ forcing the implementor to change both, and all the tests in
the same PR. Now it should be possible for docker run to move over to v2
independently of the wasm run command.

## Summary by CodeRabbit

- **Refactor**
- Updated various components and tests to use `legacy_job` instead of
`jobutils` for job verification and handling, enhancing clarity and
consistency across the application.
- **Chores**
- Renamed the `job` package to `legacy_job` across multiple files to
better reflect its purpose and usage.
- **Tests**
- Adjusted tests to align with the renaming from `job` to `legacy_job`,
ensuring consistent test execution and results.
Bumps
[github.com/nats-io/nats-server/v2](https://github.com/nats-io/nats-server)
from 2.10.7 to 2.10.11.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/nats-io/nats-server/releases">github.com/nats-io/nats-server/v2's
releases</a>.</em></p>
<blockquote>
<h2>Release v2.10.11</h2>
<h2>Changelog</h2>
<p>Refer to the <a
href="https://docs.nats.io/release-notes/whats_new/whats_new_210">2.10
Upgrade Guide</a> for backwards compatibility notes with 2.9.x.</p>
<h3>Go Version</h3>
<ul>
<li>1.21.7</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>github.com/nats-io/nats.go v1.33.0</li>
</ul>
<h3>Improved</h3>
<p>JetStream</p>
<ul>
<li>Optimize replaying messages when they are at the end of the stream
(<a
href="https://redirect.github.com/nats-io/nats-server/issues/5083">#5083</a>)
Thanks to <a
href="https://github.com/david-wakeo"><code>@​david-wakeo</code></a> for
the report!</li>
<li>Optimize replaying messages with start sequence by time when there
are large gaps between the time sequence and first sequence (<a
href="https://redirect.github.com/nats-io/nats-server/issues/5088">#5088</a>)
Thanks again to <a
href="https://github.com/david-wakeo"><code>@​david-wakeo</code></a> for
the report!</li>
<li>Reduce possible contention for NRG step-down (<a
href="https://redirect.github.com/nats-io/nats-server/issues/4990">#4990</a>)</li>
<li>Reduce log-level to debug for non-actionable reallocations warnings
(<a
href="https://redirect.github.com/nats-io/nats-server/issues/5085">#5085</a>)</li>
<li>Improved placement of streams in larger clusters when created in
rapid succession (<a
href="https://redirect.github.com/nats-io/nats-server/issues/5079">#5079</a>)
Thanks to <a
href="https://github.com/kohlisid"><code>@​kohlisid</code></a> for the
report!</li>
<li>Improved filtered consumer retrieval time for large subject space
streams with wildcards (<a
href="https://redirect.github.com/nats-io/nats-server/issues/5089">#5089</a>)</li>
</ul>
<h3>Fixed</h3>
<p>JetStream</p>
<ul>
<li>Fixed a bug that could cause consumers to not match filtered
subjects with wildcards correctly (<a
href="https://redirect.github.com/nats-io/nats-server/issues/5080">#5080</a>)</li>
<li>Fixed a bug that could not allow keys/subjects to be found after
restarts after extended downtime (<a
href="https://redirect.github.com/nats-io/nats-server/issues/5054">#5054</a>)</li>
<li>Fixed a bug that would not properly update all consumer state when a
filtered purge of the parent stream was narrower then the consumer’s
filtered subject space (<a
href="https://redirect.github.com/nats-io/nats-server/issues/5075">#5075</a>)</li>
</ul>
<p>MQTT</p>
<ul>
<li>Fixed an issue with retained messages not working properly if the
server name had a ‘.’ (<a
href="https://redirect.github.com/nats-io/nats-server/issues/5048">#5048</a>)</li>
</ul>
<h3>Complete Changes</h3>
<p><a
href="https://github.com/nats-io/nats-server/compare/v2.10.10...v2.10.11">https://github.com/nats-io/nats-server/compare/v2.10.10...v2.10.11</a></p>
<h2>Release v2.10.10</h2>
<h2>Changelog</h2>
<p>Refer to the <a
href="https://docs.nats.io/release-notes/whats_new/whats_new_210">2.10
Upgrade Guide</a> for backwards compatibility notes with 2.9.x.</p>
<h3>Go Version</h3>
<ul>
<li>1.21.6</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>github.com/klauspost/compress v1.17.5</li>
<li>github.com/nats-io/nats.go v1.32.0</li>
</ul>
<h3>Added</h3>
<ul>
<li>Add <code>ping_interval</code> cluster route option to configure
differently than client connections (<a
href="https://redirect.github.com/nats-io/nats-server/issues/5029">#5029</a>)</li>
</ul>
<h3>Improved</h3>
<p>JetStream</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/nats-io/nats-server/commit/5fc6051c33438553b3dc828ab856915011bd1945"><code>5fc6051</code></a>
Release v2.10.11 (<a
href="https://redirect.github.com/nats-io/nats-server/issues/5095">#5095</a>)</li>
<li><a
href="https://github.com/nats-io/nats-server/commit/045b8482fc731e45e36f0db5817a02ce3c13445e"><code>045b848</code></a>
Fixed incorrect mqtt-test reference (mqttex tests failure)</li>
<li><a
href="https://github.com/nats-io/nats-server/commit/66b3722403a720c07b9042428595581f8936d1ae"><code>66b3722</code></a>
Bump version to 2.10.11-RC.4 [ci skip]</li>
<li><a
href="https://github.com/nats-io/nats-server/commit/54eafdfe889b384df0357bc6cc34cf94e3c0b760"><code>54eafdf</code></a>
Cherry picks for v2.10.11 release (<a
href="https://redirect.github.com/nats-io/nats-server/issues/5090">#5090</a>)</li>
<li><a
href="https://github.com/nats-io/nats-server/commit/835840bb347bd0e846ffdb0af7d75152b60ad7df"><code>835840b</code></a>
When doing firstMatching we were picking wrong on linearScans. Also did
not o...</li>
<li><a
href="https://github.com/nats-io/nats-server/commit/78875579d5f43fa2e6946f6d955d7d1b0d6a9a3e"><code>7887557</code></a>
When a filtered consumer starts by time, there could be a large gap
between t...</li>
<li><a
href="https://github.com/nats-io/nats-server/commit/cf1b8e4ca163e7f13541b9dc3ba224aeeb0eecb3"><code>cf1b8e4</code></a>
Bump version to 2.10.11-RC.3 [ci skip]</li>
<li><a
href="https://github.com/nats-io/nats-server/commit/11f580841647fcbc77f7f7f8b54bd2483d8df0f8"><code>11f5808</code></a>
Cherry picks for Release v2.10.11 (<a
href="https://redirect.github.com/nats-io/nats-server/issues/5084">#5084</a>)</li>
<li><a
href="https://github.com/nats-io/nats-server/commit/82ea3952b7a1935c959e5dac2edd9fa7678be379"><code>82ea395</code></a>
Update go client to 1.33.0</li>
<li><a
href="https://github.com/nats-io/nats-server/commit/b9763c19ff4f5ed4e1ccbcb279c0bc2d8e8c55c9"><code>b9763c1</code></a>
Move reallocation warnings on psim to debug.</li>
<li>Additional commits viewable in <a
href="https://github.com/nats-io/nats-server/compare/v2.10.7...v2.10.11">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/nats-io/nats-server/v2&package-manager=go_modules&previous-version=2.10.7&new-version=2.10.11)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@pull pull bot merged commit 02723e7 into DeCenter-AI:main Mar 1, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants