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.ManagementNuGet package and are part of the default HTTP endpoint forAkka.Management. AllAkka.Management.Cluster.BootstrapNuGet 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.Discovery.Dns- Akka.Cluster bootstrapping discovery service using DNS. 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 inReleasemode.build.[cmd|sh] runtestsnetcore- compiles the solution inReleasemode and runs the unit test suite using the netcoreapp3.1 platform (all projects that end with the.Tests.csprojsuffix). All of the output will be published to the./TestResultsfolder.build.[cmd|sh] runtestsnet- compiles the solution inReleasemode and runs the unit test suite using the net5.0 platform (all projects that end with the.Tests.csprojsuffix). All of the output will be published to the./TestResultsfolder.build.[cmd|sh] nbench- compiles the solution inReleasemode and runs the NBench performance test suite (all projects that end with the.Tests.Performance.csprojsuffix). All of the output will be published to the./PerfResultsfolder.build.[cmd|sh] nuget- compiles the solution inReleasemode 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 inReleasemode and creates Nuget packages from any project that does not have<IsPackable>false</IsPackable>set - but in this instance all projects will have aVersionSuffixof-beta{DateTime.UtcNow.Ticks}. It's typically used for publishing nightly releases.build.[cmd|sh] nuget SignClientUser=$(signingUsername) SignClientSecret=$(signingPassword)- compiles the solution inReleasemodem 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 inReleasemodem 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 inReleasemode and then uses DocFx to generate website documentation inside the./docs/_sitefolder. Use the./serve-docs.cmdon 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.