@rm -rf $(PACKAGE_DIR)/*
@rm -rf $(OUTPUT_DIR)
-# start up a local helm repo to serve up helm chart packages
-repo:
- @mkdir -p $(PACKAGE_DIR)
- @helm serve --repo-path $(PACKAGE_DIR) &
- @helm repo index $(PACKAGE_DIR)
- @helm repo add onap4k8s http://127.0.0.1:8879
-
-# stop local helm repo
-repo-stop:
- @pkill helm
- @helm repo remove onap4k8s
%:
@:
# Installation of ONAP4K8S helm chart
#################################################################
-1. Create a helm repo (onap4k8s) from Makefile
-$ make repo
-
1. Run "Makefile" in ONAP4K8S repo
$ make all
dependencies:
- name: common
version: ~5.x-0
- repository: '@onap4k8s'
+ repository: 'file://../common'
##
#storageClass: "-"
accessMode: "ReadWriteOnce"
+ storageType: hostPath
storage: "1Gi"
mountPath: /dockerdata-nfs
mountSubPath: k8s-etcd
dependencies:
- name: common
version: ~5.x-0
- repository: '@onap4k8s'
+ repository: 'file://../common'
# local reference to common chart, as it is
# a part of this chart's package and will not
# be published independently to a repo (at this point)
- repository: '@onap4k8s'
+ repository: 'file://../common'
- name: mongo
version: ~5.x-0
- repository: '@onap4k8s'
+ repository: 'file://../mongo'
- name: etcd
version: ~5.x-0
- repository: '@onap4k8s'
+ repository: 'file://../etcd'
@rm -rf $(PACKAGE_DIR)/*
@rm -rf $(OUTPUT_DIR)
-# start up a local helm repo to serve up helm chart packages
-repo:
- @mkdir -p $(PACKAGE_DIR)
- @helm serve --repo-path $(PACKAGE_DIR) &
- @helm repo index $(PACKAGE_DIR)
- @helm repo add local http://127.0.0.1:8879
-
-# stop local helm repo
-repo-stop:
- @pkill helm
- @helm repo remove local
%:
@:
### Steps to generate and install packages
-**1. Create a local helm repo from Makefile**
-
-`$ make repo`
-
-**2. Run make file to package all the required chart**
+**1. Run make file to package all the required chart**
`$ make clean`
| **emco-0.1.0.tgz** | Includes all charts including database, all services and tools |
-**3. Deploy EMCO Packages for Databases and Services**
+**2. Deploy EMCO Packages for Databases and Services**
`$ helm install dist/packages/emco-db-0.1.0.tgz --name emco-db --namespace emco`
`$ helm install dist/packages/emco-services-0.1.0.tgz --name emco-services --namespace emco`
-**4. Deploy tools (Optional)**
+**3. Deploy tools (Optional)**
`$ helm install dist/packages/emco-tools-0.1.0.tgz --name emco-tools --namespace emco`
`$ helm install dist/packages/emco-0.1.0.tgz --name emco --namespace emco`
-**5. To check logs of the different Microservices check fluentd logs**
+**4. To check logs of the different Microservices check fluentd logs**
`kubectl logs emco-tools-fluentd-0 -n emco | grep orchestrator`
-**6. Delete all packages**
+**5. Delete all packages**
`$ helm delete emco-services --purge`
`$ helm delete emco --purge`
-**7. Delete local helm repo**
+**6. Delete local helm repo**
`make repo-stop`
Workarounds:
* remove the finalizers section using `kubectl edit persistentvolumes emco-db-emco-etcd-data-0`
-* or, if appropriate, delete the entire namespace using `kubectl delete namespace emco`
\ No newline at end of file
+* or, if appropriate, delete the entire namespace using `kubectl delete namespace emco`
dependencies:
- name: common
version: ~0.x-0
- repository: '@local'
+ repository: 'file://../common'
dependencies:
- name: common
version: ~0.x-0
- repository: '@local'
+ repository: 'file://../common'
dependencies:
- name: common
version: ~0.x-0
- repository: '@local'
+ repository: 'file://../common'
- name: mongo
version: ~4.x-0
- repository: '@local'
+ repository: 'file://../mongo'
- name: etcd
version: ~3.x-0
- repository: '@local'
+ repository: 'file://../etcd'
dependencies:
- name: common
version: ~0.x-0
- repository: '@local'
+ repository: 'file://../common'
- name: orchestrator
version: ~0.x-0
- repository: '@local'
+ repository: 'file://../orchestrator'
- name: ncm
version: ~0.x-0
- repository: '@local'
+ repository: 'file://../ncm'
- name: rsync
version: ~0.x-0
- repository: '@local'
+ repository: 'file://../rsync'
- name: clm
version: ~0.x-0
- repository: '@local'
+ repository: 'file://../clm'
- name: ovnaction
version: ~0.x-0
- repository: '@local'
+ repository: 'file://../ovnaction'
- name: dcm
version: ~0.x-0
- repository: '@local'
+ repository: 'file://../dcm'
dependencies:
- name: common
version: ~0.x-0
- repository: '@local'
+ repository: 'file://../common'
- name: fluentd
version: ~1.x-0
- repository: '@local'
+ repository: 'file://../fluentd'
dependencies:
- name: emco-db
version: ~0.x-0
- repository: '@local'
+ repository: 'file://../emco-db'
- name: emco-tools
version: ~0.x-0
- repository: '@local'
+ repository: 'file://../emco-tools'
- name: emco-services
version: ~0.x-0
- repository: '@local'
+ repository: 'file://../emco-services'
dependencies:
- name: common
version: ~0.x-0
- repository: '@local'
+ repository: 'file://../common'
enabled: false
volumeReclaimPolicy: Retain
accessMode: ReadWriteMany
+ storageType: hostPath
storage: 1Gi
mountPath: /dockerdata-nfs
mountSubPath: "etcd/data"
dependencies:
- name: common
version: ~0.x-0
- repository: '@local'
+ repository: 'file://../common'
dependencies:
- name: common
version: ~0.x-0
- repository: '@local'
+ repository: 'file://../common'
dependencies:
- name: common
version: ~0.x-0
- repository: '@local'
+ repository: 'file://../common'
dependencies:
- name: common
version: ~0.x-0
- repository: '@local'
+ repository: 'file://../common'
dependencies:
- name: common
version: ~0.x-0
- repository: '@local'
+ repository: 'file://../common'
- src: andrewrothstein.go
version: v2.1.15
- src: andrewrothstein.kubernetes-helm
- version: v1.2.17
+ version: v1.3.16
- src: geerlingguy.docker
version: 2.5.2
file: kud-vars.yml
- name: Change the emco directory and run helm delete
- command: /usr/local/bin/helm delete --purge emco
+ command: /usr/local/bin/helm uninstall --namespace emco emco
register: helm_delete
args:
chdir: /opt/multicloud/deployments/helm/v2/emco
- debug:
var: make_clean.stdout_lines
- - name: Change the emco directory and make repo-stop
- command: /usr/bin/make repo-stop
- register: make_repo_stop
- args:
- chdir: /opt/multicloud/deployments/helm/v2/emco
-
- - debug:
- var: make_repo_stop.stdout_lines
-
- name: clean multicloud-k8s path
file:
state: absent
yum: name=make state=present update_cache=yes
when: ansible_distribution == "CentOS"
- - name: Change the emco directory and run the command make repo
- command: /usr/bin/make repo
- register: make_repo
- args:
- chdir: /opt/multicloud/deployments/helm/v2/emco
-
- - debug:
- var: make_repo.stdout_lines
-
- name: Change the emco directory and run the command make all
command: /usr/bin/make all
register: make_all
var: make_all.stdout_lines
- name: Change the emco directory and run the command helm install
- command: /usr/local/bin/helm install dist/packages/emco-0.1.0.tgz --name emco --namespace emco
+ command: /usr/local/bin/helm install --namespace emco --create-namespace --set emco-tools.fluentd.clusterDomain={{ cluster_name.stdout }} emco dist/packages/emco-0.1.0.tgz
register: helm_install
args:
chdir: /opt/multicloud/deployments/helm/v2/emco
when: helm_client.rc != 0
vars:
kubernetes_helm_ver: "v{{ helm_client_version }}"
- tasks:
- - name: Initialize helm client
- command: helm init -c
- args:
- creates: ~/.helm
- hosts: kube-node
become: yes
file: kud-vars.yml
- name: Change the onap4k8s directory and run helm delete
- command: /usr/local/bin/helm delete --purge multicloud-onap8ks
+ command: /usr/local/bin/helm uninstall --namespace onap4k8s-ns multicloud-onap8ks
register: helm_delete
args:
chdir: /opt/multicloud/deployments/helm/onap4k8s
- debug:
var: make_clean.stdout_lines
- - name: Change the onap4k8s directory and make repo-stop
- command: /usr/bin/make repo-stop
- register: make_repo_stop
- args:
- chdir: /opt/multicloud/deployments/helm/onap4k8s
-
- - debug:
- var: make_repo_stop.stdout_lines
-
- name: clean multicloud-k8s path
file:
state: absent
yum: name=make state=present update_cache=yes
when: ansible_distribution == "CentOS"
- - name: Change the onap4k8s directory and run the command make repo
- command: /usr/bin/make repo
- register: make_repo
- args:
- chdir: /opt/multicloud/deployments/helm/onap4k8s
-
- - debug:
- var: make_repo.stdout_lines
-
- name: Change the onap4k8s directory and run the command make all
command: /usr/bin/make all
register: make_all
var: make_all.stdout_lines
- name: Change the onap4k8s directory and run the command helm install
- command: /usr/local/bin/helm install dist/packages/multicloud-k8s-5.0.0.tgz --name multicloud-onap8ks --namespace onap4k8s-ns --set service.type=NodePort
+ command: /usr/local/bin/helm install --namespace onap4k8s-ns --create-namespace --set service.type=NodePort multicloud-onap8ks dist/packages/multicloud-k8s-5.0.0.tgz
register: helm_install
args:
chdir: /opt/multicloud/deployments/helm/onap4k8s
#cmk_exclusive_mode: packed # choose between: packed, spread, default: packed
go_version: '1.12.5'
-kubespray_version: 2.12.6
-helm_client_version: 2.13.1
+kubespray_version: 2.14.1
+# This matches the helm_version from kubespray defaults
+helm_client_version: 3.2.4
# kud playbooks not compatible with 2.8.0 - see MULTICLOUD-634
ansible_version: 2.9.7
--- /dev/null
+---
+# The mitogen module used in kubespray requires python2 on the nodes.
+# On some distributions (i.e. Ubuntu 18.04), the default version of
+# python is python3.
+#
+# When python2 is not present a failure message similar to "bash:
+# /usr/bin/python: No such file or directory" will be reported.
+#
+# Note the use of "strategy: linear" below to temporarily bypass
+# mitogen.
+#
+- name: Install python2
+ hosts: k8s-cluster
+ strategy: linear
+ tasks:
+ - name: Install python2
+ package:
+ name: python
+ state: present
pip install --no-cache-dir ansible==$version
}
-# install_k8s() - Install Kubernetes using kubespray tool
function install_kubespray {
echo "Deploying kubernetes"
version=$(grep "kubespray_version" ${kud_playbooks}/kud-vars.yml | \
_install_ansible
wget https://github.com/kubernetes-incubator/kubespray/archive/$tarball
tar -C $dest_folder -xzf $tarball
- mv $dest_folder/kubespray-$version/ansible.cfg /etc/ansible/ansible.cfg
chown -R root:root $dest_folder/kubespray-$version
mkdir -p ${local_release_dir}/containers
rm $tarball
fi
}
+# install_k8s() - Install Kubernetes using kubespray tool
function install_k8s {
- version=$(grep "kubespray_version" ${kud_playbooks}/kud-vars.yml | \
- awk -F ': ' '{print $2}')
local cluster_name=$1
+ ansible-playbook $verbose -i \
+ $kud_inventory $kud_playbooks/preconfigure-kubespray.yml \
+ --become --become-user=root | \
+ tee $cluster_log/setup-kubernetes.log
ansible-playbook $verbose -i \
$kud_inventory $dest_folder/kubespray-$version/cluster.yml \
-e cluster_name=$cluster_name --become --become-user=root | \
}
function install_cluster {
+ version=$(grep "kubespray_version" ${kud_playbooks}/kud-vars.yml | \
+ awk -F ': ' '{print $2}')
+ export ANSIBLE_CONFIG=$dest_folder/kubespray-$version/ansible.cfg
install_k8s $1
if [ ${2:+1} ]; then
echo "install default addons and $2"
local_volumes_enabled: true
local_volume_provisioner_enabled: true
-## Change this to use another Kubernetes version, e.g. a current beta release
-kube_version: v1.16.9
-
# Helm deployment
helm_enabled: true
echo "export OVN_CENTRAL_ADDRESS=$(get_ovn_central_address)" | sudo tee --append /etc/environment
echo "export KUBE_CONFIG_DIR=/opt/kubeconfig" | sudo tee --append /etc/environment
echo "export CSAR_DIR=/opt/csar" | sudo tee --append /etc/environment
+ echo "export ANSIBLE_CONFIG=${ANSIBLE_CONFIG}" | sudo tee --append /etc/environment
}
# install_k8s() - Install Kubernetes using kubespray tool
_install_ansible
wget https://github.com/kubernetes-incubator/kubespray/archive/$tarball
sudo tar -C $dest_folder -xzf $tarball
- sudo mv $dest_folder/kubespray-$version/ansible.cfg /etc/ansible/ansible.cfg
sudo chown -R $USER $dest_folder/kubespray-$version
sudo mkdir -p ${local_release_dir}/containers
rm $tarball
if [[ -n "${https_proxy:-}" ]]; then
echo "https_proxy: \"$https_proxy\"" | tee --append $kud_inventory_folder/group_vars/all.yml
fi
+ export ANSIBLE_CONFIG=$dest_folder/kubespray-$version/ansible.cfg
+ ansible-playbook $verbose -i $kud_inventory $kud_playbooks/preconfigure-kubespray.yml --become --become-user=root | sudo tee $log_folder/setup-kubernetes.log
ansible-playbook $verbose -i $kud_inventory $dest_folder/kubespray-$version/cluster.yml --become --become-user=root | sudo tee $log_folder/setup-kubernetes.log
# Configure environment
local_volumes_enabled: true
local_volume_provisioner_enabled: true
-## Change this to use another Kubernetes version, e.g. a current beta release
-kube_version: v1.16.9
-
# Helm deployment
helm_enabled: true