OOM Optional Addons

The following optional applications can be added to your kubernetes environment.

Install Prometheus Stack

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. See the Prometheus stack README for more information.

To install the prometheus stack, execute the following:

  • 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 prometheus, execute the following, replacing the <recommended-pm-version> with the version defined in the OOM Software Requirements (base) table:

    > helm install prometheus prometheus-community/kube-prometheus-stack --namespace=prometheus --create-namespace --version=<recommended-pm-version>
    

Kiali Installation

Kiali is used to visualize the Network traffic in a ServiceMesh enabled cluster For setup the kiali operator is used, see Kiali setup guide

  • Install kiali-operator namespace:

    > kubectl create namespace kiali-operator
    
    > kubectl label namespace kiali-operator istio-injection=enabled
    
  • Install the kiali-operator:

    > helm repo add kiali https://kiali.org/helm-charts
    
    > helm repo update kiali
    
    > helm install --namespace kiali-operator kiali/kiali-operator
    
  • Create Kiali CR file (e.g. kiali.yaml)

    kiali.yaml
    apiVersion: kiali.io/v1alpha1
    kind: Kiali
    metadata:
      name: kiali
      namespace: istio-system
      annotations:
        ansible.operator-sdk/verbosity: "1"
    spec:
      auth:
        strategy: anonymous
      istio_component_namespaces:
        prometheus: monitoring
      external_services:
        grafana:
          in_cluster_url: http://prometheus-stack-grafana.monitoring
        prometheus:
          url: http://prometheus-stack-kube-prom-prometheus.monitoring:9090
        tracing:
          in_cluster_url: http://istio-query.observability:16686
      deployment:
        accessible_namespaces: ["**"]
        view_only_mode: false
      server:
        web_root: "/kiali"
    
  • Install kiali:

    > kubectl apply -f kiali.yaml
    
  • Create Ingress gateway entry for the kiali web interface using the configured Ingress <base-url> (here “simpledemo.onap.org”) as described in OOM Custom Overrides

    kiali-ingress.yaml
    apiVersion: networking.istio.io/v1beta1
    kind: Gateway
    metadata:
      name: kiali-gateway
    spec:
      selector:
        istio: ingressgateway
      servers:
        - hosts:
            - kiali.simpledemo.onap.org
          port:
            name: http
            number: 80
            protocol: HTTP
    ---
    apiVersion: networking.istio.io/v1beta1
    kind: VirtualService
    metadata:
      name: kiali-service
    spec:
      hosts:
        - kiali.simpledemo.onap.org
      gateways:
        - kiali-gateway
      http:
        - route:
          - destination:
              port:
                number: 20001
              host: kiali
    
  • Add the Ingress entry for Kiali:

    > kubectl -n istio-system apply -f kiali-ingress.yaml
    

Jaeger Installation

To be done…

K8ssandra-Operator Installation

K8ssandra-Operator is used to ease the installation and lifecycle management Cassandra clusters, including monitoring and backup

For setup the K8ssandra operator is used, see K8ssandra setup guide

  • Install k8ssandra-operator namespace:

    > kubectl create namespace k8ssandra-operator
    
    > kubectl label namespace k8ssandra-operator istio-injection=enabled
    
  • Install the k8ssandra-operator replacing the <recommended-version> with the version defined in the OOM Software Requirements (base) table:

    > helm repo add k8ssandra https://helm.k8ssandra.io/stable
    
    > helm repo update k8ssandra
    
    > helm install k8ssandra-operator --namespace k8ssandra-operator
      k8ssandra/k8ssandra-operator --set global.clusterScoped=true
      --version=<recommended-version>
    

Mariadb-Operator Installation

Mariadb-Operator is used to ease the installation and lifecycle management of MariaDB Galera and Replication clusters, including monitoring and backup

For setup the Mariadb-Operator is used, see Mariadb-Operator setup guide

  • Install mariadb-operator namespace:

    > kubectl create namespace mariadb-operator
    
    > kubectl label namespace mariadb-operator istio-injection=enabled
    
  • Install the mariadb-operator replacing the <recommended-version> with the version defined in the OOM Software Requirements (base) table:::

    > helm repo add mariadb-operator https://mariadb-operator.github.io/mariadb-operator
    
    > helm repo update mariadb-operator
    
    > helm install mariadb-operator --namespace mariadb-operator
      mariadb-operator/mariadb-operator --set ha.enabled=true
      --set metrics.enabled=true --set webhook.certificate.certManager=true
      --version=<recommended-version>
    

Postgres-Operator Installation

Postgres-Operator is used to ease the installation and lifecycle management of Postgres DB clusters, including monitoring and backup

For setup the Postgres-Operator is used, see Postgres-Operator setup guide

Kserve Installation

KServe is a standard Model Inference Platform on Kubernetes. It supports RawDeployment mode to enable InferenceService deployment with Kubernetes resources. Comparing to serverless deployment it unlocks Knative limitations such as mounting multiple volumes, on the other hand Scale down and from Zero is not supported in RawDeployment mode.

This installation is necessary for the ML models to be deployed as inference service. Once deployed, the inference services can be queried for the prediction.

Kserve participant component in Policy ACM requires this installation. Kserve participant deploy/undeploy inference services in Kserve.

Dependent component version compatibility details and installation instructions can be found at Kserve setup guide

Kserve installation requires the following components:

Installation instructions as follows,

  • Create kserve namespace:

    > kubectl create namespace kserve
    
  • Install Kserve:

    > kubectl apply -f https://github.com/kserve/kserve/releases/download/v<recommended-kserve-version>/kserve.yaml
    
  • Install Kserve default serving runtimes:

    > kubectl apply -f https://github.com/kserve/kserve/releases/download/v<recommended-kserve-version>/kserve-runtimes.yaml
    
  • Patch ConfigMap inferenceservice-config as follows:

    > kubectl patch configmap/inferenceservice-config -n kserve --type=strategic -p '{"data": {"deploy": "{\"defaultDeploymentMode\": \"RawDeployment\"}"}}'