Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dapr + Hashicorp Nomad? #3146

Closed
voltcode opened this issue May 10, 2021 · 20 comments
Closed

Dapr + Hashicorp Nomad? #3146

voltcode opened this issue May 10, 2021 · 20 comments
Labels
area/hosting Dapr integration with hosting platforms kind/feature New feature request stale Issues and PRs without response

Comments

@voltcode
Copy link

Hashicorp Nomad is gaining traction as low-ops just-works alternative to Kubernetes.

Does Dapr support Nomad out-of-the-box or can be easily adapted to run on Nomad?

If no, then what would it take for Dapr to support Nomad? Would you consider adding Nomad support?
Being distributed platform-agnostic (ie. not Kubernetes-only), would certainly convince more people to give Dapr a chance, as being without Kubernetes lock-in, and therefore requiring less choices to be made once-and-for-all. I mean that by choosing Dapr I don't have to commit to a particular cloud runtime, and my skills in Dapr are more reusable.

If Nomad will never be supported for example because it runs agains project sponsors will, then please state so - it would benefit potential decision makers that have to weigh on the potential buy-in for a new framework.

@msfussell msfussell added area/hosting Dapr integration with hosting platforms kind/feature New feature request labels May 28, 2021
@msfussell
Copy link
Member

Dapr is not tied to Kubernetes. Dapr can run on any hosting platform, including (currently) a group of networked VMs or physical machines. Yes, it would be wonderful to have Dapr supported on Nomad as another hosting platform and supporting this is in line of having Dapr on many platforms (for example other have raised Open Stack, Azure Service Fabric and Docker Swarm as other examples)

No work has been done here for Nomad, since you are the first to raise this issue. If you are interested in creating a proposal and even starting the work, we would love to work with you on this. It would also be good to hear other people thoughts and needs for Nomad with reasons.

@idrennanvmware
Copy link

We have a pretty substantial investment in Nomad at the moment, and while K8s is on the roadmap the orchestrator of choice should be ideally abstracted away from the engineers writing services.

To me its just another layer in the abstraction. The underlaying platform (Nomad, K8s, or even vms) provide the mechanism to run Dapr, the platform also provides the service (storage, state, etc) which then is made available to Dapr. All the app engineer knows or cares about is their app and the Dapr abstraction.

Pretty interesting to see as we dig more in to Dapr. Love the work

@dapr-bot
Copy link
Collaborator

This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged (pinned, good first issue, help wanted or triaged/resolved) or other activity occurs. Thank you for your contributions.

@dapr-bot dapr-bot added the stale Issues and PRs without response label Jul 12, 2021
@dapr-bot
Copy link
Collaborator

This issue has been automatically closed because it has not had activity in the last 37 days. If this issue is still valid, please ping a maintainer and ask them to label it as pinned, good first issue, help wanted or triaged/resolved. Thank you for your contributions.

@daveman1010221
Copy link

This is a great idea, I hope it didn't get lost because of dapr-bot.

@yaron2 yaron2 reopened this Dec 9, 2021
@yaron2
Copy link
Member

yaron2 commented Dec 9, 2021

This is a great idea, I hope it didn't get lost because of dapr-bot.

Reopened

@dapr-bot dapr-bot removed the stale Issues and PRs without response label Dec 9, 2021
@daveman1010221
Copy link

One of the neat-o things about Nomad is the ability to target orchestration on deployments other than OCI containers. I suppose one thing I haven't found yet is Dapr docs on how to, for example, set up a Dapr sidecar when there is no pod (I'm sure there is something). That seems to be the core of what this issue is about, the configuration bits to tie the two together.

@daveman1010221
Copy link

This example is the one I am going to attempt to get working with Nomad, time permitting:

https://github.com/second-state/dapr-wasm

@yaron2
Copy link
Member

yaron2 commented Dec 9, 2021

This example is the one I am going to attempt to get working with Nomad, time permitting:

https://github.com/second-state/dapr-wasm

That will be a really good use case. We'd love for you to come show this on a community call if/once you get to it.

@dapr-bot
Copy link
Collaborator

dapr-bot commented Jan 8, 2022

This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged (pinned, good first issue, help wanted or triaged/resolved) or other activity occurs. Thank you for your contributions.

@dapr-bot dapr-bot added the stale Issues and PRs without response label Jan 8, 2022
@jwillmer
Copy link

jwillmer commented Jan 9, 2022

I subscribed to this issue since we would like to use dapr together with our Nomad deployment. Looking forward to keep stale bot busy 📢

@dapr-bot dapr-bot removed the stale Issues and PRs without response label Jan 9, 2022
@dapr-bot
Copy link
Collaborator

This issue has been automatically marked as stale because it has not had activity in the last 60 days. It will be closed in the next 7 days unless it is tagged (pinned, good first issue, help wanted or triaged/resolved) or other activity occurs. Thank you for your contributions.

@dapr-bot dapr-bot added the stale Issues and PRs without response label Mar 10, 2022
@dapr-bot
Copy link
Collaborator

This issue has been automatically closed because it has not had activity in the last 67 days. If this issue is still valid, please ping a maintainer and ask them to label it as pinned, good first issue, help wanted or triaged/resolved. Thank you for your contributions.

@willjr20
Copy link

willjr20 commented May 6, 2022

Did anyone ever decide to use Dapr on Nomad?

@withinboredom
Copy link
Contributor

@willjr20 I couldn't ever get it to work about 6mo ago before I gave up. Issues that I ran into -- and maybe resolved by now:

  • Consul integration isn't compatible with Nomad (too opinionated/specific to k8s).
  • No raw DNS integration to workaround the weird Consul integration.

@chenjpu
Copy link

chenjpu commented May 12, 2022

use consul nameResolution

job "dapr-demo-srv" {
  datacenters = ["dc1"]
  type        = "service"
  namespace   = "dapr-dev"

  group "dapr-srv" {

    scaling {
      enabled = true
      min     = 1
      max     = 3
    }

    restart {
      interval = "3m"
      attempts = 3
      delay    = "15s"
      mode     = "delay"
    }

    network {
      mode = "bridge"
      port "app" { to = 8081 }
      port "http" { to = 3500 }
      port "grpc" { to = 50001 }
      port "rpc" { to = 40001 }
    }

    service {
      name         = "my-srv"
      port         = "http"
      address_mode = "host"
      tags = [
        "dapr",
      ]
      meta {
        DAPR_PORT = "${NOMAD_HOST_PORT_rpc}"
      }

      check {
        type           = "http"
        port           = "http"
        path           = "/v1.0/healthz"
        interval       = "12s"
        timeout        = "6s"
        initial_status = "warning"

        check_restart {
          limit           = 3
          grace           = "10s"
          ignore_warnings = true
        }
      }

    }

    task "app" {
      driver = "docker"
      config {
        image   = "app image"
        command = "app"
        args = [

        ]
      }

      resources {
        memory     = 30
        memory_max = 50
      }

    }

    task "daprd" {
      driver = "docker"

      config {
        image   = "daprio/daprd:1.7.2"
        ports   = ["http", "grpc", "rpc"]
        command = "daprd"
        args = [
          "-app-id", "my-srv",
          "-app-port", "${NOMAD_PORT_app}",
          "-app-protocol", "grpc",
          "-dapr-internal-grpc-port", "${NOMAD_PORT_rpc}",
          "-config", "local/.dapr/config.yaml",
          "-components-path", "local/.dapr/components",
        ]
      }


      template {
        data        = "{{ key \"dapr/config.yaml\"}}"
        destination = "local/.dapr/config.yaml"
      }


      template {
        data        = "{{ key \"dapr/components/redis.yaml\"}}"
        destination = "local/.dapr/components/redis.yaml"
      }


      resources {
        memory     = 30
        memory_max = 50
      }

    }
  }
}


@willjr20
Copy link

willjr20 commented May 12, 2022

Thanks withinboredom and chenjpu for both of your responses. I realize that this is an old issue. I ended up creating/testing a 3 master/3 worker Kubernetes cluster, but I will still take a look at Nomad

@chenjpu
Copy link

chenjpu commented Oct 9, 2022

nomad 1.3 version, support for local service registry, can name resolution for dapr support this feature?

@htxryan
Copy link

htxryan commented Apr 24, 2023

Did anyone ever get this to work? We're looking into Nomad and would love to be able to use Dapr if possible.

@Corbie-42
Copy link

This issue should be kept open. It would be nice, if the Dapr placement service supported Nomad too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/hosting Dapr integration with hosting platforms kind/feature New feature request stale Issues and PRs without response
Projects
None yet
Development

No branches or pull requests