Merge "[AAI] Add model-loader tracing config"
[oom.git] / docs / sections / guides / infra_guides / oom_infra_optional_addons.rst
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
5
6 .. Links
7 .. _Prometheus stack README: https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-prometheus-stack/README.md
8 .. _ONAP Next Generation Security & Logging Structure: https://wiki.onap.org/pages/viewpage.action?pageId=103417456
9 .. _Istio setup guide: https://istio.io/latest/docs/setup/install/helm/
10 .. _Kiali setup guide: https://kiali.io/docs/installation/installation-guide/example-install/
11 .. _Kserve setup guide: https://kserve.github.io/website/0.10/admin/kubernetes_deployment/
12 .. _K8ssandra setup guide: https://docs.k8ssandra.io/install/
13 .. _Mariadb-Operator setup guide: https://github.com/mariadb-operator/mariadb-operator
14 .. _Postgres-Operator setup guide: https://github.com/CrunchyData/postgres-operator
15
16 .. _oom_base_optional_addons:
17
18 OOM Optional Addons
19 ===================
20
21 The following optional applications can be added to your kubernetes
22 environment.
23
24 Install Prometheus Stack
25 ------------------------
26
27 Prometheus is an open-source systems monitoring and alerting toolkit with
28 an active ecosystem.
29
30 Kube Prometheus Stack is a collection of Kubernetes manifests, Grafana
31 dashboards, and Prometheus rules combined with documentation and scripts to
32 provide easy to operate end-to-end Kubernetes cluster monitoring with
33 Prometheus using the Prometheus Operator. As it includes both Prometheus
34 Operator and Grafana dashboards, there is no need to set up them separately.
35 See the `Prometheus stack README`_ for more information.
36
37 To install the prometheus stack, execute the following:
38
39 - Add the prometheus-community Helm repository::
40
41     > helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
42
43 - Update your local Helm chart repository cache::
44
45     > helm repo update
46
47 - To install prometheus, execute the following, replacing the <recommended-pm-version> with the version defined in the :ref:`versions_table` table::
48
49     > helm install prometheus prometheus-community/kube-prometheus-stack --namespace=prometheus --create-namespace --version=<recommended-pm-version>
50
51
52 Kiali Installation
53 ------------------
54
55 Kiali is used to visualize the Network traffic in a ServiceMesh enabled cluster
56 For setup the kiali operator is used, see `Kiali setup guide`_
57
58 - Install kiali-operator namespace::
59
60     > kubectl create namespace kiali-operator
61
62     > kubectl label namespace kiali-operator istio-injection=enabled
63
64 - Install the kiali-operator::
65
66     > helm repo add kiali https://kiali.org/helm-charts
67
68     > helm repo update kiali
69
70     > helm install --namespace kiali-operator kiali/kiali-operator
71
72 - Create Kiali CR file (e.g. kiali.yaml)
73
74     .. collapse:: kiali.yaml
75
76       .. include:: ../../resources/yaml/kiali.yaml
77          :code: yaml
78
79 - Install kiali::
80
81     > kubectl apply -f kiali.yaml
82
83 - Create Ingress gateway entry for the kiali web interface
84   using the configured Ingress <base-url> (here "simpledemo.onap.org")
85   as described in :ref:`oom_customize_overrides`
86
87     .. collapse:: kiali-ingress.yaml
88
89       .. include:: ../../resources/yaml/kiali-ingress.yaml
90          :code: yaml
91
92 - Add the Ingress entry for Kiali::
93
94     > kubectl -n istio-system apply -f kiali-ingress.yaml
95
96
97 Jaeger Installation
98 -------------------
99
100 To be done...
101
102 K8ssandra-Operator Installation
103 -------------------------------
104
105 K8ssandra-Operator is used to ease the installation and lifecycle management
106 Cassandra clusters, including monitoring and backup
107
108 For setup the K8ssandra operator is used, see `K8ssandra setup guide`_
109
110 - Install k8ssandra-operator namespace::
111
112     > kubectl create namespace k8ssandra-operator
113
114     > kubectl label namespace k8ssandra-operator istio-injection=enabled
115
116 - Install the k8ssandra-operator replacing the <recommended-version> with the version defined in the :ref:`versions_table` table::
117
118     > helm repo add k8ssandra https://helm.k8ssandra.io/stable
119
120     > helm repo update k8ssandra
121
122     > helm install k8ssandra-operator --namespace k8ssandra-operator
123       k8ssandra/k8ssandra-operator --set global.clusterScoped=true
124       --version=<recommended-version>
125
126 Mariadb-Operator Installation
127 -----------------------------
128
129 Mariadb-Operator is used to ease the installation and lifecycle management of
130 MariaDB Galera and Replication clusters, including monitoring and backup
131
132 For setup the Mariadb-Operator is used, see `Mariadb-Operator setup guide`_
133
134 - Install mariadb-operator namespace::
135
136     > kubectl create namespace mariadb-operator
137
138     > kubectl label namespace mariadb-operator istio-injection=enabled
139
140 - Install the mariadb-operator replacing the <recommended-version> with the version defined in the :ref:`versions_table` table::::
141
142     > helm repo add mariadb-operator https://mariadb-operator.github.io/mariadb-operator
143
144     > helm repo update mariadb-operator
145
146     > helm install mariadb-operator --namespace mariadb-operator
147       mariadb-operator/mariadb-operator --set ha.enabled=true
148       --set metrics.enabled=true --set webhook.certificate.certManager=true
149       --version=<recommended-version>
150
151 Postgres-Operator Installation
152 ------------------------------
153
154 Postgres-Operator is used to ease the installation and lifecycle management of
155 Postgres DB clusters, including monitoring and backup
156
157 For setup the Postgres-Operator is used, see `Postgres-Operator setup guide`_
158
159 Kserve Installation
160 -------------------
161
162 KServe is a standard Model Inference Platform on Kubernetes. It supports
163 RawDeployment mode to enable InferenceService deployment with Kubernetes
164 resources. Comparing to serverless deployment it unlocks Knative limitations
165 such as mounting multiple volumes, on the other hand Scale down and from Zero
166 is not supported in RawDeployment mode.
167
168 This installation is necessary for the ML models to be deployed as inference
169 service. Once deployed, the inference services can be queried for the
170 prediction.
171
172 **Kserve participant component in Policy ACM requires this installation. Kserve participant deploy/undeploy inference services in Kserve.**
173
174 Dependent component version compatibility details and installation instructions
175 can be found at `Kserve setup guide`_
176
177 Kserve installation requires the following components:
178
179 -  Istio. Its installation instructions can be found at :ref:`oom_base_optional_addons_istio_installation`
180
181 -  Cert-Manager. Its installation instructions can be found at :ref:`oom_base_setup_cert_manager`
182
183 Installation instructions as follows,
184
185 - Create kserve namespace::
186
187     > kubectl create namespace kserve
188
189 - Install Kserve::
190
191     > kubectl apply -f https://github.com/kserve/kserve/releases/download/v<recommended-kserve-version>/kserve.yaml
192
193 - Install Kserve default serving runtimes::
194
195     > kubectl apply -f https://github.com/kserve/kserve/releases/download/v<recommended-kserve-version>/kserve-runtimes.yaml
196
197 - Patch ConfigMap inferenceservice-config as follows::
198
199     > kubectl patch configmap/inferenceservice-config -n kserve --type=strategic -p '{"data": {"deploy": "{\"defaultDeploymentMode\": \"RawDeployment\"}"}}'