software steht so weit.
jetzt build + docker build und testen
This commit is contained in:
1 parent
42f0c0accb
commit
ca6cdcca63
90 files changed
+10298
-480
No files matched your search
@@ -398,3 +398,46 @@ func TestRegistry_Concurrent(t *testing.T) {
|
||||
t.Errorf("%d Router, erwartet 20", n)
|
||||
}
|
||||
}
|
||||
|
||||
// Container/Dienst in Wartung per Label: nur dessen Router gehen zum Lander.
|
||||
func TestRegistry_ServiceMaintenanceLabel(t *testing.T) {
|
||||
r, _, _ := newRegistry()
|
||||
shop := wp("shop", "100.64.0.1", "shop.kunde.de")
|
||||
shop.Labels["traefik.http.routers.wp.rule"] = "Host(`shop.kunde.de`)"
|
||||
shop.Labels = map[string]string{
|
||||
"traefik.enable": "true",
|
||||
"traefik.http.routers.shop.rule": "Host(`shop.kunde.de`)",
|
||||
"traefik.http.services.shop.loadbalancer.server.port": "8080",
|
||||
"sultan.maintenance": "true",
|
||||
"sultan.maintenance.public_reason": "Inventur",
|
||||
}
|
||||
r.Update(ctx, "n1", NodeState{Workloads: []Workload{wp("wordpress", "100.64.0.1", "kunde.de"), shop}})
|
||||
|
||||
cfg := r.Config().HTTP
|
||||
if cfg.Routers["kunde__n1__shop"].Service != policy.InterceptorService {
|
||||
t.Error("Dienst mit sultan.maintenance=true nicht umgeleitet")
|
||||
}
|
||||
if cfg.Routers["kunde__n1__wp"].Service == policy.InterceptorService {
|
||||
t.Error("anderer Dienst wurde umgeleitet")
|
||||
}
|
||||
hdr := cfg.Middlewares["sultan__kunde__n1__shop"]["headers"].(map[string]any)["customRequestHeaders"].(map[string]any)
|
||||
if hdr[policy.HeaderPublicReason] != "Inventur" {
|
||||
t.Errorf("öffentlicher Grund: %v", hdr)
|
||||
}
|
||||
|
||||
shop.Labels["sultan.maintenance"] = "false"
|
||||
r.Update(ctx, "n1", NodeState{Workloads: []Workload{shop}})
|
||||
if r.Config().HTTP.Routers["kunde__n1__shop"].Service == policy.InterceptorService {
|
||||
t.Error("sultan.maintenance=false leitet um")
|
||||
}
|
||||
}
|
||||
|
||||
func TestRegistry_NodeMaintenanceFromDirectory(t *testing.T) {
|
||||
r, dir, _ := newRegistry()
|
||||
r.Update(ctx, "n1", NodeState{Workloads: []Workload{wp("wordpress", "100.64.0.1", "kunde.de")}})
|
||||
dir.set("n1", func(nc *NodeContext) { nc.Maintenance = &policy.Maintenance{Until: time.Now().Add(time.Hour)} })
|
||||
r.Refresh(ctx)
|
||||
if r.Config().HTTP.Routers["kunde__n1__wp"].Service != policy.InterceptorService {
|
||||
t.Error("Knotenwartung aus dem Directory nicht angewendet")
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user