sevensolutions / nomad-iis

🧩 A TaskDriver plugin for HashiCorp Nomad to run IIS workloads.
https://nomad-iis.sevensolutions.cc/
MIT License
14 stars 1 forks source link
csharp grpc hashicorp-nomad iis iis-website nomad nomad-driver-iis nomad-plugin nomad-task-driver

HashiCorp Nomad IIS Task Driver

Build Release License

Nomad IIS Logo

A task driver for HashiCorp Nomad to run web-applications in IIS on Windows machines. Unlike most other Nomad task drivers, this one is written in the C# language using ASP.NET 8. It uses the Microsoft.Web.Administration-API to communicate with IIS. Feel free to use it as-is or as a reference implementation for your own C#-based Nomad-plugins.

[!NOTE]
This document always represents the latest version, which may not have been released yet.
Therefore, some features may not be available currently but will be available soon. You can use the GIT-Tags to check individual versions.

🎉 Features

Feature Status Details
Single Web App per Nomad Task The Task Driver creates an IIS Application Pool and Website for every Nomad Task in the job specification.
Multiple Applications Support for multiple sub-applications below the website.
Virtual Directories Support for multiple virtual directories below an application.
HTTP Bindings
HTTPS Bindings GH-3
Environment Variables Details
Resource Statistics
Logging Experimental UDP logging. See GH-6 for details.
Signals Details
Exec (Shell Access) I'am playing around a little bit but don't want to give you hope :/. See GH-15 for status.
Filesystem Isolation 🔶 Details
Nomad Networking
Management API Nomad IIS provides a very powerfull Management API with functionalities like taking a local screenshot or creating a process dump.

📚 Documentation

Please see the full documentation HERE.

🛠 How to Compile

Run the setup command to download the nomad binary.

.\setup.ps1

Build the project by running the following command:

cd src
dotnet build

Of course you can also compile with Visual Studio :)

🐛 How to Debug locally

There is a launch-profile to run nomad in dev-mode which automatically loads the driver plugin. Open Visual Studio, select the Nomad (Dev) launch profile and press F5.

Note: To debug the driver itself, you need to attach the debugger to the nomad_iis.exe process manually.

🎁 How to build Release version

Run the Release.pubxml publish profile from Visual Studio. This will create a single binary exe called nomad_iis.exe.

🚧 TODOs and Known Issues

Check the Open Issues here.

☕ Support

You want to support me?

Buy Me A Coffee