Skip to content

Commit

Permalink
feat(cli): allow overriding default local address for port proxies
Browse files Browse the repository at this point in the history
You can now set the `GARDEN_PROXY_DEFAULT_ADDRESS` to an address to
override the default of `localhost` or `127.x.x.x` for port forward
bindings.
  • Loading branch information
edvald committed Nov 23, 2021
1 parent d31792e commit 21120c5
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 2 deletions.
3 changes: 2 additions & 1 deletion core/src/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,12 @@ export const gardenEnv = {
GARDEN_ENABLE_PROFILING: env.get("GARDEN_ENABLE_PROFILING").required(false).asBool(),
GARDEN_ENVIRONMENT: env.get("GARDEN_ENVIRONMENT").required(false).asString(),
GARDEN_EXPERIMENTAL_BUILD_STAGE: env.get("GARDEN_EXPERIMENTAL_BUILD_STAGE").required(false).asBool(),
GARDEN_GE_SCHEDULED: env.get("GARDEN_GE_SCHEDULED").required(false).asBool(),
GARDEN_K8S_BUILD_SYNC_MODE: env.get("GARDEN_K8S_BUILD_SYNC_MODE").required(false).default("rsync").asString(),
GARDEN_LEGACY_BUILD_STAGE: env.get("GARDEN_LEGACY_BUILD_STAGE").required(false).asBool(),
GARDEN_LOG_LEVEL: env.get("GARDEN_LOG_LEVEL").required(false).asString(),
GARDEN_LOGGER_TYPE: env.get("GARDEN_LOGGER_TYPE").required(false).asString(),
GARDEN_GE_SCHEDULED: env.get("GARDEN_GE_SCHEDULED").required(false).asBool(),
GARDEN_PROXY_DEFAULT_ADDRESS: env.get("GARDEN_PROXY_DEFAULT_ADDRESS").required(false).asString(),
GARDEN_SERVER_PORT: env.get("GARDEN_SERVER_PORT").required(false).asPortNumber(),
GARDEN_SKIP_TESTS: env.get("GARDEN_SKIP_TESTS").required(false).default("").asString(),
GARDEN_HARD_CONCURRENCY_LIMIT: env.get("GARDEN_HARD_CONCURRENCY_LIMIT").required(false).default(50).asInt(),
Expand Down
6 changes: 5 additions & 1 deletion core/src/proxy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import { LogEntry } from "./logger/log-entry"
import { GetPortForwardResult } from "./types/plugin/service/getPortForward"
import { LocalAddress } from "./db/entities/local-address"
import { ConfigGraph } from "./config-graph"
import { gardenEnv } from "./constants"

interface PortProxy {
key: string
Expand Down Expand Up @@ -220,7 +221,10 @@ async function createProxy({ garden, graph, log, service, spec }: StartPortProxy
let localPort: number | undefined
const preferredLocalPort = spec.preferredLocalPort || spec.targetPort

if (!spec.preferredLocalPort) {
if (gardenEnv.GARDEN_PROXY_DEFAULT_ADDRESS) {
localIp = gardenEnv.GARDEN_PROXY_DEFAULT_ADDRESS
} else if (!spec.preferredLocalPort) {
// TODO: drop this in 0.13, it causes more issues than it solves
// Only try a non-default IP if a preferred port isn't set
const preferredLocalAddress = await LocalAddress.resolve({
projectName: garden.projectName,
Expand Down

0 comments on commit 21120c5

Please sign in to comment.