Skip to content

Commit

Permalink
Merge pull request #217 from coroot/nomad_support
Browse files Browse the repository at this point in the history
add support for Hashicorp Nomad
  • Loading branch information
def committed May 9, 2024
2 parents c354172 + 609ec17 commit 190e9ce
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 2 deletions.
6 changes: 5 additions & 1 deletion api/views/overview/health.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,11 @@ type ApplicationParam struct {
func renderHealth(w *model.World) []*ApplicationStatus {
var res []*ApplicationStatus
for _, app := range w.Applications {
if !app.IsK8s() && app.IsStandalone() {
switch {
case app.IsK8s():
case app.Id.Kind == model.ApplicationKindNomadJobGroup:
case !app.IsStandalone():
default:
continue
}
a := &ApplicationStatus{Id: app.Id, Category: app.Category}
Expand Down
10 changes: 10 additions & 0 deletions constructor/containers.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,16 @@ func getInstanceAndContainer(w *model.World, node *model.Node, instances map[ins
ns, pod := parts[2], parts[3]
containerName = parts[4]
instance = instances[instanceId{ns: ns, name: pod, node: nodeId}]
} else if len(parts) == 7 && parts[1] == "nomad" {
ns, job, group, allocId, task := parts[2], parts[3], parts[4], parts[5], parts[6]
containerName = task
appId := model.NewApplicationId(ns, model.ApplicationKindNomadJobGroup, job+"."+group)
id := instanceId{ns: ns, name: group + "-" + allocId, node: nodeId}
instance = instances[id]
if instance == nil {
instance = w.GetOrCreateApplication(appId).GetOrCreateInstance(id.name, node)
instances[id] = instance
}
} else {
var appId model.ApplicationId
var instanceName, ns string
Expand Down
2 changes: 1 addition & 1 deletion model/application.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ func (app *Application) Labels() Labels {
res["db"] = fmt.Sprintf(`%s (RDS)`, app.Instances[0].Rds.Engine.Value())
case ApplicationKindElasticacheCluster:
res["db"] = fmt.Sprintf(`%s (EC)`, app.Instances[0].Elasticache.Engine.Value())
case ApplicationKindUnknown, ApplicationKindDockerSwarmService:
case ApplicationKindUnknown, ApplicationKindDockerSwarmService, ApplicationKindNomadJobGroup:
if app.Id.Namespace != "_" {
res["ns"] = app.Id.Namespace
} else {
Expand Down
1 change: 1 addition & 0 deletions model/kubernetes.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ const (
ApplicationKindDatabaseCluster ApplicationKind = "DatabaseCluster"
ApplicationKindRds ApplicationKind = "RDS"
ApplicationKindElasticacheCluster ApplicationKind = "ElasticacheCluster"
ApplicationKindNomadJobGroup ApplicationKind = "NomadJobGroup"
)

type Job struct{}
Expand Down

0 comments on commit 190e9ce

Please sign in to comment.