Skip to content
Snippets Groups Projects
  • vijaynag's avatar
    Gerrit ID: 5665 - Deploys OSM on Kubernetes. · 8339ed24
    vijaynag authored and garciadeblas's avatar garciadeblas committed
    Run the installation script with -c k8s to deploy osm on K8s.
    To Uninstall OSM deployed on Kubernetes run script with --uninstall -c k8s.
    Each yaml file in osm_pods directory contains yaml definitions for pods and services.
    
    Added license to yaml files in osm_pods.
    
    Changed volume mounts to OSM_NAMESPACE_VOL from docker volumes.
    
    Removes all pods and services while uninstalling.
    
    Added namespace to deploy osm services. Deleting namespace
    for uninstalling osm services.
    Resolved Merge conflict with Change-7931. Changed Mongo, Kafka,
    zookeeper, mysql and prometheus to statefulset.
    
    -s <namespace> users can define namespace for k8s to deploy
    osm services.
    
    Added cluster configuration file which will be used to install k8s control plane
    Addressed nodeport range issue and resolved merge conflict.
    
    Added two yaml files to create a job for systest and robot test.
    
    Change-Id: Iabe70fa7aed9cd638011bb92e2f300e32cff5772
    Signed-off-by: default avatarvijaynag.bs <vijaynag.bs@tataelxsi.co.in>
    8339ed24
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
prometheus.yaml 2.68 KiB
apiVersion: v1
kind: Service
metadata:
  name: prometheus
spec:
  ports:
  - nodePort: 9091
    port: 9090
    protocol: TCP
    targetPort: 9090
  selector:
    app: prometheus
  type: NodePort
---
apiVersion: v1
data:
  prometheus.yml: |
    # Copyright 2018 The Prometheus Authors
    # Copyright 2018 Whitestack
    # Copyright 2018 Telefonica Investigacion y Desarrollo, S.A.U.
    #
    # 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.

    # my global config
    global:
      scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
      evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
      # scrape_timeout is set to the global default (10s).

    # Alertmanager configuration
    alerting:
      alertmanagers:
      - static_configs:
        - targets:
          # - alertmanager:9093

    # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
    rule_files:
      # - "first_rules.yml"
      # - "second_rules.yml"

    # A scrape configuration containing exactly one endpoint to scrape:
    # Here it's Prometheus itself.
    scrape_configs:
      # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
      - job_name: 'prometheus'

        # metrics_path defaults to '/metrics'
        # scheme defaults to 'http'.

        static_configs:
        - targets: ['mon:8000']
kind: ConfigMap
metadata:
  name: prom
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: prometheus
  labels:
    app: prometheus
spec:
  replicas: 1
  serviceName: prometheus
  selector:
    matchLabels:
      app: prometheus
  template:
    metadata:
      labels:
        app: prometheus
    spec:
      containers:
      - name: prometheus
        image: prom/prometheus:v2.4.3
        ports:
        - containerPort: 9090
          protocol: TCP
        volumeMounts:
        - name: prom-config
          mountPath: /etc/prometheus/
        - name: prom-db
          mountPath: /prometheus
      volumes:
      - configMap:
          defaultMode: 420
          name: prom
        name: prom-config
      - emptyDir: {}
        name: prom-db