Configure model proxies

If your model runs in a restricted network, configure Juju model proxies so the DataHub containers can reach external services, such as Python package indexes for ingestion recipes or an external identity provider.

Set the proxy configuration

juju model-config juju-http-proxy=http://proxy.example:8080
juju model-config juju-https-proxy=http://proxy.example:8080
juju model-config juju-no-proxy=127.0.0.1,localhost,.svc,.cluster.local

The charm propagates the settings as follows:

  • datahub-actions receives the standard proxy variables (HTTP_PROXY, HTTPS_PROXY, NO_PROXY, and lowercase variants), which are used by Python tooling and ingestion runs.

  • datahub-frontend receives the equivalent JVM proxy settings, used for example when contacting an identity provider.

  • Trino ingestion sources managed by the charm get the proxy variables added to their execution environment. The charm keeps them in step with the model configuration, so existing ingestion sources pick up a changed proxy, and lose the variables again if you remove the proxy configuration.

Apply the change

Changing model configuration does not propagate to a running unit. The JUJU_CHARM_HTTP_PROXY, JUJU_CHARM_HTTPS_PROXY, and JUJU_CHARM_NO_PROXY environment variables the charm reads are set only when the unit’s pod starts.

To apply the change, delete the pod so it is recreated with the new model configuration:

kubectl -n <NAMESPACE> delete pod datahub-k8s-0

Once the pod is running again, verify that the new values reached the container:

kubectl -n <NAMESPACE> exec -c datahub-actions datahub-k8s-0 -- pebble plan | grep -i proxy