Proto commits in distribworks/dkron

These 31 commits are when the Protocol Buffers files have changed:

Commit:7394207
Author:Victor Castell
Committer:GitHub

Release 4.x (#1432) * Convert shell plugin to internal plugin (#975) The purpose of this PR is to embed the shell plugin in the main dkron binary, that will facilitate creating a single binary with the most important executor, for easy deployment using a single binary. * Remove old UI (#984) * Release a light image tag (#988) Omit all plugins except the shell plugin that will be included in the main binary. * Upgrade react admin to v4 (#1436) * Use exponential backoff for retries (#1433) * Handle ip changes (#1446) * consul like approach: add server_lookup to make dkron independent from server node IP on raft layer * handle memberupdate event * query other servers before start & add test * don't remove itself if node is a raft leader * don't remove dkron server node if id matches * Move config init to agent command (#1465) Config init was being done on the root level command but only the agent command was using config values. Now config init is done as pre-run of agent command only, getting rid of extra messages in other commands when the config was missing. * Fix disabled (#1467) * Embed http plugin (#1471) http plugin is one of the most used plugins together with the shell plugin, embedding it in the main binary allow for more lean deployment. * Show all Job fields * Refactor buttons for admin v4 * Docs v4 (#1473) * Reuse http clients with the same configuration (#1474) * Update OpenAPI spec to v3.1.0 and add ACLs spec * Refactor location of types as they not only belong to plugins, but used in general. (#1485) Also add Pro protobuf and gen code as this should be public. * Generate client * Extend protobuf defs for ACLs * Token fields * Minor improvement in RabbitMQ executor (#1500) * nice and forkable goreleaser (#1584) * add support for hash scheduling (#1260) * feat: Login form and admin update (#1589) Upgrade react-admin to v5 Implements a login form to use in Pro version --------- Co-authored-by: Victor Castell <victor@victorcastell.com> Co-authored-by: Ivan Kripakov <108407979+ivan-kripakov-m10@users.noreply.github.com> Co-authored-by: Filipe Pina <636320+fopina@users.noreply.github.com>

The documentation is generated from this commit.

Commit:d46947b
Author:Victor Castell

The policy should be just a ref

The documentation is generated from this commit.

Commit:b2d5928
Author:Victor Castell

Use accessor for tokens

Commit:e2a86ac
Author:Victor Castell

Token Type

Commit:fbac360
Author:Victor Castell

Typo

Commit:b1ce3da
Author:Victor Castell

Token fields

Commit:aae95b9
Author:Victor Castell

Extend protobuf defs for ACLs

Commit:4fcd8f7
Author:Victor Castell

protoc line

Commit:794a178
Author:Victor Castell
Committer:GitHub

Refactor location of types as they not only belong to plugins, but used in general. (#1485) Also add Pro protobuf and gen code as this should be public.

Commit:f0c0df3
Author:Paulo Moura
Committer:GitHub

Implement GRPC executor (#1049) Signed-off-by: Paulo Moura <itsme@paulomoura.com.pt> Co-authored-by: Victor Castell <victor@victorcastell.com>

Commit:2538be5
Author:Victor Castell
Committer:GitHub

feature: Implement ephemeral and expires at feature (#972) * Implement ephemeral and expires at feature Ephemeral jobs will be deleted after the first successful execution Expiring jobs won't be executed after the indicated datetime

Commit:e56ce03
Author:Victor Castell

chore: Use newer gRPC library version Implement all necessary changes to adapt to use latest gRPC imlpementation and code generators.

Commit:acb50cb
Author:Victor Castell
Committer:Victor Castell

refactor: Use gRPC streaming calls to run jobs Serf queries works over UDP sending messages to nodes and expecting a response, there is no guarantee or verification of the message delivery. This was causing some job executions to be lost, around 1%-2% on edge cases. Solution Agents will listen to gRPC calls from the servers, using server-side streaming, the other way around as currently, agents will send Execution progress as now. Servers will actively order nodes to run the jobs, so we can verify the job is actually being executed or report an error in case it's not. This maintains the same guarantees in job status reporting and streaming, also adding the possibility to cancel an execution in the future.

Commit:351e9c9
Author:Victor Castell

fix: Several fixes including new gRPCs method * New SetExecution method missing in the last PR * Fix race condition in job status save on start * computeStatus improvement * improve test jobs ansible playbook * Better swagger docs

Commit:b248867
Author:Victor Castell

feat: Implement bidirectional output in plugins So we can receive partial updates of the output of an executions and stream the update to the server for storing in the execution.

Commit:de54c8b
Author:Victor Castell
Committer:Victor Castell

Streaming executions refactor: Add gRPC method to get active connections

Commit:6bb35a9
Author:Victor Castell
Committer:GitHub

refactor: Move plugin code and types to packages (#696) * refactor: Move plugin code and types to packages This allows for plugins to not depend on the whole dkron code reducing its size to minimum. Also refactored Processor plugins type name * refactor: Add key method to gRPC execution * docs: Update CHANGELOG Co-authored-by: Filipe Pina <fopina@gmail.com>

Commit:e821de6
Author:Victor Castell
Committer:GitHub

Fixes issue with missing processor config (#601) * Fixes issue with missing processor config Processor config was missing in the FromProto ToProto conversions of the job model. This caused any change in the field to be lost. The change forced to redefine PluginConfig as map[string]string as proto3 doesn't have an easy concept of go interface. Also modified the corresponding processors.

Commit:294a09d
Author:yvanoers
Committer:yvanoers

Fix new jobs showing as failed in dashboard in western timezones

Commit:335b4d9
Author:Yuri van Oers
Committer:Yuri van Oers

Add displayname to job

Commit:11a8973
Author:Victor Castell
Committer:Victor Castell

Implement raft list-peers and remove-peer

Commit:f0bb687
Author:Victor Castell
Committer:Victor Castell

Fix next execution computation

Commit:faebbaa
Author:Victor Castell
Committer:Victor Castell

Dkron v2 PR that brings lots of changes to the previous version. Main architecture changes: - Not using valkeyrie anymore, moving to Hashicorp's Raft, not relying anymore in external distributed stores. - Local storage managed by BadgerDB in each node. - No changes to the API and the serf engine. - Include fixes and features for #540, #535, #546

Commit:e8b5d55
Author:Victor Castell
Committer:GitHub

Implement server selection using consistent hash (#522) * Implement server selection using consistent hash Server selection via consistent hash over peer members, ensures a good request distribution and mimics a cache store. * fix: Do not reply events on join. This could lead to unpredictable job executions out of time * refactor: To use GetExecutons in GetExecutionsGroup

Commit:896118c
Author:tengattack

Update executor support error log instead of fail only

Commit:d7b1eaa
Author:Victor Castell
Committer:GitHub

Leave cluster RPC command (#496) Leave cluster RPC command Implement the command to leave a cluster using an agent command and calling the leave method by RPC to the local or remote agent.

Commit:be8527d
Author:Victor Castell
Committer:GitHub

Remove deprecated parameters (#489) Remove support for old job command parameters Deprecated long ago, Job params: command, shell and environment_variables are now gone. This could be breaking change for installations still using those params

Commit:1f2c05c
Author:Victor Castell

Implement timestamps conversion

Commit:58465ab
Author:Victor Castell

Move away from RPC to gRPC

Commit:388be63
Author:Victor Castell

Simplify executors

Commit:4f0b3cb
Author:Victor Castell

Executors with GRPC