<commit_before>---
title: Declarative WASM deployment for Istio
subtitle: Deploy extensions to Envoy in Istio using a declarative model to align with GitOps workflows
description: Configuring WASM extensions for Envoy and Istio declaratively.
publishdate: 2020-03-16
attribution: "<NAME> (Solo.io)"
keywords: [wasm,extensibility,alpha,operator]
---

As outlined in the [Istio 2020 trade winds blog](/blog/2020/tradewinds-2020/) and more recently [announced with Istio 1.5](/news/releases/1.5.x/announcing-1.5/), WebAssembly (Wasm) is now an (alpha) option for extending the functionality of the Istio service proxy (Envoy proxy). With Wasm, users can build support for new protocols, custom metrics, loggers, and other filters. Working closely with Google, we in the community ([Solo.io](https://solo.io)) have focused on the user experience of building, socializing, and deploying Wasm extensions to Istio. We've announced [WebAssembly Hub](https://webassemblyhub.io) and [associated tooling](https://docs.solo.io/web-assembly-hub/latest/installation/) to build a "docker-like" experience for working with Wasm.

## Background

With the WebAssembly Hub tooling, we can use the `wasme` CLI to easily bootstrap a Wasm project for Envoy, push it to a repository, and then pull/deploy it to Istio. For example, to deploy a Wasm extension to Istio with `wasme` we can run the following:

{{< text bash >}}
$  wasme deploy istio webassemblyhub.io/ceposta/demo-add-header:v0.2 \
  --id=myfilter \
  --namespace=bookinfo \
  --config 'tomorrow'<commit_msg>WASM => "Wasm" (or "WebAssembly" on first use) (#6916)<commit_after>---
title: Declarative WebAssembly deployment for Istio
subtitle: Deploy extensions to Envoy in Istio using a declarative model to align with GitOps workflows
description: Configuring Wasm extensions for Envoy and Istio declaratively.
publishdate: 2020-03-16
attribution: "<NAME> (Solo.io)"
keywords: [wasm,extensibility,alpha,operator]
---

As outlined in the [Istio 2020 trade winds blog](/blog/2020/tradewinds-2020/) and more recently [announced with Istio 1.5](/news/releases/1.5.x/announcing-1.5/), WebAssembly (Wasm) is now an (alpha) option for extending the functionality of the Istio service proxy (Envoy proxy). With Wasm, users can build support for new protocols, custom metrics, loggers, and other filters. Working closely with Google, we in the community ([Solo.io](https://solo.io)) have focused on the user experience of building, socializing, and deploying Wasm extensions to Istio. We've announced [WebAssembly Hub](https://webassemblyhub.io) and [associated tooling](https://docs.solo.io/web-assembly-hub/latest/installation/) to build a "docker-like" experience for working with Wasm.

## Background

With the WebAssembly Hub tooling, we can use the `wasme` CLI to easily bootstrap a Wasm project for Envoy, push it to a repository, and then pull/deploy it to Istio. For example, to deploy a Wasm extension to Istio with `wasme` we can run the following:

{{< text bash >}}
$  wasme deploy istio webassemblyhub.io/ceposta/demo-add-header:v0.2 \
  --id=myfilter \
  --namespace=bookinfo \
  --config 'tomorrow'
{'fraction_non_alphanumeric': 0.09821996185632549, 'fraction_numerical': 0.019071837253655435, 'mean_word_length': 4.795580110497237, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 8, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4622438', 'n_tokens_mistral': 983, 'n_tokens_neox': 923, 'n_words': 376}