diff --git a/slides/index.yaml b/slides/index.yaml
index e70b1bd..5e25938 100644
--- a/slides/index.yaml
+++ b/slides/index.yaml
@@ -8,1008 +8,39 @@
#attend: https://enix.io/fr/services/formation/online/
slides: https://training.verleun.org/intro-triodos-1-day.yml.html#1
-- date: 2023-02-10
+- date: 2023-04-24
country: nl
- city: Apeldoorn
- event: bd
+ city: Geldrop
+ event: T-DOSE 2023
speaker: mverleun
- title: Introduction to containers
+ title: Improving container security
lang: nl
- slides: https://training.verleun.org/intro-bd-docker.yml.html#1
+ #attend: https://enix.io/fr/services/formation/online/
+ slides: https://training.verleun.org/intro-container-security.yml.html#1
-- date: 2023-02-10
- country: nl
- city: Apeldoorn
- event: bd
- speaker: mverleun
- title: Introduction to kubernetes
- lang: nl
- slides: https://training.verleun.org/intro-bd-docker.yml.html#1
-
-
-# - date: [2021-10-04, 2021-10-07]
-# country: www
-# city: streaming
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Fondamentaux Kubernetes (en français)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/online/
-# #slides: https://2021-05-enix.container.training/2.yml.html
-
-# - date: [2021-10-11, 2021-10-12]
-# country: www
-# city: streaming
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Packaging et CI/CD pour Kubernetes (en français)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/online/
-# #slides: https://2021-05-enix.container.training/3.yml.html
-
-# - date: [2021-11-08, 2021-11-16]
-# country: www
-# city: streaming
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Kubernetes avancé (en français)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/online/
-# #slides: https://2021-05-enix.container.training/4.yml.html
-
-# - date: [2021-11-18, 2021-11-19]
-# country: www
-# city: streaming
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Opérer Kubernetes (en français)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/online/
-# #slides: https://2021-05-enix.container.training/5.yml.html
-
-# - date: [2021-05-10, 2021-05-12]
-# country: www
-# city: streaming
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Docker intensif (en français)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/online/
-# slides: https://2021-05-enix.container.training/1.yml.html
-
-# - date: [2021-05-17, 2021-05-20]
-# country: www
-# city: streaming
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Fondamentaux Kubernetes (en français)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/online/
-# slides: https://2021-05-enix.container.training/2.yml.html
-
-# - date: [2021-05-24, 2021-05-25]
-# country: www
-# city: streaming
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Packaging et CI/CD pour Kubernetes (en français)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/online/
-# slides: https://2021-05-enix.container.training/3.yml.html
-
-# - date: [2021-05-26, 2021-05-28]
-# country: www
-# city: streaming
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Kubernetes avancé (en français)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/online/
-# slides: https://2021-05-enix.container.training/4.yml.html
-
-# - date: [2021-05-31, 2021-06-01]
-# country: www
-# city: streaming
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Opérer Kubernetes (en français)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/online/
-# slides: https://2021-05-enix.container.training/5.yml.html
-
-# - date: [2021-02-08, 2021-02-10]
-# country: www
-# city: streaming
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Docker intensif (en français)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/online/
-# slides: https://2021-02-enix.container.training/1.yml.html
-
-# - date: [2021-02-15, 2021-02-18]
-# country: www
-# city: streaming
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Fondamentaux Kubernetes (en français)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/online/
-# slides: https://2021-02-enix.container.training/2.yml.html
-
-# - date: [2021-02-22, 2021-02-23]
-# country: www
-# city: streaming
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Packaging et CI/CD pour Kubernetes (en français)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/online/
-# slides: https://2021-02-enix.container.training/3.yml.html
-
-# - date: [2021-02-24, 2021-02-26]
-# country: www
-# city: streaming
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Kubernetes avancé (en français)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/online/
-# slides: https://2021-02-enix.container.training/4.yml.html
-
-# - date: [2021-03-01, 2021-03-02]
-# country: www
-# city: streaming
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Opérer Kubernetes (en français)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/online/
-# slides: https://2021-02-enix.container.training/5.yml.html
-
-# - date: [2020-10-05, 2020-10-06]
-# country: www
-# city: streaming
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Docker intensif (en français)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/online/
-# slides: https://2020-10-enix.container.training/1.yml.html
-
-# - date: [2020-10-07, 2020-10-09]
-# country: www
-# city: streaming
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Fondamentaux Kubernetes (en français)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/online/
-# slides: https://2020-10-enix.container.training/2.yml.html
-
-# - date: 2020-10-12
-# country: www
-# city: streaming
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Packaging pour Kubernetes (en français)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/online/
-# slides: https://2020-10-enix.container.training/3.yml.html
-
-# - date: [2020-10-13, 2020-10-14]
-# country: www
-# city: streaming
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Kubernetes avancé (en français)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/online/
-# slides: https://2020-10-enix.container.training/4.yml.html
-
-# - date: [2020-10-19, 2020-10-20]
-# country: www
-# city: streaming
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Opérer Kubernetes (en français)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/online/
-# slides: https://2020-10-enix.container.training/5.yml.html
-
-# - date: [2020-09-28, 2020-10-01]
-# country: www
-# city: streaming
-# event: Skills Matter
-# speaker: jpetazzo
-# title: Advanced Kubernetes Concepts
-# attend: https://skillsmatter.com/courses/700-advanced-kubernetes-concepts-workshop-jerome-petazzoni
-# slides: https://2020-09-skillsmatter.container.training/
-
-# - date: [2020-08-29, 2020-08-30]
-# country: www
-# city: streaming
-# event: fwdays
-# speaker: jpetazzo
-# title: Intensive Docker Online Workshop
-# attend: https://fwdays.com/en/event/intensive-docker-workshop
-# slides: https://2020-08-fwdays.container.training/
-
-# - date: [2020-09-12, 2020-09-13]
-# country: www
-# city: streaming
-# event: fwdays
-# speaker: jpetazzo
-# title: Kubernetes Intensive Online Workshop
-# attend: https://fwdays.com/en/event/kubernetes-intensive-workshop
-# slides: https://2020-09-fwdays.container.training/
-
-# - date: [2020-07-07, 2020-07-09]
-# country: www
-# city: streaming
-# event: Ardan Live
-# speaker: jpetazzo
-# title: Intensive Docker Bootcamp
-# attend: https://www.eventbrite.com/e/livestream-intensive-docker-bootcamp-tickets-103258886108
-
-# - date: [2020-06-15, 2020-06-16]
-# country: www
-# city: streaming
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Docker intensif (en français)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/online/
-# slides: https://2020-06-enix.container.training/1.yml.html
-
-# - date: [2020-06-17, 2020-06-19]
-# country: www
-# city: streaming
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Fondamentaux Kubernetes (en français)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/online/
-# slides: https://2020-06-enix.container.training/2.yml.html
-
-# - date: 2020-06-22
-# country: www
-# city: streaming
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Packaging pour Kubernetes (en français)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/online/
-# slides: https://2020-06-enix.container.training/3.yml.html
-
-# - date: [2020-06-23, 2020-06-24]
-# country: www
-# city: streaming
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Kubernetes avancé (en français)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/online/
-# slides: https://2020-06-enix.container.training/4.yml.html
-
-# - date: [2020-06-25, 2020-06-26]
-# country: www
-# city: streaming
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Opérer Kubernetes (en français)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/online/
-# slides: https://2020-06-enix.container.training/5.yml.html
-
-
-# - date: [2020-06-09, 2020-06-11]
-# country: www
-# city: streaming
-# event: Ardan Live
-# speaker: jpetazzo
-# title: Intensive Kubernetes Bootcamp
-# attend: https://www.eventbrite.com/e/livestream-intensive-kubernetes-bootcamp-tickets-103262336428
-
-# - date: [2020-05-04, 2020-05-08]
-# country: www
-# city: streaming
-# event: Ardan Live
-# speaker: jpetazzo
-# title: Intensive Kubernetes - Advanced Concepts
-# attend: https://www.eventbrite.com/e/livestream-intensive-kubernetes-advanced-concepts-tickets-102358725704
-
-# - date: [2020-03-30, 2020-04-02]
-# country: www
-# city: streaming
-# event: Ardan Live
-# speaker: jpetazzo
-# title: Intensive Docker and Kubernetes
-# attend: https://www.eventbrite.com/e/ardan-labs-live-worldwide-march-30-april-2-2020-tickets-100331129108#
-# slides: https://2020-03-ardan.container.training/
-
-# - date: 2020-03-06
-# country: uk
-# city: London
-# event: QCON
-# speaker: jpetazzo
-# title: Kubernetes Intensive Course
-# attend: https://qconlondon.com/london2020/workshop/kubernetes-intro
-# slides: https://2020-03-qcon.container.training/
-
-# - date: 2020-03-05
-# country: uk
-# city: London
-# event: QCON
-# speaker: jpetazzo
-# title: Docker Intensive Course
-# attend: https://qconlondon.com/london2020/workshop/docker-intensive-course
-# slides: https://2020-03-qcon.container.training/
-
-# - date: 2020-02-03
-# country: fr
-# city: Paris
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Fondamentaux Conteneurs et Docker (in French)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/
-# slides: https://2020-02-enix.container.training/
-
-# - date: 2020-02-04
-# country: fr
-# city: Paris
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Fondamentaux Orchestration et Kubernetes (in French)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/
-# slides: https://2020-02-enix.container.training/
-
-# - date: 2020-02-05
-# country: fr
-# city: Paris
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Kubernetes et Méthodologies DevOps (in French)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/
-# slides: https://2020-02-enix.container.training/
-
-# - date: 2020-02-06
-# country: fr
-# city: Paris
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Kubernetes Avancé (in French)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/
-# slides: https://2020-02-enix.container.training/
-
-# - date: 2020-02-07
-# country: fr
-# city: Paris
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Opérer Kubernetes (in French)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/
-# slides: https://2020-02-enix.container.training/
-
-# - date: [2019-11-04, 2019-11-05]
-# country: de
-# city: Berlin
-# event: Velocity
-# speaker: jpetazzo
-# title: Deploying and scaling applications with Kubernetes
-# attend: https://conferences.oreilly.com/velocity/vl-eu/public/schedule/detail/79109
-# slides: https://velocity-2019-11.container.training/
-
-# - date: 2019-11-13
-# country: fr
-# city: Marseille
-# event: DevopsDDay
-# speaker: jpetazzo
-# title: Déployer ses applications avec Kubernetes (in French)
-# lang: fr
-# attend: http://2019.devops-dday.com/Workshop.html
-
-# - date: 2019-10-30
-# country: us
-# city: Portland, OR
-# event: LISA
-# speaker: jpetazzo
-# title: Deep Dive into Kubernetes Internals for Builders and Operators
-# attend: https://www.usenix.org/conference/lisa19/presentation/petazzoni-tutorial
-
-# - date: [2019-10-22, 2019-10-24]
-# country: us
-# city: Charlotte, NC
-# event: Ardan Labs
-# speaker: jpetazzo
-# title: Kubernetes Training
-# attend: https://www.eventbrite.com/e/containers-docker-and-kubernetes-training-for-devs-and-ops-charlotte-nc-november-2019-tickets-73296659281
-
-# - date: 2019-10-22
-# country: us
-# city: Charlotte, NC
-# event: Ardan Labs
-# speaker: jpetazzo
-# title: Docker & Containers Training
-# attend: https://www.eventbrite.com/e/containers-docker-and-kubernetes-training-for-devs-and-ops-charlotte-nc-november-2019-tickets-73296659281
-
-# - date: 2019-10-22
-# country: de
-# city: Berlin
-# event: GOTO
-# speaker: bretfisher
-# title: Kubernetes or Swarm? Build Both, Deploy Apps, Learn The Differences
-# attend: https://gotober.com/2019/workshops/194
-
-# - date: [2019-09-24, 2019-09-25]
-# country: fr
-# city: Paris
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Déployer ses applications avec Kubernetes (in French)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/deployer-ses-applications-avec-kubernetes/
-# slides: https://kube-2019-09.container.training/
-
-# - date: 2019-08-27
-# country: tr
-# city: Izmir
-# event: HacknBreak
-# speaker: gurayyildirim
-# title: Deploying and scaling applications with Kubernetes (in Turkish)
-# lang: tr
-# attend: https://hacknbreak.com
-
-# - date: 2019-08-26
-# country: tr
-# city: Izmir
-# event: HacknBreak
-# speaker: gurayyildirim
-# title: Container Orchestration with Docker and Swarm (in Turkish)
-# lang: tr
-# attend: https://hacknbreak.com
-
-# - date: 2019-08-25
-# country: tr
-# city: Izmir
-# event: HackBreak
-# speaker: gurayyildirim
-# title: Introduction to Docker and Containers (in Turkish)
-# lang: tr
-# attend: https://hacknbreak.com
-
-# - date: 2019-07-16
-# country: us
-# city: Portland, OR
-# event: OSCON
-# speaker: bridgetkromhout
-# title: "Kubernetes 201: Production tooling"
-# attend: https://conferences.oreilly.com/oscon/oscon-or/public/schedule/detail/76390
-# slides: https://oscon2019.container.training
-
-# - date: 2019-06-17
-# country: ca
-# city: Montréal
-# event: Zenika
-# speaker: jpetazzo
-# title: Getting Started With Kubernetes
-# attend: https://www.eventbrite.com/e/getting-started-with-kubernetes-1-day-en-tickets-61658444066
-
-# - date: [2019-06-10, 2019-06-11]
-# city: San Jose, CA
-# country: us
-# event: Velocity
-# title: Kubernetes for administrators and operators
-# speaker: jpetazzo
-# attend: https://conferences.oreilly.com/velocity/vl-ca/public/schedule/detail/75313
-# slides: https://kadm-2019-06.container.training/
-
-# - date: 2019-05-01
-# country: us
-# city: Cleveland, OH
-# event: PyCon
-# speaker: jpetazzo, s0ulshake
-# title: Getting started with Kubernetes and container orchestration
-# attend: https://us.pycon.org/2019/schedule/presentation/74/
-# slides: https://pycon2019.container.training/
-# video: https://www.youtube.com/watch?v=J08MrW2NC1Y
-
-# - date: 2019-04-28
-# country: us
-# city: Chicago, IL
-# event: GOTO
-# speaker: jpetazzo
-# title: Getting Started With Kubernetes and Container Orchestration
-# attend: https://gotochgo.com/2019/workshops/148
-# slides: https://gotochgo2019.container.training/
-
-# - date: 2019-04-26
-# country: fr
-# city: Paris
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Opérer et administrer Kubernetes
-# attend: https://enix.io/fr/services/formation/operer-et-administrer-kubernetes/
-# slides: https://kadm-2019-04.container.training/
-
-# - date: [2019-04-23, 2019-04-24]
-# country: fr
-# city: Paris
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Déployer ses applications avec Kubernetes (in French)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/deployer-ses-applications-avec-kubernetes/
-# slides: https://kube-2019-04.container.training/
-
-# - date: [2019-04-15, 2019-04-16]
-# country: fr
-# city: Paris
-# event: ENIX SAS
-# speaker: "jpetazzo, alexbuisine"
-# title: Bien démarrer avec les conteneurs (in French)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/bien-demarrer-avec-les-conteneurs/
-# slides: http://intro-2019-04.container.training/
-
-# - date: 2019-03-08
-# country: uk
-# city: London
-# event: QCON
-# speaker: jpetazzo
-# title: Getting Started With Kubernetes and Container Orchestration
-# attend: https://qconlondon.com/london2019/workshop/getting-started-kubernetes-and-container-orchestration
-# slides: https://qconuk2019.container.training/
-# video: https://www.youtube.com/playlist?list=PLBAFXs0YjviJwCoxSUkUPhsSxDJzpZbJd
-
-# - date: [2019-01-07, 2019-01-08]
-# country: fr
-# city: Paris
-# event: ENIX SAS
-# speaker: "jpetazzo, alexbuisine"
-# title: Bien démarrer avec les conteneurs (in French)
-# lang: fr
-# attend: https://enix.io/fr/services/formation/bien-demarrer-avec-les-conteneurs/
-# slides: https://intro-2019-01.container.training
-
-# - date: [2018-12-17, 2018-12-18]
-# country: fr
-# city: Paris
-# event: ENIX SAS
-# speaker: "jpetazzo, rdegez"
-# title: Déployer ses applications avec Kubernetes
-# lang: fr
-# attend: https://enix.io/fr/services/formation/deployer-ses-applications-avec-kubernetes/
-# slides: http://decembre2018.container.training
-
-# - date: 2018-11-08
-# city: San Francisco, CA
-# country: us
-# event: QCON
-# title: Introduction to Docker and Containers
-# speaker: zeroasterisk
-# attend: https://qconsf.com/sf2018/workshop/introduction-docker-and-containers
-
-# - date: 2018-11-08
-# city: San Francisco, CA
-# country: us
-# event: QCON
-# title: Getting Started With Kubernetes and Container Orchestration
-# speaker: jpetazzo
-# attend: https://qconsf.com/sf2018/workshop/getting-started-kubernetes-and-container-orchestration-thursday-section
-# slides: http://qconsf2018.container.training/
-
-# - date: 2018-11-09
-# city: San Francisco, CA
-# country: us
-# event: QCON
-# title: Getting Started With Kubernetes and Container Orchestration
-# speaker: jpetazzo
-# attend: https://qconsf.com/sf2018/workshop/getting-started-kubernetes-and-container-orchestration-friday-section
-# slides: http://qconsf2018.container.training/
-
-# - date: 2018-10-31
-# city: London, UK
-# country: uk
-# event: Velocity EU
-# title: Kubernetes 101
-# speaker: bridgetkromhout
-# slides: https://velocityeu2018.container.training
-# attend: https://conferences.oreilly.com/velocity/vl-eu/public/schedule/detail/71149
-
-# - date: 2018-10-30
-# city: London, UK
-# country: uk
-# event: Velocity EU
-# title: "Docker Zero to Hero: Docker, Compose and Production Swarm"
-# speaker: bretfisher
-# attend: https://conferences.oreilly.com/velocity/vl-eu/public/schedule/detail/71231
-
-# - date: 2018-07-12
-# city: Minneapolis, MN
-# country: us
-# event: devopsdays Minneapolis
-# title: Kubernetes 101
-# speaker: "ashleymcnamara, bketelsen"
-# slides: https://devopsdaysmsp2018.container.training
-# attend: https://www.devopsdays.org/events/2018-minneapolis/registration/
-
-# - date: 2018-10-01
-# city: New York, NY
-# country: us
-# event: Velocity
-# title: Kubernetes 101
-# speaker: bridgetkromhout
-# attend: https://conferences.oreilly.com/velocity/vl-ny/public/schedule/detail/70102
-# slides: https://velny-k8s101-2018.container.training
-
-# - date: 2018-10-01
-# city: New York, NY
-# country: us
-# event: Velocity
-# title: Kubernetes Bootcamp - Deploying and Scaling Microservices
-# speaker: jpetazzo
-# attend: https://conferences.oreilly.com/velocity/vl-ny/public/schedule/detail/69875
-# slides: https://k8s2d.container.training
-
-# - date: 2018-10-01
-# city: New York, NY
-# country: us
-# event: Velocity
-# title: "Docker Zero to Hero: Docker, Compose and Production Swarm"
-# speaker: bretfisher
-# attend: https://conferences.oreilly.com/velocity/vl-ny/public/schedule/detail/70147
-
-# - date: 2018-09-17
-# country: fr
-# city: Paris
-# event: ENIX SAS
-# speaker: jpetazzo
-# title: Déployer ses applications avec Kubernetes
-# lang: fr
-# attend: https://enix.io/fr/services/formation/deployer-ses-applications-avec-kubernetes/
-# slides: https://septembre2018.container.training
-
-# - date: 2018-07-17
-# city: Portland, OR
-# country: us
-# event: OSCON
-# title: Kubernetes 101
-# speaker: bridgetkromhout
-# slides: https://oscon2018.container.training/
-# attend: https://conferences.oreilly.com/oscon/oscon-or/public/schedule/detail/66287
-
-# - date: 2018-06-27
-# city: Amsterdam
+# - date: 2023-02-10
# country: nl
-# event: devopsdays
-# title: Kubernetes 101
-# speaker: bridgetkromhout
-# slides: https://devopsdaysams2018.container.training
-# attend: https://www.devopsdays.org/events/2018-amsterdam/registration/
+# city: Apeldoorn
+# event: bd
+# speaker: mverleun
+# title: Introduction to containers
+# lang: nl
+# slides: https://training.verleun.org/intro-bd-docker.yml.html#1
-# - date: 2018-06-12
-# city: San Jose, CA
-# country: us
-# event: Velocity
-# title: Kubernetes 101
-# speaker: bridgetkromhout
-# slides: https://velocitysj2018.container.training
-# attend: https://conferences.oreilly.com/velocity/vl-ca/public/schedule/detail/66286
-
-# - date: 2018-06-12
-# city: San Jose, CA
-# country: us
-# event: Velocity
-# title: "Kubernetes two-day kickstart: Deploying and Scaling Microservices with Kubernetes"
-# speaker: "bketelsen, erikstmartin"
-# slides: http://kubernetes.academy/kube-fullday.yml.html#1
-# attend: https://conferences.oreilly.com/velocity/vl-ca/public/schedule/detail/66932
-
-# - date: 2018-06-11
-# city: San Jose, CA
-# country: us
-# event: Velocity
-# title: "Kubernetes two-day kickstart: Introduction to Docker and Containers"
-# speaker: "bketelsen, erikstmartin"
-# slides: http://kubernetes.academy/intro-fullday.yml.html#1
-# attend: https://conferences.oreilly.com/velocity/vl-ca/public/schedule/detail/66932
-
-# - date: 2018-05-17
-# city: Virginia Beach, FL
-# country: us
-# event: Revolution Conf
-# title: Docker 101
-# speaker: bretfisher
-# slides: https://revconf18.bretfisher.com
-
-# - date: 2018-05-10
-# city: Saint Paul, MN
-# country: us
-# event: NDC Minnesota
-# title: Kubernetes 101
-# slides: https://ndcminnesota2018.container.training
-
-# - date: 2018-05-08
-# city: Budapest
-# country: hu
-# event: CRAFT
-# title: Swarm Orchestration
-# slides: https://craftconf18.bretfisher.com
-
-# - date: 2018-04-27
-# city: Chicago, IL
-# country: us
-# event: GOTO
-# title: Swarm Orchestration
-# slides: https://gotochgo18.bretfisher.com
-
-# - date: 2018-04-24
-# city: Chicago, IL
-# country: us
-# event: GOTO
-# title: Kubernetes 101
-# slides: http://gotochgo2018.container.training/
-
-# - date: 2018-04-11
-# city: Paris
-# country: fr
-# title: Introduction aux conteneurs
-# lang: fr
-# slides: https://avril2018.container.training/intro.yml.html
-
-# - date: 2018-04-13
-# city: Paris
-# country: fr
-# lang: fr
-# title: Introduction à l'orchestration
-# slides: https://avril2018.container.training/kube.yml.html
-
-# - date: 2018-04-06
-# city: Sacramento, CA
-# country: us
-# event: MuraCon
-# title: Docker 101
-# slides: https://muracon18.bretfisher.com
-
-# - date: 2018-03-27
-# city: Santa Clara, CA
-# country: us
-# event: SREcon Americas
-# title: Kubernetes 101
-# slides: http://srecon2018.container.training/
-
-# - date: 2018-03-27
-# city: Bergen
-# country: no
-# event: Boosterconf
-# title: Kubernetes 101
-# slides: http://boosterconf2018.container.training/
-
-# - date: 2018-02-22
-# city: San Francisco, CA
-# country: us
-# event: IndexConf
-# title: Kubernetes 101
-# slides: http://indexconf2018.container.training/
-# #attend: https://developer.ibm.com/indexconf/sessions/#!?id=5474
-
-# - date: 2017-11-17
-# city: San Francisco, CA
-# country: us
-# event: QCON SF
-# title: Orchestrating Microservices with Docker Swarm
-# slides: http://qconsf2017swarm.container.training/
-
-# - date: 2017-11-16
-# city: San Francisco, CA
-# country: us
-# event: QCON SF
-# title: Introduction to Docker and Containers
-# slides: http://qconsf2017intro.container.training/
-# video: https://www.youtube.com/playlist?list=PLBAFXs0YjviLgqTum8MkspG_8VzGl6C07
-
-# - date: 2017-10-30
-# city: San Franciso, CA
-# country: us
-# event: LISA
-# title: (M7) Getting Started with Docker and Containers
-# slides: http://lisa17m7.container.training/
-
-# - date: 2017-10-31
-# city: San Franciso, CA
-# country: us
-# event: LISA
-# title: (T9) Build, Ship, and Run Microservices on a Docker Swarm Cluster
-# slides: http://lisa17t9.container.training/
-
-# - date: 2017-10-26
-# city: Prague
-# country: cz
-# event: Open Source Summit Europe
-# title: Deploying and scaling microservices with Docker and Kubernetes
-# slides: http://osseu17.container.training/
-# video: https://www.youtube.com/playlist?list=PLBAFXs0YjviLrsyydCzxWrIP_1-wkcSHS
-
-# - date: 2017-10-16
-# city: Copenhagen
-# country: dk
-# event: DockerCon
-# title: Swarm from Zero to Hero
-# slides: http://dc17eu.container.training/
-
-# - date: 2017-10-16
-# city: Copenhagen
-# country: dk
-# event: DockerCon
-# title: Orchestration for Advanced Users
-# slides: https://www.bretfisher.com/dockercon17eu
-
-# - date: 2017-07-25
-# city: Minneapolis, MN
-# country: us
-# event: devopsdays
-# title: Deploying & Scaling microservices with Docker Swarm
-# video: https://www.youtube.com/watch?v=DABbqyJeG_E
-
-# - date: 2017-06-12
-# city: Berlin
-# country: de
-# event: DevOpsCon
-# title: Deploying and scaling containerized Microservices with Docker and Swarm
-
-# - date: 2017-05-18
-# city: Portland, OR
-# country: us
-# event: PyCon
-# title: Deploy and scale containers with Docker native, open source orchestration
-# video: https://www.youtube.com/watch?v=EuzoEaE6Cqs
-
-# - date: 2017-05-08
-# city: Austin, TX
-# country: us
-# event: OSCON
-# title: Deploying and scaling applications in containers with Docker
-
-# - date: 2017-05-04
-# city: Chicago, IL
-# country: us
-# event: GOTO
-# title: Container deployment, scaling, and orchestration with Docker Swarm
-
-# - date: 2017-04-17
-# city: Austin, TX
-# country: us
-# event: DockerCon
-# title: Orchestration Workshop
-
-# - date: 2017-03-22
-# city: San Jose, CA
-# country: us
-# event: Devoxx
-# title: Container deployment, scaling, and orchestration with Docker Swarm
-
-# - date: 2017-03-03
-# city: Pasadena, CA
-# country: us
-# event: SCALE
-# title: Container deployment, scaling, and orchestration with Docker Swarm
-
-# - date: 2016-12-06
-# city: Boston, MA
-# country: us
-# event: LISA
-# title: Deploying and Scaling Applications with Docker Swarm
-# slides: http://lisa16t1.container.training/
-# video: https://www.youtube.com/playlist?list=PLBAFXs0YjviIDDhr8vIwCN1wkyNGXjbbc
-
-# - date: 2016-10-07
-# city: Berlin
-# country: de
-# event: LinuxCon
-# title: Orchestrating Containers in Production at Scale with Docker Swarm
-
-# - date: 2016-09-20
-# city: New York, NY
-# country: us
-# event: Velocity
-# title: Deployment and orchestration at scale with Docker
-
-# - date: 2016-08-25
-# city: Toronto
-# country: ca
-# event: LinuxCon
-# title: Orchestrating Containers in Production at Scale with Docker Swarm
-
-# - date: 2016-06-22
-# city: Seattle, WA
-# country: us
-# event: DockerCon
-# title: Orchestration Workshop
-
-# - date: 2016-05-29
-# city: Portland, OR
-# country: us
-# event: PyCon
-# title: Introduction to Docker and containers
-# slides: https://us.pycon.org/2016/site_media/media/tutorial_handouts/DockerSlides.pdf
-# video: https://www.youtube.com/watch?v=ZVaRK10HBjo
-
-# - date: 2016-05-17
-# city: Austin, TX
-# country: us
-# event: OSCON
-# title: Deployment and orchestration at scale with Docker Swarm
-
-# - date: 2016-04-27
-# city: Budapest
-# country: hu
-# event: CRAFT
-# title: Advanced Docker concepts and container orchestration
-
-# - date: 2016-04-22
-# city: Berlin
-# country: de
-# event: Neofonie
-# title: Orchestration Workshop
-
-# - date: 2016-04-05
-# city: Stockholm
-# country: se
-# event: Praqma
-# title: Orchestration Workshop
-
-# - date: 2016-03-22
-# city: Munich
-# country: de
-# event: Stylight
-# title: Orchestration Workshop
-
-# - date: 2016-03-11
-# city: London
-# country: uk
-# event: QCON
-# title: Containers in production with Docker Swarm
-
-# - date: 2016-02-19
-# city: Amsterdam
+# - date: 2023-02-17
# country: nl
-# event: Container Solutions
-# title: Orchestration Workshop
-
-# - date: 2016-02-15
-# city: Paris
-# country: fr
-# event: Zenika
-# title: Orchestration Workshop
-
-# - date: 2016-01-22
-# city: Pasadena, CA
-# country: us
-# event: SCALE
-# title: Advanced Docker concepts and container orchestration
-
-# #- date: 2015-11-10
-# # city: Washington DC
-# # country: us
-# # event: LISA
-# # title: Deploying and Scaling Applications with Docker Swarm
-
-# #2015-09-24-strangeloop
-
-
-
-# - title: Introduction to Docker and Containers
-# slides: intro-selfpaced.yml.html
-
-# - title: Container Orchestration with Docker and Swarm
-# slides: swarm-selfpaced.yml.html
-
-# - title: Deploying and Scaling Microservices with Docker and Kubernetes
-# slides: kube-selfpaced.yml.html
+# city: Apeldoorn
+# event: bd
+# speaker: mverleun
+# title: Introduction to kubernetes
+# lang: nl
+# slides: https://training.verleun.org/intro-bd-k8s.yml.html#1
+# - date: 2023-02-24
+# country: nl
+# city: Apeldoorn
+# event: bd
+# speaker: mverleun
+# title: Introduction to helm and friends
+# lang: nl
+# slides: https://training.verleun.org/intro-bd-helm.yml.html#1
diff --git a/slides/intro-bd-k8s.yml b/slides/intro-bd-k8s.yml
index e8e93c4..5881f5a 100644
--- a/slides/intro-bd-k8s.yml
+++ b/slides/intro-bd-k8s.yml
@@ -1,7 +1,5 @@
title: |
- Triodos Introduction to
- Containers and orchestration
- with Kubernetes
+ Introduction to Kubernetes
#chat: "[Slack](https://dockercommunity.slack.com/messages/C7GKACWDV)"
#chat: "[Gitter](https://gitter.im/jpetazzo/workshop-yyyymmdd-city)"
@@ -91,22 +89,22 @@ content:
- k8s/setup-overview.md
#- k8s/setup-devel.md
#- k8s/setup-managed.md
- #- k8s/setup-selfhosted.md
+ - k8s/setup-selfhosted.md
- - k8s/kubectl-run.md
#- k8s/batch-jobs.md
#- k8s/labels-annotations.md
- - k8s/kubectl-logs.md
- - k8s/deploymentslideshow.md
- - k8s/kubectlexpose.md
- - k8s/shippingimages.md
+ # - k8s/kubectl-logs.md
+ # - k8s/deploymentslideshow.md
+ # - k8s/kubectlexpose.md
+ # - k8s/shippingimages.md
#- k8s/buildshiprun-selfhosted.md
- - k8s/buildshiprun-dockerhub.md
- - k8s/ourapponkube.md
+ # - k8s/buildshiprun-dockerhub.md
+ # - k8s/ourapponkube.md
#- k8s/localkubeconfig.md
#- k8s/access-eks-cluster.md
#- k8s/accessinternal.md
#- k8s/kubectlproxy.md
-- - k8s/dashboard.md
+- #- k8s/dashboard.md
#- k8s/k9s.md
#- k8s/tilt.md
#- k8s/kubectlscale.md
@@ -119,9 +117,9 @@ content:
# Bridget hasn't added EFK yet
#- k8s/logs-centralized.md
- k8s/namespaces.md
- - k8s/helm-intro.md
+ #- k8s/helm-intro.md
#- k8s/helm-chart-format.md
- - k8s/helm-create-basic-chart.md
+ #- k8s/helm-create-basic-chart.md
#- k8s/helm-create-better-chart.md
#- k8s/helm-dependencies.md
#- k8s/helm-values-schema-validation.md
diff --git a/slides/marco/intro.md b/slides/marco/intro.md
new file mode 100644
index 0000000..03fbd00
--- /dev/null
+++ b/slides/marco/intro.md
@@ -0,0 +1,26 @@
+## Introductions
+
+
+
+- Hello! I am:
+
+ - 👴 Marco Verleun (marco.verleun@i-share.nl)
+
+ - 👷🏼♂️ Devops/Gitops/Cloud/Container/Cluster/Linux engineer (Pick one)
+
+ - 🎯 Secure clusters (air-gapped) running secure containers
+
+ - 🏢 Employed by i-share (www.i-share.nl)
+
+
+- This presentation is partially based on the excellent work of Jérôme Petazzo.
+
+- Feel free to interrupt for questions at any time
+
+---
+
+## Exercises
+
+- Due to time constraints there are no exercises....
diff --git a/slides/secure-containers/sampleapp.md b/slides/secure-containers/sampleapp.md
new file mode 100644
index 0000000..307e761
--- /dev/null
+++ b/slides/secure-containers/sampleapp.md
@@ -0,0 +1,298 @@
+# Which application needs to be secured
+
+- It is a DockerCoin miner! 💰🐳📦🚢
+
+--
+
+- No, you can't buy coffee with DockerCoin
+
+--
+
+- How dockercoins works:
+
+ - generate a few random bytes
+
+ - hash these bytes
+
+ - increment a counter (to keep track of speed)
+
+ - repeat forever!
+
+--
+
+- DockerCoin is *not* a cryptocurrency
+
+ (the only common points are "randomness," "hashing," and "coins" in the name)
+
+---
+
+## DockerCoin in the microservices era
+
+- The dockercoins app is made of 5 services:
+
+ - `rng` = web service generating random bytes
+
+ - `hasher` = web service computing hash of POSTed data
+
+ - `worker` = background process calling `rng` and `hasher`
+
+ - `webui` = web interface to watch progress
+
+ - `redis` = data store (holds a counter updated by `worker`)
+
+- These 5 services are visible in the application's Compose file,
+ [docker-compose.yml](
+ https://github.com/jpetazzo/container.training/blob/main/dockercoins/docker-compose.yml)
+
+---
+
+## How dockercoins works
+
+- `worker` invokes web service `rng` to generate random bytes
+
+- `worker` invokes web service `hasher` to hash these bytes
+
+- `worker` does this in an infinite loop
+
+- every second, `worker` updates `redis` to indicate how many loops were done
+
+- `webui` queries `redis`, and computes and exposes "hashing speed" in our browser
+
+*(See diagram on next slide!)*
+
+---
+
+class: pic
+
+
+
+---
+
+## How do improve the `docker-compose.yml` file
+
+Let's pretend we do not want to modify the original `docker-compose.yml` file
+
+--
+
+- Changes here might cause issues with upstream updates.
+
+- Hard to keep track of differences with merge conflicts
+
+--
+
+Let's override values with `docker-compose.override.yml`
+
+---
+
+## Example in `worker/worker.py`
+
+```python
+redis = Redis("`redis`")
+
+
+def get_random_bytes():
+ r = requests.get("http://`rng`/32")
+ return r.content
+
+
+def hash_bytes(data):
+ r = requests.post("http://`hasher`/",
+ data=data,
+ headers={"Content-Type": "application/octet-stream"})
+```
+
+(Full source code available [here](
+https://@@GITREPO@@/blob/8279a3bce9398f7c1a53bdd95187c53eda4e6435/dockercoins/worker/worker.py#L17
+))
+
+---
+
+class: extra-details
+
+## Links, naming, and service discovery
+
+- Containers can have network aliases (resolvable through DNS)
+
+- Compose file version 2+ makes each container reachable through its service name
+
+- Compose file version 1 required "links" sections to accomplish this
+
+- Network aliases are automatically namespaced
+
+ - you can have multiple apps declaring and using a service named `database`
+
+ - containers in the blue app will resolve `database` to the IP of the blue database
+
+ - containers in the green app will resolve `database` to the IP of the green database
+
+---
+
+## Show me the code!
+
+- You can check the GitHub repository with all the materials of this workshop:
+
https://@@GITREPO@@
+
+- The application is in the [dockercoins](
+ https://@@GITREPO@@/tree/master/dockercoins)
+ subdirectory
+
+- The Compose file ([docker-compose.yml](
+ https://@@GITREPO@@/blob/master/dockercoins/docker-compose.yml))
+ lists all 5 services
+
+- `redis` is using an official image from the Docker Hub
+
+- `hasher`, `rng`, `worker`, `webui` are each built from a Dockerfile
+
+- Each service's Dockerfile and source code is in its own directory
+
+ (`hasher` is in the [hasher](https://@@GITREPO@@/blob/master/dockercoins/hasher/) directory,
+ `rng` is in the [rng](https://@@GITREPO@@/blob/master/dockercoins/rng/)
+ directory, etc.)
+
+---
+
+class: extra-details
+
+## Compose file format version
+
+*This is relevant only if you have used Compose before 2016...*
+
+- Compose 1.6 introduced support for a new Compose file format (aka "v2")
+
+- Services are no longer at the top level, but under a `services` section
+
+- There has to be a `version` key at the top level, with value `"2"` (as a string, not an integer)
+
+- Containers are placed on a dedicated network, making links unnecessary
+
+- There are other minor differences, but upgrade is easy and straightforward
+
+---
+
+## Our application at work
+
+- On the left-hand side, the "rainbow strip" shows the container names
+
+- On the right-hand side, we see the output of our containers
+
+- We can see the `worker` service making requests to `rng` and `hasher`
+
+- For `rng` and `hasher`, we see HTTP access logs
+
+---
+
+## Connecting to the web UI
+
+- "Logs are exciting and fun!" (No-one, ever)
+
+- The `webui` container exposes a web dashboard; let's view it
+
+.lab[
+
+- With a web browser, connect to `node1` on port 8000
+
+- Remember: the `nodeX` aliases are valid only on the nodes themselves
+
+- In your browser, you need to enter the IP address of your node
+
+
+
+]
+
+A drawing area should show up, and after a few seconds, a blue
+graph will appear.
+
+---
+
+class: self-paced, extra-details
+
+## If the graph doesn't load
+
+If you just see a `Page not found` error, it might be because your
+Docker Engine is running on a different machine. This can be the case if:
+
+- you are using the Docker Toolbox
+
+- you are using a VM (local or remote) created with Docker Machine
+
+- you are controlling a remote Docker Engine
+
+When you run DockerCoins in development mode, the web UI static files
+are mapped to the container using a volume. Alas, volumes can only
+work on a local environment, or when using Docker Desktop for Mac or Windows.
+
+How to fix this?
+
+Stop the app with `^C`, edit `dockercoins.yml`, comment out the `volumes` section, and try again.
+
+---
+
+class: extra-details
+
+## Why does the speed seem irregular?
+
+- It *looks like* the speed is approximately 4 hashes/second
+
+- Or more precisely: 4 hashes/second, with regular dips down to zero
+
+- Why?
+
+--
+
+class: extra-details
+
+- The app actually has a constant, steady speed: 3.33 hashes/second
+
+ (which corresponds to 1 hash every 0.3 seconds, for *reasons*)
+
+- Yes, and?
+
+---
+
+class: extra-details
+
+## The reason why this graph is *not awesome*
+
+- The worker doesn't update the counter after every loop, but up to once per second
+
+- The speed is computed by the browser, checking the counter about once per second
+
+- Between two consecutive updates, the counter will increase either by 4, or by 0
+
+- The perceived speed will therefore be 4 - 4 - 4 - 0 - 4 - 4 - 0 etc.
+
+- What can we conclude from this?
+
+--
+
+class: extra-details
+
+- "I'm clearly incapable of writing good frontend code!" 😀 — Jérôme
+
+---
+
+## Stopping the application
+
+- If we interrupt Compose (with `^C`), it will politely ask the Docker Engine to stop the app
+
+- The Docker Engine will send a `TERM` signal to the containers
+
+- If the containers do not exit in a timely manner, the Engine sends a `KILL` signal
+
+.lab[
+
+- Stop the application by hitting `^C`
+
+
+
+]
+
+--
+
+Some containers exit immediately, others take longer.
+
+The containers that do not handle `SIGTERM` end up being killed after a 10s timeout. If we are very impatient, we can hit `^C` a second time!
+