summaryrefslogtreecommitdiffstats
path: root/docs/archived/oom_setup_paas.rst
blob: 2dabcb1aeadfd3a8cbb23dd2871e2f3c793ca52e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
.. This work is licensed under a Creative Commons Attribution 4.0
.. International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2021 Nokia

.. Links
.. _Cert-Manager Installation documentation: https://cert-manager.io/docs/installation/kubernetes/
.. _Cert-Manager kubectl plugin documentation: https://cert-manager.io/docs/usage/kubectl-plugin/
.. _Strimzi Apache Kafka Operator helm Installation documentation: https://strimzi.io/docs/operators/in-development/deploying.html#deploying-cluster-operator-helm-chart-str

.. _oom_setup_paas:

ONAP PaaS set-up
################

Starting from Honolulu release, Cert-Manager and Prometheus Stack are a part
of k8s PaaS for ONAP operations and can be installed to provide
additional functionality for ONAP engineers.
Starting from Jakarta release, Strimzi Apache Kafka is deployed to provide
Apache kafka as the default messaging bus for ONAP.

The versions of PaaS components that are supported by OOM are as follows:

.. table:: ONAP PaaS components

  ==============     =============  =================  =======
  Release            Cert-Manager   Prometheus Stack   Strimzi
  ==============     =============  =================  =======
  honolulu           1.2.0          13.x
  istanbul           1.5.4          19.x
  jakarta                                              0.28.0
  ==============     =============  =================  =======

This guide provides instructions on how to install the PaaS
components for ONAP.

.. contents::
   :depth: 1
   :local:
..

Strimzi Apache Kafka Operator
=============================

Strimzi provides a way to run an Apache Kafka cluster on Kubernetes
in various deployment configurations by using kubernetes operators.
Operators are a method of packaging, deploying, and managing a
Kubernetes application.
Strimzi Operators extend Kubernetes functionality, automating common
and complex tasks related to a Kafka deployment. By implementing
knowledge of Kafka operations in code, Kafka administration
tasks are simplified and require less manual intervention.

Installation steps
------------------

The recommended version of Strimzi for Kubernetes 1.19 is v0.28.0.
The Strimzi cluster operator is deployed using helm to install the parent chart
containing all of the required custom resource definitions. This should be done
by a kubernetes administrator to allow for deployment of custom resources in to
any kubernetes namespace within the cluster.

Full installation instructions can be found in the
`Strimzi Apache Kafka Operator helm Installation documentation`_.

Installation can be as simple as:

- Add the helm repo::

    > helm repo add strimzi https://strimzi.io/charts/

- Install the operator::

    > helm install strimzi-kafka-operator strimzi/strimzi-kafka-operator --namespace strimzi-system --version 0.28.0 --set watchAnyNamespace=true --create-namespace

Cert-Manager
============

Cert-Manager is a native Kubernetes certificate management controller.
It can help with issuing certificates from a variety of sources, such as
Let’s Encrypt, HashiCorp Vault, Venafi, a simple signing key pair, self
signed or external issuers. It ensures certificates are valid and up to
date, and attempt to renew certificates at a configured time before expiry.

Installation steps
------------------

The recommended version of Cert-Manager for Kubernetes 1.19 is v1.5.4.
Cert-Manager is deployed using regular YAML manifests which include all
the needed resources (the CustomResourceDefinitions, cert-manager,
namespace, and the webhook component).

Full installation instructions, including details on how to configure extra
functionality in Cert-Manager can be found in the
`Cert-Manager Installation documentation`_.

There is also a kubectl plugin (kubectl cert-manager) that can help you
to manage cert-manager resources inside your cluster. For installation
steps, please refer to `Cert-Manager kubectl plugin documentation`_.

Installation can be as simple as::

  > kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.4/cert-manager.yaml

Prometheus Stack (optional)
===========================

Prometheus is an open-source systems monitoring and alerting toolkit with
an active ecosystem.

Kube Prometheus Stack is a collection of Kubernetes manifests, Grafana
dashboards, and Prometheus rules combined with documentation and scripts to
provide easy to operate end-to-end Kubernetes cluster monitoring with
Prometheus using the Prometheus Operator. As it includes both Prometheus
Operator and Grafana dashboards, there is no need to set up them separately.

Installation steps
------------------

The recommended version of kube-prometheus-stack chart for
Kubernetes 1.19 is 19.x (which is currently the latest major chart version),
for example 19.0.2.

In order to install Prometheus Stack, you must follow these steps:

- Create the namespace for Prometheus Stack::

    > kubectl create namespace prometheus

- Add the prometheus-community Helm repository::

    > helm repo add prometheus-community https://prometheus-community.github.io/helm-charts

- Update your local Helm chart repository cache::

    > helm repo update

- To install the kube-prometheus-stack Helm chart in latest version::

    > helm install prometheus prometheus-community/kube-prometheus-stack --namespace=prometheus

  To install the kube-prometheus-stack Helm chart in specific version, for example 19.0.2::

    > helm install prometheus prometheus-community/kube-prometheus-stack --namespace=prometheus --version=19.0.2