Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: fmdlc/ISP-Checker
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.1
Choose a base ref
...
head repository: fmdlc/ISP-Checker
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref

Commits on Oct 13, 2020

  1. Improving JSON model time-frame

    Adding screenshots
    
    Update README.md
    
    Updating demo
    
    Updating demo
    
    Update README.md
    
    Update README.md
    
    Update README.md
    
    Update README.md
    
    Update README.md
    
    Update README.md
    
    Resolving conflict
    fmdlc committed Oct 13, 2020
    Copy the full SHA
    755f737 View commit details
  2. Improving documentation, fixing Docker images versions, enabling CI

    Update README.md
    
    Update docker-build.yml
    
    Update docker-build.yml
    
    Update docker-build.yml
    
    Update docker-build.yml
    fmdlc committed Oct 13, 2020
    Copy the full SHA
    242e636 View commit details
  3. Copy the full SHA
    d8c0aac View commit details

Commits on Oct 21, 2020

  1. Update docker-build.yml

    Update docker-build.yml
    
    Update README.md
    fmdlc committed Oct 21, 2020
    Copy the full SHA
    01c1377 View commit details
  2. Fixing makefile to use the official cURL Docker image to execute API …

    …initialization.
    
    Updating documentation.
    fmdlc committed Oct 21, 2020
    Copy the full SHA
    a197d97 View commit details
  3. Copy the full SHA
    9d4ff68 View commit details
  4. Initial k8s commit

    Initial k8s commit
    
    adding resource limits
    fmdlc committed Oct 21, 2020
    Copy the full SHA
    6fddfb0 View commit details
  5. Enabling Kubernetes support

    Update README.md
    fmdlc committed Oct 21, 2020
    Copy the full SHA
    7d349ce View commit details
  6. Beta v0.4

    Update README.md
    
    Update README.md
    
    Update README.md
    
    Update README.md
    
    Update README.md
    
    Update README.md
    
    Update README.md
    
    Update README.md
    
    Update README.md
    fmdlc committed Oct 21, 2020
    Copy the full SHA
    a482174 View commit details
  7. v1.4

    fmdlc committed Oct 21, 2020
    Copy the full SHA
    a50b67e View commit details
  8. Linting YAML files

    fmdlc committed Oct 21, 2020
    Copy the full SHA
    0716120 View commit details
  9. Updating pre-commit-hooks

    fmdlc committed Oct 21, 2020
    Copy the full SHA
    89065c7 View commit details
  10. Enabling YAMLLint GitHub action

    Adding a GitHub action to Lint Kubernetes YAML files.
    fmdlc authored Oct 21, 2020
    Copy the full SHA
    5832dfe View commit details
  11. Fixing a typo in config_file

    Fixing a typo in config_file definition.
    fmdlc authored Oct 21, 2020
    Copy the full SHA
    46b3dae View commit details

Commits on Oct 23, 2020

  1. Update README.md

    fmdlc committed Oct 23, 2020
    Copy the full SHA
    420716b View commit details
  2. Fixing issue with dashboard

    fmdlc committed Oct 23, 2020
    Copy the full SHA
    cc7c92e View commit details
  3. Copy the full SHA
    de2d87e View commit details
  4. Splitting Telegraf MTR and Speedtest-cli in CronJobs

    In order to avoid overload the original Telegraf DaemonSet, I splitted
    the MTR process and Speedtest in different CronJobs that runs a copy of
    the Telegraf process. Each one takes a key from the ConfigMap in order
    to load their own configuration and making use of the Telegraf's
    `--once` flag we're scheduling an execution every 10 minutes.
    
    Also we have improved Memory and CPU limits and SecurityContexts.
    fmdlc committed Oct 23, 2020
    Copy the full SHA
    76b5211 View commit details
  5. v0.5 pre-release

    Update README.md
    
    Update README.md
    
    Update README.md
    
    Update README.md
    
    Update README.md
    fmdlc committed Oct 23, 2020
    Copy the full SHA
    7989404 View commit details

Commits on Oct 24, 2020

  1. Copy the full SHA
    6bc6ab7 View commit details
  2. Update README.md

    fmdlc authored Oct 24, 2020
    Copy the full SHA
    4ebec39 View commit details
  3. Enabling architecture graph

    fmdlc committed Oct 24, 2020
    Copy the full SHA
    e4109ee View commit details
  4. Update README.md

    fmdlc committed Oct 24, 2020
    Copy the full SHA
    9eaf212 View commit details

Commits on Oct 25, 2020

  1. Improving directory structure

    fmdlc committed Oct 25, 2020
    Copy the full SHA
    1514e43 View commit details
  2. Update docker-build.yml

    fmdlc authored Oct 25, 2020
    Copy the full SHA
    4d0f960 View commit details
  3. Upgrading Makefile

    fmdlc committed Oct 25, 2020
    Copy the full SHA
    4721582 View commit details
  4. Update README.md

    fmdlc committed Oct 25, 2020
    Copy the full SHA
    67ea0aa View commit details
  5. Copy the full SHA
    3ec2124 View commit details

Commits on Oct 27, 2020

  1. Update yamllint.yaml

    fmdlc authored Oct 27, 2020
    Copy the full SHA
    e6274b3 View commit details
  2. Update yamllint.yaml

    fmdlc authored Oct 27, 2020
    Copy the full SHA
    66cf5bf View commit details
  3. Merge pull request #27 from fmdlc/fmdlc-patch-1

    Update yamllint.yaml
    fmdlc authored Oct 27, 2020
    Copy the full SHA
    b8c75f9 View commit details

Commits on Nov 3, 2020

  1. Update README.md

    fmdlc authored Nov 3, 2020
    Copy the full SHA
    6b6cb82 View commit details

Commits on Nov 13, 2020

  1. Create CONTRIBUTING.md

    fmdlc authored Nov 13, 2020
    Copy the full SHA
    5b4c816 View commit details

Commits on Feb 5, 2021

  1. fix typo issue

    lcsvcn committed Feb 5, 2021
    Copy the full SHA
    9748630 View commit details
  2. Copy the full SHA
    6a6e95a View commit details

Commits on Feb 25, 2021

  1. Copy the full SHA
    5e373b8 View commit details
Showing with 31,351 additions and 657 deletions.
  1. +37 −0 .github/workflows/docker-build.yml
  2. +30 −0 .github/workflows/yamllint.yaml
  3. +8 −3 .pre-commit-config.yaml
  4. +4 −0 .yamllint
  5. +21 −3 CHANGELOG.md
  6. +89 −0 CONTRIBUTING.md
  7. +0 −58 ISP-Checker/Makefile
  8. +0 −17 ISP-Checker/telegraf/Dockerfile
  9. +72 −0 Makefile
  10. +83 −23 README.md
  11. +2 −2 {ISP-Checker → docker-compose}/bin/inject_credentials.sh
  12. 0 {ISP-Checker → docker-compose}/credentials.env
  13. +15 −6 {ISP-Checker/docker → docker-compose}/docker-compose.yaml
  14. 0 {ISP-Checker → docker-compose}/grafana/datasource.json
  15. 0 {ISP-Checker → docker-compose}/grafana/default.json
  16. +908 −480 {ISP-Checker → docker-compose}/grafana/network-dashboard.json
  17. +6,548 −0 docker-compose/grafana/raspberry-dashboard.json
  18. +22 −0 docker-compose/telegraf/Dockerfile
  19. 0 {ISP-Checker → docker-compose}/telegraf/bin/entrypoint.sh
  20. +67 −65 {ISP-Checker → docker-compose}/telegraf/conf/telegraf.conf
  21. BIN img/cluster.jpeg
  22. +652 −0 img/config.svg
  23. BIN img/demo.gif
  24. BIN img/github-banner.png
  25. BIN img/img_1.png
  26. BIN img/img_2.png
  27. BIN img/img_3.png
  28. BIN img/img_4.png
  29. BIN img/img_5.png
  30. BIN img/logo.png
  31. +1 −0 kubernetes/ISP-Checker-deploy.MD5
  32. +1 −0 kubernetes/ISP-Checker-deploy.SHA512
  33. +11,310 −0 kubernetes/ISP-Checker-deploy.yaml
  34. +152 −0 kubernetes/README.md
  35. +208 −0 kubernetes/yaml/configmap.yaml
  36. +19 −0 kubernetes/yaml/create-manifest.sh
  37. +115 −0 kubernetes/yaml/cronJob.yaml
  38. +90 −0 kubernetes/yaml/daemonSet.yaml
  39. +168 −0 kubernetes/yaml/deployment.yaml
  40. +5 −0 kubernetes/yaml/namespace.yaml
  41. +4,067 −0 kubernetes/yaml/networkDashboard.yaml
  42. +33 −0 kubernetes/yaml/pvc.yaml
  43. +6,556 −0 kubernetes/yaml/raspberryDashboard.yaml
  44. +48 −0 kubernetes/yaml/secrets.yaml
  45. +20 −0 kubernetes/yaml/services.yaml
37 changes: 37 additions & 0 deletions .github/workflows/docker-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Build

on:
push:
branches:
- master
- develop

defaults:
run:
shell: bash

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v2

- name: Install Docker Buildx
id: buildx
uses: crazy-max/ghaction-docker-buildx@v1
with:
buildx-version: latest

- name: hub.docker.com Login
run: |
echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin
- name: Build the multi-arch image
run: |
docker buildx build \
--push \
--tag tty0/isp_telegraf:1.15.3 \
--tag tty0/isp_telegraf:latest \
--platform linux/amd64,linux/arm/v7,linux/arm64 ./docker-compose/telegraf/
30 changes: 30 additions & 0 deletions .github/workflows/yamllint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: YAML Lint
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: YAML Lint
uses: ibiqlik/action-yamllint@v1.0.0
with:
file_or_dir: ./kubernetes/yaml/
config_file: ./.yamllint
- name: kube-score check
uses: piraces/kube-score-ga@v0.1.1
with:
manifests-folders: "./kubernetes/yaml/*.yaml"
ignore-exit-code: true
- name: kubeval YAML validation
uses: makocchi-git/actions-k8s-manifests-validate-kubeval@v1.0.1
with:
files: ./kubernetes/yaml/
strict: true
ignore_missing_schemas: true
comment: true
token: ${{ secrets.GH_TOKEN }}

11 changes: 8 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -2,11 +2,16 @@ repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.2.0 # Use the ref you want to point at
hooks:
- id: trailing-whitespace
- id: detect-private-key
- id: check-symlinks
- id: check-yaml
exclude: kubernetes/yaml/network-dashboard.yaml|kubernetes/ISP-Checker-deploy.yaml
args: ["--allow-multiple-documents"]
- id: detect-aws-credentials
- id: detect-private-key
- id: double-quote-string-fixer
- id: end-of-file-fixer
- id: forbid-new-submodules
- id: mixed-line-ending
- id: trailing-whitespace
- id: pretty-format-json
args: ["--autofix"]
- id: forbid-new-submodules
4 changes: 4 additions & 0 deletions .yamllint
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
extends: relaxed

rules:
line-length: disable
24 changes: 21 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,41 @@
# CHANGELOG

## October 23 2020 - v1.4 (Beta)
* Improved Kubernetes documentation.
* Improved main documentation.
* Updated Grafana deployment to use a `PersistentVolume`.
* Telegraf now runs in a `DaemonSet`.
* `Speedtest-cli` and `MTR` now runs as `CronJob` every `10 minutes`
* New `ConfigMap` mappings.
* Included script to generate Manifest.

## October 16 2020 - v1.3
* API configuration is now executed using `cURL` [Docker image](https://hub.docker.com/r/curlimages/curl).
* `README.md` updated (Solving [https://github.com/fmdlc/ISP-Checker/issues/14](https://github.com/fmdlc/ISP-Checker/issues/14)).

## October 12 2020 - v1.2
* Enabling CI build a multi-architecture Docker image (Extending support to `linux/amd64`, `linux/arm/v7`, `linux/arm64`)
* Fixing Docker images version on Docker Compose.
* Improving Dashboard look and feel.
* Updated `mtr` exeuction period for a best performance.
* Updated `speedtest-cli` execution period to reduce bandwith usage.
* Updated `README.md`

## October 10 2020 - v1.1

<<<<<<< HEAD
* Updated Speedtest checks to run once per hour (before was every 5 minutes).
* Removed Telegraf' Speedtest `--no-pre-allocate` version.
* Improved MTR metrics.
* Created Jitter monitoring panel.
* Created availability row and panels.
* Created Ping per destination panel.
* Included variables to define panel data.
=======
* Updated Speedtest checks to run once peer hour (before was every 5 minutes).
* Removed Telegraf' Speedtest `--no-pre-allocate` version.
* Created Jitter monitoring panel.
* Created availability row and panels.
* Created Ping per destination panel.
* Included variables to define panels data.
>>>>>>> e192546... Releasing version v1.1 - Improvements in graphs and precission about stats.
* Addeed netstat stadistics.
* Updated documentation.
* Included system metrics dashboard.
89 changes: 89 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# Contributing

When contributing to this repository, please first discuss the change you wish to make via issue,
email, or any other method with the owners of this repository before making a change.

## Pull Request Process

1. Ensure any install or build dependencies are removed before the end of the layer when doing a
build.
2. Update the README.md with details of changes to the interface, this includes new environment
variables, exposed ports, useful file locations and container parameters.
3. Increase the version numbers in any examples files and the README.md to the new version that this
Pull Request would represent.
4. You may merge the Pull Request in once you have the sign-off of two other developers, or if you
do not have permission to do that, you may request the second reviewer to merge it for you.

## Code of Conduct

### Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.

### Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

### Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

### Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.

### Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at [fmdlc.unix@gmail.com](fmdlc.unix@gmail.com). All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

### Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at [http://contributor-covenant.org/version/1/4][version]

[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
58 changes: 0 additions & 58 deletions ISP-Checker/Makefile

This file was deleted.

17 changes: 0 additions & 17 deletions ISP-Checker/telegraf/Dockerfile

This file was deleted.

72 changes: 72 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
.PHONY: default install start stop restart prune provision docker-bootstrap

NAME=ISP-Checker
VERSION=1.2
AUTHOR="Facu de la Cruz <fmdlc.unix@gmail.com>"

COMPOSE_FILE="./docker-compose/docker-compose.yaml"

default:
@echo "USAGE: make <TARGET>"
@echo ""
@echo "\t- install : Bootstrap components in docker-compose"
@echo "\t- kube-install: Bootstrap components in K8s cluster."
@echo "\t- start : Start entire stack."
@echo "\t- stop : Stops entire stack."
@echo "\t- restart : Restart stack.\n"

install: docker-bootstrap provision
@echo "\nOpen your browser a points to http://127.0.0.1:3000/\n"
@echo "Default Username: admin | Default Password: admin"
@echo "Updated credentials after your first login!."
$(info Make: Bootstrap done)

docker-bootstrap:
$(info Make: Creating persistent Docker volumes)
@bash ./docker-compose/bin/inject_credentials.sh
@docker volume create --name=influxdb-storage
@docker volume create --name=grafana-storage

@docker-compose -f $(COMPOSE_FILE) up -d
@sleep 10

provision:
$(info Make: Initializing datasources and dashboards)

@echo ">> Provisioning: InfluxDB datasource\n"
@docker run --network host -v "$(PWD)/docker-compose/grafana:/app" --rm curlimages/curl:7.73.0 \
-s --location -XPOST 'http://admin:admin@127.0.0.1:3000/api/datasources' \
--header 'Content-Type: application/json' -d @/app/datasource.json > /dev/null

@echo ">> Provisioning: Network dashboard\n"
@docker run --network host -v "$(PWD)/docker-compose/grafana:/app" --rm curlimages/curl:7.73.0 \
-s --location -XPOST 'http://admin:admin@127.0.0.1:3000/api/dashboards/db' \
--header 'Content-Type: application/json' -d @/app/network-dashboard.json > /dev/null

@echo ">> Provisioning: Raspberry dashboard\n"
@docker run --network host -v "$(PWD)/docker-compose/grafana:/app" --rm curlimages/curl:7.73.0 \
-s --location -XPOST 'http://admin:admin@127.0.0.1:3000/api/dashboards/db' \
--header 'Content-Type: application/json' -d @/app/raspberry-dashboard.json > /dev/null

@echo ">> Provisioning: Network preferences\n"
@docker run --network host -v "$(PWD)/docker-compose/grafana:/app" --rm curlimages/curl:7.73.0 \
-s --location -XPUT 'http://admin:admin@127.0.0.1:3000/api/user/preferences' \
--header 'Content-Type: application/json' -d @/app/default.json > /dev/null

kube-install:
kubectl apply -f https://raw.githubusercontent.com/fmdlc/ISP-Checker/master/kubernetes/ISP-Checker-deploy.yaml

start:
docker-compose -f $(COMPOSE_FILE) up -d

stop:
docker-compose -f $(COMPOSE_FILE) stop

restart:
docker-compose -f $(COMPOSE_FILE) restart

prune:
docker-compose -f $(COMPOSE_FILE) stop
docker rm `docker ps -a -q`
docker volume rm influxdb-storage
docker volume rm grafana-storage
Loading