Skip to content

Commit

Permalink
Merge pull request #253 from sfeir-open-source/aws-school-slides-update
Browse files Browse the repository at this point in the history
Aws school slides update
  • Loading branch information
cdarcy authored Dec 5, 2024
2 parents 4fc9fd8 + 04b0c60 commit 7593585
Show file tree
Hide file tree
Showing 20 changed files with 107 additions and 56 deletions.
Binary file added docs/assets/images/aws_associate_badge.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/images/aws_developper_associate.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/images/aws_logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/images/new_terraform_badge.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/images/speakers/bma.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/images/speakers/cda.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 23 additions & 1 deletion docs/markdown/00-school/planning.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ Jour 2 : Collaboration et production

##==##


# Déroulement de la formation

<br>
Expand All @@ -101,7 +102,7 @@ Jour 2 : Collaboration et production
- Manipulation du fichier d’état
- Gestion des credentials
- Templating
- Ateliers: Création d’un registre de modules dans gitlab
- Atelier: Développement d'un module de déploiement d'environnements

##==##

Expand All @@ -123,6 +124,8 @@ Jour 2 : Collaboration et production

##==##

<!-- .slide: data-type-show="gcp prez" -->

# Déroulement de la formation

<br>
Expand All @@ -137,3 +140,22 @@ Jour 2 : Collaboration et production
<img class="h-400" src="./assets/images/g418fd663c2_0_70.png">
<img class="h-400" src="./assets/images/g418fd663c2_0_72.png">
</div>

##==##

<!-- .slide: data-type-show="aws" -->

# Déroulement de la formation

<br>

<https://github.com/sfeir-open-source/sfeir-school-terraform>

<https://sfeir-open-source.github.io/sfeir-school-terraform>

<https://console.aws.amazon.com/>

<div class="flex-row">
<img class="h-400" src="./assets/images/g418fd663c2_0_70.png">
<img style="height: 300px" class="h-400" src="./assets/images/aws_logo.png">
</div>
22 changes: 22 additions & 0 deletions docs/markdown/00-school/speaker-bma.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<!-- .slide: class="speaker-slide" -->

# Présentation

![speaker](./assets/images/speakers/bma.jpg)
![badge first-badge](./assets/images/aws_associate_badge.png)
![badge second-badge](./assets/images/aws_developper_associate.png)
![company](./assets/images/logo-sfeir-blanc.png)

<h2> Benoît <span>MAIRE</span></h2>

### SE Cloud Nantes

<!-- .element: class="icon-rule icon-first" -->

### @benoit_maire

<!-- .element: class="icon-linkedin icon-second" -->

### [email protected]

<!-- .element: class="icon-mail icon-third" -->
17 changes: 17 additions & 0 deletions docs/markdown/00-school/speaker-cda.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<!-- .slide: class="speaker-slide" -->

# Présentation

![speaker](./assets/images/speakers/cda.png)
![company](./assets/images/logo-sfeir-blanc.png)

![badge first-badge](./assets/images/aws_associate_badge.png)
![badge second-badge](./assets/images/new_terraform_badge.png)

<h2> Camille <span>DARCY</span></h2>

### SE Cloud Nantes
<!-- .element: class="icon-rule icon-first" -->

### [email protected]
<!-- .element: class="icon-third" -->
18 changes: 0 additions & 18 deletions docs/markdown/00-school/speaker-mda.md

This file was deleted.

12 changes: 7 additions & 5 deletions docs/markdown/01_intro/02-infra-as-code.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,20 +62,22 @@ Le développer a à sa disposition un ensemble de modules développés par les

## Produit Open-source

![float-left h-300](./assets/images/g418fd663c2_0_224.png)
![float-left h-200](./assets/images/g418fd663c2_0_224.png)

* <https://github.com/hashicorp/terraform>

* 40k+ stars
* 1700+ contributeurs
* Open source jusqu'en janvier 2024 puis sous licence BSL depuis

* Suite à ce changement de licence, un fork sous licence MPLv2 vu le jour : [OpenTofu](https://opentofu.org)

* Open source jusqu'en janvier 2024 puis sous licence BSL depuis

Notes:
Produit développé en Go.
Open source jusqu'au 1er Janvier 2024 puis sous license BSL (Business Source License) depuis

Suite à ce changement de licence, un fork a vu le jour : OpenTofu
Open source jusqu'au 1er Janvier 2024 puis sous license BSL (Business Source License) depuis.
En désaccord avec hashicorp, un fork opensource a été initié par la communauté : OpenTofu
Même fonctionnalités / syntaxe que la version originale

##==##

Expand Down
2 changes: 1 addition & 1 deletion docs/markdown/02_premiers_pas/01-installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Plusieurs IDE disponibles :

- Intellij
- Atom
- Visual Studio Code
- Visual Studio Code (VSCode)
- Sublime Text
- VIM

Expand Down
5 changes: 4 additions & 1 deletion docs/markdown/02_premiers_pas/02-hcl-language.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Le HCL est un langage déclaratif décrivant un état désiré (DSL) plutôt que

Notes:

- Langage de configuration développé par HashiCorp et ré-utilisé dans ses différents produits. Uniquement déclaratif, il est associé au HIL (HashiCorp Interpolation Language) lorsqu’il faut calculer des valeurs.
- Langage de configuration développé par HashiCorp et ré-utilisé dans ses différents produits.

##==##

Expand Down Expand Up @@ -45,11 +45,14 @@ Notes:
Un provider correspond à un ensemble de ressources, chacune de ces ressources est définie par un ou plusieurs arguments et attributs.
Chaque provider fait appel à l'API correspondant à un service *cloud* ou *on-premise*.

<https://registry.terraform.io/>

Notes:

- Certains providers ne sont pas officiellement supportés par **Hashicorp** mais sont tout de même utilisable avec **Terraformm**.
- Les arguments du bloc provider diffèrent d'un provider à l'autre, certains sont similaire (AWS et AliCloud - par exemple).
- Parmis les provider non supportés officiellement par hashicorp, on peut retrouver kubectl et Artifactory
- Il est possible de développer son propre provider en suivant le schéma de définition des providers terraform

##==##

Expand Down
6 changes: 5 additions & 1 deletion docs/markdown/02_premiers_pas/03-terraform-commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
Cette commande permet d’initialiser le répertoire de travail courant.

* Lit le fichier configuration personnel ~/.terraformrc si existant
* Télécharge les providers et provisioners nécessaires (officiels) sur <https://registry.hashicorp.com/>
* Télécharge les providers et provisioners nécessaires (officiels) sur <https://registry.terraform.io/>
* Instancie le fichier d’état (local ou distant)
* Effectue un “terraform get“ si nécessaire.
* Un fichier *.terraform.lock.hcl* sera automatiquement créé pour garantir l'intégrité des dépendances
Expand All @@ -29,6 +29,7 @@ Cette commande est utilisée pour télécharger les modules hébergés hors du r
<br>

Les modules ainsi téléchargés seront stockés dans le dossier “.terraform” du répertoire courant (appelé root module).
En général non utilisé car intégré à la commande terraform init

##==##

Expand Down Expand Up @@ -65,3 +66,6 @@ Lors de l'exécution de cette commande, terraform effectue les appels APIs sur l
## Terraform destroy

Terraform destroy décommissionne les ressources présentes (et uniquement) dans le fichier d’état. Il ne modifie pas les ressources dont il n’a pas connaissance.

Notes:
Conseil : à chaque fois que l'on effectue des tests de déploiement sur un cloud public => bien penser à faire un destroy de l'infra
33 changes: 13 additions & 20 deletions docs/markdown/03_hcl/11-hcl-extended.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<!-- .slide: class="with-code-bg-dark"-->

# HCL extended (also known as HIL)
# HCL Extended

Avant la version 0.12, Terraform était composé de deux langages :

Expand All @@ -12,39 +12,30 @@ Depuis la version 0.12, HCL et HIL ont fusionné.
##==##
<!-- .slide: class="with-code-bg-dark"-->

# HCL extended (also known as HIL)
# HCL Extended

Il est possible de manipuler des variables, récupérer des attributs d’autres ressources ou utiliser des fonctions native directement dans notre code :

```hcl-terraform
data "template_file" "example" {
template = file("templates/greeting.tpl")
vars {
hello = "goodnight"
world = "moon"
}
locals {
greeting_vars = {
hello = "goodnight"
world = "moon"
}
}
```

Usage
```hcl-terraform
resource "aws_instance" "web" {
ami = "ami-d05e75b8"
instance_type = "t2.micro"
user_data_base64 = data.template_file.example.rendered
user_data_base64 = base64encode(templatefile("templates/greetings.tpl", local.greeting_vars))
}
```

Il reste néanmoins possible (mais déprécié) d'utiliser l'ancien format via l'utilisation de `"${ ... }"`

Par exemple : `"${data.template_file.example.rendered}"`

##==##

# HCL extended (also known as HIL)
# HCL Extended

## Lier les attributs
## Lire les attributs

Il est possible de lire la valeur d’un attribut d’une ressource, d’une source de donnée, d’une variable, …

Expand All @@ -58,7 +49,7 @@ Cas d’une liste de resource : `resource_type.resource_name[<index>].attribut`
##==##
<!-- .slide: class="with-code-bg-dark"-->

# HCL extended (also known as HIL)
# HCL Extended

## Fonctions

Expand All @@ -71,3 +62,5 @@ Exemple d’utilisation :
upper-foo = upper(var.foo)
encoded = base64encode(var.sensitive_content)
```
Notes:
Certaines fonctions sont issues de providers basiques qui ont été intégrés en tant que fonction "builtin" (ex: templatefile)
6 changes: 4 additions & 2 deletions docs/markdown/03_hcl/12-loops.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<!-- .slide: class="with-code-bg-dark"-->

# HCL extended (also known as HIL)
# HCL Extended

## Boucles

Expand All @@ -12,7 +12,7 @@ Terraform permet de déployer plusieurs ressources de même type via une unique

<!-- .slide: class="with-code-bg-dark"-->

# HCL extended (also known as HIL)
# HCL Extended

## Boucles

Expand All @@ -26,3 +26,5 @@ resource "vault_ldap_auth_backend_group" "group-users" {
backend = vault_ldap_auth_backend.ldap.path
}
```
Notes:
Idéalement, il faudrait créer une variable locale dédiée pour gérer les listes de policies pour chaque groupe => simplifier la lisibilité du code
2 changes: 1 addition & 1 deletion docs/markdown/03_hcl/13-conditions.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<!-- .slide: class="with-code-bg-dark"-->

# HCL extended (also known as HIL)
# HCL Extended

## Conditions

Expand Down
12 changes: 8 additions & 4 deletions docs/markdown/03_hcl/14-dynamics.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<!-- .slide: class="with-code-bg-dark"-->

# HCL extended (also known as HIL)
# HCL Extended

## Dynamic blocks

Expand All @@ -24,14 +24,15 @@ resource "google_storage_bucket" "auto-expire" {

Ce "lifecycle_rule" n'est pas pas un simple attribut qui accepte un map, mais c'est un "nested block".

Notes:
Généralement, ces blocs peuvent être présent plusieurs fois dans une même resource (pour définir plusieurs life_cycle_rule dans l'example).

##==##
<!-- .slide: class="with-code-bg-dark"-->

# HCL extended (also known as HIL)
# HCL Extended

## Dynamic blocks
## Dynamic blocks (suite)

Pour générer dynamiquement ces blocs, vous aurez besoin d'écrire des "[Dynamic blocks](https://www.terraform.io/language/expressions/dynamic-blocks)" :

Expand All @@ -49,7 +50,7 @@ variable "lifecycle_rules" {
##==##
<!-- .slide: class="with-code-bg-dark"-->

# HCL extended (also known as HIL)
# HCL Extended

## Dynamic blocks (suite)

Expand All @@ -75,3 +76,6 @@ resource "google_storage_bucket" "auto-expire" {
Contrairement à un *for_each* sur une resource, ici, la variable permettant d'accéder aux éléments est le nom du "dynamic block" par défaut (ici: *lifecycle_rule*).

Vous pouvez spécifier un autre nom pour cette variable avec "iterator = *name*"

Notes:
Intéret = générer dynamiquement des nested-blocks à partir de variables, de datasources ou d'autres resources
2 changes: 1 addition & 1 deletion docs/markdown/06_coop/01-modules-dev.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,6 @@ module "gke-regional" {
Les modules peuvent être gérés comme des packages.

- [semantic-release](https://semantic-release.gitbook.io/semantic-release/) : automatiser la gestion des versions (CHANGELOG, incréments, ...) et la publication des packages
- [Dependabot](https://dependabot.com/terraform/) : gestion de l'obsolescence
- [Dependabot](https://dependabot.com/terraform/) ou [renovatebot](https://github.com/renovatebot/renovate): gestion de l'obsolescence
- terraform-docs (module-4) : générer la documentation
- CODEOWNERS : identifier, notifier et autoriser uniquement les changements via les code owners
2 changes: 1 addition & 1 deletion docs/scripts/slides.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { SfeirThemeInitializer } from '../web_modules/sfeir-school-theme/sfeir-s

// One method per module
function schoolSlides() {
return ['00-school/00-TITLE.md', '00-school/speaker-jna.md', '00-school/speaker-mda.md', '00-school/speaker-ame.md', '00-school/speaker-lbi.md', '00-school/speaker-adh.md', '00-school/speaker-gar.md' , '00-school/planning.md'];
return ['00-school/00-TITLE.md', '00-school/speaker-jna.md', '00-school/speaker-ame.md', '00-school/speaker-lbi.md', '00-school/speaker-adh.md', '00-school/speaker-gar.md' , '00-school/speaker-cda.md' ,'00-school/speaker-bma.md' , '00-school/planning.md'];
}

function introSlides() {
Expand Down

0 comments on commit 7593585

Please sign in to comment.