<commit_before># Ingress examples

This directory contains a catalog of examples on how to run, configure and
scale Ingress. Please review the [prerequisities](PREREQUISITES.md) before
trying them.

## Basic cross platform

Name | Description | Platform   | Complexity Level
-----| ----------- | ---------- | ----------------
Deployment | basic deployment of controllers | * | Beginner
TLS termination | terminate TLS at the ingress controller | * | Beginner
Name based virtual hosting | `Host` header routing | * | Beginner
Path routing | URL regex routing | * | Beginner
Health checking | configure/optimize health checks | * | Intermediate
Pipeline | pipeline cloud and nginx | * | Advanced

## AWS

Name | Description | Platform   | Complexity Level
-----| ----------- | ---------- | ----------------
AWS | basic deployment | nginx | Intermediate


## TLS

Name | Description | Platform   | Complexity Level
-----| ----------- | ---------- | ----------------
LetsEncrypt | acquire certs via ACME protocol | * | Intermediate
Intermediate certs | terminate TLS with intermediate certs | * | Advanced
Client certs | client cert authentication | nginx | Advanced
Re-encrypty | terminate, apply routing rules, re-encrypt | nginx | Advanced

## Scaling

Name | Description | Platform   | Complexity Level
-----| ----------- | ---------- | ----------------
Daemonset | run multiple controllers in a daemonset | nginx/haproxy | Intermediate
Deployment | run multiple controllers as a deployment | nginx/haproxy | Intermediate
Multi-zone | bridge different zones in a single cluster | gce | Intermediate
Static-ip | a single ingress gets a single static ip | * | Intermediate
Geo-routing | route to geographically closest endpoint | nginx | Advanced
Multi-cluster | bridge Kubernetes clusters with Ingress | gce | Advanced

## Algorithms

Name | Description | Platform   | Complexity Level
-----| ----------- | ---------- | ----------------
Session stickyness | route requests consistently to the same endpoint | nginx | Advanced
Least connections | route requests based on least connections | on-prem | Advanced
Weights | route requests to backends based on weights | nginx | Advanced

## Routing

Name | Description | Platform   | Complexity Level
-----| ----------- | ---------- | ----------------
Redirects | send a 301 re-direct | nginx | Intermediate
URL-rewriting | re-write path | nginx | Intermediate
SNI + HTTP | HTTP routing based on SNI hostname | nginx | Advanced
SNI + TCP | TLS routing based on SNI hostname | nginx | Advanced

## Auth

Name | Description | Platform   | Complexity Level
-----| ----------- | ---------- | ----------------
Basic auth | password protect your website | nginx | Intermediate
[External auth plugin](external-auth/nginx/README.md) | defer to an external auth service | nginx | Intermediate

## Protocols

Name | Description | Platform   | Complexity Level
-----| ----------- | ---------- | ----------------
TCP  | TCP loadbalancing | nginx | Intermediate
UDP | UDP loadbalancing | nginx | Intermediate
Websockets | websockets loadbalancing | nginx | Intermediate
HTTP/2 | HTTP/2 loadbalancing | * | Intermediate
Proxy protocol | leverage the proxy protocol for source IP | nginx | Advanced

## Custom controllers

Name | Description | Platform   | Complexity Level
-----| ----------- | ---------- | ----------------
Dummy  | A simple dummy controller that logs updates | * | Advanced

## Customization

Name | Description | Platform   | Complexity Level
-----| ----------- | ---------- | ----------------
custom-headers  | set custom headers before send traffic to backends  | nginx | Advanced
configuration-snippets | customize nginx location configuration using annotations | nginx | Advanced

## RBAC

Name | Description | Platform   | Complexity Level
-----| ----------- | ---------- | ----------------
rbac | Configuring Role Base Access Control | nginx | intermediate
<commit_msg>Fix minor typo in Ingress examples<commit_after># Ingress examples

This directory contains a catalog of examples on how to run, configure and
scale Ingress. Please review the [prerequisites](PREREQUISITES.md) before
trying them.

## Basic cross platform

Name | Description | Platform   | Complexity Level
-----| ----------- | ---------- | ----------------
Deployment | basic deployment of controllers | * | Beginner
TLS termination | terminate TLS at the ingress controller | * | Beginner
Name based virtual hosting | `Host` header routing | * | Beginner
Path routing | URL regex routing | * | Beginner
Health checking | configure/optimize health checks | * | Intermediate
Pipeline | pipeline cloud and nginx | * | Advanced

## AWS

Name | Description | Platform   | Complexity Level
-----| ----------- | ---------- | ----------------
AWS | basic deployment | nginx | Intermediate


## TLS

Name | Description | Platform   | Complexity Level
-----| ----------- | ---------- | ----------------
LetsEncrypt | acquire certs via ACME protocol | * | Intermediate
Intermediate certs | terminate TLS with intermediate certs | * | Advanced
Client certs | client cert authentication | nginx | Advanced
Re-encrypty | terminate, apply routing rules, re-encrypt | nginx | Advanced

## Scaling

Name | Description | Platform   | Complexity Level
-----| ----------- | ---------- | ----------------
Daemonset | run multiple controllers in a daemonset | nginx/haproxy | Intermediate
Deployment | run multiple controllers as a deployment | nginx/haproxy | Intermediate
Multi-zone | bridge different zones in a single cluster | gce | Intermediate
Static-ip | a single ingress gets a single static ip | * | Intermediate
Geo-routing | route to geographically closest endpoint | nginx | Advanced
Multi-cluster | bridge Kubernetes clusters with Ingress | gce | Advanced

## Algorithms

Name | Description | Platform   | Complexity Level
-----| ----------- | ---------- | ----------------
Session stickyness | route requests consistently to the same endpoint | nginx | Advanced
Least connections | route requests based on least connections | on-prem | Advanced
Weights | route requests to backends based on weights | nginx | Advanced

## Routing

Name | Description | Platform   | Complexity Level
-----| ----------- | ---------- | ----------------
Redirects | send a 301 re-direct | nginx | Intermediate
URL-rewriting | re-write path | nginx | Intermediate
SNI + HTTP | HTTP routing based on SNI hostname | nginx | Advanced
SNI + TCP | TLS routing based on SNI hostname | nginx | Advanced

## Auth

Name | Description | Platform   | Complexity Level
-----| ----------- | ---------- | ----------------
Basic auth | password protect your website | nginx | Intermediate
[External auth plugin](external-auth/nginx/README.md) | defer to an external auth service | nginx | Intermediate

## Protocols

Name | Description | Platform   | Complexity Level
-----| ----------- | ---------- | ----------------
TCP  | TCP loadbalancing | nginx | Intermediate
UDP | UDP loadbalancing | nginx | Intermediate
Websockets | websockets loadbalancing | nginx | Intermediate
HTTP/2 | HTTP/2 loadbalancing | * | Intermediate
Proxy protocol | leverage the proxy protocol for source IP | nginx | Advanced

## Custom controllers

Name | Description | Platform   | Complexity Level
-----| ----------- | ---------- | ----------------
Dummy  | A simple dummy controller that logs updates | * | Advanced

## Customization

Name | Description | Platform   | Complexity Level
-----| ----------- | ---------- | ----------------
custom-headers  | set custom headers before send traffic to backends  | nginx | Advanced
configuration-snippets | customize nginx location configuration using annotations | nginx | Advanced

## RBAC

Name | Description | Platform   | Complexity Level
-----| ----------- | ---------- | ----------------
rbac | Configuring Role Base Access Control | nginx | intermediate

{'fraction_non_alphanumeric': 0.1802236908998475, 'fraction_numerical': 0.0012709710218607015, 'mean_word_length': 2.4513157894736843, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, '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': '2925781', 'n_tokens_mistral': 1968, 'n_tokens_neox': 1856, 'n_words': 751}