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