304 Commits
Author SHA1 Message Date
gsakunandNikolay Edigaryev 705bf8bd83 add insecure-no-tls flag (#281)
* support enable tls flag

* modify tls enable control flag

Co-authored-by: Nikolay Edigaryev <edigaryev@gmail.com>

* Optimize message print

* Avoid unrelated changes to the bootstrap message

* Consistent command-line argument order

* Extra spacing

* No need to shadow controllerCert

---------

Co-authored-by: Nikolay Edigaryev <edigaryev@gmail.com>
0.30.0
2025-03-22 00:09:24 +04:00
Nikolay Edigaryev 39243978ed orchard context create: ask for service account name and token (#282)
If not provided either via --bootstrap-token or via
--service-account-{name,token}.
2025-03-20 02:21:44 +04:00
Nikolay Edigaryev 59007020f4 Controller: enable experimental RPC v2 by default (#280)
* Controller: enable experimental RPC v2 by default

* Ensure mutual exclusiveness for --{,no-}experimental-rpc-v2

* Check earlier
0.29.0
2025-03-18 21:28:01 +04:00
Nikolay Edigaryev d5cd08fcce Controller: advertise ALPN (#279) 2025-03-18 18:55:45 +04:00
dependabot[bot] a2a35c9f6f Bump go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc (#276)
Bumps [go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://github.com/open-telemetry/opentelemetry-go) from 1.27.0 to 1.35.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.27.0...v1.35.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-18 01:39:29 +04:00
dependabot[bot] 449ac61cd4 Bump github.com/coder/websocket from 1.8.12 to 1.8.13 (#274)
Bumps [github.com/coder/websocket](https://github.com/coder/websocket) from 1.8.12 to 1.8.13.
- [Release notes](https://github.com/coder/websocket/releases)
- [Commits](https://github.com/coder/websocket/compare/v1.8.12...v1.8.13)

---
updated-dependencies:
- dependency-name: github.com/coder/websocket
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-18 01:35:47 +04:00
dependabot[bot] e05ca27313 Bump github.com/spf13/cobra from 1.6.0 to 1.9.1 (#273)
Bumps [github.com/spf13/cobra](https://github.com/spf13/cobra) from 1.6.0 to 1.9.1.
- [Release notes](https://github.com/spf13/cobra/releases)
- [Commits](https://github.com/spf13/cobra/compare/v1.6.0...v1.9.1)

---
updated-dependencies:
- dependency-name: github.com/spf13/cobra
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-18 01:07:11 +04:00
dependabot[bot] a5829db8ce Bump howett.net/plist from 1.0.0 to 1.0.1 (#277)
Bumps [howett.net/plist](https://github.com/DHowett/go-plist) from 1.0.0 to 1.0.1.
- [Commits](https://github.com/DHowett/go-plist/compare/v1.0.0...v1.0.1)

---
updated-dependencies:
- dependency-name: howett.net/plist
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-18 01:06:38 +04:00
dependabot[bot] e12b7b9ae1 Bump github.com/deckarep/golang-set/v2 from 2.7.0 to 2.8.0 (#275)
Bumps [github.com/deckarep/golang-set/v2](https://github.com/deckarep/golang-set) from 2.7.0 to 2.8.0.
- [Release notes](https://github.com/deckarep/golang-set/releases)
- [Commits](https://github.com/deckarep/golang-set/compare/v2.7.0...v2.8.0)

---
updated-dependencies:
- dependency-name: github.com/deckarep/golang-set/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-18 01:06:17 +04:00
dependabot[bot] bfb7a1a752 Bump golang.org/x/net from 0.35.0 to 0.36.0 (#271)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.35.0 to 0.36.0.
- [Commits](https://github.com/golang/net/compare/v0.35.0...v0.36.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
0.28.5
2025-03-13 15:52:59 +04:00
dependabot[bot] cc53b7d7fd Bump go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp (#270)
Bumps [go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp](https://github.com/open-telemetry/opentelemetry-go) from 1.27.0 to 1.35.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.27.0...v1.35.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
0.28.4
2025-03-11 03:04:13 +04:00
dependabot[bot] 9e8395bc7c Bump golang.org/x/crypto from 0.35.0 to 0.36.0 (#267)
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.35.0 to 0.36.0.
- [Commits](https://github.com/golang/crypto/compare/v0.35.0...v0.36.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-10 23:16:22 +04:00
dependabot[bot] cfdcb15077 Bump github.com/samber/lo from 1.38.1 to 1.49.1 (#268)
Bumps [github.com/samber/lo](https://github.com/samber/lo) from 1.38.1 to 1.49.1.
- [Release notes](https://github.com/samber/lo/releases)
- [Commits](https://github.com/samber/lo/compare/v1.38.1...v1.49.1)

---
updated-dependencies:
- dependency-name: github.com/samber/lo
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-10 23:15:49 +04:00
dependabot[bot] 10096e8ecd Bump google.golang.org/grpc from 1.64.1 to 1.70.0 (#261)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.64.1 to 1.70.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.64.1...v1.70.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
0.28.3
2025-03-03 22:01:04 +04:00
dependabot[bot] c6745f0b84 Bump github.com/gofrs/flock from 0.8.1 to 0.12.1 (#264)
Bumps [github.com/gofrs/flock](https://github.com/gofrs/flock) from 0.8.1 to 0.12.1.
- [Release notes](https://github.com/gofrs/flock/releases)
- [Commits](https://github.com/gofrs/flock/compare/v0.8.1...v0.12.1)

---
updated-dependencies:
- dependency-name: github.com/gofrs/flock
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-03 21:54:55 +04:00
dependabot[bot] eab3098265 Bump github.com/deckarep/golang-set/v2 from 2.1.0 to 2.7.0 (#262)
Bumps [github.com/deckarep/golang-set/v2](https://github.com/deckarep/golang-set) from 2.1.0 to 2.7.0.
- [Release notes](https://github.com/deckarep/golang-set/releases)
- [Commits](https://github.com/deckarep/golang-set/compare/v2.1.0...v2.7.0)

---
updated-dependencies:
- dependency-name: github.com/deckarep/golang-set/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-03 21:54:33 +04:00
dependabot[bot] e936c3e8e2 Bump github.com/pterm/pterm from 0.12.79 to 0.12.80 (#263)
Bumps [github.com/pterm/pterm](https://github.com/pterm/pterm) from 0.12.79 to 0.12.80.
- [Release notes](https://github.com/pterm/pterm/releases)
- [Commits](https://github.com/pterm/pterm/compare/v0.12.79...v0.12.80)

---
updated-dependencies:
- dependency-name: github.com/pterm/pterm
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-03 21:54:16 +04:00
dependabot[bot] 2735a59f1f Bump golang.org/x/crypto from 0.33.0 to 0.35.0 (#260)
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.33.0 to 0.35.0.
- [Commits](https://github.com/golang/crypto/compare/v0.33.0...v0.35.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-03 21:53:18 +04:00
dependabot[bot]andNikolay Edigaryev c70eb068d4 Bump go.opentelemetry.io/otel/sdk/metric from 1.27.0 to 1.34.0 (#257)
* Bump go.opentelemetry.io/otel/sdk/metric from 1.27.0 to 1.34.0

Bumps [go.opentelemetry.io/otel/sdk/metric](https://github.com/open-telemetry/opentelemetry-go) from 1.27.0 to 1.34.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.27.0...v1.34.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/sdk/metric
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* opentelemetry: add TestConfigure

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nikolay Edigaryev <edigaryev@gmail.com>
0.28.2
2025-02-20 02:19:11 +04:00
dependabot[bot] adc77bc0f4 Bump github.com/hashicorp/go-version from 1.6.0 to 1.7.0 (#254)
Bumps [github.com/hashicorp/go-version](https://github.com/hashicorp/go-version) from 1.6.0 to 1.7.0.
- [Release notes](https://github.com/hashicorp/go-version/releases)
- [Changelog](https://github.com/hashicorp/go-version/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hashicorp/go-version/compare/v1.6.0...v1.7.0)

---
updated-dependencies:
- dependency-name: github.com/hashicorp/go-version
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-20 02:03:50 +04:00
Nikolay Edigaryev 818f4288c2 Controller API: correctly detect WebSocket closure in Watch RPC (#259) 2025-02-20 02:00:57 +04:00
dependabot[bot] 2dfdb40dea Bump golang.org/x/net from 0.28.0 to 0.35.0 (#255)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.28.0 to 0.35.0.
- [Commits](https://github.com/golang/net/compare/v0.28.0...v0.35.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-20 01:59:40 +04:00
dependabot[bot] e6fdf98db3 Bump github.com/stretchr/testify from 1.9.0 to 1.10.0 (#256)
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.9.0 to 1.10.0.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.9.0...v1.10.0)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-20 01:32:26 +04:00
dependabot[bot] 9f2be01a3e Bump golang.org/x/crypto from 0.26.0 to 0.33.0 (#258)
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.26.0 to 0.33.0.
- [Commits](https://github.com/golang/crypto/compare/v0.26.0...v0.33.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-20 01:32:00 +04:00
Nikolay Edigaryev 11afe5863b Enable Dependabot version updates (#253) 2025-02-19 19:37:06 +04:00
Nikolay Edigaryev 2c8d36ef70 Always randomize MAC address (#251)
* Always randomize MAC address

* Worker: check DHCP lease time and print a warning if it's unconfigured

* Further improve the explanation

* Add two leases example to the explanation

* Add an example of the resulting /var/db/dhcpd_leases
0.28.1
2025-02-13 12:35:12 +00:00
Nikolay Edigaryev 2aae818f78 Worker: prefer assigned CPU/memory to CPU/memory (#250)
* Worker: prefer assigned CPU/memory to CPU/memory

* orchard get worker: show default CPU, default memory and labels
2025-02-13 16:23:47 +04:00
Nikolay Edigaryev ee3c0f91f2 Startup script: implement retries for connection-related operations (#249)
* Startup script: implement retries for connection-related operations

* assert.Equal → assert.Contains

* Wait for at least 1,000 lines of logs

* Join slice of strings before calling assert.Contains()

* TestHostDirs: use require.Contains() instead of require.EqualValues()

* TestHostDirs: wait for at least 4 log lines
0.28.0
2025-02-12 18:11:12 +04:00
Nikolay Edigaryev 4794f2a5b6 orchard create vm: introduce --random-serial command-line argument (#248) 2025-02-12 18:00:13 +04:00
Nikolay Edigaryev 61d7d34ea4 RPC v2: fix Ping() hanging due to PONG not being processed (#247) 0.27.1 2025-02-07 22:05:09 +04:00
Nikolay Edigaryev 8dd74db446 Worker notification improvements (#246)
* OpenAPI: document all default "wait" values

* Re-use waitContext instead of instantiating it anew
0.27.0
2025-02-07 00:38:04 +04:00
Nikolay Edigaryev 722d5a8eaf Avoid including " and $ characters in bootstrap admin's token (#245)
* Avoid including " and $ characters in bootstrap admin's token

* Avoid fallthrough
2025-02-06 21:37:42 +04:00
Fedor Korotkov 86f0afb5a3 Small timout for worker notification (#242)
* Small timout for worker notification

It seems at the moment if a worker re-establishes notify stream (for example, if network flips or proxy breaks the connection) then we can see "no worker registered with this name" errors.

This change makes Notifier to wait for 30 seconds before failing, at the time of calling `Notifier#Notify` we know such worker exists.

PS not sure if we need to make the timeout configurable.

* Wait via context

* Make sure all `context`s for `Notify` is time bounded

* Lint issues
2025-02-06 17:30:09 +00:00
Nikolay Edigaryev 26c8808506 Support scheduling by labels (#244) 2025-02-06 18:05:36 +04:00
Nikolay Edigaryev 581de320b9 Allow creating VMs with implicit CPU and memory (#243)
* Allow creating VMs with implicit CPU and memory

* Clarify why cpu/memory can be 0 a bit better

* Controller(API): don't forget to update DefaultCPU and DefaultMemory

* Add an integration test for implicit CPU and memory
2025-02-06 00:50:01 +04:00
dependabot[bot] 6b3d64be96 Bump github.com/golang/glog from 1.2.0 to 1.2.4 (#241)
Bumps [github.com/golang/glog](https://github.com/golang/glog) from 1.2.0 to 1.2.4.
- [Release notes](https://github.com/golang/glog/releases)
- [Commits](https://github.com/golang/glog/compare/v1.2.0...v1.2.4)

---
updated-dependencies:
- dependency-name: github.com/golang/glog
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-30 17:34:23 +04:00
Nikolay Edigaryev 88fba8004d Introduce WebSocket-based RPC v2 (#239)
* Introduce WebSocket-based RPC v2

* go test: add -ldflags="-B gobuildid"

* No need to change the "controller.workerNotifier.Notify()" error message

* No need to modify Protocol Buffers/gRPC generated code

* rpcWatch(): explain that connection shouldn't be normally be closed

* Avoid "port forwarding failed: " repetition in error messages

* Improve comments and avoid repetition in IP resolution errors
2025-01-30 17:33:32 +04:00
Nikolay Edigaryev 077252f6d4 Prevent goroutine leak when Close()'ing *grpc_net_conn.Conn (#237) 0.26.4 2025-01-23 18:17:14 +04:00
Nikolay Edigaryev 1fce915d67 API: only overwrite specific worker fields when worker already exists (#236)
* API: only overwrite specific worker fields when worker already exists

* Don't forget to return when creating new worker

* Return updated worker when updating the worker
0.26.3
2025-01-16 16:42:17 +04:00
Nikolay Edigaryev 08769e00b4 Worker: do not consider on-disk VMs syncing error as fatal (#230) 0.26.2 2024-12-11 19:56:00 +04:00
Nikolay Edigaryev d7b6f477e1 Never list workers in Update()/storeUpdate() transactions (#228)
* POST /v1/workers: do not list workers in a single update txn

* schedulingLoopIteration(): do not list workers in a single update txn

* .golangci.yml: remove mentions of fully deprecated linters
0.26.1
2024-12-05 16:59:50 +04:00
Nikolay Edigaryev d94690176e Schedule opportunistically and more granularly (#225)
* Schedule opportunistically and more granularly

To avoid transaction conflicts.

* Measure scheduling loop iteration duration and log it at debugging level

* Use "continue NextWorker" instead of just "continue" for clarity
0.26.0
2024-12-03 14:11:48 +00:00
Nikolay Edigaryev 7fe0414981 "--scheduler-profile" option to allow different orchestration patterns (#224)
* "--scheduler-profile" option to allow different orchestration patterns

* API(cluster settings): provide a default value for scheduler profile
2024-11-28 20:07:46 +04:00
Tim PeetersandNikolay Edigaryev 4c63cea062 Fix #221 by bumping Go. (#223)
* Fix #221 by bumping Go.

* CI: use golang:latest instead of GoReleaser's container image

* Add Go linker flag (-B gobuildid) to generate UUID.

---------

Co-authored-by: Nikolay Edigaryev <edigaryev@gmail.com>
0.25.2
2024-11-20 14:02:39 +04:00
Nikolay Edigaryev 772336a7bd Scheduler: stop iterating over workers when candidate worker is found (#220) 0.25.1 2024-11-13 17:59:08 +04:00
Nikolay Edigaryev 60948e14fe Rendezvous: use a buffered channel of size 1 (#219)
* Rendezvous: use a buffered channel of size 1

* Fix spelling of "absence" in comment
2024-11-08 11:19:54 +04:00
Nikolay Edigaryev d66d667f1e orchard ssh vm: fix "The handle is invalid." error on Windows (#217) 0.25.0 2024-11-01 16:35:01 -04:00
Nikolay Edigaryev 9da91fa21a Use a separate lock file on Windows to protect configuration (#216) 2024-11-01 22:38:25 +04:00
Fedor Korotkov e40ce6d999 Build Windows binaries (#215)
* Build client for Windows

* Dry Run
2024-11-01 14:33:34 -04:00
Nikolay Edigaryev 79213fccfe Fix OpenAPI spec errors reported by Swagger Editor (#213) 2024-11-01 02:20:04 +04:00