1 .. This work is licensed under a Creative Commons Attribution 4.0
2 .. International License.
3 .. http://creativecommons.org/licenses/by/4.0
4 .. Copyright (C) 2022 Nordix Foundation
7 .. _HELM Best Practices Guide: https://docs.helm.sh/chart_best_practices/#requirements
8 .. _helm installation guide: https://helm.sh/docs/intro/install/
9 .. _kubectl installation guide: https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/
10 .. _Curated applications for Kubernetes: https://github.com/kubernetes/charts
11 .. _Cert-Manager Installation documentation: https://cert-manager.io/docs/installation/kubernetes/
12 .. _Cert-Manager kubectl plugin documentation: https://cert-manager.io/docs/usage/kubectl-plugin/
13 .. _Strimzi Apache Kafka Operator helm Installation documentation: https://strimzi.io/docs/operators/in-development/deploying.html#deploying-cluster-operator-helm-chart-str
15 .. _oom_base_setup_guide:
20 As part of the initial base setup of the host Kubernetes cluster,
21 the following mandatory installation and configuration steps must be completed.
29 For additional platform add-ons, see the :ref:`oom_base_optional_addons` section.
31 Install & configure kubectl
32 ***************************
33 The Kubernetes command line interface used to manage a Kubernetes cluster needs to be installed
34 and configured to run as non root.
36 For additional information regarding kubectl installation and configuration see the `kubectl installation guide`_
38 To install kubectl, execute the following, replacing the <recommended-kubectl-version> with the version defined
39 in the :ref:`versions_table` table::
41 > curl -LO https://dl.k8s.io/release/v<recommended-kubectl-version>/bin/linux/amd64/kubectl
45 > sudo mv ./kubectl /usr/local/bin/kubectl
49 > cp kube_config_cluster.yml ~/.kube/config.onap
51 > export KUBECONFIG=~/.kube/config.onap
53 > kubectl config use-context onap
55 Validate the installation::
61 NAME STATUS ROLES AGE VERSION
62 onap-control-1 Ready controlplane,etcd 3h53m v1.23.8
63 onap-control-2 Ready controlplane,etcd 3h53m v1.23.8
64 onap-k8s-1 Ready worker 3h53m v1.23.8
65 onap-k8s-2 Ready worker 3h53m v1.23.8
66 onap-k8s-3 Ready worker 3h53m v1.23.8
67 onap-k8s-4 Ready worker 3h53m v1.23.8
68 onap-k8s-5 Ready worker 3h53m v1.23.8
69 onap-k8s-6 Ready worker 3h53m v1.23.8
72 Install & configure helm
73 ************************
74 Helm is used for package and configuration management of the relevant helm charts.
75 For additional information, see the `helm installation guide`_
77 To install helm, execute the following, replacing the <recommended-helm-version> with the version defined
78 in the :ref:`versions_table` table::
80 > wget https://get.helm.sh/helm-v<recommended-helm-version>-linux-amd64.tar.gz
82 > tar -zxvf helm-v<recommended-helm-version>-linux-amd64.tar.gz
84 > sudo mv linux-amd64/helm /usr/local/bin/helm
86 Verify the helm version with::
90 Helm's default CNCF provided `Curated applications for Kubernetes`_ repository called
91 *stable* can be removed to avoid confusion::
93 > helm repo remove stable
95 Install the additional OOM plugins required to un/deploy the OOM helm charts::
97 > git clone http://gerrit.onap.org/r/oom
99 > cp -R ~/oom/kubernetes/helm/plugins/ /usr/local/bin/helm/plugins
101 Verify the plugins are installed::
107 NAME VERSION DESCRIPTION
108 deploy 1.0.0 install (upgrade if release exists) parent charty and all subcharts as separate but related releases
109 undeploy 1.0.0 delete parent chart and subcharts that were deployed as separate releases
112 Install the strimzi kafka operator
113 **********************************
114 Strimzi Apache Kafka provides a way to run an Apache Kafka cluster on Kubernetes
115 in various deployment configurations by using kubernetes operators.
116 Operators are a method of packaging, deploying, and managing Kubernetes applications.
118 Strimzi Operators extend the Kubernetes functionality, automating common
119 and complex tasks related to a Kafka deployment. By implementing
120 knowledge of Kafka operations in code, the Kafka administration
121 tasks are simplified and require less manual intervention.
123 The Strimzi cluster operator is deployed using helm to install the parent chart
124 containing all of the required custom resource definitions. This should be done
125 by a kubernetes administrator to allow for deployment of custom resources in to
126 any kubernetes namespace within the cluster.
128 Full installation instructions can be found in the
129 `Strimzi Apache Kafka Operator helm Installation documentation`_.
131 To add the required helm repository, execute the following::
133 > helm repo add strimzi https://strimzi.io/charts/
135 To install the strimzi kafka operator, execute the following, replacing the <recommended-strimzi-version> with the version defined
136 in the :ref:`versions_table` table::
138 > helm install strimzi-kafka-operator strimzi/strimzi-kafka-operator --namespace strimzi-system --version <recommended-strimzi-version> --set watchAnyNamespace=true --create-namespace
140 Verify the installation::
142 > kubectl get po -n strimzi-system
146 NAME READY STATUS RESTARTS AGE
147 strimzi-cluster-operator-7f7d6b46cf-mnpjr 1/1 Running 0 2m
150 .. _oom_base_setup_cert_manager:
155 Cert-Manager is a native Kubernetes certificate management controller.
156 It can help with issuing certificates from a variety of sources, such as
157 Let’s Encrypt, HashiCorp Vault, Venafi, a simple signing key pair, self
158 signed or external issuers. It ensures certificates are valid and up to
159 date, and attempt to renew certificates at a configured time before expiry.
161 Cert-Manager is deployed using regular YAML manifests which include all
162 the needed resources (the CustomResourceDefinitions, cert-manager,
163 namespace, and the webhook component).
165 Full installation instructions, including details on how to configure extra
166 functionality in Cert-Manager can be found in the
167 `Cert-Manager Installation documentation`_.
169 There is also a kubectl plugin (kubectl cert-manager) that can help you
170 to manage cert-manager resources inside your cluster. For installation
171 steps, please refer to `Cert-Manager kubectl plugin documentation`_.
174 To install cert-manager, execute the following, replacing the <recommended-cm-version> with the version defined
175 in the :ref:`versions_table` table::
177 > kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v<recommended-cm-version>/cert-manager.yaml
179 Verify the installation::
181 > kubectl get po -n cert-manager
185 NAME READY STATUS RESTARTS AGE
186 cert-manager-776c4cfcb6-vgnpw 1/1 Running 0 2m
187 cert-manager-cainjector-7d9668978d-hdxf7 1/1 Running 0 2m
188 cert-manager-webhook-66c8f6c75-dxmtz 1/1 Running 0 2m