Skip to content
Snippets Groups Projects
prepare_pods.sh 1.65 KiB
Newer Older
#!/bin/bash
# Copyright 2021 Canonical Ltd.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# For those usages not covered by the Apache License, Version 2.0 please
# contact: legal@canonical.com
#
# To get in touch with the maintainers, please contact:
# osm-charmers@lists.launchpad.net
##

MODULES="lcm pol mon ro nbi"


PUBLIC_KEY=${1:-$HOME/.ssh/id_rsa.pub}
echo "Using $PUBLIC_KEY key."
[ -f $PUBLIC_KEY ] || (echo "$PUBLIC_KEY file does not exist" && exit 1)
PUBLIC_KEY_CONTENT=`cat $PUBLIC_KEY`

mkdir -p ~/.ssh/config.d
echo "" | tee ~/.ssh/config.d/osm


for module in $MODULES; do
    if [[ `juju config -m osm $module debug_mode` == "true" ]]; then
      pod_name=`microk8s.kubectl -n osm get pods | grep -E "^$module-" | grep -v operator | cut -d " " -f 1`
      pod_ip=`microk8s.kubectl -n osm get pods $pod_name -o yaml | yq e .status.podIP -`
      echo "Host $module
  HostName $pod_ip
  User root
  # StrictHostKeyChecking no
  IdentityFile $PUBLIC_KEY" | tee -a ~/.ssh/config.d/osm
    fi
done


import_osm_config="Include config.d/osm"
touch ~/.ssh/config
grep "$import_osm_config" ~/.ssh/config || ( echo -e "$import_osm_config\n$(cat ~/.ssh/config)" > ~/.ssh/config )