Skip to content

[Bug] LOCAL_DATASERVER is not respected #418

@markafarrell

Description

@markafarrell

Problem

The LOCAL_DATASERVER environment variable is not respected. This becomes evident when SDC is deployed in a namespace other than sdc-system.

Reproduction

echo "==> Cleaning up any existing minikube cluster"
minikube delete --all || true

echo "==> Starting minikube (this may take a minute)"
minikube start --embed-certs

echo "==> Ensuring nodes are Ready"
kubectl wait --for=condition=Ready nodes --all --timeout=120s

NAMESPACE=network-system
echo "==> Install sdc in namespace ${NAMESPACE}"

tmpdir=$(mktemp -d)
pushd $tmpdir
cat <<EOF > kustomization.yaml
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: network-system
resources:
  - https://docs.sdcio.dev/artifacts/basic-usage/installation.yaml
EOF
kubectl kustomize . | kubectl apply -f -
popd

rm -rf $tmpdir

echo "==> Waiting for api-server in namespace ${NAMESPACE} to become Ready"
kubectl rollout status deployment/api-server -n ${NAMESPACE}

echo "==> Waiting for controller in namespace ${NAMESPACE} to become Ready"
kubectl rollout status deployment/controller -n ${NAMESPACE}

echo "==> Waiting for data-server in namespace ${NAMESPACE} to become Ready"
kubectl wait --for=jsonpath='{.status.readyReplicas}'=1 statefulset/data-server-controller -n ${NAMESPACE}

echo "==> Get for data-server environment variables"
kubectl -n ${NAMESPACE} get statefulsets data-server-controller -o json | jq ".spec.template.spec.containers[0].env"

echo "==> Get for data-server connection failure logs"
kubectl --context=minikube -n ${NAMESPACE} logs statefulsets/data-server-controller | grep "connect failed"

Result

{"time":"2026-02-26T02:16:50.255638405Z","level":"WARN","message":"connect failed","logger":"sdc-controller-logger","data":{"error":{"message":"dataserver connect: connect \"data-server.sdc-system.svc.cluster.local:56000\": context deadline exceeded","stack":["/home/runner/go/pkg/mod/github.com/henderiw/logger@v0.0.0-20230911123436-8655829b1abe/log/handler.go:34 (github.com/henderiw/logger/log.(*Handler).Handle)","/home/runner/work/config-server/config-server/pkg/sdc/dataserver/manager/manager.go:203 (github.com/sdcio/config-server/pkg/sdc/dataserver/manager.(*DSConnManager).run)","/opt/hostedtoolcache/go/1.24.3/x64/src/runtime/asm_amd64.s:1700 (runtime.goexit)"]}}}

Controller is attempting to connect to data-server.sdc-system.svc.cluster.local:56000 instead of localhost:56000.

I believe this is due to https://github.com/sdcio/config-server/blob/main/cmd/controller/main.go#L138. We should instead be calling GetLocalDataServerAddress() not GetDataServerAddress()

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions