# Back to HashiDays Paris 2023

> HashiDays Paris 2023 recap: HCP Vault Secrets, the Vault Secrets Operator and the rest of what HashiCorp announced that day.

2023-06-20 · HashiCorp, Terraform, Vault

On June 13, 2023, the very first edition of HashiDays took place simultaneously in three cities: **Paris**, **Munich**, and **London**. Additionally, it was also possible to participate in the event online. I had the chance to attend the [Paris edition](https://hashidays.com/paris/).

In this article, we will review together the innovations presented during this day, particularly focusing on HCP ([HashiCorp Cloud Platform](https://www.hashicorp.com/cloud)), which is highlighted at every HashiConf/HashiDays.

<img src="/hashidays-paris-2023/hashidays_paris_hu_9e38a48831945e2.webp" loading="lazy" decoding="async" srcset="/hashidays-paris-2023/hashidays_paris_hu_b372a8ea2c754190.webp 480w, /hashidays-paris-2023/hashidays_paris_hu_7d36674662364b91.webp 800w, /hashidays-paris-2023/hashidays_paris_hu_fd02aee1f0d923ff.webp 1200w, /hashidays-paris-2023/hashidays_paris_hu_9e38a48831945e2.webp 1400w" sizes="(max-width: 800px) 100vw, 800px" width="1400" height="813" alt="HashiDays Paris 2023" class="left" />

## HashiCorp Vault

A major innovation regarding Vault is [HCP Vault Secrets](https://www.hashicorp.com/blog/announcing-hcp-vault-secrets-public-beta), which is currently in **public beta**.

In essence, this new feature allows:
- **Simple and centralized storage of secrets**: The goal is to view the solution as a "keyring SaaS".
- **Centralizing secrets between HCP Vault Secrets and cloud providers/machines**: Currently, the solution only supports[AWS Secret Manager](https://developer.hashicorp.com/hcp/docs/vault-secrets/integrations/aws-secrets-manager), but support for others is coming soon.
- **Accessibility via an API or CLI**: With a focus on providing "Developer Flexibility," an API is available to retrieve a secret using Curl, Terraform (via the Vault provider), a [dedicated CLI for Vault Secrets (called **vlt**)](https://developer.hashicorp.com/hcp/docs/vault-secrets/commands), or an SDK. In terms of SDK, the community wasted no time, as a [GO SDK](https://github.com/ssbostan/vault-secrets-sdk-go) has already been developed.

<img src="/hashidays-paris-2023/vlt_secrets_hu_5b22239b88b38d5b.webp" loading="lazy" decoding="async" srcset="/hashidays-paris-2023/vlt_secrets_hu_40e4a7e7e2b0c552.webp 480w, /hashidays-paris-2023/vlt_secrets_hu_63f6d0b9d4144b5a.webp 800w, /hashidays-paris-2023/vlt_secrets_hu_cc39fc039c8f4f59.webp 1200w, /hashidays-paris-2023/vlt_secrets_hu_5b22239b88b38d5b.webp 1400w" sizes="(max-width: 800px) 100vw, 800px" width="1400" height="899" alt="HCP Vault Secrets" class="left" />

To top it all off, **HCP Vault Secrets** is [free during the **public beta**](https://www.hashicorp.com/cloud). It's a great opportunity to test the product for yourself.

Another innovation for Kubernetes users, which was released a few months ago but highlighted during HashiDays as a GA (Global Availability) announcement, is the [**Vault Secrets Operator**](https://www.hashicorp.com/blog/vault-secrets-operator-for-kubernetes-now-ga). This integration allows seamless synchronization with all Vault secret types.
For those interested in understanding the differences and comparing it with other methods, you can refer to [HashiCorp's blog post on Kubernetes integrations with Vault](https://www.hashicorp.com/blog/kubernetes-vault-integration-via-sidecar-agent-injector-vs-csi-provider).

<img src="/hashidays-paris-2023/vlt_k8s_operator_hu_a960d6b2ab431a79.webp" loading="lazy" decoding="async" srcset="/hashidays-paris-2023/vlt_k8s_operator_hu_d0e3bdd56c492e8e.webp 480w, /hashidays-paris-2023/vlt_k8s_operator_hu_b54a95a607158d6c.webp 800w, /hashidays-paris-2023/vlt_k8s_operator_hu_e9dbbf7e49e34918.webp 1200w, /hashidays-paris-2023/vlt_k8s_operator_hu_a960d6b2ab431a79.webp 1400w" sizes="(max-width: 800px) 100vw, 800px" width="1400" height="972" alt="Vault Secrets Operator" class="left" />

For more information:
- [HCP Vault Secrets news](https://www.hashicorp.com/blog/announcing-hcp-vault-secrets-public-beta)
- [Synchronization between HCP Vault Secrets and AWS Secrets Manager](https://developer.hashicorp.com/hcp/docs/vault-secrets/integrations/aws-secrets-manager)
- [Vault Secrets Operator](https://www.hashicorp.com/blog/vault-secrets-operator-for-kubernetes-now-ga)

## HashiCorp Boundary

**HashiCorp Boundary 0.13** has been released! Among the new features, some are accessible through the Open Source version, while others are available via HCP.

For the Open Source version, we have:
- **LDAP authentication method (beta)**
- **OIDC authentication improvements**: The CLI can display the authentication URL so that it can be continued on another device (especially for devices without a web browser).
- **Shared KMS workers**: The use of one or multiple KMS to register downstreams across multiple networks.
- **Static ports for targets**
- **Dynamic host catalog external name**

<img src="/hashidays-paris-2023/boundary_enterprise_hu_b960eeca642f30a8.webp" loading="lazy" decoding="async" srcset="/hashidays-paris-2023/boundary_enterprise_hu_25bb9b0cee2607a6.webp 480w, /hashidays-paris-2023/boundary_enterprise_hu_484657fe5bb39385.webp 800w, /hashidays-paris-2023/boundary_enterprise_hu_9fb885c34162a6fd.webp 1200w, /hashidays-paris-2023/boundary_enterprise_hu_b960eeca642f30a8.webp 1400w" sizes="(max-width: 800px) 100vw, 800px" width="1400" height="747" alt="Boundary Enterprise" class="left" />

On the Enterprise side:
- **Boundary Enterprise version**: The ability to deploy an Enterprise version of HashiCorp Boundary in a self-hosted environment. It includes most of the features of HCP Boundary but not all (e.g., automated updates, streaming of audit logs, etc.). You can see the [difference between HCP Boundary and the enterprise version on the pricing page](https://www.hashicorp.com/products/boundary/pricing).
- **SSH session recording**: Records all commands in a session and stores the recording as a GIF. Currently, this feature only supports SSH and stores the recording in an AWS S3 bucket. It's worth noting that the Boundary worker sends the file (along with the integrity file) to the S3 bucket ONLY when the session ends. One improvement to note from my testing is that access to the AWS S3 bucket is currently done via [static Access Key & Secret Key](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html). We hope to see integration soon with AWS Role or other more [dynamic access methods](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html). In terms of pricing, this new feature introduces the **HCP Plus** offering at $0.90 per session (compared to the **HCP Standard** offering at $0.50).
- **HCP Boundary maintenance window**: You can now choose a maintenance window to update your Boundary (for patching or upgrading to a major version).

<img src="/hashidays-paris-2023/boundary_session_recording_hu_47dcd55d95b1527b.webp" loading="lazy" decoding="async" srcset="/hashidays-paris-2023/boundary_session_recording_hu_f4b455097b3d4e12.webp 480w, /hashidays-paris-2023/boundary_session_recording_hu_11fdf896cdf0845e.webp 800w, /hashidays-paris-2023/boundary_session_recording_hu_523eb91eb816a4f7.webp 1200w, /hashidays-paris-2023/boundary_session_recording_hu_47dcd55d95b1527b.webp 1400w" sizes="(max-width: 800px) 100vw, 800px" width="1400" height="741" alt="Boundary Session Recording" class="left" />
<video width="1600" height="900" poster="https://mehdilaruelle.com/hashidays-paris-2023/vlt_sessionrecordingdemo.jpg" aria-label="Boundary Session Recording - Demo"controls autoplay loop
  muted playsinline preload="metadata">
    <source src="https://mehdilaruelle.com/hashidays-paris-2023/vlt_sessionrecordingdemo.webm" type="video/webm">
    <source src="https://mehdilaruelle.com/hashidays-paris-2023/vlt_sessionrecordingdemo.mp4" type="video/mp4">
</video>

For more information:
- [Boundary v0.13 blog post release](https://www.hashicorp.com/blog/boundary-0-13-introduces-ssh-session-recording-boundary-enterprise-and-more)
- [The changelog for the v0.13](https://developer.hashicorp.com/boundary/docs/release-notes/v0_13_0)
- [HashiCorp Boundary pricing & feature difference](https://www.hashicorp.com/products/boundary/pricing)

## HashiCorp Consul

On the Consul side, the new features are divided into two parts, with **HCP Consul Management Plane** and **Consul v1.16 in BETA**.

For **HCP Consul Management Plane**, we have two featured components:
- **Cloud-based observability (beta)**: Focused on three key elements: Telemetry extraction, Metrics storage & Visualizations. It provides a global view across multiple environments, services, and overall health status.
- **Cluster peering (GA)**: Simplifies cross-cluster connectivity through the HCP interface, supporting both HCP and self-managed clusters.

On the other hand, with **Consul v1.16** still in BETA, we have:
- **Sameness groups (Consul Enterprise)**: Enables failover between a service distributed across multiple clusters/partitions.
- **Enhanced control plane protection (Consul Enterprise)**: Adds rate limiting based on IP address.
- **FIPS 140-2 compliant (Consul Enterprise)**: Built to comply with [FIPS 140-2 Level 1](https://en.wikipedia.org/wiki/FIPS_140-2) standards.
- **JWT auth for service-to-service traffic**: Consul service intentions can now authorize JWT (Json Web Token) claims.
- **Transparent proxy for failover and virtual services**: Introduces a [transparent proxy](https://developer.hashicorp.com/consul/docs/connect/transparent-proxy) mode.
- **Permissive mTLS**: When enabling mTLS (Mutual TLS), Consul previously required ALL communications to be secured with mTLS. With **Permissive mTLS**, the transition to mTLS can be made without requiring all communications to use mTLS.
- **Simplified API Gateway installation for Consul on Kubernetes**
- **External AuthZ Envoy extension**: Allows the use of an [external Envoy](https://developer.hashicorp.com/consul/docs/connect/proxies/envoy-extensions) to filter authorizations on TCP and HTTP listeners.
- **Property override Envoy extension**
- **Wasm Envoy extension**: Enables the use of the [WebAssembly (Wasm)](https://istio.io/latest/blog/2020/wasm-announce/) extension for TCP and HTTP listeners via Envoy.
- **Catalog sync support for health checks and ingress**

<img src="/hashidays-paris-2023/consul_1-16_hu_3a67cd478386899d.webp" loading="lazy" decoding="async" srcset="/hashidays-paris-2023/consul_1-16_hu_25155020df5dfde6.webp 480w, /hashidays-paris-2023/consul_1-16_hu_d0a56fe8b0595fd.webp 800w, /hashidays-paris-2023/consul_1-16_hu_1a1c62b7fa54954c.webp 1200w, /hashidays-paris-2023/consul_1-16_hu_3a67cd478386899d.webp 1400w" sizes="(max-width: 800px) 100vw, 800px" width="1400" height="679" alt="Consul 1.16 recap" class="left" />

For more information:
- [HCP Consul Management Plane](https://www.hashicorp.com/blog/announcing-hcp-consul-management-plane-with-cloud-based-observability)
- [Consul v1.16 (Beta)](https://www.hashicorp.com/blog/consul-1-16-enhances-service-mesh-reliability-user-experience-and-security)

## HashiCorp Terraform

To conclude the wave of new features, we end with HashiCorp Terraform.
In a similar fashion to Consul, the new features are divided into two parts: **Terraform Cloud** and **Terraform v1.5**.

<img src="/hashidays-paris-2023/tf_news_hu_f6c5b505bc872a47.webp" loading="lazy" decoding="async" srcset="/hashidays-paris-2023/tf_news_hu_8556caa192302a8b.webp 480w, /hashidays-paris-2023/tf_news_hu_bb069db685bad20c.webp 800w, /hashidays-paris-2023/tf_news_hu_19df8b0ce7734b76.webp 1200w, /hashidays-paris-2023/tf_news_hu_f6c5b505bc872a47.webp 1400w" sizes="(max-width: 800px) 100vw, 800px" width="1400" height="727" alt="Terraform recap" class="left" />

Let's start with the exciting new features in **Terraform v1.5**:
- **Config-driven import**: THE long-awaited feature of [**importing resources with automatic code generation by Terraform**](https://developer.hashicorp.com/terraform/language/import) has arrived. The process consists of two steps:
  1. Create the target resource and an `import {}` block:
  ```hcl
  import {
    id = "i-abcd1234"
    to = aws_instance.example
  }

  resource "aws_instance" "example" {
    name = "test"
  }
  ```
  Here, `id` represents the `ID` of the existing resource, and `to` indicates the Terraform resource to be generated.
  2. You can then run your `plan` and/or `apply` to view and/or generate the resource in Terraform with its attributes. Unlike the `terraform import` command, the use of the block is `idempotent`, making it easy to remove the configuration if desired.
  <div class="notice warning" >
    <p class="notice-title">
        <span class="icon-notice baseline">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="126 76.5 300 300">
  <path d="M297.431 324.397v-34.255c0-3.245-2.344-5.95-5.358-5.95h-32.146c-3.014 0-5.358 2.705-5.358 5.95v34.255c0 3.245 2.344 5.95 5.358 5.95h32.146c3.014 0 5.358-2.705 5.358-5.95Zm-.335-67.428 3.014-82.753c0-1.081-.502-2.524-1.674-3.425-1.005-.902-2.512-1.983-4.019-1.983h-36.834c-1.507 0-3.014 1.081-4.019 1.983-1.172.901-1.674 2.704-1.674 3.786l2.846 82.392c0 2.344 2.512 4.146 5.693 4.146h30.975c3.013 0 5.525-1.803 5.692-4.146Zm-2.344-168.39L423.34 342.425c3.683 7.032 3.516 15.686-.335 22.717-3.85 7.031-10.883 11.358-18.417 11.358H147.413c-7.534 0-14.566-4.327-18.417-11.358-3.85-7.031-4.018-15.685-.335-22.716L257.248 88.578C260.93 81.188 268.13 76.5 276 76.5c7.87 0 15.069 4.688 18.752 12.08Z"/>
</svg>

        </span> Warning </p><p><strong>Caution with imports</strong>: Imports bring in all attributes, and some may conflict.</p></div>

- **Enhanced validation with checks**: Another equally important feature is the `check {}` blocks. **checks** enable functional tests as a non-blocking for Terraform (checks are run at the very end), whereas [post conditions](https://developer.hashicorp.com/terraform/language/expressions/custom-conditions#preconditions-and-postconditions) are more focused on unit tests and blocking Terraform deployment. **check** and **post condition** are complementary. Here's an example from the HashiCorp [blog article](https://www.hashicorp.com/blog/terraform-1-5-brings-config-driven-import-and-checks):
```hcl
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"
  }
}
```

On the other hand, with **Terraform Cloud**, we have:
- **Explorer for workspace visibility (beta)**: A consolidated view that includes information about providers, modules, Terraform versions used by workspaces, [detected drift](https://developer.hashicorp.com/terraform/cloud-docs/workspaces/health), and more.
- **Ephemeral workspaces (coming soon)**: Allows setting a Time To Live (TTL) for a workspace. At the end of the TTL, the workspace is destroyed along with all its resources using `terraform destroy` (perfect for frequently forgotten **dev** environments).
- **Config-driven import (GA)**: Utilizing the **Terraform v1.5** feature of **import blocks**. **Terraform Cloud** allows visualizing the import resources and downloading the configuration of those import.
- **Continuous validation with Terraform checks (GA)**: As the same logic like the **Config-driven import** feature of **Terraform Cloud**, the platform utilizes this new feature to notify users if a check fails.

For more information:
- [Terraform v1.5 release blog post](https://www.hashicorp.com/blog/terraform-1-5-brings-config-driven-import-and-checks)
- [Terraform v1.5 changelog](https://github.com/hashicorp/terraform/releases/tag/v1.5.0)
- [Terraform import block](https://developer.hashicorp.com/terraform/language/import)
- [Terraform Cloud news](https://www.hashicorp.com/blog/consul-1-16-enhances-service-mesh-reliability-user-experience-and-security)

## Nomad, Packer et Vagrant ?

There were no specific announcements for these products during the HashiDays event. The event primarily focused on products that have enterprise versions and/or are available through HashiCorp Cloud Platform (HCP).


To further enhance your journey in the HashiCorp world, I invite you to learn more about other updates through the following resources:
- [HashCorp blog](https://www.hashicorp.com/blog)
- [HashiCorp documentation](https://docs.hashicorp.com/)
- Changelog on each HashiCorp tools
- [HashiCorp events](https://www.hashicorp.com/events)
- [HashiDays 2023 replay](https://hashidays.com/online/) (soon)

## HashiDays Paris 2023 in-person, the feedback !

> Be at the in-person event in Paris worth for 2024?

Yes. The HashiDays event successfully highlighted the in-person aspect, especially with a morning session (from 9:30 am to 10:30 am) and a **very** successful networking after-work event in my opinion. As a fun anecdote, I had the opportunity to meet former classmates from my school at each HashiCorp event (every year) whom I haven't seen in years. It's also an opportunity to meet other **HashiCorp Ambassadors** and **HashiCorp Core Contributors**.

<img src="/hashidays-paris-2023/hashidays_paris_ambassadors_hu_285bc479ba24f311.webp" loading="lazy" decoding="async" srcset="/hashidays-paris-2023/hashidays_paris_ambassadors_hu_ee7da69180fe22b5.webp 480w, /hashidays-paris-2023/hashidays_paris_ambassadors_hu_f2f25b880b3b39da.webp 800w, /hashidays-paris-2023/hashidays_paris_ambassadors_hu_ff2cdb27b16ea6ba.webp 1200w, /hashidays-paris-2023/hashidays_paris_ambassadors_hu_285bc479ba24f311.webp 1400w" sizes="(max-width: 800px) 100vw, 800px" width="1400" height="1050" alt="HashiCorp Ambassador" class="left" />

> What about the talks?

The talks were organized into four phases:
1. Keynote (morning)
2. Deep Dive sessions on the new features (morning/noon)
3. Experience-sharing talks (early afternoon)
4. Learning sessions with demonstrations/labs to reproduce (late afternoon)

Overall, the program was good with regular breaks. However, it lacked a second track to choose topics based on individual preferences, and more dedicated time in small groups for the **Learning sessions** for those who wanted to follow along the demonstration (as the pace was very fast, and it was difficult to ask questions during the demonstration).

> Final thoughts?

For those who are new to HashiCorp products, considering the Pro or Enterprise offerings, and looking to discuss with experts on the subject, HashiDays is the ideal place to be. However, for those who already have advanced knowledge of HashiCorp products and mainly focus on open-source offerings, you may be generally less satisfied, except for the networking time and a few talks.

To wrap up, here are a few bonuses:
- [HashiCorp Twitch](https://www.twitch.tv/hashicorplive)
- [Communauté HashiCorp](https://www.hashicorp.com/community)
- [HashiCorp Learn](https://learn.hashicorp.com/)

---

Originally published at https://mehdilaruelle.com/posts/2023/06/back-to-hashidays-paris-2023/
