• Stars
    star
    107
  • Rank 323,587 (Top 7 %)
  • Language
    C++
  • License
    Apache License 2.0
  • Created over 4 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Contains miscellaneous Wasm extensions for Istio

Istio Ecosystem Wasm Extensions

Test Status

This repository contains several canonical Wasm extensions, which intend to demonstrate:

  • Wasm extension development patterns.
  • Best practice to test, build, and release a Wasm extension.

Extensions

  • Basic auth enforces basic auth based on request host, path, and methods. In this extension, you can find how to perform local auth decision based on headers and local reply, as well as JSON configuration string parsing and base64 decoding.

  • C++ scaffold provides an empty C++ extension, which can be used as a starting point to write a C++ Wasm extension.

  • gRPC access logging makes a logging request to a gRPC service with various kinds of request and workload attributes. In this extension, you can find how to perform asynchronous telemetry reporting, fetch various request attributes and proxy properties, use protobuf and make gRPC callout.

  • JWT based routing (WIP) reads JWT token information from Envoy dynamic metadata written by JWT auth filter, update host header accordingly, and trigger routing recomputation. In this extension, you can find how to read dynamic metadata, manipulate headers, and affect request routing.

  • Local rate limit applies a token bucket rate limit to incoming requests. Each request processed by the filter utilizes a single token, and if no tokens are available, the request is denied. In this extension you can find how to share data across all plugin VMs and deny request with local reply.

  • Open Policy Agent client makes HTTP callout to an Open Policy Agent (OPA) server and based on OPA server response decides whether to allow or deny an incoming request. A result cache is also included to avoid expensive callout on every request. In this extension, you can find how to perform HTTP callout, and asynchronously continue or stop an incoming request based on the response of HTTP call. You will also find how to record stats, which can be scraped in the same way as Istio standard metrics.

  • Zig scaffold provides an empty Zig extension, which can be used as a starting point to write a Zig Wasm extension.

Development Guides

Write a Wasm Extension with C++

Integration Test

Tips & Tricks

More Repositories

1

admiral

Admiral provides automatic configuration generation, syncing and service discovery for multicluster Istio service mesh
Go
587
star
2

authservice

Move OIDC token acquisition out of your app code and into the Istio mesh
Go
215
star
3

dns-discovery

Record DNS lookups and convert them into service registry entries
Go
48
star
4

istio-coredns-plugin

DEPRECATED. CoreDNS gRPC plugin to serve DNS records out of Istio ServiceEntries
Go
41
star
5

sail-operator

The Sail Operator is able to install and manage the lifecycle of the Istio control plane in an Kubernetes & OpenShift cluster.
Go
36
star
6

consul-mcp

Consul-mcp watches for changes in consul catalog and provides services to Istio pilot via MCP protocol
Go
29
star
7

multi-mesh-examples

Examples for multi mesh
28
star
8

coddiwomple

Coddiwomple: a Multi-Cluster-Config Generator
Go
20
star
9

README

A catalog of all projects in the Istio Ecosystem GH org
7
star
10

hsm-sds-server

This repo follows the SDS extension standard of Envoy and implements an external SDS server via more secure solution which is known as Hardware Security Module(HSM). By using this repo, User can maintain the credentials for workloads managed by Istio/Envoy in more secure scenario via external SDS server Besides supporting management for new credentials, it also allows user to upload existing credentials and manages them in higher security level This external SDS server can be used for both gateways and workload sidecars to provide their credential information.
Go
6
star
11

wharf-multicluster-sync

wharf-multicluster-sync: User friendly Multicluster Istio configuration
Go
4
star
12

classic-operator-controller

Go
4
star
13

emcee

User friendly Multi-mesh Istio configuration
Go
3
star
14

istioctl-proxy-sample

Go
3
star
15

sd-for-vm-telemetry

This repo contains an experimental feature to support VM telemetry with file-based service discovery of Prometheus.
Go
2
star
16

admiral-sharding-manager

Admiral sharding manager
Go
2
star
17

synergasia

A collaborative effort to design and implement a multi-gateway control protocol for Istio
1
star
18

admiral-api

Go
1
star
19

admiral-state-syncer

Admiral state syncer
Go
1
star
20

security-policy-migrate

A tool to convert the Istio v1alpha1 authentication policy to the v1beta1 version.
Go
1
star