diff --git a/docs/argo.md b/docs/argo.md
index cffebdfe..f20740e7 100644
--- a/docs/argo.md
+++ b/docs/argo.md
@@ -153,7 +153,7 @@
- [blog.argoproj.io: Architecting Workflows For Reliability](https://blog.argoproj.io/architecting-workflows-for-reliability-d33bd720c6cc) Kubernetes is designed for stateless scalable web applications, apps where if one process dies, then another process can be dropped in its place. Kubernetes makes one promise โ it will kill your pods. Kubernetes expects applications built on it to be tolerant of both any disruptionโ so apps must be designed with that in mind.
- ```
+ ```text
Dear user,
I will kill your pod:
@@ -170,7 +170,7 @@
All the best,
Kubernetes xx
- ```
+ ```text
- [medium.com/atlantbh: Implementing CI/CD pipeline using Argo Workflows and Argo Events ๐](https://medium.com/atlantbh/implementing-ci-cd-pipeline-using-argo-workflows-and-argo-events-6417dd157566)
diff --git a/docs/aws.md b/docs/aws.md
index 074734ea..b366d37c 100644
--- a/docs/aws.md
+++ b/docs/aws.md
@@ -2,7 +2,7 @@
-
+
diff --git a/docs/cicd.md b/docs/cicd.md
index 6032ad8c..710dc20a 100644
--- a/docs/cicd.md
+++ b/docs/cicd.md
@@ -159,7 +159,7 @@
- [cd.foundation: Intro to Deployment Strategies: Blue-Green, Canary, and More ๐](https://cd.foundation/blog/2021/03/24/intro-to-deployment-strategies-blue-green-canary-and-more)
- [opsmx.com: What is Blue Green Deployment ?](https://www.opsmx.com/blog/blue-green-deployment)
- [devopslearners.com: Blue-Green vs Canary Deployment](https://devopslearners.com/blue-green-vs-canary-deployment-76436d7f6bc1)
-- [youtube: Kubernetes Deployment Strategies | DevOps FAQ | DevOps DevOps Interview Q&A ](https://www.youtube.com/watch?v=aU-EtdEOdlM)
+- [youtube: Kubernetes Deployment Strategies | DevOps FAQ | DevOps DevOps Interview Q&A](https://www.youtube.com/watch?v=aU-EtdEOdlM)
diff --git a/docs/crunchydata.md b/docs/crunchydata.md
index 44255ac1..26582b87 100644
--- a/docs/crunchydata.md
+++ b/docs/crunchydata.md
@@ -410,9 +410,9 @@ shopt -s checkwinsize
# match all files and zero or more directories and subdirectories.
#shopt -s globstar
# make less more friendly for non-text input files, see lesspipe(1)
-[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
+[-x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# set variable identifying the chroot you work in (used in the prompt below)
-if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
+if [-z "${debian_chroot:-}" ] && [-r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
@@ -423,8 +423,8 @@ esac
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes
-if [ -n "$force_color_prompt" ]; then
- if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
+if [-n "$force_color_prompt" ]; then
+ if [-x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
@@ -433,7 +433,7 @@ if [ -n "$force_color_prompt" ]; then
color_prompt=
fi
fi
-if [ "$color_prompt" = yes ]; then
+if ["$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
@@ -448,7 +448,7 @@ xterm*|rxvt*)
;;
esac
# enable color support of ls and also add handy aliases
-if [ -x /usr/bin/dircolors ]; then
+if [-x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
@@ -465,21 +465,21 @@ alias la='ls -A'
alias l='ls -CF'
# Add an "alert" alias for long running commands. Use like so:
# sleep 10; alert
-alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*/;s/[;&|]\s*alert$/'\'')"'
+alias alert='notify-send --urgency=low -i "$([$? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*/;s/[;&|]\s*alert$/'\'')"'
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
-if [ -f ~/.bash_aliases ]; then
+if [-f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
-if [ -f /usr/share/bash-completion/bash_completion ]; then
+if [-f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
-elif [ -f /etc/bash_completion ]; then
+elif [-f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
diff --git a/docs/demos.md b/docs/demos.md
index f7f9521d..15a1c927 100644
--- a/docs/demos.md
+++ b/docs/demos.md
@@ -395,7 +395,7 @@
### IBM Cloud Pak Playbooks and GitOps
- [IBM Cloud Pak Playbook](https://cloudpak8s.io/apps/cp4a_overview)
-- [==cloud-native-toolkit/multi-tenancy-gitops== ๐](https://github.com/cloud-native-toolkit/multi-tenancy-gitops) **Provides our opinionated point of view on how GitOps can be used to manage the infrastructure, services and application layers of K8s based systems.** The GitOps concept originated from Weaveworks back in 2017 and the goal was to automate the operations of a Kubernetes (K8s) system using a model external to the system as the source of truth (History of GitOps). **This repository provides our opinionated point of view on how GitOps can be used to manage the infrastructure, services and application layers of K8s based systems.** It takes into account the various personas interacting with the system and accounts for separation of duties. **The instructions and examples are focused around the Red Hat OpenShift platform and IBM Cloud Paks.** The reference architecture for this GitOps workflow can be found [here](https://cloudnativetoolkit.dev/adopting/use-cases/gitops/gitops-ibm-cloud-paks).
+- [==cloud-native-toolkit/multi-tenancy-gitops== ๐](https://github.com/cloud-native-toolkit/multi-tenancy-gitops) **Provides our opinionated point of view on how GitOps can be used to manage the infrastructure, services and application layers of K8s based systems.** The GitOps concept originated from Weaveworks back in 2017 and the goal was to automate the operations of a Kubernetes (K8s) system using a model external to the system as the source of truth (History of GitOps). **This repository provides our opinionated point of view on how GitOps can be used to manage the infrastructure, services and application layers of K8s based systems.** It takes into account the various personas interacting with the system and accounts for separation of duties. **The instructions and examples are focused around the Red Hat OpenShift platform and IBM Cloud Paks.** The reference architecture for this GitOps workflow can be found [source code](https://cloudnativetoolkit.dev/adopting/use-cases/gitops/gitops-ibm-cloud-paks).
### Knative
@@ -696,8 +696,7 @@ Grab them from here: [awesome-kubernetes/scripts](https://github.com/nubenetes/a
- [gitlab.comquent.de: Microservices branch](https://gitlab.comquent.de/petclinic/spring-petclinic-microservices)
- [deors/deors-demos-petclinic jenkinsfile](https://github.com/deors/deors-demos-petclinic/blob/master/Jenkinsfile)
- [liatrio.com: building with docker using jenkins pipelines](https://www.liatrio.ai/resources/blog)
-- [stackoverflow: How to define BuildConfig object with Jenkins and openshift
-](https://stackoverflow.com/questions/52337851/how-to-define-buildconfig-object-with-jenkins-and-openshift)
+- [stackoverflow: How to define BuildConfig object with Jenkins and openshift](https://stackoverflow.com/questions/52337851/how-to-define-buildconfig-object-with-jenkins-and-openshift)
- [cloudogu.com: CD with Jenkins, Nexus and cloudogu](https://platform.cloudogu.com/en/blog/cd-with-nexus-jenkins-ces)
- [experfy.com e-learning: Effective Jenkins - Continuous Delivery and Continuous Integration](https://training.experfy.com/courses/effective-jenkins-continuous-delivery-and-continuous-integration)
- [github.com/redhat-developer-demos/spring-petclinic ๐](https://github.com/redhat-developer-demos/spring-petclinic)
diff --git a/docs/git.md b/docs/git.md
index 5c401fa9..2b7c7853 100644
--- a/docs/git.md
+++ b/docs/git.md
@@ -343,7 +343,7 @@ It prescribes that software designers should define formal, precise and verifiab
- [youtube: Feature Branching is Evil (Thierry de Pauw, Belgium)](https://www.youtube.com/watch?v=h4DM-Wa0aDQ&t=38s&ab_channel=XPDaysUkraine)
- Feature branching is again gaining in popularity due to the rise of distributed version control systems. Although branch creation has become very easy, it comes with a certain cost. Long living branches break the flow of the software delivery process, impacting throughput and stability.
- This session explores why teams are using feature branches, what problems are introduced by using them and what techniques exist to avoid them altogether. It explores exactly whatโs evil about feature branches, which is not necessarily the problems they introduce - but rather, the real reasons why teams are using them.
-- [youtube: Git Flow Is A Bad Idea - Dave Farley ](https://www.youtube.com/watch?v=_w6TwnLCFwA&ab_channel=ContinuousDelivery) What is GitFlow and why is it a bad idea if you want to practice Continuous Delivery or Continuous Integration? GitFlow is a feature branching strategy that adds several extra layers of complexity. Git Flow is bad when we need fast feedback and a clear picture of the quality and 'releasability' of our work, so how do we adapt to get that faster feedback and a clearer picture?
+- [youtube: Git Flow Is A Bad Idea - Dave Farley](https://www.youtube.com/watch?v=_w6TwnLCFwA&ab_channel=ContinuousDelivery) What is GitFlow and why is it a bad idea if you want to practice Continuous Delivery or Continuous Integration? GitFlow is a feature branching strategy that adds several extra layers of complexity. Git Flow is bad when we need fast feedback and a clear picture of the quality and 'releasability' of our work, so how do we adapt to get that faster feedback and a clearer picture?
### Trunk-based Development vs. Git Flow
@@ -790,7 +790,7 @@ Automate them.
- [Plastic SCM](https://www.plasticscm.com)
- [blog.plasticscm.com: Add a mergebot to your repo!](http://blog.plasticscm.com/2018/09/add-mergebot-to-your-repo.html)
-- [Plastic SCM DevOps Mergebot to implement a trunk-based development cycle ](https://github.com/PlasticSCM/trunk-mergebot)
+- [Plastic SCM DevOps Mergebot to implement a trunk-based development cycle](https://github.com/PlasticSCM/trunk-mergebot)
- [PlasticSCM MergeBot Jenkins Plugin](https://plugins.jenkins.io/plasticscm-mergebot)
- [genbeta.com: Plastic SCM Mergebot: automatizando tu pipeline de desarrollo](https://www.genbeta.com/desarrollo/plastic-scm-mergebot-automatizando-tu-pipeline-desarrollo)
diff --git a/docs/grafana.md b/docs/grafana.md
index 3455552d..4a6b16eb 100644
--- a/docs/grafana.md
+++ b/docs/grafana.md
@@ -85,7 +85,7 @@ Monitored Component|Collector|Dashboard Number|URL
:------------------|:-------|:---------------|------------
ActiveMQ 5.x "classic"|[Telegraf](https://www.influxdata.com/time-series-platform/telegraf)|[10702](https://grafana.com/grafana/dashboards/10702)|[Ref1](https://docs.wavefront.com/activemq.html), [Ref2](https://github.com/influxdata/telegraf/tree/master/plugins/inputs/activemq), [Ref3](https://github.com/prometheus/jmx_exporter), [Ref4](https://stackoverflow.com/questions/57107282/prometheus-and-activemq-integration)
ActiveMQ Artemis/Red Hat AMQ Broker|[JMX Exporter](https://github.com/prometheus/jmx_exporter)|[9087](https://grafana.com/grafana/dashboards/9087)|[Ref1](https://github.com/prometheus/jmx_exporter), [Ref2](http://techiekhannotes.blogspot.com/2018/12/artemis-monitoring-with-grafana.html), [Ref3](https://github.com/rh-messaging/artemis-prometheus-metrics-plugin)
-Message Streams like Kafka/Red Hat AMQ Streams|Other|[9777](https://grafana.com/grafana/dashboards/9777-watermill)|
+Message Streams like Kafka/Red Hat AMQ Streams|Other|[9777](https://grafana.com/grafana/dashboards/9777-watermill)|N/A
## Grafana Releases
diff --git a/docs/interview-questions.md b/docs/interview-questions.md
index 54a9fee3..70d2cf1e 100644
--- a/docs/interview-questions.md
+++ b/docs/interview-questions.md
@@ -38,7 +38,7 @@
- [interviewbit.com: Terraform Interview Questions](https://www.interviewbit.com/terraform-interview-questions)
- [simplilearn.com: Top 40 Terraform Interview Questions and Answers for 2022](https://www.simplilearn.com/terraform-interview-questions-and-answers-article)
-- [k21academy.com: Top Terraform Interview Questions & Answers [ Revised โ 2022]](https://k21academy.com/terraform/terraform-interview-questions)
+- [k21academy.com: Top Terraform Interview Questions & Answers [Revised โ 2022]](https://k21academy.com/terraform/terraform-interview-questions)
- [mrdevops.hashnode.dev: Top 40 Terraform Interview Questions and Answers for 2023](https://mrdevops.hashnode.dev/top-40-terraform-interview-questions-and-answers-for-2023)
- [fosstechnix.com: Top 50 Terraform Cloud Interview Questions and Answers](https://www.fosstechnix.com/terraform-cloud-interview-questions-and-answer)
diff --git a/docs/java-and-java-performance-optimization.md b/docs/java-and-java-performance-optimization.md
index af6bb2a5..f9b0149e 100644
--- a/docs/java-and-java-performance-optimization.md
+++ b/docs/java-and-java-performance-optimization.md
@@ -72,7 +72,7 @@
Metric|Details / Reference
:---|:---
GC Throughput|**Repeated Full GC happens way before OutOfMemoryError**
[ref1](https://dzone.com/articles/7-jvm-arguments-of-highly-effective-applications-1)
[ref2](https://blog.gceasy.io/micrometrics-to-forecast-application-performance)
-etc|
+etc|N/A
### Common JVM Errors
@@ -80,7 +80,7 @@ JVM Error|Details / Reference
:----|:----
OutOfMemoryError|**Repeated Full GC happens way before OutOfMemoryError**
[ref1](https://dzone.com/articles/7-jvm-arguments-of-highly-effective-applications-1)
[ref2](https://blog.gceasy.io/micrometrics-to-forecast-application-performance)
StackOverflowError|[ref](https://blog.fastthread.io/stackoverflowerror)
-etc|
+etc|N/A
### Tuning Jenkins GC
diff --git a/docs/java_frameworks.md b/docs/java_frameworks.md
index 6aa636be..50acf6c3 100644
--- a/docs/java_frameworks.md
+++ b/docs/java_frameworks.md
@@ -133,7 +133,7 @@ Java Programming Model|Technology|Cloud Native (microservices)|Platform
[Spring Cloud (Spring)](https://spring.io/projects/spring-cloud)|Backend (RESTful)|Yes|OpenShift, Kubernetes, etc
[Quarkus](https://quarkus.io)|Backend (RESTful)|Yes|OpenShift, Kubernetes, etc
[Thorntail](https://thorntail.io)|Backend (RESTful)|Yes|OpenShift, Kubernetes, etc
-etc|||
+etc|N/A|N/A|N/A
- [dev.to: 5 Best Java Frameworks to Learn in 2022 for Microservices and Cloud Native Development](https://dev.to/javinpaul/5-best-java-frameworks-to-learn-in-2022-for-microservices-and-cloud-native-development-4732)
@@ -163,7 +163,7 @@ optimizing Enterprise Java for the microservices architecture.
- [RedHatโs WildFly Swarm](http://wildfly-swarm.io)
- [KumuluzEE](https://ee.kumuluz.com)
- ## Hibernate
+## Hibernate
- [==medium: Multi-Tenancy Implementation using Spring Boot + Hibernate== ๐](https://medium.com/swlh/multi-tenancy-implementation-using-spring-boot-hibernate-6a8e3ecb251a)
- [stackoverflow.com: How to map a MySQL JSON column to a Java entity property using JPA and Hibernate](https://stackoverflow.com/questions/44308167/how-to-map-a-mysql-json-column-to-a-java-entity-property-using-jpa-and-hibernate)
diff --git a/docs/kubernetes-networking.md b/docs/kubernetes-networking.md
index 208f8a59..90c37a52 100644
--- a/docs/kubernetes-networking.md
+++ b/docs/kubernetes-networking.md
@@ -63,7 +63,7 @@
- [thenewstack.io: HAProxy Kubernetes Ingress Controller Moves Outside the Cluster](https://thenewstack.io/haproxy-kubernetes-ingress-controller-moves-outside-the-cluster)
- [suse.com: NGINX Guest Blog: NGINX Kubernetes Ingress Controller ๐](https://www.suse.com/c/nginx-guest-blog-kubernetes-ingress-controller)
- [blog.cloudflare.com: Moving k8s communication to gRPC](https://blog.cloudflare.com/moving-k8s-communication-to-grpc)
-- [K8GB - Kubernetes Global Balancer](https://github.com/AbsaOSS/k8gb) - [openshift.com: K8GB - Kubernetes Global Balancer ](https://www.redhat.com/en/blog/openshift-commons-briefing-k8gb-kubernetes-global-balancer-with-yuri-tsarev-absa-and-paul-morie-red-hat)
+- [K8GB - Kubernetes Global Balancer](https://github.com/AbsaOSS/k8gb) - [openshift.com: K8GB - Kubernetes Global Balancer](https://www.redhat.com/en/blog/openshift-commons-briefing-k8gb-kubernetes-global-balancer-with-yuri-tsarev-absa-and-paul-morie-red-hat)
- [altoros.com: Kubernetes Networking: How to Write Your Own CNI Plug-in with Bash](https://www.altoros.com/blog/kubernetes-networking-writing-your-own-simple-cni-plug-in-with-bash)
- [Network Node Manager](https://github.com/kakao/network-node-manager) network-node-manager is a kubernetes controller that controls the network configuration of a node to resolve network issues of kubernetes. By simply deploying and configuring network-node-manager, you can solve kubernetes network issues that cannot be resolved by kubernetes or resolved by the higher kubernetes Version. Below is a list of kubernetes's issues to be resolved by network-node-manager. network-node-manager is based on kubebuilder v2.3.1.
- [getenroute.io: Drive API Security At Kubernetes Ingress Using Helm And Envoy ๐](https://docs.getenroute.io)
diff --git a/docs/kubernetes-on-premise.md b/docs/kubernetes-on-premise.md
index b38608b6..001d1a31 100644
--- a/docs/kubernetes-on-premise.md
+++ b/docs/kubernetes-on-premise.md
@@ -53,18 +53,18 @@
- [blog.ivnilv.com: Rotating Kops Etcd Certificates](https://blog.ivnilv.com/posts/rotating-kops-etcd-certificates)
- [blog.kubecost.com: Kubernetes kOps: Step-By-Step Example & Alternatives](https://blog.kubecost.com/blog/kubernetes-kops)
-```
+```text
C:\ubuntu> vagrant init ubuntu/xenial64
C:\ubuntu> vagrant up
C:\ubuntu> vagrant ssh-config
C:\ubuntu> vagrant ssh
-```
+```text
```bash
$ curl -LO https://github.com/kubernetes/kops/releases/download/$(curl -s https://api.github.com/repos/kubernetes/kops/releases/latest | grep tag_name | cut -d '"' -f 4)/kops-linux-amd64
$ chmod +x kops-linux-amd64
$ sudo mv kops-linux-amd64 /usr/local/bin/kops
-```
+```text
- [imsundeep8.medium.com: Deploy Production-grade Kubernetes Cluster using kOps on Amazon Cloud (AWS)](https://imsundeep8.medium.com/deploy-production-grade-kubernetes-cluster-using-kops-on-amazon-cloud-aws-abc79f46aa32)
diff --git a/docs/kubernetes-tools.md b/docs/kubernetes-tools.md
index d73520dc..f0949806 100644
--- a/docs/kubernetes-tools.md
+++ b/docs/kubernetes-tools.md
@@ -968,7 +968,7 @@ elastic quotas - Effortless optimization at its finest!
## Mesh-kridik
-- (chen-keinan/mesh-kridik)[https://github.com/chen-keinan/mesh-kridik] mesh-kridik is an open-source security checker that performs various security checks on a Kubernetes cluster with istio service mesh and is leveraged by OPA (Open Policy Agent) to enforce security rules.
+- [chen-keinan/mesh-kridik](https://github.com/chen-keinan/mesh-kridik) mesh-kridik is an open-source security checker that performs various security checks on a Kubernetes cluster with istio service mesh and is leveraged by OPA (Open Policy Agent) to enforce security rules.
- [kitploit.com: Mesh-Kridik](https://kitploit.com/2021/12/mesh-kridik-open-source-security.html)
## kubewatch
@@ -1132,7 +1132,7 @@ elastic quotas - Effortless optimization at its finest!
## Keepass Secret
-- [rene6502/keepass-secret ](https://github.com/rene6502/keepass-secret) keepass-secret is a command-line tool that converts entries from a KeePass 2.3 file into Kubernetes secrets. This tool was created to automatically create Kubernetes Secret in CI/CD pipelines to deploy workloads to Kubernetes clusters.
+- [rene6502/keepass-secret](https://github.com/rene6502/keepass-secret) keepass-secret is a command-line tool that converts entries from a KeePass 2.3 file into Kubernetes secrets. This tool was created to automatically create Kubernetes Secret in CI/CD pipelines to deploy workloads to Kubernetes clusters.
## Workflow Schedulers
diff --git a/docs/managed-kubernetes-in-public-cloud.md b/docs/managed-kubernetes-in-public-cloud.md
index 3e131ee0..faa826c2 100644
--- a/docs/managed-kubernetes-in-public-cloud.md
+++ b/docs/managed-kubernetes-in-public-cloud.md
@@ -507,7 +507,7 @@
- [docs.digitalocean.com: Kubernetes on DigitalOcean](https://docs.digitalocean.com/products/kubernetes)
- [digitalocean.com: Automating GitOps and Continuous Delivery With DigitalOcean Kubernetes (Terraform, Helm and Flux)](https://www.digitalocean.com/community/tech-talks/automating-gitops-and-continuous-delivery-with-digitalocean-kubernetes)
- [blog.ediri.io: DigitalOcean Kubernetes Challenge](https://blog.ediri.io/digitalocean-kubernetes-challenge) Deploy a GitOps CI/CD implementation
-- [digitalocean.com: Kubernetes for startups: Why, when, and how to adopt ](https://www.digitalocean.com/resources/articles/kubernetes-for-startups)
+- [digitalocean.com: Kubernetes for startups: Why, when, and how to adopt](https://www.digitalocean.com/resources/articles/kubernetes-for-startups)
## Oracle Cloud Kubernetes
@@ -531,7 +531,7 @@
## Giant Swarm
- [Giant Swarm](https://www.giantswarm.io) Giant Swarm offers a fully managed, open source Kubernetes platform with all the flexibility and support you need.
-- [giantswarm.io: ](https://www.giantswarm.io/blog/turtles-all-the-way-down-are-still-just-turtles-giant-swarm) We decided to go all-in with Cluster API (CAPI). "Time and again, we have seen open source win. It won with Kubernetes, and it will win with CAPI. We will continue to add our secret sauce to make it easily accessible to enterprise customers."
+- [giantswarm.io:](https://www.giantswarm.io/blog/turtles-all-the-way-down-are-still-just-turtles-giant-swarm) We decided to go all-in with Cluster API (CAPI). "Time and again, we have seen open source win. It won with Kubernetes, and it will win with CAPI. We will continue to add our secret sauce to make it easily accessible to enterprise customers."
## Tools for multi-cloud Kubernetes management
diff --git a/docs/matrix-table.md b/docs/matrix-table.md
index af302759..fc746140 100644
--- a/docs/matrix-table.md
+++ b/docs/matrix-table.md
@@ -36,12 +36,12 @@ hide:
| [AWS EKS](https://aws.amazon.com/eks)| SRE / DevOps | AWS Kubernetes | AWS | No | N/A | Yes | No | No | Yes | Yes | Managed kubernetes by AWS |
| [Google kubernetes Engine (GKE)](https://cloud.google.com/kubernetes-engine)| SRE / DevOps | Google Kubernetes | GCP | No | N/A | Yes | No | No | Yes | Yes | Managed kubernetes by Google Cloud |
| [Digital Ocean Kubernetes](https://www.digitalocean.com/products/kubernetes)| SRE / DevOps | Digital Ocean Kubernetes | Digital Ocean | No | N/A | Yes | No | No | Yes | Yes | Managed kubernetes by Digital Ocean Cloud |
-| [Alibaba Container Service for kubernetes (ACK)](https://www.alibabacloud.com/en/product/kubernetes?_p_lc=1) | | SRE / DevOps | Alibaba Kubernetes | Alibaba Cloud | No | N/A | Yes | No | No | yes | Yes | Managed kubernetes by Alibaba Cloud |
+| [Alibaba Container Service for kubernetes (ACK)](https://www.alibabacloud.com/en/product/kubernetes?_p_lc=1) | SRE / DevOps | Alibaba Kubernetes | Alibaba Cloud | No | N/A | Yes | No | No | yes | Yes | Managed kubernetes by Alibaba Cloud |
| [Oracle Kubernetes Engine (OKE)](https://www.oracle.com/cloud/cloud-native/kubernetes-engine)| SRE / DevOps | Oracle Kubernetes | Oracle Cloud | No | N/A | Yes | No | No | Yes | Yes | Managed kubernetes by Oracle Cloud |
| [Terraform (kubernetes the hard way)](https://napo.io/posts/kubernetes-the-real-hard-way-on-aws)| SRE / DevOps | Kubernetes Upstream | AWS EKS, Google GKE,
Azure AKS, Digital Ocean,
Alibaba, Oracle Cloud | No | N/A | Yes | No | No | Yes | No | kubernetes installer compliant with all the major public cloud providers
(the hard way). It does not use the official installers offered by each
cloud provider. |
| [Kubespray on Public Cloud](https://github.com/kubernetes-sigs/kubespray)| SRE / DevOps | Kubernetes Upstream | AWS, GCE, Azure,
Oracle Cloud (experimental) | Yes | OSS | Yes | Yes | No | Yes | Yes | |
| [Kubespray on Private Cloud](https://github.com/kubernetes-sigs/kubespray)| SRE / DevOps | Kubernetes Upstream | OpenStack, vSphere,
Packet (bare metal), or baremetal | Yes | OSS | Yes | Yes | No | Yes | No | |
-| [Conjure-up ](https://canonical.com/juju)| SRE / DevOps | Kubernetes Upstream | | Yes | OSS | Yes | Yes | No | Yes | Yes | |
+| [Conjure-up](https://canonical.com/juju)| SRE / DevOps | Kubernetes Upstream | | Yes | OSS | Yes | Yes | No | Yes | Yes | |
| [weave.works](https://www.weave.works/)| SRE / DevOps / Devel | Kubernetes Upstream | | | | | | | | | |
| [WKSctl](https://github.com/weaveworks/wksctl)| SRE / DevOps | Kubernetes Upstream | | Yes | OSS | Yes | Yes | No | Yes | Yes | |
| [Caravan](https://engineering.linecorp.com/en/blog/building-large-kubernetes-clusters)| SRE / DevOps | Kubernetes Upstream | | Yes | OSS | Yes | Yes | No | Yes | Yes | |
diff --git a/docs/ocp4.md b/docs/ocp4.md
index 224fe2b8..bf60011a 100644
--- a/docs/ocp4.md
+++ b/docs/ocp4.md
@@ -816,7 +816,7 @@ oc login
## Developer Sandbox
- [developers.redhat.com: Operator pattern: REST API for Kubernetes and Red Hat OpenShift ๐](https://developers.redhat.com/blog/2020/01/22/operator-pattern-rest-api-for-kubernetes-and-red-hat-openshift)
-- [developers.redhat.com: Welcome to the Developer Sandbox for Red Hat OpenShift ](https://developers.redhat.com/developer-sandbox) Get free access to the Developer Sandbox for Red Hat OpenShift and deploy your application code as a container on this self-service, cloud-hosted experience. Skip installations and deployment and jump directly into OpenShift.
+- [developers.redhat.com: Welcome to the Developer Sandbox for Red Hat OpenShift](https://developers.redhat.com/developer-sandbox) Get free access to the Developer Sandbox for Red Hat OpenShift and deploy your application code as a container on this self-service, cloud-hosted experience. Skip installations and deployment and jump directly into OpenShift.
## OpenShift Topology View
diff --git a/docs/openshift-pipelines.md b/docs/openshift-pipelines.md
index 89833f3f..a1e0f78f 100644
--- a/docs/openshift-pipelines.md
+++ b/docs/openshift-pipelines.md
@@ -25,7 +25,7 @@
10. [Videos](#videos)
11. [Slides](#slides)
-## Deploying Jenkins on OpenShift
+## Deploying Jenkins on OpenShift
- [Jenkins Docker Image for Openshift v3](https://github.com/openshift/jenkins)
- [opensource.com: Running Jenkins builds in Openshift containers](https://opensource.com/article/18/4/running-jenkins-builds-containers)
diff --git a/docs/prometheus.md b/docs/prometheus.md
index 234f2c9a..3d27cf6b 100644
--- a/docs/prometheus.md
+++ b/docs/prometheus.md
@@ -192,7 +192,7 @@ Thanos Metrics with prometheus in Kubernetes environments.
./data/01BKGV7JBM69T2G1BGBGM6KB12/wal
./data/01BKGV7JBM69T2G1BGBGM6KB12/wal/000002
./data/01BKGV7JBM69T2G1BGBGM6KB12/wal/000001
-```
+```text
- Un proceso en segundo plano compacta los bloques de dos horas en otros mรกs grandes.
- Es posible almacenar los datos en otras soluciones de "Time-Series Database" como **InfluxDB**.
@@ -426,12 +426,12 @@ Red Hat AMQ 7 Operator is fully supported in OpenShift 4.x, initially with Prome
- Systemd
-```
+```text
/etc/systemd/system/prometheus.service
/etc/systemd/system/activemq.service
/usr/lib/systemd/system/telegraf.service
/usr/lib/systemd/system/grafana-server.service
-```
+```text
- Systemctl
@@ -441,17 +441,17 @@ for service in activemq telegraf prometheus grafana-server; do systemctl status
for service in activemq telegraf prometheus grafana-server; do systemctl restart $service; done
for service in activemq telegraf prometheus grafana-server; do systemctl stop $service; done
for service in activemq telegraf prometheus grafana-server; do systemctl start $service; done
-```
+```text
- Jolokia Permissions already integrated in ActiveMQ by default. Jolokia permissions have been disabled by renaming "jolokia-access.xml" to "jolokia-access.xmlORIG" (this is a Proof of Concept):
```bash
mv /opt/activemq/webapps/api/WEB-INF/classes/jolokia-access.xml /opt/activemq/webapps/api/WEB-INF/classes/jolokia-access.xmlORIG
-```
+```text
- Telegraf Jolokia Input Plugin /etc/telegraf/telegraf.d/activemq.conf
-```
+```text
[[inputs.jolokia2_agent]]
urls = ["http://localhost:8161/api/jolokia"]
name_prefix = "activemq."
@@ -498,12 +498,12 @@ mbean = "org.apache.activemq:brokerName=*,type=Broker"
paths = ["TotalConsumerCount","TotalMessageCount","TotalEnqueueCount","TotalDequeueCount","MemoryLimit","MemoryPercentUsage","StoreLimi
t","StorePercentUsage","TempPercentUsage","TempLimit"]
tag_keys = ["brokerName"]
-```
+```text
- InfluxDB: Not required.
- Defautl /etc/telegraf/telegraf.conf file is modified to allow Prometheus to collect ActiveMQ metrics by pulling Telegraf metrics:
-```
+```text
# # Configuration for the Prometheus client to spawn
[[outputs.prometheus_client]]
# ## Address to listen on
@@ -521,11 +521,11 @@ tag_keys = ["brokerName"]
password = "admin"
...
...
-```
+```text
- scrape_configs in /opt/prometheus/prometheus.yml
-```
+```text
scrape_configs:
# The job name is added as a label `job=` to any timeseries scraped from this config.
- job_name: 'prometheus'
@@ -536,7 +536,7 @@ tag_keys = ["brokerName"]
- job_name: 'broker'
static_configs:
- targets: ['localhost:9273']
-```
+```text
- Grafana Dashboard [10702](https://grafana.com/grafana/dashboards/10702-activemq) is imported from Grafana UI -> "import dashboard". Prometheus data source is connected manually with Grafana via Grafana UI.
@@ -559,11 +559,11 @@ tag_keys = ["brokerName"]
- systemd
-```
+```text
/etc/systemd/system/prometheus.service
/etc/systemd/system/artemis.service
/usr/lib/systemd/system/grafana-server.service
-```
+```text
- systemctl
@@ -575,7 +575,7 @@ tag_keys = ["brokerName"]
for service in artemis prometheus grafana-server; do systemctl restart $service; done
for service in artemis prometheus grafana-server; do systemctl stop $service; done
for service in artemis prometheus grafana-server; do systemctl start $service; done
-```
+```text
- Creation of Artemis Broker
@@ -595,13 +595,13 @@ You can now start the broker by executing:
Or you can run the broker in the background using:
"/var/lib/artemisbroker/bin/artemis-service" start
-```
+```text
- Permissions change in broker directory
```bash
# chown -R activemq. /var/lib/artemisbroker/
-```
+```text
- Running artemis broker
@@ -609,7 +609,7 @@ Or you can run the broker in the background using:
# su - activemq
$ cd /var/lib/artemisbroker/
$ /var/lib/artemisbroker/bin/artemis run
-```
+```text
- Artemis Prometehus Console Access. We can now access to Artemis Console via http://my_servername.my_domain:8161/console using the credentials specified during the CLI deployment (artemisuser / artemispassword)
@@ -636,57 +636,57 @@ ctivemq/.m2/repository/org/apache/activemq/artemis-prometheus-metrics-plugin/1.0
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for artemis-prometheus-metrics-pom 1.0.0.CR1:
[INFO]
-[INFO] artemis-prometheus-metrics-pom ..................... SUCCESS [ 0.328 s]
-[INFO] ActiveMQ Artemis Prometheus Metrics Plugin Servlet . SUCCESS [ 7.964 s]
-[INFO] ActiveMQ Artemis Prometheus Metrics Plugin ......... SUCCESS [ 34.596 s]
+[INFO] artemis-prometheus-metrics-pom ..................... SUCCESS [0.328 s]
+[INFO] ActiveMQ Artemis Prometheus Metrics Plugin Servlet . SUCCESS [7.964 s]
+[INFO] ActiveMQ Artemis Prometheus Metrics Plugin ......... SUCCESS [34.596 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 43.030 s
[INFO] Finished at: 2020-04-10T13:36:27+02:00
[INFO] ------------------------------------------------------------------------
-```
+```text
- New artifact is copied to artemis broker. Artefact artemis-prometheus-metrics-plugin/target/artemis-prometheus-metrics-plugin-VERSION.jar is copied to our broker:
```bash
[activemq@my_servername artemis-prometheus-metrics-plugin]$ cp artemis-prometheus-metrics-plugin/target/artemis-prometheus-metrics-plugin-
1.0.0.CR1.jar /var/lib/artemisbroker/lib/
-```
+```text
- Edition of file /var/lib/artemisbroker/etc/broker.xml
-```
+```text
-```
+```text
- Creation of /web
-```
+```text
[activemq@my_servername artemisbroker]$ mkdir /var/lib/artemisbroker/web
-```
+```text
- Artifact artemis-prometheus-metrics-plugin-servlet/target/metrics.war is copied to /web :
```bash
[activemq@my_servername artemis-prometheus-metrics-plugin]$ cp artemis-prometheus-metrics-plugin-servlet/target/metrics.war /var/lib/artem
isbroker/web/
-```
+```text
- Below web component added to /etc/bootstrap.xml :
-```
+```text
[activemq@my_servername artemis-prometheus-metrics-plugin]$ vim /var/lib/artemisbroker/etc/bootstrap.xml
...
...
-```
+```text
- Restart of Artemis Broker
- Prometheus configuration, scrape_configs in /opt/prometheus/prometheus.yml :
-```
+```text
scrape_configs:
# The job name is added as a label `job=` to any timeseries scraped from this config.
- job_name: 'prometheus'
@@ -699,7 +699,7 @@ scrape_configs:
- job_name: 'broker'
static_configs:
- targets: ['localhost:8161']
-```
+```text
- Last step: Apparently there's not Grafana Dashboard available for this use case. It is required to [develop a new Grafana Dashboard](https://www.openlogic.com/blog/how-visualize-prometheus-data-grafana).
@@ -716,7 +716,7 @@ scrape_configs:
```bash
$ cp /opt/artemis/lib/client/artemis-jms-client-all-2.11.0.jar /opt/apache-jmeter-5.2.1/lib/
-```
+```text
- jndi.properties file is modified with Artemis' IP address (it is not listening on localhost):
@@ -724,7 +724,7 @@ $ cp /opt/artemis/lib/client/artemis-jms-client-all-2.11.0.jar /opt/apache-jmete
$ vim /opt/artemis/examples/perf/jmeter/jndi.properties
$ cat /opt/artemis/examples/perf/jmeter/jndi.properties
connectionFactory.ConnectionFactory=tcp://192.168.1.38:61616
-```
+```text
- jndi.properties is packaged in a jar file and moved to $JMETER_HOME/lib :
@@ -743,7 +743,7 @@ total 32
-rw-rw-r-- 1 activemq activemq 946 May 15 08:46 artemis-jndi.jar
-rw-rw-r-- 1 activemq activemq 833 Jan 10 16:22 jndi.properties
[activemq@my_servername jmeter]$ cp artemis-jndi.jar /opt/apache-jmeter-5.2.1/lib/
-```
+```text
- Example Test Plans available at Artemis GitHub Repo are run by JMeter (from within the GUI or the CLI):
@@ -764,7 +764,7 @@ drwxrwxr-x 3 activemq activemq 19 Jan 10 16:22 ..
[activemq@my_servername ~]$ /opt/apache-jmeter-5.2.1/bin/jmeter.sh -n -t /opt/artemis/examples/perf/jmeter/1.jms_p2p_test.jmx -l results-file-1.txt -j 1.log
[activemq@my_servername ~]$ /opt/apache-jmeter-5.2.1/bin/jmeter.sh -n -t /opt/artemis/examples/perf/jmeter/2.pub_sub_test.jmx -l results-file-2.txt -j 2.log
-```
+```text
- We can now see metrics displayed on Grafana and Artemis Dashboard:
diff --git a/docs/python.md b/docs/python.md
index 577350ad..311f24d4 100644
--- a/docs/python.md
+++ b/docs/python.md
@@ -289,7 +289,7 @@
- Flask is a Python lightweight web application development framework with simplicity and extensibility. Flask is called **โmicroframeworkโ** because of using a simple core and extensions are used to add other functions.
- [Flask Documentation ๐](https://flask.palletsprojects.com/en/stable)
- [The Flask Mega-Tutorial: Now with Python 3 Support](http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-now-with-python-3-support)
-- [realpython.com: Discover Flask, Part 1 - Setting Up a Static Site ](https://realpython.com/learning-paths/flask-by-example)
+- [realpython.com: Discover Flask, Part 1 - Setting Up a Static Site](https://realpython.com/learning-paths/flask-by-example)
- [devbattles.com: Python Flask, Part 1: Hello World!](http://www.devbattles.com/en/sand/post-1757-Python_Flask_Part_1_Hello_World)
- [mherman.org: Scaling Flask with Kubernetes ๐](https://mherman.org/presentations/flask-kubernetes)
- [kdnuggets.com: How to Deploy a Flask API in Kubernetes and Connect it with Other Micro-services](https://www.kdnuggets.com/2021/02/deploy-flask-api-kubernetes-connect-micro-services.html)