diff options
Diffstat (limited to 'xci/installer')
-rwxr-xr-x | xci/installer/kubespray/deploy.sh | 43 | ||||
-rw-r--r-- | xci/installer/kubespray/files/k8s-cluster.yml | 7 | ||||
-rw-r--r-- | xci/installer/kubespray/playbooks/configure-opnfvhost.yml | 7 | ||||
-rw-r--r-- | xci/installer/osa/files/ha/inventory | 4 | ||||
-rw-r--r-- | xci/installer/osa/files/mini/inventory | 4 | ||||
-rw-r--r-- | xci/installer/osa/files/noha/inventory | 4 | ||||
-rw-r--r-- | xci/installer/osa/playbooks/configure-opnfvhost.yml | 15 | ||||
-rw-r--r-- | xci/installer/osa/playbooks/configure-targethosts.yml | 42 |
8 files changed, 80 insertions, 46 deletions
diff --git a/xci/installer/kubespray/deploy.sh b/xci/installer/kubespray/deploy.sh index 548ed771..7695894b 100755 --- a/xci/installer/kubespray/deploy.sh +++ b/xci/installer/kubespray/deploy.sh @@ -7,11 +7,13 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## +set -o errexit +set -o nounset +set -o pipefail K8_XCI_PLAYBOOKS="$(dirname $(realpath ${BASH_SOURCE[0]}))/playbooks" export ANSIBLE_ROLES_PATH=$HOME/.ansible/roles:/etc/ansible/roles:${XCI_PATH}/xci/playbooks/roles - #------------------------------------------------------------------------------- # Configure localhost #------------------------------------------------------------------------------- @@ -72,14 +74,41 @@ fi echo "Info: Using kubespray to deploy the kubernetes cluster" echo "-----------------------------------------------------------------------" -ssh root@$OPNFV_HOST_IP "cd releng-xci/.cache/repos/kubespray;\ +ssh root@$OPNFV_HOST_IP "set -o pipefail; cd releng-xci/.cache/repos/kubespray;\ ansible-playbook ${XCI_ANSIBLE_PARAMS} \ -i opnfv_inventory/inventory.cfg cluster.yml -b | tee setup-kubernetes.log" scp root@$OPNFV_HOST_IP:~/releng-xci/.cache/repos/kubespray/setup-kubernetes.log \ $LOG_PATH/setup-kubernetes.log -# check the log to see if we have any error -if grep -q 'failed=1\|unreachable=1' $LOG_PATH/setup-kubernetes.log; then - echo "Error: Kubernetes cluster setup failed!" - exit 1 -fi +echo +echo "-----------------------------------------------------------------------" echo "Info: Kubernetes installation is successfully completed!" +echo "-----------------------------------------------------------------------" + +# Configure the kubernetes authentication in opnfv host. +ssh root@$OPNFV_HOST_IP "mkdir -p ~/.kube/;\ + cp -f ~/admin.conf ~/.kube/config; \ + cp -f ~/kubectl /usr/local/bin" + +echo "Login opnfv host ssh root@$OPNFV_HOST_IP +according to the user-guide to create a service +https://kubernetes.io/docs/user-guide/walkthrough/k8s201/" + +echo +echo "-----------------------------------------------------------------------" +echo "Info: Kubernetes login details" +echo "-----------------------------------------------------------------------" + +# Get the dashborad URL +DASHBOARD_SERVICE=$(ssh root@$OPNFV_HOST_IP "kubectl get service -n kube-system |grep kubernetes-dashboard") +DASHBOARD_PORT=$(echo ${DASHBOARD_SERVICE} | awk '{print $5}' |awk -F "[:/]" '{print $2}') +KUBER_SERVER_URL=$(ssh root@$OPNFV_HOST_IP "grep -r server ~/.kube/config") +echo "Info: Kubernetes Dashboard URL:" +echo $KUBER_SERVER_URL | awk '{print $2}'| sed -n "s#:[0-9]*\$#:$DASHBOARD_PORT#p" + +# Get the dashborad user and password +MASTER_IP=$(echo ${KUBER_SERVER_URL} | awk '{print $2}' |awk -F "[:/]" '{print $4}') +USER_CSV=$(ssh root@$MASTER_IP " cat /etc/kubernetes/users/known_users.csv") +USERNAME=$(echo $USER_CSV |awk -F ',' '{print $2}') +PASSWORD=$(echo $USER_CSV |awk -F ',' '{print $1}') +echo "Info: Dashboard username: ${USERNAME}" +echo "Info: Dashboard password: ${PASSWORD}" diff --git a/xci/installer/kubespray/files/k8s-cluster.yml b/xci/installer/kubespray/files/k8s-cluster.yml index aeee573a..20d3091d 100644 --- a/xci/installer/kubespray/files/k8s-cluster.yml +++ b/xci/installer/kubespray/files/k8s-cluster.yml @@ -157,7 +157,7 @@ kube_users: ## It is possible to activate / deactivate selected authentication methods (basic auth, static token auth) #kube_oidc_auth: false -#kube_basic_auth: false +kube_basic_auth: true #kube_token_auth: false @@ -270,9 +270,10 @@ local_volumes_enabled: false persistent_volumes_enabled: false # Make a copy of kubeconfig on the host that runs Ansible in GITDIR/artifacts -# kubeconfig_localhost: false +kubeconfig_localhost: true # Download kubectl onto the host that runs Ansible in GITDIR/artifacts -# kubectl_localhost: false +kubectl_localhost: true +artifacts_dir: "{{ ansible_env.HOME }}" # dnsmasq # dnsmasq_upstream_dns_servers: diff --git a/xci/installer/kubespray/playbooks/configure-opnfvhost.yml b/xci/installer/kubespray/playbooks/configure-opnfvhost.yml index 4db9ac1a..d6e1d7b8 100644 --- a/xci/installer/kubespray/playbooks/configure-opnfvhost.yml +++ b/xci/installer/kubespray/playbooks/configure-opnfvhost.yml @@ -62,6 +62,13 @@ state: present update_cache: "{{ (ansible_pkg_mgr == 'apt') | ternary('yes', omit) }}" when: XCI_FLAVOR == 'aio' + + - name: change dashboard server type to NodePort + lineinfile: + path: "{{ remote_xci_path }}/.cache/repos/kubespray/roles/kubernetes-apps/ansible/templates/dashboard.yml.j2" + insertafter: 'targetPort' + line: " type: NodePort" + - name: pip install ansible pip: name: ansible diff --git a/xci/installer/osa/files/ha/inventory b/xci/installer/osa/files/ha/inventory index 1ef4502a..f5d882ef 100644 --- a/xci/installer/osa/files/ha/inventory +++ b/xci/installer/osa/files/ha/inventory @@ -9,3 +9,7 @@ controller02 ansible_ssh_host=192.168.122.5 [compute] compute00 ansible_ssh_host=192.168.122.6 compute01 ansible_ssh_host=192.168.122.7 + +[openstack:children] +controller +compute diff --git a/xci/installer/osa/files/mini/inventory b/xci/installer/osa/files/mini/inventory index 63a1bfab..4224131f 100644 --- a/xci/installer/osa/files/mini/inventory +++ b/xci/installer/osa/files/mini/inventory @@ -6,3 +6,7 @@ controller00 ansible_ssh_host=192.168.122.3 [compute] compute00 ansible_ssh_host=192.168.122.4 + +[openstack:children] +controller +compute diff --git a/xci/installer/osa/files/noha/inventory b/xci/installer/osa/files/noha/inventory index 90b31531..0e3b8d84 100644 --- a/xci/installer/osa/files/noha/inventory +++ b/xci/installer/osa/files/noha/inventory @@ -7,3 +7,7 @@ controller00 ansible_ssh_host=192.168.122.3 [compute] compute00 ansible_ssh_host=192.168.122.4 compute01 ansible_ssh_host=192.168.122.5 + +[openstack:children] +controller +compute diff --git a/xci/installer/osa/playbooks/configure-opnfvhost.yml b/xci/installer/osa/playbooks/configure-opnfvhost.yml index 8b596b3c..4c30f4d1 100644 --- a/xci/installer/osa/playbooks/configure-opnfvhost.yml +++ b/xci/installer/osa/playbooks/configure-opnfvhost.yml @@ -75,12 +75,6 @@ - name: copy user_variables_ceph.yml shell: "/bin/cp -rf {{ remote_xci_flavor_files }}/user_variables_ceph.yml {{OPENSTACK_OSA_ETC_PATH}}/user_variables_ceph.yml" when: XCI_CEPH_ENABLED == "true" - # TODO: We need to get rid of this as soon as the issue is fixed upstream - - name: change the haproxy state from disable to enable - replace: - dest: "{{OPENSTACK_OSA_PATH}}/playbooks/os-keystone-install.yml" - regexp: '(\s+)haproxy_state: disabled' - replace: '\1haproxy_state: enabled' - name: copy OPNFV OpenStack playbook shell: "/bin/cp -rf {{ remote_xci_path }}/xci/installer/osa/files/setup-openstack.yml {{OPENSTACK_OSA_PATH}}/playbooks" - name: copy pinned versions of OSA Roles and global requirements @@ -136,6 +130,10 @@ content: "{{ xci_ssl_key }}" dest: "/etc/ssl/private/xci.key" become: true + - name: fetch xci environment + copy: + src: "{{ XCI_PATH }}/.cache/xci.env" + dest: /root/xci.env - hosts: localhost remote_user: root @@ -173,3 +171,8 @@ src: "{{ ansible_env.HOME }}/openrc" dest: "{{ XCI_PATH }}/.cache/openrc" flat: true + + - name: add public key to host + copy: + src: "{{ XCI_PATH }}/xci/files/authorized_keys" + dest: /root/.ssh/authorized_keys diff --git a/xci/installer/osa/playbooks/configure-targethosts.yml b/xci/installer/osa/playbooks/configure-targethosts.yml index 4341a884..31c3e02e 100644 --- a/xci/installer/osa/playbooks/configure-targethosts.yml +++ b/xci/installer/osa/playbooks/configure-targethosts.yml @@ -1,13 +1,5 @@ --- -- hosts: all - remote_user: root - tasks: - - name: add public key to host - copy: - src: "{{ XCI_PATH }}/xci/files/authorized_keys" - dest: /root/.ssh/authorized_keys - -- hosts: controller +- hosts: openstack remote_user: root vars_files: - "{{ XCI_PATH }}/xci/var/opnfv.yml" @@ -21,25 +13,15 @@ - "{{ XCI_FLAVOR_ANSIBLE_FILE_PATH }}/flavor-vars.yml" roles: - role: bootstrap-host - -- hosts: compute - remote_user: root - vars_files: - - "{{ XCI_PATH }}/xci/var/opnfv.yml" - - pre_tasks: - - name: Load distribution variables - include_vars: - file: "{{ item }}" - with_items: - - "{{ XCI_PATH }}/xci/var/{{ ansible_os_family }}.yml" - - "{{ XCI_FLAVOR_ANSIBLE_FILE_PATH }}/flavor-vars.yml" - roles: - - role: bootstrap-host - - role: configure-ceph - when: XCI_CEPH_ENABLED == "true" - -- hosts: compute00 - remote_user: root - roles: - role: configure-nfs + when: + - "'compute' in group_names" + - role: configure-ceph + when: + - XCI_CEPH_ENABLED == "true" + - "'compute' in group_names" + tasks: + - name: add public key to host + copy: + src: "{{ XCI_PATH }}/xci/files/authorized_keys" + dest: /root/.ssh/authorized_keys |