This commit is contained in:
Inaki Fernandez
2020-06-29 19:32:10 +02:00
parent eef5f0d6ac
commit 8df0a823a6
6 changed files with 34 additions and 22 deletions

View File

@@ -95,7 +95,7 @@ A curated list of awesome references collected since 2018. Microservices archite
- [Nexus & JFrog Artifactory](nexus-jfrog.md)
- [Selenium, Appium & Zephyr Jira plugin](selenium-appium-zephyr.md)
- [Linux & SSH 🌟](linux.md)
- [YAML processors & Static Checking of Kubernetes YAML Files](yaml-processors.md)
- [Templating YAML, YAML Processors & Static Checking of Kubernetes YAML Files](yaml.md)
- [MkDocs & GitHub Pages](mkdocs.md)
### Web Servers, Reverse Proxies, Java Runtimes & Caching Solutions
- [Web Servers & Reverse Proxies: Apache, Nginx, HAProxy, Traefik and more](web-servers.md)

View File

@@ -13,6 +13,7 @@
* [Dzone: What Is Kubernetes?](https://dzone.com/articles/what-is-kubernetes-in-devops)
* [jaxenter.com: Practical Implications for Adopting a Multi-Cluster, Multi-Cloud Kubernetes Strategy](https://jaxenter.com/kubernetes-practical-implications-171647.html)
* [jaxenter.com: Six Essential Kubernetes Extensions to Add to Your Toolkit 🌟](https://jaxenter.com/kubernetes-extensions-172215.html)
* [thoughtworks.com: Kubernetes](https://www.thoughtworks.com/radar/platforms/kubernetes)
<center>
[![microservices infographic](images/microservices-infographic.png)](https://www.weave.works/technologies/going-cloud-native-6-essential-things-you-need-to-know)

View File

@@ -293,6 +293,7 @@ kubectl get secret <secret-name> --namespace=<source>-o yaml | sed s/names
* [Fabric8.io Microservices Development Platform](https://fabric8.io/) It is an open source microservices platform based on Docker, Kubernetes and Jenkins. It is built by the Red Hat guys.The purpose of the project is to make it easy to create microservices, build, test and deploy them via Continuous Delivery pipelines then run and manage them with Continuous Improvement and ChatOps. Fabric8 installs and configures the following things for you automatically: Jenkins, Gogs, Fabric8 registry, Nexus, SonarQube.
## Helm Kubernetes Tool
* [thoughtworks.com: Helm](https://www.thoughtworks.com/radar/tools/helm)
* [helm.sh](https://helm.sh/)
* [helm.sh/docs](https://helm.sh/docs)
* [GitHub: Helm, the Kubernetes Package Manager](https://github.com/helm/helm) Installing and managing Kubernetes applications

View File

@@ -1,20 +0,0 @@
# YAML Processors and Static Checking of Kubernetes YAML Files
## YAML Processors
- [wikipedia: YAML](https://en.wikipedia.org/wiki/YAML)
- [github.com/topics/yaml-processor](https://github.com/topics/yaml-processor)
- You should use tools such as [yq](https://mikefarah.gitbook.io/yq/) and kustomize to template YAML resources instead of relying on tools that interpolate strings such as [Helm](https://helm.sh/).
- [yq 🌟](https://mikefarah.gitbook.io/yq/) is a lightweight and portable command-line YAML processor. The aim of the project is to be the [jq](https://github.com/stedolan/jq) or sed of yaml files.
- [ytt](https://get-ytt.io/) is a templating tool that understands YAML structure allowing you to focus on your data instead of how to properly escape it.
## Static Checking of Kubernetes YAML Files
- The ecosystem of static checking of Kubernetes YAML files can be grouped in the following categories:
- **API validators**: Tools in this category validate a given YAML manifest against the Kubernetes API server.
- **Built-in checkers**: Tools in this category bundle opinionated checks for security, best practices, etc.
- **Custom validators**: Tools in this category allow writing custom checks in several languages such as Rego and Javascript.
- [Validating Kubernetes YAML for best practice and policies 🌟](https://learnk8s.io/validating-kubernetes-yaml) In this article, you will learn and compare six different tools:
- [Kubeval](https://www.kubeval.com/)
- [Kube-score](https://github.com/zegl/kube-score)
- [Config-lint](https://stelligent.github.io/config-lint)
- [Copper](https://github.com/cloud66-oss/copper)
- [Conftest](https://www.conftest.dev/)
- [Polaris](https://github.com/FairwindsOps/polaris)

30
docs/yaml.md Normal file
View File

@@ -0,0 +1,30 @@
# Templating YAML, YAML Processors and Static Checking of Kubernetes YAML Files
## YAML
- [wikipedia: YAML](https://en.wikipedia.org/wiki/YAML)
- [stevehorsfield.wordpress.com: DevOps tricks: Templating YAML files](https://stevehorsfield.wordpress.com/2019/08/13/devops-tricks-templating-yaml-files/)
## Templating YAML Files
- [thoughtworks.com: Templating in YAML](https://www.thoughtworks.com/radar/techniques/templating-in-yaml) As infrastructures grow in complexity, so do the configuration files that define them. Tools such as [AWS CloudFormation](https://aws.amazon.com/cloudformation/), [Kubernetes](https://www.thoughtworks.com/radar/platforms/kubernetes) and [Helm](https://www.thoughtworks.com/radar/tools/helm) expect configuration files in JSON or YAML syntax, presumably in an attempt to make them easy to write and process. However, in most cases, teams quickly reach the point where they have some parts that are similar but not quite the same, for example, when the same service must be deployed in different regions with a slightly different setup. For such cases tools offer templating in YAML (or JSON), which has caused a huge amount of [frustration with practitioners](https://leebriggs.co.uk/blog/2019/02/07/why-are-we-templating-yaml.html). The problem is that the syntax of JSON and YAML requires all sorts of awkward compromises to graft templating features such as conditionals and loops into the files. **We recommend using an API from a programming language instead or, when this is not an option, a templating system in a programming language, either a general-purpose language such as Python or something specialized such as [Jsonnet](https://jsonnet.org/).**
- [ytt](https://get-ytt.io/) is a templating tool that understands YAML structure allowing you to focus on your data instead of how to properly escape it.
## Templating JSON Files
- [Jsonnet](https://jsonnet.org/) A data templating language for app and tool developers
## YAML Processors
- [github.com/topics/yaml-processor](https://github.com/topics/yaml-processor)
- You should use tools such as [yq](https://mikefarah.gitbook.io/yq/) and kustomize to template YAML resources instead of relying on tools that interpolate strings such as [Helm](https://helm.sh/).
- [yq 🌟](https://mikefarah.gitbook.io/yq/) is a lightweight and portable command-line YAML processor. The aim of the project is to be the [jq](https://github.com/stedolan/jq) or sed of yaml files.
## Static Checking of Kubernetes YAML Files
- The ecosystem of static checking of Kubernetes YAML files can be grouped in the following categories:
- **API validators**: Tools in this category validate a given YAML manifest against the Kubernetes API server.
- **Built-in checkers**: Tools in this category bundle opinionated checks for security, best practices, etc.
- **Custom validators**: Tools in this category allow writing custom checks in several languages such as Rego and Javascript.
- [Validating Kubernetes YAML for best practice and policies 🌟](https://learnk8s.io/validating-kubernetes-yaml) In this article, you will learn and compare six different tools:
- [Kubeval](https://www.kubeval.com/)
- [Kube-score](https://github.com/zegl/kube-score)
- [Config-lint](https://stelligent.github.io/config-lint)
- [Copper](https://github.com/cloud66-oss/copper)
- [Conftest](https://www.conftest.dev/)
- [Polaris](https://github.com/FairwindsOps/polaris)

View File

@@ -95,7 +95,7 @@ nav:
- Nexus & JFrog Artifactory: nexus-jfrog.md
- Selenium, Appium & Zephyr Jira plugin: selenium-appium-zephyr.md
- Linux & SSH: linux.md
- YAML processors & Static Checking of Kubernetes YAML Files: yaml-processors.md
- Templating YAML, YAML Processors & Static Checking of Kubernetes YAML Files: yaml.md
- MkDocs & GitHub Pages: mkdocs.md
- Web Servers, Reverse Proxies, Java Runtimes & Caching Solutions:
- Web Servers & Reverse Proxies - Apache, Nginx, HAProxy, Traefik and more: web-servers.md