This project provides a home for Akka.NET cluster management, bootstrapping, and more. These tools aims to help with cluster management in various dynamic environments such as Azure, Amazon AWS and Kubernetes.
Akka.Management
- Akka.Cluster management tool over HTTP. You can read more in the documentation here.Akka.Management.Cluster.Bootstrap
- Automated Akka.Cluster bootstrapping in a dynamic environment. You can read more in the documentation here.NOTE
As of version 1.0.0, cluster bootstrap came bundled with the core
Akka.Management
NuGet package and are part of the default HTTP endpoint forAkka.Management
. AllAkka.Management.Cluster.Bootstrap
NuGet package versions below 1.0.0 should now be considered deprecated.Akka.Discovery.AwsApi
- Akka.Cluster bootstrapping discovery service using EC2, ECS, and the AWS API. You can read more in the documentation here.Akka.Discovery.KubernetesApi
- Akka.Cluster bootstrapping discovery service using Kubernetes API. You can read more in the documentation here.Akka.Discovery.Azure
- Akka.Cluster bootstrapping discovery service using Azure Table Storage. You can read more in the documentation here.Akka.Coordination.KubernetesApi
- provides a lease-based distributed lock mechanism backed by Kubernetes CRD for Akka.NET Split Brain Resolver, Akka.Cluster.Sharding, and Akka.Cluster.Singleton. Documentation can be read hereAkka.Coordination.Azure
- provides a lease-based distributed lock mechanism backed by Microsoft Azure Blob Storage for Akka.NET Split Brain Resolver, Akka.Cluster.Sharding, and Akka.Cluster.Singleton. Documentation can be read here
This project supports a wide variety of commands, all of which can be listed via:
Windows
c:\> build.cmd help
Linux / OS X
c:\> build.sh help
However, please see this readme for full details.
build.[cmd|sh] all
- runs the entire build system minus documentation:NBench
,Tests
, andNuget
.build.[cmd|sh] buildrelease
- compiles the solution inRelease
mode.build.[cmd|sh] runtestsnetcore
- compiles the solution inRelease
mode and runs the unit test suite using the netcoreapp3.1 platform (all projects that end with the.Tests.csproj
suffix). All of the output will be published to the./TestResults
folder.build.[cmd|sh] runtestsnet
- compiles the solution inRelease
mode and runs the unit test suite using the net5.0 platform (all projects that end with the.Tests.csproj
suffix). All of the output will be published to the./TestResults
folder.build.[cmd|sh] nbench
- compiles the solution inRelease
mode and runs the NBench performance test suite (all projects that end with the.Tests.Performance.csproj
suffix). All of the output will be published to the./PerfResults
folder.build.[cmd|sh] nuget
- compiles the solution inRelease
mode and creates Nuget packages from any project that does not have<IsPackable>false</IsPackable>
set and uses the version number fromRELEASE_NOTES.md
.build.[cmd|sh] nuget nugetprerelease=dev
- compiles the solution inRelease
mode and creates Nuget packages from any project that does not have<IsPackable>false</IsPackable>
set - but in this instance all projects will have aVersionSuffix
of-beta{DateTime.UtcNow.Ticks}
. It's typically used for publishing nightly releases.build.[cmd|sh] nuget SignClientUser=$(signingUsername) SignClientSecret=$(signingPassword)
- compiles the solution inRelease
modem creates Nuget packages from any project that does not have<IsPackable>false</IsPackable>
set using the version number fromRELEASE_NOTES.md
, and then signs those packages using the SignClient data below.build.[cmd|sh] nuget SignClientUser=$(signingUsername) SignClientSecret=$(signingPassword) nugetpublishurl=$(nugetUrl) nugetkey=$(nugetKey)
- compiles the solution inRelease
modem creates Nuget packages from any project that does not have<IsPackable>false</IsPackable>
set using the version number fromRELEASE_NOTES.md
, signs those packages using the SignClient data below, and then publishes those packages to the$(nugetUrl)
using NuGet key$(nugetKey)
.build.[cmd|sh] DocFx
- compiles the solution inRelease
mode and then uses DocFx to generate website documentation inside the./docs/_site
folder. Use the./serve-docs.cmd
on Windows to preview the documentation.
This build script is powered by FAKE; please see their API documentation should you need to make any changes to the build.fsx
file.