Automating Kubernetes Rollouts with Argo and Prometheus. Checkout the demo URL below

Overview

observe-argo-rollout

Demo for Automating and Monitoring Kubernetes Rollouts with Argo and Prometheus

Performing Demo

The demo can be found on Katacoda.

Alternatively, you can follow the instructios below.

  1. Deploy Kubernetes (tested with 1.18)

  2. Install argo rollout kubectl plugin

curl -LO https://github.com/argoproj/argo-rollouts/releases/latest/download/kubectl-argo-rollouts-linux-amd64
chmod +x ./kubectl-argo-rollouts-linux-amd64
sudo mv ./kubectl-argo-rollouts-linux-amd64 /usr/local/bin/kubectl-argo-rollouts
  1. Install bat:
curl -LO https://github.com/sharkdp/bat/releases/download/v0.18.0/bat-v0.18.0-x86_64-unknown-linux-gnu.tar.gz
tar -xzf bat-v0.18.0-x86_64-unknown-linux-gnu.tar.gz
chmod +x ./bat-v0.18.0-x86_64-unknown-linux-gnu/bat
sudo mv ./bat-v0.18.0-x86_64-unknown-linux-gnu/bat /usr/local/bin/bat
  1. Run bash ./demo.sh
  2. Run commands one by one or the one you want using keyboard keys:
  • enter: execute command, enter again to reveal another command.
  • q: quit
  • p: previous command
  • n: next command
  • b: start from beginning
  • n: start from end

The structure of the demo can be viewed here.

Grafana Dashboard

Once the first Argo rollout is deployed, you can view the metrics of the client and ping-pong app in the Grafana Dashboard. Katacoda provides you with a link to Prometheus and Grafana. Simply navigate to Dashboards < Manage < Demo and make sure that the pinger is deployed and running to see metrics.

Grafana Gif

You might also like...
Opinionated platform that runs on Kubernetes, that takes you from App to URL in one step.
Opinionated platform that runs on Kubernetes, that takes you from App to URL in one step.

Epinio Opinionated platform that runs on Kubernetes, that takes you from App to URL in one step. Contents Epinio Contents What problem does Epinio sol

This image is primarily used to ping/call a URL on regular intervals using Kubernetes (k8s) CronJob.

A simple webhook caller This image is primarily used to ping/call a URL on regular intervals using Kubernetes (k8s) CronJob. A sample job would look s

Kubernetes OS Server - Kubernetes Extension API server exposing OS configuration like sysctl via Kubernetes API

KOSS is a Extension API Server which exposes OS properties and functionality using Kubernetes API, so it can be accessed using e.g. kubectl. At the moment this is highly experimental and only managing sysctl is supported. To make things actually usable, you must run KOSS binary as root on the machine you will be managing.

GoKubernetes - Demo application for Kubernetes Up and Running
GoKubernetes - Demo application for Kubernetes Up and Running

Demo application for "Kubernetes Up and Running" Running kubectl run --restart=N

Kepler (Kubernetes-based Efficient Power Level Exporter) uses eBPF to probe energy related system stats and exports as Prometheus metrics
Kepler (Kubernetes-based Efficient Power Level Exporter) uses eBPF to probe energy related system stats and exports as Prometheus metrics

kepler Kepler (Kubernetes Efficient Power Level Exporter) uses eBPF to probe energy related system stats and exports as Prometheus metrics Architectur

A demo repository that shows CI/CD integration using DroneCI + ArgoCD + Kubernetes.
A demo repository that shows CI/CD integration using DroneCI + ArgoCD + Kubernetes.

CI/CD Demo This is the demo repo for my blog post. This tutorial shows how to build CI/CD pipeline with DroneCI and ArgoCD. In this demo, we use Drone

A kubernetes operator demo generated by code-generator, it only watches cr's events

intro a small operator demo which only watches car cr's events. environment: ubuntu-20.04-amd64 k3s-1.21 docker-20.10.7 go-1.17 tools code-generator d

Kubernetes Admission Controller Demo: Validating Webhook for Namespace lifecycle events

Kubernetes Admission Controller Based on How to build a Kubernetes Webhook | Admission controllers Local Kuberbetes cluster # create kubernetes cluste

Translate Prometheus Alerts into Kubernetes pod readiness

prometheus-alert-readiness Translates firing Prometheus alerts into a Kubernetes readiness path. Why? By running this container in a singleton deploym

Comments
  • Fixes; Tuning; Added letency job.

    Fixes; Tuning; Added letency job.

    Fix errors 21:36 Namespace 21:36 ~add Watchers??~ -> did not add them as those breaks our script. Let's use Grafana instead. 21:37 Add latency Analysis 21:38 Update app_build_info 21:41 Move to 80% of errors

    Signed-off-by: Bartlomiej Plotka [email protected]

    opened by bwplotka 1
  • Anais updates

    Anais updates

    Changes:

    • Adding ping-pong app with metrics
    • Modifying Argo rollouts yaml
    • Adding endpoint/target to Prometheus (not sure if that was done right)
    • Updating README so that it can be tried on local kind cluster
    • Updating katacoda script (not sure if that was done right)
    opened by AnaisUrlichs 0
Owner
SRE @ Civo, BSc (Hons) Computer Science Student
null
Flux is a tool for keeping Kubernetes clusters in sync with sources of configuration, and automating updates to configuration when there is new code to deploy.

Flux is a tool for keeping Kubernetes clusters in sync with sources of configuration (like Git repositories), and automating updates to configuration when there is new code to deploy.

Flux project 4.1k Nov 27, 2022
betterbattery prints the battery percentage, status, and can run a command if the percentage fell below a specified value since it was last ran.

betterbattery betterbattery prints the battery percentage, status, and can run a command if the percentage fell below a specified value since it was l

kota 0 Dec 22, 2021
Harbormaster - Toolkit for automating the creation & mgmt of Docker components and tools

My development environment is MacOS with an M1 chip and I mostly develop for lin

Gabe Susman 0 Feb 17, 2022
Putty-url-scheme - Open PuTTY as a url scheme

PuTTY URL Scheme Helper Open PuTTY as a url scheme Install download release bina

Dark495 4 Apr 25, 2022
Simple example using Git actions + Argo CD + K8S + Docker and GO lang

CICD-simple_example Simple example using Git actions + Argo CD + K8S + Docker and GO lang Intro Pre reqs Have an ArgoCD account and Installed. Docker

Diogo Miyake 1 Oct 28, 2021
A plugin for argo which behaves like I'd like

argocd-lovely-plugin An ArgoCD plugin to perform various manipulations in a sensible order to ultimately output YAML for Argo CD to put into your clus

null 109 Nov 20, 2022
Provider-generic-workflows - A generic provider which uses argo workflows to define the backend actions.

provider-generic-workflows provider-generic-workflows is a generic provider which uses argo workflows for managing the external resource. This will re

Shailendra Sirohi 0 Jan 1, 2022
False-sharing-demo - Demo for performance effects of CPU cache false-sharing

Example of CPU cache false-sharing in Go. A simple example where 2 integer varia

glebarez 3 Aug 28, 2022
Litestream-read-replica-demo - A demo application for running live read replication on fly.io with Litestream

Litestream Read Replica Demo A demo application for running live read replicatio

Ben Johnson 68 Oct 18, 2022
Export Prometheus metrics from journald events using Prometheus Go client library

journald parser and Prometheus exporter Export Prometheus metrics from journald events using Prometheus Go client library. For demonstration purposes,

Mike Sgarbossa 0 Jan 3, 2022