From 5ab4f0646fa950745b097707fafd9537dabed5ad Mon Sep 17 00:00:00 2001 From: Max batleforc Date: Fri, 6 Sep 2024 00:01:37 +0200 Subject: [PATCH] feat: add doc on CICD/GitOps/Kube/some other aspect --- folio_content/content/techno/infra/ansible.md | 25 ++++++++++++++++ .../content/techno/infra/application/index.md | 10 +++++++ .../content/techno/infra/cicd/concourse.md | 24 +++++++++++++++ .../content/techno/infra/cicd/github.md | 27 +++++++++++++++++ .../content/techno/infra/cicd/gitlab.md | 27 +++++++++++++++++ .../content/techno/infra/cicd/tekton.md | 30 +++++++++++++++++++ .../techno/infra/{ => gitops}/argocd.md | 0 .../content/techno/infra/gitops/fluxcd.md | 27 +++++++++++++++++ .../content/techno/infra/{ => kube}/helm.md | 0 .../infra/{kubernetes.md => kube/index.md} | 0 .../content/techno/infra/kube/k3s.md | 27 +++++++++++++++++ .../content/techno/infra/kube/microk8s.md | 27 +++++++++++++++++ .../content/techno/language/back/java.md | 2 ++ 13 files changed, 226 insertions(+) create mode 100644 folio_content/content/techno/infra/ansible.md create mode 100644 folio_content/content/techno/infra/application/index.md create mode 100644 folio_content/content/techno/infra/cicd/concourse.md create mode 100644 folio_content/content/techno/infra/cicd/github.md create mode 100644 folio_content/content/techno/infra/cicd/gitlab.md create mode 100644 folio_content/content/techno/infra/cicd/tekton.md rename folio_content/content/techno/infra/{ => gitops}/argocd.md (100%) create mode 100644 folio_content/content/techno/infra/gitops/fluxcd.md rename folio_content/content/techno/infra/{ => kube}/helm.md (100%) rename folio_content/content/techno/infra/{kubernetes.md => kube/index.md} (100%) create mode 100644 folio_content/content/techno/infra/kube/k3s.md create mode 100644 folio_content/content/techno/infra/kube/microk8s.md diff --git a/folio_content/content/techno/infra/ansible.md b/folio_content/content/techno/infra/ansible.md new file mode 100644 index 0000000..476ebe9 --- /dev/null +++ b/folio_content/content/techno/infra/ansible.md @@ -0,0 +1,25 @@ +--- +date: 2024-07-16T22:51:00Z +title: "Ansible" +description: "Ansible - The automation tool" +spec: + blog: false + project: false + doc: true +links: + - name: "Ansible" + url: "https://www.ansible.com/" + - name: "Ansible Bible" + url: "https://blog.stephane-robert.info/docs/infra-as-code/gestion-de-configuration/ansible/introduction/" +tags: + - "Automation" + - "Ansible" + - "Yaml" + - "Infrastructure as Code" +--- + +## Ansiible + +Ansible is an automation tool that allows you to automate the configuration of your servers. It's based on Yaml files that you can put in your repository. It's a pretty simple way to setup configuration like installing packages, configuring services, etc. + +An ansible configuration is split between Tasks, Playbooks, Roles, etc. It's a must have tool in the belt in order to automate the setup of your environment. It's my favorite tool to automate the first setup and keep up to date the configuration of my servers. diff --git a/folio_content/content/techno/infra/application/index.md b/folio_content/content/techno/infra/application/index.md new file mode 100644 index 0000000..c9f20ec --- /dev/null +++ b/folio_content/content/techno/infra/application/index.md @@ -0,0 +1,10 @@ +--- +date: 2024-09-04T22:51:00Z +title: "App setup" +spec: + blog: false + project: true + doc: true +--- + +## Soon TM diff --git a/folio_content/content/techno/infra/cicd/concourse.md b/folio_content/content/techno/infra/cicd/concourse.md new file mode 100644 index 0000000..4fdfc79 --- /dev/null +++ b/folio_content/content/techno/infra/cicd/concourse.md @@ -0,0 +1,24 @@ +--- +date: 2024-07-16T22:51:00Z +title: "Concourse" +description: "Concourse - Another CI/CD tool" +spec: + blog: false + project: false + doc: true +links: + - name: "Concourse" + url: "https://concourse-ci.org/" +techno: + - "Yaml" + - "CI/CD" + - "Concourse" +tags: + - "Runners" + - "Continous Integration" + - "Continous Deployment" +--- + +## Concourse + +Concourse was my first selfhosted CI/CD tool, disliking Gitlab CI/CD and Jenkins, i've tried Concourse. It's a pretty good tool, based on Yaml files, it's not that easy to use at first. I would recommend it to docker only projects, it's a pretty good tool for that. On the long run, i've switched to Tekton and dumped Concourse. But if you need a CI/CD and enjoin Docker, you should give it a try. diff --git a/folio_content/content/techno/infra/cicd/github.md b/folio_content/content/techno/infra/cicd/github.md new file mode 100644 index 0000000..d645d4b --- /dev/null +++ b/folio_content/content/techno/infra/cicd/github.md @@ -0,0 +1,27 @@ +--- +date: 2024-07-16T22:51:00Z +title: "Github Actions" +description: "Github Actions - The CI/CD of Github" +spec: + blog: false + project: false + doc: true +links: + - name: "Github Actions" + url: "https://github.com/features/actions" +techno: + - "Yaml" + - "Github Actions" + - "CI/CD" +tags: + - "Github Actions" + - "Continous Integration" + - "Continous Deployment" + - "CI/CD" +--- + +## Github Actions + +Github Actions is the CI/CD system of Github. It allows you to run multiple kind of pipelines on your code. It's based on Yaml files that you can put in your repository. It's a pretty simple way to setup action like testing your code, building it, doing some checks, etc. It's a pretty good tool to start with CI/CD. + +I use Github Actions in lots of my projects. It comes in addition to Tekton for some of my projects. In Monofolio i use Github Action to run tests, security checks, code coverage, etc. diff --git a/folio_content/content/techno/infra/cicd/gitlab.md b/folio_content/content/techno/infra/cicd/gitlab.md new file mode 100644 index 0000000..9b38b65 --- /dev/null +++ b/folio_content/content/techno/infra/cicd/gitlab.md @@ -0,0 +1,27 @@ +--- +date: 2024-07-16T22:51:00Z +title: "Gitlab CI/CD" +description: "Gitlab CI/CD - The CI/CD of Gitlab" +spec: + blog: false + project: false + doc: true +links: + - name: "Gitlab CI/CD" + url: "https://docs.gitlab.com/ee/ci/" + - name: "Gitlab" + url: "https://gitlab.com/" +techno: + - "Yaml" + - "Gitlab CI/CD" + - "CI/CD" + - "Gitlab" +tags: + - "Runners" + - "Continous Integration" + - "Continous Deployment" +--- + +## Gitlab CI/CD + +Gitlab CI/CD is the CI/CD system of Gitlab. It allows you to run multiple kind of pipelines on your code. It's based on Yaml files that you can put in your repository. It's not my favorite CI/CD tool but it's a pretty good one. Like Tekton, it's a pretty good tool to start with CI/CD, it has a lot of features and an approach to the CI/CD that is pretty simple to understand. diff --git a/folio_content/content/techno/infra/cicd/tekton.md b/folio_content/content/techno/infra/cicd/tekton.md new file mode 100644 index 0000000..fee7ec4 --- /dev/null +++ b/folio_content/content/techno/infra/cicd/tekton.md @@ -0,0 +1,30 @@ +--- +date: 2024-07-16T22:51:00Z +title: "Tekton" +description: "Tekton - The Kubernetes-native CI/CD" +spec: + blog: false + project: false + doc: true +links: + - name: "Tekton" + url: "https://tekton.dev/" + - name: "Hub Tekton" + url: "https://hub.tekton.dev/" +techno: + - "Kubernetes" + - "Yaml" + - "Golang" + - "Tekton" + - "CI/CD" +tags: + - "Kubernetes" + - "Tekton" + - "Continous Integration" +--- + +## Tekton + +Tekton is a Kubernetes-native open-source framework to build CI/CD systems. It allows you to build, test, and deploy across multiple cloud providers or on-premises systems by abstracting away the underlying implementation details. The way Tekton works is by defining a set of tasks that are executed in a sequence. Each task is a container that runs a predefined set of commands. The power of Tekton is it's flexibility and ability to be extended or templated to fit your needs. + +Tekton is at the moment the CI/CD tool that i use for most of my env. I'm searching for a way to extend it's capabilities to have more tools in my belt. diff --git a/folio_content/content/techno/infra/argocd.md b/folio_content/content/techno/infra/gitops/argocd.md similarity index 100% rename from folio_content/content/techno/infra/argocd.md rename to folio_content/content/techno/infra/gitops/argocd.md diff --git a/folio_content/content/techno/infra/gitops/fluxcd.md b/folio_content/content/techno/infra/gitops/fluxcd.md new file mode 100644 index 0000000..dda743b --- /dev/null +++ b/folio_content/content/techno/infra/gitops/fluxcd.md @@ -0,0 +1,27 @@ +--- +date: 2024-07-16T22:51:00Z +title: "FluxCD" +description: "FluxCD - The GitOps Kubernetes operator" +spec: + blog: false + project: false + doc: true +links: + - name: "FluxCD" + url: "https://fluxcd.io/" +techno: + - "Kubernetes" + - "Helm" + - "Yaml" + - "GitOps" +tags: + - "GitOps" + - "FluxCD" + - "Continous Deployment" +--- + +## FluxCD + +FluxCD is a Gitops tool for kubernetes. This tool is used to define the desired state of defined resources on the kubernetes cluster. + +FluxCD is at the moment the GitOps tool that i use for my own env. diff --git a/folio_content/content/techno/infra/helm.md b/folio_content/content/techno/infra/kube/helm.md similarity index 100% rename from folio_content/content/techno/infra/helm.md rename to folio_content/content/techno/infra/kube/helm.md diff --git a/folio_content/content/techno/infra/kubernetes.md b/folio_content/content/techno/infra/kube/index.md similarity index 100% rename from folio_content/content/techno/infra/kubernetes.md rename to folio_content/content/techno/infra/kube/index.md diff --git a/folio_content/content/techno/infra/kube/k3s.md b/folio_content/content/techno/infra/kube/k3s.md new file mode 100644 index 0000000..7177f54 --- /dev/null +++ b/folio_content/content/techno/infra/kube/k3s.md @@ -0,0 +1,27 @@ +--- +date: 2024-07-16T22:51:00Z +title: "K3s" +description: "K3s - Lightweight Kubernetes" +spec: + blog: false + project: false + doc: true +links: + - name: "K3s" + url: "https://k3s.io/" +techno: + - "Kubernetes" + - "Go" + - "Yaml" +tags: + - "Kubernetes" + - "K3s" + - "Lightweight" + - "K8s" +--- + +## K3s + +K3s is a lightweight Kubernetes distribution, it's meant to be used on edge devices or small environments like MonoNode. It's written in Go and is pretty simple to setup. It's a good way to have a Kubernetes cluster up and running in a few minutes. + +K3s is one of the upgrade that my environment has undergo. It's great configuration and simplicity made me switch from MicroK8S to K3s. It's the perfect tool for home labs. diff --git a/folio_content/content/techno/infra/kube/microk8s.md b/folio_content/content/techno/infra/kube/microk8s.md new file mode 100644 index 0000000..a991cd2 --- /dev/null +++ b/folio_content/content/techno/infra/kube/microk8s.md @@ -0,0 +1,27 @@ +--- +date: 2024-07-16T22:51:00Z +title: "microk8s" +description: "MicroK8S - Canonical Kubernetes" +spec: + blog: false + project: false + doc: true +links: + - name: "MicroK8S" + url: "https://microk8s.io/" +techno: + - "Kubernetes" + - "Go" + - "Yaml" +tags: + - "Kubernetes" + - "K3s" + - "Canonical" + - "K8s" +--- + +## MicroK8S + +MicroK8S is the Kubernetes environment from Canonical. It can be setup in a few minutes but isn't as lightweight as K3s. If you set it up on mono node, you will have to deal with the fact that you can't restart the node without losing a part of the cluster or having to set it back up from the ground. + +Well i'm not a big fan of MicroK8S, so im biased by the downside i encountered. diff --git a/folio_content/content/techno/language/back/java.md b/folio_content/content/techno/language/back/java.md index 5610056..63eb183 100644 --- a/folio_content/content/techno/language/back/java.md +++ b/folio_content/content/techno/language/back/java.md @@ -10,6 +10,8 @@ image: "ico#java" links: - name: "Java" url: "https://www.java.com/" + - name: "sdkman" + url: "https://sdkman.io/" tags: - "Systems Programming" - "Java"