diff --git a/bindata/network/multus/multus.yaml b/bindata/network/multus/multus.yaml index f3fe22c52d..ddffe070f6 100644 --- a/bindata/network/multus/multus.yaml +++ b/bindata/network/multus/multus.yaml @@ -106,6 +106,23 @@ data: fi rm -Rf $UPGRADE_DIRECTORY --- +apiVersion: v1 +kind: ConfigMap +metadata: + name: whereabouts-flatfile-config + namespace: openshift-multus +data: + whereabouts.conf: | + { + "datastore": "kubernetes", + "kubernetes": { + "kubeconfig": "/etc/kubernetes/cni/net.d/whereabouts.d/whereabouts.kubeconfig" + }, + "reconciler_cron_expression": "30 4 * * *", + "log_level": "verbose", + "configuration_path": "/etc/kubernetes/cni/net.d/whereabouts.d" + } +--- kind: ConfigMap apiVersion: v1 metadata: @@ -157,7 +174,6 @@ data: "bootstrapKubeconfig": "{{ .KubeletKubeconfigPath }}", "certDir": "/etc/cni/multus/certs", "certDuration": "24h" - }, {{ end }} "cniConfigDir": "/host/etc/cni/net.d", "multusConfigFile": "auto", @@ -325,7 +341,7 @@ spec: valueFrom: fieldRef: fieldPath: spec.nodeName - terminationGracePeriodSeconds: 10 + terminationGracePeriodSeconds: 30 volumes: - name: system-cni-dir hostPath: @@ -540,21 +556,43 @@ spec: CNI_BIN_DIR=${CNI_BIN_DIR:-"/host/opt/cni/bin/"} WHEREABOUTS_KUBECONFIG_FILE_HOST=${WHEREABOUTS_KUBECONFIG_FILE_HOST:-"/etc/cni/net.d/whereabouts.d/whereabouts.kubeconfig"} - CNI_CONF_DIR=${CNI_CONF_DIR:-"/host/etc/cni/net.d"} + CNI_CONF_DIR=${CNI_CONF_DIR:-"/host{{ .SystemCNIConfDir }}"} + WHEREABOUTS_RECONCILER_CRON=${WHEREABOUTS_RECONCILER_CRON:-30 4 * * *} # Make a whereabouts.d directory (for our kubeconfig) mkdir -p $CNI_CONF_DIR/whereabouts.d WHEREABOUTS_KUBECONFIG=$CNI_CONF_DIR/whereabouts.d/whereabouts.kubeconfig - WHEREABOUTS_GLOBALCONFIG=$CNI_CONF_DIR/whereabouts.d/whereabouts.conf + WHEREABOUTS_CONF_FILE=$CNI_CONF_DIR/whereabouts.d/whereabouts.conf + WHEREABOUTS_KUBECONFIG_LITERAL=$(echo "$WHEREABOUTS_KUBECONFIG" | sed -e s'|/host||') + + # Write the nodename to the whereabouts.d directory for standardized hostname reference across cloud providers + echo $NODENAME > $CNI_CONF_DIR/whereabouts.d/nodename - # ------------------------------- Generate a "kube-config" SERVICE_ACCOUNT_PATH=/var/run/secrets/kubernetes.io/serviceaccount KUBE_CA_FILE=${KUBE_CA_FILE:-$SERVICE_ACCOUNT_PATH/ca.crt} - SERVICEACCOUNT_TOKEN=$(cat $SERVICE_ACCOUNT_PATH/token) + SERVICE_ACCOUNT_TOKEN=$(cat $SERVICE_ACCOUNT_PATH/token) + SERVICE_ACCOUNT_TOKEN_PATH=$SERVICE_ACCOUNT_PATH/token SKIP_TLS_VERIFY=${SKIP_TLS_VERIFY:-false} + function log() + { + echo "$(date -Iseconds) ${1}" + } + + function error() + { + log "ERR: {$1}" + } + + function warn() + { + log "WARN: {$1}" + } + + + function generateKubeConfig { # Check if we're running as a k8s pod. if [ -f "$SERVICE_ACCOUNT_PATH/token" ]; then # We're running as a k8d pod - expect some variables. @@ -571,6 +609,12 @@ spec: TLS_CFG="certificate-authority-data: $(cat $KUBE_CA_FILE | base64 | tr -d '\n')" fi + # Kubernetes service address must be wrapped if it is IPv6 address + KUBERNETES_SERVICE_HOST_WRAP=$KUBERNETES_SERVICE_HOST + if [ "$KUBERNETES_SERVICE_HOST_WRAP" != "${KUBERNETES_SERVICE_HOST_WRAP#*:[0-9a-fA-F]}" ]; then + KUBERNETES_SERVICE_HOST_WRAP=\[$KUBERNETES_SERVICE_HOST_WRAP\] + fi + # Write a kubeconfig file for the CNI plugin. Do this # to skip TLS verification for now. We should eventually support # writing more complete kubeconfig files. This is only used @@ -578,18 +622,18 @@ spec: touch $WHEREABOUTS_KUBECONFIG chmod ${KUBECONFIG_MODE:-600} $WHEREABOUTS_KUBECONFIG cat > $WHEREABOUTS_KUBECONFIG < $WHEREABOUTS_GLOBALCONFIG < $WHEREABOUTS_CONF_FILE < $WHEREABOUTS_KUBECONFIG <