diff --git a/calico.py b/calico.py index d1794cdae..f3ba5135a 100755 --- a/calico.py +++ b/calico.py @@ -26,7 +26,11 @@ from pycalico import netns from pycalico.netns import Namespace, CalledProcessError from pycalico.datastore import (DatastoreClient, ETCD_AUTHORITY_ENV, - ETCD_ENDPOINTS_ENV) + ETCD_ENDPOINTS_ENV, + ETCD_SCHEME_ENV, + ETCD_KEY_FILE_ENV, + ETCD_CERT_FILE_ENV, + ETCD_CA_CERT_FILE_ENV) from pycalico.datastore_errors import MultipleEndpointsMatch from pykube.config import KubeConfig @@ -762,6 +766,22 @@ def main(): os.environ[ETCD_ENDPOINTS_ENV] = etcd_endpoints _log.debug("Using %s=%s", ETCD_ENDPOINTS_ENV, etcd_endpoints) + etcd_scheme = network_config.get(ETCD_SCHEME_KEY) + os.environ[ETCD_SCHEME_ENV] = etcd_scheme + _log.debug("Using %s=%s", ETCD_SCHEME_ENV, etcd_scheme) + + etcd_key_file = network_config.get(ETCD_KEY_FILE_KEY) + os.environ[ETCD_KEY_FILE_ENV] = etcd_key_file + _log.debug("Using %s=%s", ETCD_KEY_FILE_ENV, etcd_key_file) + + etcd_cert_file = network_config.get(ETCD_CERT_FILE_KEY) + os.environ[ETCD_CERT_FILE_ENV] = etcd_cert_file + _log.debug("Using %s=%s", ETCD_CERT_FILE_ENV, etcd_cert_file) + + etcd_ca_cert_file = network_config.get(ETCD_CA_CERT_FILE_KEY) + os.environ[ETCD_CA_CERT_FILE_ENV] = etcd_ca_cert_file + _log.debug("Using %s=%s", ETCD_CA_CERT_FILE_ENV, etcd_ca_cert_file) + # Get the CNI environment. env = os.environ.copy() _log.debug("Loaded environment:\n%s", json.dumps(env, indent=2)) diff --git a/calico_cni/constants.py b/calico_cni/constants.py index 6f926650d..3c34725e1 100644 --- a/calico_cni/constants.py +++ b/calico_cni/constants.py @@ -48,6 +48,11 @@ # configuration file. ETCD_AUTHORITY_KEY = "etcd_authority" ETCD_ENDPOINTS_KEY = "etcd_endpoints" +ETCD_SCHEME_KEY = "etcd_scheme" +ETCD_KEY_FILE_KEY = "etcd_key_file" +ETCD_CERT_FILE_KEY = "etcd_cert_file" +ETCD_CA_CERT_FILE_KEY = "etcd_ca_cert_file" + LOG_LEVEL_FILE_KEY = "log_level" LOG_LEVEL_STDERR_KEY = "log_level_stderr" POLICY_KEY = "policy"