Le 13/06/2023 a marqué la toute première édition des HashiDays qui s’est tenue simultanément dans trois villes : Paris, Munich et Londres. De plus, il était également possible de participer à l’événement en ligne. J’ai eu la chance de participer à l’édition de Paris.

Dans cet article nous allons passer en revue ensemble les nouveautés présentées durant cette journée, notamment autour de HCP (HashiCorp Cloud Platform) qui est mit en avant a chaque HashiConf/HashiDays.

HashiDays Paris 2023

HashiCorp Vault

Grande nouveauté concernant Vault est HCP Vault Secrets qui est actuellement en public beta.

Dans les grandes lignes, cette nouvelle feature permet de:

  • Stocker des secrets de façon simple et centralisée: L’objectif est de voir la solution comme un “trousseau de clés en SaaS”.
  • Synchroniser les secrets entre HCP Vault Secrets et cloud provider/machine: Pour le moment la solution supporte uniquement AWS Secret Manager mais d’autres viendront vite.
  • Accessible via une API ou CLI: Dans une optique de fournir une expérience “Developer Flexibility”, une API est accessible permettant de récupérer un secret via un Curl, Terraform (via le provider Vault), une CLI dédiée à Vault Secrets (sour le nom de vlt) ou encore un SDK. Côté SDK, la communauté n’a pas traîné puisqu’un SDK en GO a déjà vu le jour.

HCP Vault Secrets

Cerise sur le gâteau, HCP Vault Secrets est gratuit durant la public beta. Une occasion de tester le produit par vous-même.

Autre nouveauté pour les utilisateurs de Kubernetes qui est sortie depuis quelques mois mais remise en avant durant les HashiDays en tant que GA (Global Availability) est le Vault Secrets Operator. Cette intégration permet notamment la synchronisation avec toutes les classes de secrets Vault. Pour ceux qui souhaitent connaitre la différence et comparer avec les autres méthodes vous pouvez vous référer à l’article de blog HashiCorp sur les intégrations Kubernetes avec Vault.

Vault Secrets Operator

Pour plus d’informations :

HashiCorp Boundary

HashiCorp Boundary 0.13 est sorti ! Parmis les nouveautés, certaines sont accessibles via la version Open Source d’autre via HCP.

Côté Open Source, nous avons:

  • LDAP authentication method (beta)
  • OIDC authentication improvements: La CLI peut afficher l’URL d’authentification afin que celle-ci puisse se poursuivre via un autre device (notamment pour les device n’ayant pas de navigateur web).
  • Shared KMS workers: L’usage d’un ou plusieurs KMS pour enregistrer les downstreams sur plusieurs réseaux.
  • Static ports for targets
  • Dynamic host catalog external name

Boundary Enterprise

Côté Enterprise:

  • Boundary Enterprise version: La possibilité de déployer une version Enterprise de HashiCorp Boundary en Self-Hosted. Cela embarque la plupart des features de HCP Boundary mais pas toutes (par exemple: l’automatisation des mises à jour, le streaming des logs d’audit, etc). Je vous invite a voir la différence entre HCP Boundary et la version enterprise sur la page pricing.
  • SSH session recording: Enregistre l’ensemble des commandes (sous forme de GIF) la session. La feature supporte, pour le moment, uniquement le SSH et stock le recording sur un AWS Bucket S3. Petite précision sur la feature, c’est le worker Boundary qui envoie le fichier (avec le fichier d’intégrité) au bucket S3 UNIQUEMENT quand la session se termine. Un axe d’amélioration que j’ai noté durant mes tests est que l’accès a l’AWS S3 bucket se fait via Access Key & Secret key static, on espère donc une intégration prochaine via AWS Role ou autre accès plus dynamique. Côté pricing, la solution évolue avec cette nouvelle feature avec une offre HCP Plus à $0.90 par session (là où l’offre HCP Standard est à $0.50).
  • HCP Boundary maintenance window: Vous pouvez choisir mlaintenant une maintenance window pour update votre Boundary (pour un patch ou l’upgrade d’une version majeur)

Boundary Session Recording Boundary Session Recording - Demo

Pour plus d’informations:

HashiCorp Consul

Du côté Consul, les nouveautés se divisent en 2 parties avec d’un côté HCP Consul Management Plane et Consul v1.16 en BETA.

Du côté HCP Consul Management Plane, nous avons une déclinaison sous forme de deux features:

  • Cloud-based observability (beta): Axé sur 3 éléments clés: Telemetry extraction, Metrics storage & Visualizations. Permettant d’offrir une vue globale multi environment, des services et un état de santé global.
  • Cluster peering (GA): Simplifiant la cross-cluster connectivity via l’interface HCP (pour des cluster existant aussi bien de type HCP ou self-managed).

De l’autre avec Consul v1.16 encore en BETA, nous avons:

  • Sameness groups (Consul Enterprise): Permet d’effectué un failover entre un service réparti sur plusieurs clusters/partitions.
  • Enhanced control plane protection (Consul Enterprise): Ajout d’un rate limit basé sur l’adresse IP.
  • FIPS 140-2 compliant (Consul Enterprise): Build offrant un niveau FIPS 140-2 Level 1
  • JWT auth for service-to-service traffic: Les Consul service intentions peuvent maintenant authoriser les claims des JWT (Json Web Token)
  • Transparent proxy for failover and virtual services: Ajout d’un mode transparent proxy
  • Permissive mTLS: Quand on active le mTLS (Mutual TLS), Consul attends que TOUTES les communications soit sécurisé via mTLS. Avec le Permissive mTLS, cela permet de faire la transition vers du mTLS sans que toutes les communications utilisent le mTLS.
  • Simplified API Gateway installation for Consul on Kubernetes
  • External AuthZ Envoy extension: Permet de mettre en place un Envoy externe pour filtrer les authorisations sur des TCP et HTTP listeners.
  • Property override Envoy extension
  • Wasm Envoy extension: Permet de mettre en place l’extension WebAssembly (Wasm) pour les TCP et HTTP listeners via Envoy.
  • Catalog sync support for health checks and ingress

Consul 1.16 recap

Pour plus d’informations:

HashiCorp Terraform

Pour cloturer le bal des nouveautés, nous finissons par HashiCorp Terraform. Dans la même logique que Consul, nous avons des nouveautés scindées en 2 parties: d’un côté Terraform Cloud et de l’autre Terraform v1.5.

Terraform recap

Commençons par les nouveautés par le tant attendu Terraform v1.5:

  • Config-driven import: LA feature tant attendu l’import des resources avec génération de code automatique par Terraform fait son apparition. L’action se fait en 2 étapes:
    1. Création de la resource cible et d’un block import {}:
    import {
      id = i-abcd1234
      to = aws_instance.example
    }
    
    resource "aws_instance" "example" {
      name = "test"
    }
    
    Avec ici id pour la resource id existante et to qui est la resource Terraform à générer. 2. Puis vous pouvez faire votre plan et/ou apply ensuite afin de voir et/ou générer la resource en Terraform avec ses attributs. Contrairement à la commande terraform import, l’usage du block est idempotent permettant facilement de retirer la configuration si celle-ci ne vous plait plus.

    Avertissement

    Attention au import: Les imports importent tous les attributs et certains sont conflictuels.

  • Enhanced validation with checks: Autre feature tout aussi importante, les blocks check {}. Les checks permettent des tests fonctionnels non bloquants (les checks se lancent a la toute fin) là où les post condition sont plus orienté pour des tests unitaires bloquants. check et post condition sont donc complémentaires. Un exemple tiré de l’article de blog HashiCorp:
check "health_check" {
  data "http" "example" {
    url = "https://${aws_lb.example.dns_name}"
  }
 
  assert {
    condition     = data.http.example.status_code == 200
    error_message = "${data.http.example.url} returned an unhealthy status code"
  }
}

De l’autre côté avec Terraform Cloud, nous avons:

  • Explorer for workspace visibility (beta): Une vue consolidée qui regroupe: provider, modules, les versions Terraform utilisées par les workspaces, les drift détecté, etc.
  • Ephemeral workspaces (coming soon): Permet de mettre un Time To Live sur un workspace. A la fin du Time To Live, le workspace est détruit avec l’ensemble des ressources via un terraform destroy (parfait pour les environnements de dev souvent oubliés).
  • Config-driven import (GA): Utilise la fonctionalité de Terraform v1.5 avec les import blocks et permet via Terraform Cloud de visualiser l’import et d’en télécharger la configuration.
  • Continuous validation with Terraform checks (GA): Dans la même continuité que la feature Config-driven import de Terraform Cloud, la plateforme utilise cette nouvelle feature pour notifier les users si un check fail.

Pour plus d’informations:

Nomad, Packer et Vagrant ?

Pas d’annonce spécifique à ces produits durant les HashiDays. L’évennement ce concentre principalement sur les produits ayant des versions enterprise et/ou HashiCorp Cloud Platform (HCP).

Pour complété votre voyage dans le monde HashiCorp, je vous invite à en apprendre d’avantage sur les autres nouveautés via les ressources suivantes:

HashiDays Paris 2023 en personne, le feeback !

Est-ce que l’événement en personne à Paris est à refaire pour 2024 ?

Oui. Les HashiDays ont su mettre en avant le côté présentiel notamment avec une matinée (de 9h30 à 10h30) et un afterwork de networking très réussi à mon sens. Pour la petite anecdote, j’ai eu l’occasion de croiser à chaque événement HashiCorp (et chaque année) d’anciens membres de ma promotion d’école que je ne vois plus depuis des années. C’est aussi une occasion de rencontré d’autre HashiCorp Ambassador et HashiCorp Core Contributor.

HashiCorp Ambassaodr

Qu’en est-il des talks ?

Les talks se sont déroulés en 4 phases:

  1. Keynote (matiné)
  2. Session Deep Dive sur les nouveautés (matinée/midi)
  3. Talk sous forme de retour d’expérience (début d’après-midi)
  4. Learning session sous forme de démonstration/lab à reproduire (fin d’après-midi)

Dans l’ensemble, le programme est bon avec des pauses récurrentes. Cependant, il manque un deuxième “track” afin de choisir le sujet en fonction de nos préférences ainsi qu’un temps plus dédié avec des petits groupes pour les Learning sessions pour ceux qui auraient bien voulu suivre (car la cadence était très voire trop élevée avec l’impossibilité d’être aidé).

Le mot de la fin ?

Pour ceux qui sont dans la découverte, se posant les questions sur les offres Pro ou Enterprise des produits HashiCorp et souhaitant discuter avec des experts sur le sujet, les HashiDays sont l’endroit idéal. Pour ceux ayant déjà un niveau assez avancé dans les produits HashiCorp et se limitant aux produits open source, vous allez être globalement peu satisfaits, à l’exception du temps consacré au networking et de quelques talks.

Pour finir, quelques bonus: