-###################################################################################
-# ============LICENSE_START=======================================================
-#
-# ================================================================================
-# Copyright (C) 2020 Hcl Technologies Limited.
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END=========================================================
-###################################################################################
+.. ============LICENSE_START=======================================================
+..
+.. ================================================================================
+.. Copyright (C) 2020 Hcl Technologies Limited.
+.. ================================================================================
+.. Licensed under the Apache License, Version 2.0 (the "License");
+.. you may not use this file except in compliance with the License.
+.. You may obtain a copy of the License at
+..
+.. http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+.. ============LICENSE_END=========================================================
Important
-^^^^^^^^^^
+^^^^^^^^^
The redis-cluster currently is NOT part of RIC platform & hence is completely optional.
This piece of document has been created as part of delivery item for below jira ticket
https://jira.o-ran-sc.org/browse/RIC-109
supporting desired pod anti-affinity for high availability as per the ticket.
Overview
-^^^^^^^^^^
+^^^^^^^^
This document describes the environment/conditions used to test the feasibility of Redis
cluster set-up as detailed in the above ticket. Redis Cluster is a distributed implementation
of Redis with high performance goals. More details at https://redis.io/topics/cluster-spec
Environment Set-Up
-^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^
The set up was tested with kubernetes v1.19 cluster with
#. Pod topology spread constraint enabled
Reference: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints
#. CEPH as the Cluster Storage Solution.
- Reference: https://github.com/rook/rook.github.io/blob/master/docs/rook/v1.4/ceph-filesystem.md
#. Three worker nodes in the kubernet cluster
Execution
-^^^^^^^^^^
+^^^^^^^^^
Once environment is set-up, a redis-cluster can be set up using the helm-chart (also provided with
this commit). Once cluster is running, any master/slave of the redis instance pods can be deleted which
will be compensated automatically by new instances