Compare commits

..

64 Commits

Author SHA1 Message Date
Arnaud Prémel-Cabic
e4e42f3e69 docs: slide 33 — add speaker notes on Puppet's CA/certificate auth model
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 14:59:09 +02:00
Arnaud Prémel-Cabic
e763f16a07 docs: slide 14 — add a small HCL example illustrating block anatomy
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 14:50:12 +02:00
Arnaud Prémel-Cabic
9b33886075 feat: vendor tool icons and "this is fine" GIF locally
Download the Terraform/Ansible/Puppet simpleicons SVGs and the giphy
GIF into vendor/ and point all references at local paths, so the deck
runs fully offline with no runtime CDN dependencies.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 14:41:55 +02:00
Arnaud Prémel-Cabic
b93bf81151 docs: slide 41 — drop Copilot credit, reword to "with the help of Claude"
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 11:57:45 +02:00
Arnaud Prémel-Cabic
0e1f2d896b docs: slides 39/40 — note Ansible for on-demand one-off patching
Highlight Ansible's punctual/push ops (single patch on demand) alongside
config/deploy, contrasted with Puppet's continuous enforcement.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 11:55:48 +02:00
Arnaud Prémel-Cabic
b53bb67791 fix: slide 39 SVG — correct a-down arrow marker orientation
Marker polygon pointed down while orient=auto expects a right-pointing
arrow, so the heads rendered sideways. Use a right-pointing triangle
with proper refX/refY so orient=auto rotates it to point down.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 11:53:33 +02:00
Arnaud Prémel-Cabic
6e32edfe28 docs: slide 38 — add Perforce/OpenVox context in speaker notes
Keep the slide bullet concise; detail the Nov 2024 Perforce binary
lockdown, the developer/commercial EULA, and the Jan 2025 OpenVox
8.11 fork in the notes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 11:50:38 +02:00
Arnaud Prémel-Cabic
c80049b0ce fix: slide 36 SVG — move loop label above the curved arrow
"continuous enforcement loop" overlapped the top arc; raise it
above the curve (y 42 -> 22).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 11:46:45 +02:00
Arnaud Prémel-Cabic
a208ff4986 fix: slide 33 SVG — move Puppet Server label above box
Label was behind the pull arrows; move it on top of the box, shift
the box/icons down to make room, and re-point arrows to the new edge.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 11:42:37 +02:00
Arnaud Prémel-Cabic
4d22fc0f2a docs: fix slide 30 Ansible core license Apache 2.0 -> GPLv3
Same correction as slide 23 — ansible-core is GPLv3, not Apache 2.0
(slide line + speaker note)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 11:36:50 +02:00
Arnaud Prémel-Cabic
f8db0fda48 docs: slide 29 Galaxy — minimal install example, trusted-source guidance in notes
- replace specific geerlingguy example with generic
  ansible-galaxy install <namespace>.<role>
- move trusted/official/certified supply-chain guidance into speaker notes

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 11:35:36 +02:00
Arnaud Prémel-Cabic
99cc2de41e docs: link slide 26 dynamic inventory to Terraform state
- dynamic example now uses cloud.terraform.terraform_state plugin
  reading the .tfstate from the earlier Terraform slides
- notes explain the Terraform -> Ansible handoff (single source of truth)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 11:29:38 +02:00
Arnaud Prémel-Cabic
d085952a69 style: set global header/bullet sizing, drop inline overrides
- .reveal h2 -> 1.05em; section ul -> 0.9em globally
- keep Terraform/Ansible/Puppet divider titles large (2em on colored span)
- remove per-slide inline font-size overrides on slides 13/16/20/21/26

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 11:26:11 +02:00
Arnaud Prémel-Cabic
e893e39871 docs: add Ansible inventory slide (static vs dynamic) + Jinja2 notes
- new slide 26: inventory construction — static YAML vs dynamic
  OpenStack plugin, with side-by-side examples and notes
- renumber subsequent slide markers 26-40 -> 27-41 (now 41 slides)
- slide 25: add Jinja2 templating speaker notes

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 11:22:25 +02:00
Arnaud Prémel-Cabic
b1dab6fde4 docs: fix Ansible license + bullet sizing + slide 21 notes
- slide 23: Apache 2.0 -> GPLv3 (bullet + note), BSL -> BUSL in note
- slide 21: add Scalr to SaaS list in notes
- slides 13/16/20/21: shrink bullet lists to 0.9em

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 11:05:03 +02:00
Arnaud Prémel-Cabic
58ae6e890d docs: fix slide 20 OpenTofu facts + slide 21 heading size
- slide 20: BSL -> BUSL 1.1; "OpenTF Foundation" -> CNCF project;
  soften "fully compatible" to "diverging features"; note CNCF since 2025
- slide 21: smaller heading to match slide 20

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 10:58:33 +02:00
Arnaud Prémel-Cabic
5b11b26642 docs: refine Terraform slides (providers, versions, copy)
- slide 7: "Snowflake Hell" -> "configuration drift"
- slide 8: drop "Prod breaks on a Tuesday" bullet
- slide 13: BSL -> BUSL 1.1
- slide 17: lead with FR/EU providers (OVHcloud, Scaleway, Clever Cloud), drop GCP/Azure
- slide 18: Debian 13, OVH provider ~> 2.0, add version-syntax note
- slide 19: bump versions (openstack v3.4.0, ovh v2.13.1), minimal "..." trim markers + notes
- slide 20: smaller heading

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 10:54:09 +02:00
Arnaud Prémel-Cabic
b7b7998f22 docs: switch README to FR title + bilingual abstract
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 14:18:35 +02:00
Arnaud Prémel-Cabic
f8dc80027f feat: add speaker notes to all 40 slides
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 10:37:33 +02:00
Arnaud Prémel-Cabic
07ca8f2e3d docs: add title and abstract to README
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 10:17:42 +02:00
fa76a3a19a fix: remove fragment animations from slide 39
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 02:33:48 +02:00
f4b95c2676 feat: add fade-right fragments to slide 39 + Claude/Copilot credit
- Slide 39: fragment fade-right animation for each list item
- Slide 40: added '🤖 Made with Claude & GitHub Copilot' mention

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 02:33:04 +02:00
47e2882d08 feat: split slide 14 — HCL description + Terraform workflow
Slide 14: HCL language overview
Slide 15: plan → review → apply → destroy workflow with SVG

Renumber slides 1-40.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 02:30:03 +02:00
46b674ca29 style: add tool logos next to names on slide 11
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 02:28:00 +02:00
67867f3bbd fix: slide 37 — remove Day labels and fix arrow placement
Remove Day 0/1/2+ labels from the complementary tools diagram.
Adjust arrow positions to properly span gaps between layer boxes.
Remove shield icon from Puppet layer for cleaner look.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 02:26:05 +02:00
7b15bf7960 content: simplify slide 23 — remove daemon/CA/agents references
These concepts haven't been introduced yet at this point in the talk.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 02:22:43 +02:00
6a482c0445 feat: add 'What is it?' slides for Terraform, Ansible, Puppet
- Slide 13: Terraform — HashiCorp, 2014, Go, BSL license
- Slide 22: Ansible — Michael DeHaan/Red Hat, 2012, Python, Apache 2.0
- Slide 30: Puppet — Luke Kanies/Perforce, 2005, Ruby/Clojure

Renumber slides 1-39.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 02:19:39 +02:00
9dd6d89c43 style: center slide 11 text
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 02:16:08 +02:00
8ae95b03cf style: separate tool names from subtitle on slide 11
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 02:14:53 +02:00
cefa3e7dab content: tighten text across 14 slides
- Convert long sentences to bullet lists (slides 6, 8)
- Convert <p><br> platform lists to <ul> (slides 19, 26)
- Trim wordy phrases (slides 3, 9, 10, 11, 14, 15, 24, 28, 31, 34)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 02:11:27 +02:00
6493a0a86c style: reword slide 5 as bullet points
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 02:07:57 +02:00
ce3b26e62b style: reduce h1 to 1.8em so title fits on one line
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 02:06:34 +02:00
36a4390fa3 style: reduce h2 to 1.3em and shorten 4 long titles
Ensure all slide titles fit on a single line at 1280px:
- h2 font-size: 1.3em (was ~1.6em default)
- Shortened slides 7, 8, 18, 32

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 02:05:13 +02:00
eab99485dd feat: add CLI demo slides for Terraform, Ansible, and Puppet
Show realistic terminal sessions with commands and output:
- Slide 17: terraform init/plan/apply with OVH providers
- Slide 23: ansible-playbook run with task status and RECAP
- Slide 30: puppet agent -t with catalog apply and summary

Renumber slides 1-36.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 01:58:55 +02:00
3bf622c3cc style: raise footnote 40px above nav controls
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 01:52:01 +02:00
5fa4859220 style: fix footnote position — height:100% on section + absolute bottom
Sections need explicit height:100% so absolute children can
anchor to the actual slide bottom edge.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 01:50:44 +02:00
50b43d4cd2 style: pin footnote to bottom-right of slide 9
Use position:absolute bottom:0 right:0 to place it just
above the Reveal.js navigation arrows.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 01:49:12 +02:00
f272be358f content: add 🤖 emoji to slide 9 footnote
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 01:48:22 +02:00
9822ba25f3 style: move footnote to bottom-right, smaller text
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 01:46:35 +02:00
bdbd5e19c4 style: move footnote below schema on slide 9
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 01:45:59 +02:00
22cdf0e7b9 content: add '*Like this presentation' footnote on slide 9
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 01:44:53 +02:00
e2acdc5880 content: add review step to Terraform flow, restructure slide text
- Slide 13: add 'review' step between plan and apply in SVG + text
- Convert wall-of-text paragraphs to structured <ul> lists on:
  slides 14, 15, 17, 20, 22, 23, 26, 28, 29, 30
- Separate key points from emphasis/taglines for better readability

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 01:42:20 +02:00
f33b3914cd style: center all SVGs, images and GIFs in slides
Use display:block + auto margins to center visual elements
while keeping text left-aligned.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 01:39:02 +02:00
86b6baa2c6 content: add SVG illustrations and diagrams to slides
- Slides 4-6: server scaling story (1→10→100 servers)
- Slide 8: configuration drift timeline (T0→T1→T2)
- Slide 9: code→infrastructure flow diagram
- Slide 10: Reproducible/Versionable/Auditable icons
- Slide 13: Terraform HCL→plan→apply→resources workflow
- Slide 14: .tfstate mapping diagram (config↔state↔resources)
- Slide 20: replace GIF with Ansible push-model architecture
- Slide 26: Puppet pull-model architecture with agent nodes
- Slide 28: replace GIF with drift correction cycle diagram
- Slide 31: replace GIF with complementary stack layers

Keep slide 7 GIF (snowflake hell). All SVGs use ODS colors.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 01:36:46 +02:00
fc3b4e365d Add 3 inline SVGs for slides 4-6 (1/10/100 servers)
SVG1: Single server with green checkmark (slide 4)
SVG2: Laptop fan-out to 10 servers via SSH lines (slide 5)
SVG3: Chaotic grid of ~60 servers with drift indicators —
      warning triangles, snowflakes, mixed status dots (slide 6)

All use OVHcloud Design System colors, sized for 1280×720 canvas.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 01:33:01 +02:00
15b73bead4 style: maximize code block size (0.65em, line-height 1.6)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 01:25:17 +02:00
eb560d0bcc style: enlarge code blocks to fill more slide space
Increase font-size to 0.55em, reduce margins, add padding inside
code blocks so they use the available vertical space.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 01:24:26 +02:00
30e35200e3 style: fit code blocks without scrollbars
Set max-height:none and overflow:visible on pre/code blocks
with a smaller font-size (0.48em) so all code fits on screen.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 01:23:24 +02:00
29bb591369 content: use OVH/OpenStack providers in Terraform example
Replace AWS provider with:
- openstack provider for VM (openstack_compute_instance_v2)
- ovh provider for DNS (ovh_domain_zone_record)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 01:21:50 +02:00
c406e8c116 style: remove all emoji, fix tool logos to match OVHcloud pattern
- Remove emoji from title (⚙️), Ansible (), Puppet (🐾) slides
- Tool logos now use position:fixed outside Reveal container
  (same pattern as OVHcloud logo — top-left corner)
- Show/hide correct logo via Reveal.js slidechanged event
- Logos are no longer appended inside sections

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 01:19:26 +02:00
08b74527ff style: remove emoji from Terraform intro slide
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 01:17:29 +02:00
cab5c87484 feat: move tool logos to top-left, add to title slide, cleanup
- Tool logos (Terraform/Ansible/Puppet) now positioned top-left
- Title slide: inline tool logos next to each tool name
- Remove redundant OVHcloud logos from slides 1-2 (global logo suffices)
- Remove unused .ovh-logo CSS class

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 01:15:44 +02:00
1d750a4c9f fix: move blue strip outside Reveal.js container
Pseudo-elements on sections don't render reliably due to Reveal.js
transforms creating stacking contexts. Use a fixed div outside the
.reveal container instead (same pattern as the OVHcloud logo).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 01:10:11 +02:00
27f40806b5 fix: ensure blue strip stays on top with z-index
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 01:08:38 +02:00
8a11fde086 refactor: align CSS with Reveal.js best practices per docs
Changes based on revealjs.com docs and demo:
- Strip: use ::before pseudo-element instead of box-shadow + padding
  (pseudo-elements don't interfere with Reveal.js layout engine)
- Remove all global font-size overrides (h1, h2, p, li, code, pre)
  — let Reveal.js theme handle default sizing
- Use <small> for secondary text (Reveal.js idiom, see demo)
- Margin: 0.08 → 0.04 (Reveal.js default)
- Section CSS: only text-align:left, nothing else
  (no position, padding, box-shadow, or border overrides)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 01:06:22 +02:00
10cd7d4364 fix: follow Reveal.js best practices for slide layout
- Remove position:relative from sections (was overriding Reveal.js's
  position:absolute, breaking slide stacking)
- Replace border-top with box-shadow (doesn't affect box model/layout)
- Add padding-top:24px for content clearance below the strip
- Switch center:false → center:true for proper vertical centering
- Use px for global logo positioning (immune to Reveal.js scaling)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 01:03:37 +02:00
c01de466df fix: consistent tool logo placement across slides
- Use px instead of em so position doesn't shift with font size
- Explicitly set position:relative on sections for reliable anchoring

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 01:00:54 +02:00
74353be84b style: use OVHcloud Design System standard colors
Map all presentation colors to official ODS tokens (ovh/design-system):
- Strip/accent: #0050d7 (ods-palette-blue-500 / primary)
- Text: #4d5592 (ods-color-text / twilight)
- Neutral: #666666 (ods-palette-gray-600)
- Heading/logo: #00185e (ods-palette-deep-sapphire)
- Links: primary-500 via --strip-color

Tool brand colors (Puppet/Ansible/Terraform) kept as-is.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 00:59:27 +02:00
4e09483264 feat: replace old OVH icon with official OVHcloud logo
Sourced from ovh/manager repo. Changed fill from white to dark
(#000B3B) for visibility on white slides. All 3 usages updated
(global, title slide, speaker slide) and vendored locally.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 00:56:32 +02:00
5ae02c7adf feat: add persistent OVHcloud logo on bottom-left of every slide
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 00:52:40 +02:00
fe2811c51c fix: set fixed slide dimensions and scaling for consistent sizing
Set 1280x720 canvas with margin 0.08 and scale range 0.2–2.0
so all slides render at the same size regardless of content.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 00:50:32 +02:00
989c8b84d0 docs: update README to reference pages branch deployment
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 00:48:56 +02:00
01277f8422 chore: remove SSH deploy workflow in favor of pages branch
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 00:48:45 +02:00
66234803fc fix: vendor Reveal.js, fix slide numbering, alt text, and README
- Vendor Reveal.js 5.1.0 locally to avoid CDN dependency during talk
- Fix duplicate SLIDE 22 comment — renumber Ansible Galaxy to 23, cascade through 33
- Add alt text to dynamically injected tool logos for accessibility
- Fix README: deployment triggers on master branch, not pages

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 00:48:07 +02:00
15 changed files with 1728 additions and 192 deletions

View File

@@ -1,25 +0,0 @@
name: Deploy presentation
on:
push:
branches: [master]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Deploy via SSH
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.DEPLOY_HOST }}
username: ${{ secrets.DEPLOY_USER }}
key: ${{ secrets.DEPLOY_SSH_KEY }}
script: |
export GIT_OPTIONAL_LOCKS=0
mkdir -p /var/www/prez-finistdev
cd /var/www/prez-finistdev
git config --global gc.writeCommitGraph false
git clone https://git.cloud.arnaud-pc.fr/ministicraft/finistdev-configuration-as-code.git . 2>/dev/null || git pull origin master

View File

@@ -1,6 +1,18 @@
# Configuration as Code Puppet vs Ansible vs Terraform
# Terraform, Ansible & Puppet — Les Trois Mousquetaires de la Configuration as Code
Presentation for the **Finistère Dev Meetup**.
Présentation pour le **Finistère Dev Meetup**.
## 📝 Abstract (FR)
> Gérer un serveur à la main, ça se fait. En gérer 10, c'est encore faisable. Mais provisionner, configurer et maintenir 100, 1000+ serveurs, c'est une autre histoire.
>
> Et si votre infrastructure n'était que du code ? Venez découvrir comment provisionner, configurer et maintenir facilement une flotte de serveurs avec les Trois Mousquetaires de la Configuration as Code : Terraform, Ansible et Puppet. Que sont ces outils, à quoi servent-ils, et comment sont-ils complémentaires ?
## 📝 Abstract (EN)
> Managing one server by hand? Doable. Managing 10 by hand? Still manageable. But provisioning, configuring and maintaining 100, 1000+ servers — that's another story.
>
> What if your infrastructure was just code? Come discover how to easily provision, configure and maintain a fleet of servers with the Three Musketeers of Configuration as Code: Terraform, Ansible and Puppet. What are these tools, what do they do, and how are they complementary?
## 🌐 View the slides

1449
index.html

File diff suppressed because it is too large Load Diff

1
vendor/icons/ansible.svg vendored Normal file
View File

@@ -0,0 +1 @@
<svg fill="#EE0000" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Ansible</title><path d="M10.617 11.473l4.686 3.695-3.102-7.662zM12 0C5.371 0 0 5.371 0 12s5.371 12 12 12 12-5.371 12-12S18.629 0 12 0zm5.797 17.305c-.011.471-.403.842-.875.83-.236 0-.416-.09-.664-.293l-6.19-5-2.079 5.203H6.191L11.438 5.44c.124-.314.427-.52.764-.506.326-.014.63.189.742.506l4.774 11.494c.045.111.08.234.08.348-.001.009-.001.009-.001.023z"/></svg>

After

Width:  |  Height:  |  Size: 455 B

1
vendor/icons/puppet.svg vendored Normal file
View File

@@ -0,0 +1 @@
<svg fill="#C17F00" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Puppet</title><path d="M8.984 21.611H6.595v-2.388h2.39zM6.595 2.39h2.39v2.388h-2.39zm13.198 6.028h-5.48l.001-.002-2.941-2.941V0H4.207v7.166h5.48l2.938 2.938.002-.001v3.794l-.003-.003-2.94 2.94H4.207V24h7.166v-5.477l2.94-2.94h5.48V8.417"/></svg>

After

Width:  |  Height:  |  Size: 337 B

1
vendor/icons/terraform.svg vendored Normal file
View File

@@ -0,0 +1 @@
<svg fill="#844FBA" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Terraform</title><path d="M1.44 0v7.575l6.561 3.79V3.787zm21.12 4.227l-6.561 3.791v7.574l6.56-3.787zM8.72 4.23v7.575l6.561 3.787V8.018zm0 8.405v7.575L15.28 24v-7.578z"/></svg>

After

Width:  |  Height:  |  Size: 268 B

BIN
vendor/img/this-is-fine.gif vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

1
vendor/ovhcloud-logo.svg vendored Normal file
View File

@@ -0,0 +1 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 298.03 47.18"><defs><style>.cls-1,.cls-2{fill:#00185e;}.cls-1{fill-rule:evenodd;}</style></defs><title>OVHcloud logo</title><path class="cls-1" d="M107.11,40.81a40.1,40.1,0,0,1-3.74,44.49H81.93l6.6-11.67H79.8L90.09,55.48h8.78l8.24-14.67ZM64.77,85.3H42.91a39.59,39.59,0,0,1-3.79-44.59L53.3,65.34,68.93,38.12h23L64.78,85.28h0v0Z" transform="translate(-33.97 -38.12)"/><path class="cls-2" d="M125.18,62.4c0-12.59,6.27-18.64,16.57-18.64s16.56,6.05,16.56,18.64S152,81,141.75,81,125.18,74.87,125.18,62.4Zm3.72,0c0,10.35,4.72,15.28,12.85,15.28s12.84-4.93,12.84-15.28-4.72-15.35-12.84-15.35S128.9,52,128.9,62.4Z" transform="translate(-33.97 -38.12)"/><path class="cls-2" d="M185.38,45.25a1.82,1.82,0,0,1,1.7-1.17,1.79,1.79,0,0,1,1.8,1.81,2.42,2.42,0,0,1-.16.79L176.3,79.43a1.78,1.78,0,0,1-3.39,0L160.49,46.68a2.42,2.42,0,0,1-.16-.79,1.79,1.79,0,0,1,1.8-1.81,1.82,1.82,0,0,1,1.7,1.17L174.6,73.81Z" transform="translate(-33.97 -38.12)"/><path class="cls-2" d="M196.42,63.56V78.85a1.81,1.81,0,1,1-3.61,0v-33a1.81,1.81,0,1,1,3.61,0V60.27H214.9V45.89a1.81,1.81,0,1,1,3.61,0v33a1.81,1.81,0,1,1-3.61,0V63.56Z" transform="translate(-33.97 -38.12)"/><path class="cls-2" d="M235.55,55.39a10,10,0,0,1,8.17,3.66,1.56,1.56,0,0,1,.37,1,1.51,1.51,0,0,1-1.54,1.54,1.56,1.56,0,0,1-1.27-.64,6.8,6.8,0,0,0-5.73-2.49c-4.89,0-7.49,3.13-7.49,9.66s2.6,9.71,7.49,9.71a9.68,9.68,0,0,0,6.15-2.28,1.56,1.56,0,0,1,1-.37,1.54,1.54,0,0,1,1.54,1.54,1.63,1.63,0,0,1-.69,1.32,12.06,12.06,0,0,1-8,2.87c-6.85,0-10.94-4.09-10.94-12.79S228.7,55.39,235.55,55.39Z" transform="translate(-33.97 -38.12)"/><path class="cls-2" d="M252.48,44.13V74.45c0,2.12.69,3,2.12,3a1.6,1.6,0,1,1,0,3.19c-3.55,0-5.52-2.13-5.52-6.21V44.13a1.74,1.74,0,0,1,1.7-1.69A1.7,1.7,0,0,1,252.48,44.13Z" transform="translate(-33.97 -38.12)"/><path class="cls-2" d="M281.41,68.13c0,8.7-4.25,12.79-11.15,12.79s-11.14-4.09-11.14-12.79,4.3-12.74,11.14-12.74S281.41,59.42,281.41,68.13Zm-3.45,0c0-6.69-2.81-9.66-7.7-9.66s-7.69,3-7.69,9.66,2.81,9.71,7.69,9.71S278,74.92,278,68.13Z" transform="translate(-33.97 -38.12)"/><path class="cls-2" d="M289.59,57.41V71.26c0,3.45,1.11,6.42,6.47,6.42s6.48-3,6.48-6.42V57.41a1.72,1.72,0,0,1,1.75-1.7,1.67,1.67,0,0,1,1.65,1.7V71.26c0,5-1.65,9.66-9.88,9.66s-9.87-4.62-9.87-9.66V57.41a1.67,1.67,0,0,1,1.7-1.7A1.71,1.71,0,0,1,289.59,57.41Z" transform="translate(-33.97 -38.12)"/><path class="cls-2" d="M328.6,58.84V44.13a1.7,1.7,0,0,1,3.4,0V70.46c0,7-4.35,10.46-10.4,10.46-6.85,0-10.89-4.09-10.89-12.79s3.83-12.74,10.67-12.74A9,9,0,0,1,328.6,58.84Zm0,4.3s-2-4.67-7-4.67-7.49,3.13-7.49,9.66,2.6,9.71,7.49,9.71c4.08,0,7-2.33,7-7.38Z" transform="translate(-33.97 -38.12)"/></svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

30
vendor/reveal.js/dist/reset.css vendored Normal file
View File

@@ -0,0 +1,30 @@
/* http://meyerweb.com/eric/tools/css/reset/
v4.0 | 20180602
License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
main, menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, main, menu, nav, section {
display: block;
}

8
vendor/reveal.js/dist/reveal.css vendored Normal file

File diff suppressed because one or more lines are too long

9
vendor/reveal.js/dist/reveal.js vendored Normal file

File diff suppressed because one or more lines are too long

359
vendor/reveal.js/dist/white.css vendored Normal file
View File

@@ -0,0 +1,359 @@
/**
* White theme for reveal.js. This is the opposite of the 'black' theme.
*
* By Hakim El Hattab, http://hakim.se
*/
@import url(./fonts/source-sans-pro/source-sans-pro.css);
section.has-dark-background, section.has-dark-background h1, section.has-dark-background h2, section.has-dark-background h3, section.has-dark-background h4, section.has-dark-background h5, section.has-dark-background h6 {
color: #fff;
}
/*********************************************
* GLOBAL STYLES
*********************************************/
:root {
--r-background-color: #fff;
--r-main-font: Source Sans Pro, Helvetica, sans-serif;
--r-main-font-size: 42px;
--r-main-color: #222;
--r-block-margin: 20px;
--r-heading-margin: 0 0 20px 0;
--r-heading-font: Source Sans Pro, Helvetica, sans-serif;
--r-heading-color: #222;
--r-heading-line-height: 1.2;
--r-heading-letter-spacing: normal;
--r-heading-text-transform: uppercase;
--r-heading-text-shadow: none;
--r-heading-font-weight: 600;
--r-heading1-text-shadow: none;
--r-heading1-size: 2.5em;
--r-heading2-size: 1.6em;
--r-heading3-size: 1.3em;
--r-heading4-size: 1em;
--r-code-font: monospace;
--r-link-color: #2a76dd;
--r-link-color-dark: #1a53a1;
--r-link-color-hover: #6ca0e8;
--r-selection-background-color: #98bdef;
--r-selection-color: #fff;
--r-overlay-element-bg-color: 0, 0, 0;
--r-overlay-element-fg-color: 240, 240, 240;
}
.reveal-viewport {
background: #fff;
background-color: var(--r-background-color);
}
.reveal {
font-family: var(--r-main-font);
font-size: var(--r-main-font-size);
font-weight: normal;
color: var(--r-main-color);
}
.reveal ::selection {
color: var(--r-selection-color);
background: var(--r-selection-background-color);
text-shadow: none;
}
.reveal ::-moz-selection {
color: var(--r-selection-color);
background: var(--r-selection-background-color);
text-shadow: none;
}
.reveal .slides section,
.reveal .slides section > section {
line-height: 1.3;
font-weight: inherit;
}
/*********************************************
* HEADERS
*********************************************/
.reveal h1,
.reveal h2,
.reveal h3,
.reveal h4,
.reveal h5,
.reveal h6 {
margin: var(--r-heading-margin);
color: var(--r-heading-color);
font-family: var(--r-heading-font);
font-weight: var(--r-heading-font-weight);
line-height: var(--r-heading-line-height);
letter-spacing: var(--r-heading-letter-spacing);
text-transform: var(--r-heading-text-transform);
text-shadow: var(--r-heading-text-shadow);
word-wrap: break-word;
}
.reveal h1 {
font-size: var(--r-heading1-size);
}
.reveal h2 {
font-size: var(--r-heading2-size);
}
.reveal h3 {
font-size: var(--r-heading3-size);
}
.reveal h4 {
font-size: var(--r-heading4-size);
}
.reveal h1 {
text-shadow: var(--r-heading1-text-shadow);
}
/*********************************************
* OTHER
*********************************************/
.reveal p {
margin: var(--r-block-margin) 0;
line-height: 1.3;
}
/* Remove trailing margins after titles */
.reveal h1:last-child,
.reveal h2:last-child,
.reveal h3:last-child,
.reveal h4:last-child,
.reveal h5:last-child,
.reveal h6:last-child {
margin-bottom: 0;
}
/* Ensure certain elements are never larger than the slide itself */
.reveal img,
.reveal video,
.reveal iframe {
max-width: 95%;
max-height: 95%;
}
.reveal strong,
.reveal b {
font-weight: bold;
}
.reveal em {
font-style: italic;
}
.reveal ol,
.reveal dl,
.reveal ul {
display: inline-block;
text-align: left;
margin: 0 0 0 1em;
}
.reveal ol {
list-style-type: decimal;
}
.reveal ul {
list-style-type: disc;
}
.reveal ul ul {
list-style-type: square;
}
.reveal ul ul ul {
list-style-type: circle;
}
.reveal ul ul,
.reveal ul ol,
.reveal ol ol,
.reveal ol ul {
display: block;
margin-left: 40px;
}
.reveal dt {
font-weight: bold;
}
.reveal dd {
margin-left: 40px;
}
.reveal blockquote {
display: block;
position: relative;
width: 70%;
margin: var(--r-block-margin) auto;
padding: 5px;
font-style: italic;
background: rgba(255, 255, 255, 0.05);
box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
}
.reveal blockquote p:first-child,
.reveal blockquote p:last-child {
display: inline-block;
}
.reveal q {
font-style: italic;
}
.reveal pre {
display: block;
position: relative;
width: 90%;
margin: var(--r-block-margin) auto;
text-align: left;
font-size: 0.55em;
font-family: var(--r-code-font);
line-height: 1.2em;
word-wrap: break-word;
box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.15);
}
.reveal code {
font-family: var(--r-code-font);
text-transform: none;
tab-size: 2;
}
.reveal pre code {
display: block;
padding: 5px;
overflow: auto;
max-height: 400px;
word-wrap: normal;
}
.reveal .code-wrapper {
white-space: normal;
}
.reveal .code-wrapper code {
white-space: pre;
}
.reveal table {
margin: auto;
border-collapse: collapse;
border-spacing: 0;
}
.reveal table th {
font-weight: bold;
}
.reveal table th,
.reveal table td {
text-align: left;
padding: 0.2em 0.5em 0.2em 0.5em;
border-bottom: 1px solid;
}
.reveal table th[align=center],
.reveal table td[align=center] {
text-align: center;
}
.reveal table th[align=right],
.reveal table td[align=right] {
text-align: right;
}
.reveal table tbody tr:last-child th,
.reveal table tbody tr:last-child td {
border-bottom: none;
}
.reveal sup {
vertical-align: super;
font-size: smaller;
}
.reveal sub {
vertical-align: sub;
font-size: smaller;
}
.reveal small {
display: inline-block;
font-size: 0.6em;
line-height: 1.2em;
vertical-align: top;
}
.reveal small * {
vertical-align: top;
}
.reveal img {
margin: var(--r-block-margin) 0;
}
/*********************************************
* LINKS
*********************************************/
.reveal a {
color: var(--r-link-color);
text-decoration: none;
transition: color 0.15s ease;
}
.reveal a:hover {
color: var(--r-link-color-hover);
text-shadow: none;
border: none;
}
.reveal .roll span:after {
color: #fff;
background: var(--r-link-color-dark);
}
/*********************************************
* Frame helper
*********************************************/
.reveal .r-frame {
border: 4px solid var(--r-main-color);
box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
}
.reveal a .r-frame {
transition: all 0.15s linear;
}
.reveal a:hover .r-frame {
border-color: var(--r-link-color);
box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
}
/*********************************************
* NAVIGATION CONTROLS
*********************************************/
.reveal .controls {
color: var(--r-link-color);
}
/*********************************************
* PROGRESS BAR
*********************************************/
.reveal .progress {
background: rgba(0, 0, 0, 0.2);
color: var(--r-link-color);
}
/*********************************************
* PRINT BACKGROUND
*********************************************/
@media print {
.backgrounds {
background-color: var(--r-background-color);
}
}

View File

@@ -0,0 +1,10 @@
pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
Theme: GitHub
Description: Light theme as seen on github.com
Author: github.com
Maintainer: @Hirse
Updated: 2021-05-15
Outdated base version: https://github.com/primer/github-syntax-light
Current colors taken from GitHub's CSS
*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#005cc5}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-code,.hljs-comment,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long