Skip to content

Commit bf5c4a2

Browse files
committed
feat(cluster): add deployment ingress and port info as env vars
Add environment variables to expose: - Generated ingress hostname (AKASH_INGRESS_HOST) - Custom ingress hostnames per port (AKASH_INGRESS_CUSTOM_HOST_<port>_<index>) This allows containers to be aware of their external access points.
1 parent b5a075e commit bf5c4a2

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

cluster/kube/builder/builder.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ const (
5757
envVarAkashOwner = "AKASH_OWNER"
5858
envVarAkashProvider = "AKASH_PROVIDER"
5959
envVarAkashClusterPublicHostname = "AKASH_CLUSTER_PUBLIC_HOSTNAME"
60+
envVarAkashIngressHostname = "AKASH_INGRESS_HOST"
61+
envVarAkashIngressCustomHostname = "AKASH_INGRESS_CUSTOM_HOST"
62+
envVarAkashExternalPort = "AKASH_EXTERNAL_PORT"
6063
)
6164

6265
var (

cluster/kube/builder/workload.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
"github.com/akash-network/node/sdl"
1414
sdlutil "github.com/akash-network/node/sdl/util"
1515

16+
pmanifest "github.com/akash-network/provider/manifest"
1617
crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2"
1718
)
1819

@@ -408,5 +409,29 @@ func (b *Workload) addEnvVarsForDeployment(envVarsAlreadyAdded map[string]int, e
408409
env = addIfNotPresent(envVarsAlreadyAdded, env, envVarAkashProvider, lid.Provider)
409410
env = addIfNotPresent(envVarsAlreadyAdded, env, envVarAkashClusterPublicHostname, b.settings.ClusterPublicHostname)
410411

412+
ingressHost := pmanifest.IngressHost(lid, b.Name())
413+
env = addIfNotPresent(envVarsAlreadyAdded, env, envVarAkashIngressHostname, fmt.Sprintf("%s.%s", ingressHost, b.settings.DeploymentIngressDomain))
414+
415+
svc := &b.deployment.ManifestGroup().Services[b.serviceIdx]
416+
417+
// Add hostnames from service expose configurations
418+
for _, expose := range svc.Expose {
419+
if expose.IsIngress() {
420+
// Add custom hostnames if specified
421+
for idx, hostname := range expose.Hosts {
422+
env = addIfNotPresent(envVarsAlreadyAdded, env,
423+
fmt.Sprintf("%s_%d_%d", envVarAkashIngressCustomHostname, expose.Port, idx),
424+
hostname)
425+
}
426+
}
427+
428+
if expose.Global {
429+
// Add external port mappings
430+
env = addIfNotPresent(envVarsAlreadyAdded, env,
431+
fmt.Sprintf("%s_%d", envVarAkashExternalPort, expose.Port),
432+
expose.ExternalPort)
433+
}
434+
}
435+
411436
return env
412437
}

0 commit comments

Comments
 (0)