Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/layer5io/meshery-cloud-native-patterns-action
GitHub Action to apply Cloud Native Patterns in CI/CD pipelines
https://github.com/layer5io/meshery-cloud-native-patterns-action
cloud-native-designs cloud-native-patterns hacktoberfest iac kubernetes kubernetes-configuration meshery
Last synced: 12 days ago
JSON representation
GitHub Action to apply Cloud Native Patterns in CI/CD pipelines
- Host: GitHub
- URL: https://github.com/layer5io/meshery-cloud-native-patterns-action
- Owner: layer5io
- License: apache-2.0
- Created: 2021-10-25T14:53:01.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2023-11-16T04:18:00.000Z (about 1 year ago)
- Last Synced: 2023-11-16T05:24:14.047Z (about 1 year ago)
- Topics: cloud-native-designs, cloud-native-patterns, hacktoberfest, iac, kubernetes, kubernetes-configuration, meshery
- Language: Shell
- Homepage: https://service-mesh-patterns.github.io/service-mesh-patterns/
- Size: 188 KB
- Stars: 11
- Watchers: 8
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING-gitflow.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# Meshery - Cloud Native Patterns GitHub Action
GitHub Action to deploy [Cloud Native Patterns](https://layer5.io/learn/service-mesh-books/service-mesh-patterns) on CI/CD pipelines.
## Learn More
- [Functionality: Service Mesh Patterns](https://docs.meshery.io/functionality/pattern-management)
- [Configuring your Deployment with Patterns, Filters and Applications](https://docs.meshery.io/guides/configuration-management#configuring-your-deployment-with-patterns-filters-and-applicatio)## Supported Service Meshes
Among hundreds of other cloud, native integrations,
Meshery supports 10 different service meshes.See all Supported Service Meshes
Service mesh adapters provision, configure, and manage their respective service meshes.
Status
Adapter
stable
Meshery adapter for Istio
Meshery adapter for Linkerd
Meshery adapter for Consul
Meshery adapter for Octarine
Meshery adapter for Network Service Mesh
Meshery adapter for Kuma
Meshery adapter for Open Service Mesh
beta
Meshery adapter for Citrix CPX
Meshery adapter for Traefik Mesh
Meshery adapter for NGINX Service Mesh
alpha
Meshery adapter for Tanzu SM
Meshery adapter for App Mesh
## Usage
See [action.yml](action.yml)
Users can define pattern files and store it in a remote location and pass the URL to the action or directly keep the file in the `.github` folder and reference it by file name.
### Sample Configurations
#### Deploying a pattern with URL
```yaml
name: Apply Service Mesh Pattern with Meshery
on:
workflow_dispatch:
inputs:
provider_token:
description: "Provider token to use"
required: false
platform:
description: "Platform to deploy Meshery to"
required: false
pattern_url:
description: "URL of the pattern to be deployed"
required: false
pattern_file:
description: "Name of the pattern file relative to the .github folder"
required: falsejobs:
apply-pattern-file:
name: Meshery Pattern Apply
runs-on: ubuntu-latest
steps:
- name: Setup Kubernetes
uses: manusa/[email protected]
with:
minikube version: 'v1.23.2'
kubernetes version: 'v1.22.2'
driver: docker- name: Apply Pattern
uses: layer5io/mesheryctl-service-mesh-patterns-action@master
with:
provider_token: ${{ github.event.inputs.provider_token }}
platform: ${{ github.event.inputs.platform }}
pattern_url: ${{ github.event.inputs.pattern_url }}
```### Sample Pattern File
```yaml
name: ImageHubRateLimit
version: 0.0.1
services:
generic-istio-filter:
type: EnvoyFilterIstio
namespace: istio-test
settings:
configPatches:
- applyTo: HTTP_FILTER
match:
context: SIDECAR_INBOUND
proxy:
proxyVersion: '^1\.9.*'
listener:
portNumber: 9091
filterChain:
filter:
name: envoy.http_connection_manager
subFilter:
name: envoy.router
patch:
operation: INSERT_BEFORE
value:
name: envoy.filter.http.wasm
config_discovery:
config_source:
ads: {}
initial_fetch_timeout: 0s
type_urls: ["type.googleapis.com/envoy.extensions.filters.http.wasm.v3.Wasm"]
workloadSelector:
labels:
app: api
version: v1ratelimit-filter:
type: EnvoyFilterIstio
namespace: istio-test
settings:
configPatches:
- applyTo: EXTENSION_CONFIG
match:
context: SIDECAR_INBOUND
patch:
operation: ADD
value:
name: envoy.filter.http.wasm
typed_config:
"@type": type.googleapis.com/udpa.type.v1.TypedStruct
type_url: type.googleapis.com/envoy.extensions.filters.http.wasm.v3.Wasm
value:
config:
configuration:
"@type": type.googleapis.com/google.protobuf.StringValue
value: "rate_limit_filter"
root_id: "rate_limit_filter"
vm_config:
code:
remote:
http_uri:
uri: https://github.com/layer5io/image-hub/raw/master/rate-limit-filter/pkg/rate_limit_filter_bg.wasm
runtime: envoy.wasm.runtime.v8
vm_id: rate_limit_filter
configuration:
"@type": type.googleapis.com/google.protobuf.StringValue
value: "WwogIHsKICAgICJuYW1lIjogIi9wdWxsIiwKICAgICJydWxlIjp7CiAgICAgICJydWxlVHlwZSI6ICJyYXRlLWxpbWl0ZXIiLAogICAgICAicGFyYW1ldGVycyI6WwogICAgICAgIHsiaWRlbnRpZmllciI6ICJFbnRlcnByaXNlIiwgImxpbWl0IjogMTAwMH0sCiAgICAgICAgeyJpZGVudGlmaWVyIjogIlRlYW0iLCAibGltaXQiOiAxMDB9LAogICAgICAgIHsiaWRlbnRpZmllciI6ICJQZXJzb25hbCIsICJsaW1pdCI6IDEwfQogICAgICBdCiAgICB9CiAgfSwKICB7CiAgICAibmFtZSI6ICIvYXV0aCIsCiAgICAicnVsZSI6ewogICAgICAicnVsZVR5cGUiOiAibm9uZSIKICAgIH0KICB9LAogIHsKICAgICJuYW1lIjogIi9zaWdudXAiLAogICAgInJ1bGUiOnsKICAgICAgInJ1bGVUeXBlIjogIm5vbmUiCiAgICB9CiAgfSwKICB7CiAgICAibmFtZSI6ICIvdXBncmFkZSIsCiAgICAicnVsZSI6ewogICAgICAicnVsZVR5cGUiOiAibm9uZSIKICAgIH0KICB9Cl0="
allow_precompiled: true
workloadSelector:
labels:
app: api
version: v1
dependsOn:
- generic-istio-filter
```## Join the Community!
Our projects are community-built and welcome collaboration. 👍 Be sure to see the Layer5 Community Welcome Guide for a tour of resources available to you and jump into our Slack!Find your MeshMate
MeshMates are experienced Layer5 community members, who will help you learn your way around, discover live projects and expand your community network.
Become a Meshtee today!Find out more on the Layer5 community.
✔️ Join any or all of the weekly meetings on community calendar.
✔️ Watch community meeting recordings.
✔️ Access the Community Drive by completing a community Member Form.
✔️ Discuss in the Community Forum.
Not sure where to start? Grab an open issue with the help-wanted label.