fsm

module
v1.2.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 30, 2024 License: Apache-2.0

README

Flomesh Service Mesh (FSM)

build report codecov Github release

The Flomesh Service Mesh (FSM) inherits a portion of the archived OSM code and introduces the following enhancements while maintaining compatibility with OSM:

  • FSM utilizes Flomesh Pipy proxy as a replacement for OSM's Envoy proxy. This enables FSM to achieve lightweight control and data planes, optimizing CPU and memory resources effectively.
  • Implemented traffic interception using eBPF-based technology instead of iptables-based traffic interception.
  • FSM offers comprehensive north-south traffic management capabilities, including Ingress and Gateway APIs.
  • Additionally, it facilitates seamless interconnectivity among multiple clusters and incorporates service discovery functionality.

Flomesh Pipy is a programmable network proxy that provides a high-performance, low-latency, and secure way to route traffic between services.

FSM is dedicated to providing a holistic, high-performance, and user-friendly suite of traffic management and service governance capabilities for microservices operating on the Kubernetes platform. By harnessing the combined strengths of FSM and Pipy, we present a dynamic and versatile service mesh solution that empowers Kubernetes-based environments.

Table of Contents

Overview

FSM runs an Sidecar based control plane on Kubernetes, can be configured with SMI APIs, and works by injecting a Pipy Sidecar proxy as a sidecar container next to each instance of your application. The proxy contains and executes rules around access control policies, implements routing configuration, and captures metrics. The control plane continually configures proxies to ensure policies and routing rules are up to date and ensures proxies are healthy.

Core Principles
  1. Simple to understand and contribute to
  2. Effortless to install, maintain, and operate
  3. Painless to troubleshoot
  4. Easy to configure via Service Mesh Interface (SMI)
Documentation

Documentation pertaining to the usage of Flomesh Service Mesh is made available at fsm-docs.flomesh.io.

Documentation pertaining to development, release workflows, and other repository specific documentation, can be found in the docs folder.

Features
  1. Easily and transparently configure traffic shifting for deployments
  2. Secure service to service communication by enabling mTLS
  3. Define and execute fine grained access control policies for services
  4. Observability and insights into application metrics for debugging and monitoring services
  5. Integrate with external certificate management services/solutions with a pluggable interface
  6. Onboard applications onto the mesh by enabling automatic sidecar injection of Sidecar proxy
Project status

FSM is under active development and is ready for production workloads.

Support

Please search open issues on GitHub, and if your issue isn't already represented please open a new one. The FSM project maintainers will respond to the best of their abilities.

SMI Specification support
Kind SMI Resource Supported Version Comments
TrafficTarget traffictargets.access.smi-spec.io v1alpha3
HTTPRouteGroup httproutegroups.specs.smi-spec.io v1alpha4
TCPRoute tcproutes.specs.smi-spec.io v1alpha4
UDPRoute udproutes.specs.smi-spec.io not supported
TrafficSplit trafficsplits.split.smi-spec.io v1alpha4
TrafficMetrics *.metrics.smi-spec.io v1alpha1 🚧 In Progress 🚧
GatewayAPI Specification Support
Kind Supported Version Comments
GatewayClass v1
Gateway v1
HTTPRoute v1
GRPCRoute v1alpha2
TLSRoute v1alpha2
TCPRoute v1alpha2
UDPRoute v1alpha2
ReferenceGrant v1beta1

FSM Design

Read more about FSM's high level goals, design, and architecture.

Install

Prerequisites
  • Kubernetes cluster running Kubernetes v1.19.0 or greater
  • kubectl current context is configured for the target cluster install
    • kubectl config current-context
Get the FSM CLI

The simplest way of installing Flomesh Service Mesh on a Kubernetes cluster is by using the fsm CLI.

Download the fsm binary from the Releases page. Unpack the fsm binary and add it to $PATH to get started.

sudo mv ./fsm /usr/local/bin/fsm
Install FSM
$ fsm install

FSM Install Demo

See the installation guide for more detailed options.

Demonstration

The FSM Bookstore demo is a step-by-step walkthrough of how to install a bookbuyer and bookstore apps, and configure connectivity between these using SMI.

Using FSM

After installing FSM, onboard a microservice application to the service mesh.

Quick Start

Refer to Quick Start guide for step-by-step guide on how to start quickly.

FSM Usage Patterns
  1. Traffic Management
  2. Observability
  3. Certificates
  4. Sidecar Injection

Community

Connect with the Flomesh Service Mesh community:

Development Guide

If you would like to contribute to FSM, check out the development guide.

Code of Conduct

This project has adopted the CNCF Code of Conduct. See CODE_OF_CONDUCT.md for further details.

License

This software is covered under the Apache 2.0 license. You can read the license here.

Directories

Path Synopsis
ci
cmd
Package scale implements maestro's methods.
Package scale implements maestro's methods.
cmd/maestro
Package maestro implements Maestro's methods.
Package maestro implements Maestro's methods.
cmd
cli
fsm-bootstrap
Package main implements the main entrypoint for fsm-bootstrap and utility routines to bootstrap the various internal components of fsm-bootstrap.
Package main implements the main entrypoint for fsm-bootstrap and utility routines to bootstrap the various internal components of fsm-bootstrap.
fsm-connector
Package main implements the main entrypoint for fsm-connector and utility routines to bootstrap the various internal components of fsm-connector.
Package main implements the main entrypoint for fsm-connector and utility routines to bootstrap the various internal components of fsm-connector.
fsm-controller
Package main implements the main entrypoint for fsm-controller and utility routines to bootstrap the various internal components of fsm-controller.
Package main implements the main entrypoint for fsm-controller and utility routines to bootstrap the various internal components of fsm-controller.
fsm-gateway
Package main implements the main entry point for the Flomesh Gateway.
Package main implements the main entry point for the Flomesh Gateway.
fsm-healthcheck
Package main implements the main entrypoint for fsm-healthcheck.
Package main implements the main entrypoint for fsm-healthcheck.
fsm-ingress
Package main contains the main function for the fsm-ingress binary
Package main contains the main function for the fsm-ingress binary
fsm-injector
Package main implements the main entrypoint for fsm-injector and utility routines to bootstrap the various internal components of fsm-injector.
Package main implements the main entrypoint for fsm-injector and utility routines to bootstrap the various internal components of fsm-injector.
fsm-interceptor
Package main implements fsm interceptor.
Package main implements fsm interceptor.
fsm-interceptor/fsm-cni
Package main implements fsm cni plugin.
Package main implements fsm cni plugin.
fsm-preinstall
Package main implements the previous install methods.
Package main implements the previous install methods.
demo
cmd/bookbuyer
Package main implements the bookbuyer application
Package main implements the bookbuyer application
cmd/bookstore
Package main implements the bookstore application
Package main implements the bookstore application
cmd/bookthief
Package main implements the bookthief application
Package main implements the bookthief application
cmd/bookwarehouse
Package main implements the bookwarehouse application This create a service which has both inbound as well as outbound service policies i.e.
Package main implements the bookwarehouse application This create a service which has both inbound as well as outbound service policies i.e.
cmd/bookwatcher
Package main implements the bookwatcher for terminal and JSON output from demo applications
Package main implements the bookwatcher for terminal and JSON output from demo applications
cmd/common
Package common implements shared functions and structs between various book* applications
Package common implements shared functions and structs between various book* applications
cmd/database
Package database allows the bookwarehouse service to store total books data into MySQL persistent storage
Package database allows the bookwarehouse service to store total books data into MySQL persistent storage
cmd/tcp-client
package main implements a TCP client that sends TCP data to a TCP echo server and prints the response.
package main implements a TCP client that sends TCP data to a TCP echo server and prints the response.
cmd/tcp-echo-server
package main implements a TCP echo server that echoes back the TCP client's request as a part of its response.
package main implements a TCP echo server that echoes back the TCP client's request as a part of its response.
Package mockspec allows the mocks to be generated consistently by doing the following: 1.
Package mockspec allows the mocks to be generated consistently by doing the following: 1.
pkg
admission
Package admission contains admission controller logic
Package admission contains admission controller logic
announcements
Package announcements provides the types and constants required to contextualize events received from the Kubernetes API server that are propagated internally within the control plane to trigger configuration changes.
Package announcements provides the types and constants required to contextualize events received from the Kubernetes API server that are propagated internally within the control plane to trigger configuration changes.
apis
Package apis contains the shared types used by the various components of the Flomesh project.
Package apis contains the shared types used by the various components of the Flomesh project.
apis/config/v1alpha1
Package v1alpha1 is the v1alpha1 version of the API.
Package v1alpha1 is the v1alpha1 version of the API.
apis/config/v1alpha2
Package v1alpha2 is the v1alpha2 version of the API.
Package v1alpha2 is the v1alpha2 version of the API.
apis/config/v1alpha3
Package v1alpha3 is the v1alpha3 version of the API.
Package v1alpha3 is the v1alpha3 version of the API.
apis/connector/v1alpha1
Package v1alpha1 is the v1alpha1 version of the API.
Package v1alpha1 is the v1alpha1 version of the API.
apis/gateway
Package gateway contains the GatewayAPI types
Package gateway contains the GatewayAPI types
apis/machine/v1alpha1
Package v1alpha1 is the v1alpha1 version of the API.
Package v1alpha1 is the v1alpha1 version of the API.
apis/multicluster/v1alpha1
Package v1alpha1 is the v1alpha1 version of the API.
Package v1alpha1 is the v1alpha1 version of the API.
apis/namespacedingress/v1alpha1
Package v1alpha1 is the v1alpha1 version of the API.
Package v1alpha1 is the v1alpha1 version of the API.
apis/networking/v1
Package v1 is the v1 version of the API.
Package v1 is the v1 version of the API.
apis/plugin/v1alpha1
Package v1alpha1 is the v1alpha1 version of the API.
Package v1alpha1 is the v1alpha1 version of the API.
apis/policy/v1alpha1
Package v1alpha1 is the v1alpha1 version of the API.
Package v1alpha1 is the v1alpha1 version of the API.
apis/policyattachment/v1alpha1
Package v1alpha1 is the v1alpha1 version of the API.
Package v1alpha1 is the v1alpha1 version of the API.
auth
Package auth implements the ExtAuthConfig struct.
Package auth implements the ExtAuthConfig struct.
bugreport
Package bugreport implements functionality related to generating bug reports.
Package bugreport implements functionality related to generating bug reports.
catalog
Package catalog is a generated GoMock package.
Package catalog is a generated GoMock package.
catalog/fake
Package fake implements Fake's methods.
Package fake implements Fake's methods.
certificate
Package certificate implements utility routines to endcode and decode certificates, and provides the interface definitions for Certificate and Certificate Manager.
Package certificate implements utility routines to endcode and decode certificates, and provides the interface definitions for Certificate and Certificate Manager.
certificate/castorage/k8s
Package k8s implements helper functions to get certificates from Kubernetes secret
Package k8s implements helper functions to get certificates from Kubernetes secret
certificate/pem
Package pem defines the types for the attributes of a Certificate.
Package pem defines the types for the attributes of a Certificate.
certificate/providers
Package providers implements generic certificate provider related functionality
Package providers implements generic certificate provider related functionality
certificate/providers/certmanager
Package certmanager implements the certificate.Manager interface for cert-manager.io as the certificate provider.
Package certmanager implements the certificate.Manager interface for cert-manager.io as the certificate provider.
certificate/providers/tresor
Package tresor implements the certificate.Manager interface for Tresor, a custom certificate provider in FSM.
Package tresor implements the certificate.Manager interface for Tresor, a custom certificate provider in FSM.
certificate/providers/tresor/fake
Package fake moves fakes to their own sub-package
Package fake moves fakes to their own sub-package
certificate/providers/vault
Package vault implements the certificate.Manager interface for Hashicorp Vault as the certificate provider.
Package vault implements the certificate.Manager interface for Hashicorp Vault as the certificate provider.
cli
Package cli describes the operating environment for the FSM cli and includes convenience functions for the FSM cli.
Package cli describes the operating environment for the FSM cli and includes convenience functions for the FSM cli.
cni/config
Package config defines the constants that are used by multiple other packages within FSM.
Package config defines the constants that are used by multiple other packages within FSM.
cni/controller/cniserver
Package cniserver implements FSM CNI Control Server.
Package cniserver implements FSM CNI Control Server.
cni/controller/helpers
Package helpers implements ebpf helpers.
Package helpers implements ebpf helpers.
cni/controller/podwatcher
Package podwatcher implements FSM CNI Pod Watcher.
Package podwatcher implements FSM CNI Pod Watcher.
cni/ns
Package ns On Linux each OS thread can have a different network namespace.
Package ns On Linux each OS thread can have a different network namespace.
cni/plugin
Package plugin implements fsm cni plugin.
Package plugin implements fsm cni plugin.
cni/util
Package util provides generic utility routines used within FSM CNI Plugin.
Package util provides generic utility routines used within FSM CNI Plugin.
configurator
Package configurator is a generated GoMock package.
Package configurator is a generated GoMock package.
connector
Package connector contains a reusable abstraction for efficiently watching for changes in resources in a Kubernetes cluster.
Package connector contains a reusable abstraction for efficiently watching for changes in resources in a Kubernetes cluster.
connector/ctok
Package ctok implements a syncer from cloud to k8s.
Package ctok implements a syncer from cloud to k8s.
constants
Package constants defines the constants that are used by multiple other packages within FSM.
Package constants defines the constants that are used by multiple other packages within FSM.
context
Package context provides the context for the controller
Package context provides the context for the controller
controllers
Package controllers contains the controllers for the FSM CRDs
Package controllers contains the controllers for the FSM CRDs
controllers/cluster/v1alpha1
Package v1alpha1 contains controller logic for the Cluster API v1alpha1.
Package v1alpha1 contains controller logic for the Cluster API v1alpha1.
controllers/connector/v1alpha1
Package v1alpha1 contains controller logic for the Connector API v1alpha1.
Package v1alpha1 contains controller logic for the Connector API v1alpha1.
controllers/flb
Package flb implements the controller for Flomesh Load Balancer.
Package flb implements the controller for Flomesh Load Balancer.
controllers/gateway/v1alpha2
Package v1alpha2 contains controllers logic for the Gateway API v1alpha2.
Package v1alpha2 contains controllers logic for the Gateway API v1alpha2.
controllers/gateway/v1beta1
Package v1beta1 contains controller logic for the Gateway API v1beta1.
Package v1beta1 contains controller logic for the Gateway API v1beta1.
controllers/mcs/v1alpha1
Package v1alpha1 contains controller logic for the MCS API v1alpha1.
Package v1alpha1 contains controller logic for the MCS API v1alpha1.
controllers/namespacedingress/v1alpha1
Package v1alpha1 contains controller logic for the NamespacedIngress API v1alpha1.
Package v1alpha1 contains controller logic for the NamespacedIngress API v1alpha1.
controllers/policyattachment/v1alpha1
Package v1alpha1 contains controller logic for the Gateway API v1beta1.
Package v1alpha1 contains controller logic for the Gateway API v1beta1.
controllers/servicelb
Package servicelb contains controller logic for the ServiceLB
Package servicelb contains controller logic for the ServiceLB
debugger
Package debugger is a generated GoMock package.
Package debugger is a generated GoMock package.
endpoint
Package endpoint is a generated GoMock package.
Package endpoint is a generated GoMock package.
errcode
Package errcode defines the error codes for error messages and an explanation of what the error signifies.
Package errcode defines the error codes for error messages and an explanation of what the error signifies.
flb
Package flb contains controller logic for the flb
Package flb contains controller logic for the flb
gateway
Package gateway is a generated GoMock package.
Package gateway is a generated GoMock package.
gateway/cache
Package cache implements a cache of all the resources that are relevant to the gateway
Package cache implements a cache of all the resources that are relevant to the gateway
gateway/fgw
Package routecfg contains types for the gateway route
Package routecfg contains types for the gateway route
gateway/repo
Package repo contains the repository for the gateway
Package repo contains the repository for the gateway
gateway/status
Package status implements utility routines related to the status of the Gateway API resource.
Package status implements utility routines related to the status of the Gateway API resource.
gateway/types
Package types contains types used by the gateway controller
Package types contains types used by the gateway controller
gateway/utils
Package utils contains utility functions for gateway
Package utils contains utility functions for gateway
gen/client/config/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
gen/client/config/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
gen/client/config/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
gen/client/config/clientset/versioned/typed/config/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
gen/client/config/clientset/versioned/typed/config/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
gen/client/config/clientset/versioned/typed/config/v1alpha2
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
gen/client/config/clientset/versioned/typed/config/v1alpha2/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
gen/client/config/clientset/versioned/typed/config/v1alpha3
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
gen/client/config/clientset/versioned/typed/config/v1alpha3/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
gen/client/connector/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
gen/client/connector/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
gen/client/connector/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
gen/client/connector/clientset/versioned/typed/connector/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
gen/client/connector/clientset/versioned/typed/connector/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
gen/client/machine/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
gen/client/machine/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
gen/client/machine/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
gen/client/machine/clientset/versioned/typed/machine/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
gen/client/machine/clientset/versioned/typed/machine/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
gen/client/multicluster/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
gen/client/multicluster/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
gen/client/multicluster/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
gen/client/multicluster/clientset/versioned/typed/multicluster/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
gen/client/multicluster/clientset/versioned/typed/multicluster/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
gen/client/namespacedingress/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
gen/client/namespacedingress/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
gen/client/namespacedingress/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
gen/client/namespacedingress/clientset/versioned/typed/namespacedingress/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
Package fake has the automatically generated clients.
gen/client/networking/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
gen/client/networking/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
gen/client/networking/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
gen/client/networking/clientset/versioned/typed/networking/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
gen/client/networking/clientset/versioned/typed/networking/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
gen/client/plugin/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
gen/client/plugin/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
gen/client/plugin/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
gen/client/plugin/clientset/versioned/typed/plugin/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
gen/client/plugin/clientset/versioned/typed/plugin/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
gen/client/policy/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
gen/client/policy/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
gen/client/policy/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
gen/client/policy/clientset/versioned/typed/policy/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
gen/client/policy/clientset/versioned/typed/policy/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
gen/client/policyattachment/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
gen/client/policyattachment/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
gen/client/policyattachment/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
gen/client/policyattachment/clientset/versioned/typed/policyattachment/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
gen/client/policyattachment/clientset/versioned/typed/policyattachment/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
health
Package health implements functionality for readiness and liveness health probes.
Package health implements functionality for readiness and liveness health probes.
helm
Package helm provides utilities for helm
Package helm provides utilities for helm
httpserver
Package httpserver implements an HTTP server and utility routines to manage its lifecycle.
Package httpserver implements an HTTP server and utility routines to manage its lifecycle.
identity
Package identity implements types and utility routines related to the identity of a workload, as used within FSM.
Package identity implements types and utility routines related to the identity of a workload, as used within FSM.
ingress
Package ingress implements functionality to monitor and retrieve Kubernetes Ingress resources.
Package ingress implements functionality to monitor and retrieve Kubernetes Ingress resources.
ingress/providers/pipy
Package pipy is a generated GoMock package.
Package pipy is a generated GoMock package.
ingress/providers/pipy/cache
Package cache contains cache logic for pipy ingress controller
Package cache contains cache logic for pipy ingress controller
ingress/providers/pipy/repo
Package repo contains the repository for the ingress controller
Package repo contains the repository for the ingress controller
ingress/providers/pipy/route
Package route defines the route types
Package route defines the route types
ingress/providers/pipy/utils
Package utils provides utility functions for the pipy ingress controller
Package utils provides utility functions for the pipy ingress controller
injector
Package injector implements FSM's automatic sidecar injection facility.
Package injector implements FSM's automatic sidecar injection facility.
k8s
Package k8s is a generated GoMock package.
Package k8s is a generated GoMock package.
k8s/events
Package events implements the eventing framework to receive and relay kubernetes events, and a framework to publish events to the Kubernetes API server.
Package events implements the eventing framework to receive and relay kubernetes events, and a framework to publish events to the Kubernetes API server.
k8s/fake
Package fake implements Fake's methods.
Package fake implements Fake's methods.
k8s/informers
Package informers centralize informers by creating a single object that runs a set of informers, instead of creating different objects that each manage their own informer collections.
Package informers centralize informers by creating a single object that runs a set of informers, instead of creating different objects that each manage their own informer collections.
logger
Package logger implements utility routines to initialize the logging facility used by FSM components.
Package logger implements utility routines to initialize the logging facility used by FSM components.
manager/basic
Package basic contains the basic utilities for the FSM manager
Package basic contains the basic utilities for the FSM manager
manager/listeners
Package listeners contains the event handlers for the ingress controller
Package listeners contains the event handlers for the ingress controller
manager/logging
Package logging contains the logging utilities for the FSM manager
Package logging contains the logging utilities for the FSM manager
manager/reconciler
Package reconciler contains the reconciler utilities for the FSM manager
Package reconciler contains the reconciler utilities for the FSM manager
manager/repo
Package repo contains the repo utilities
Package repo contains the repo utilities
manager/utils
Package utils provides utility functions for the manager
Package utils provides utility functions for the manager
manager/webhook
Package webhook contains the webhook utilities for the FSM manager
Package webhook contains the webhook utilities for the FSM manager
mcs/config
Package config contains the configuration for the mcs controller
Package config contains the configuration for the mcs controller
mcs/context
Package context defines the context that are used in the mcs package
Package context defines the context that are used in the mcs package
mcs/ctrl
Package ctrl is the control plane server
Package ctrl is the control plane server
mcs/event
Package event defines the events that are used in the mcs package
Package event defines the events that are used in the mcs package
mcs/remote
Package remote contains the remote connector for the FSM multi-cluster
Package remote contains the remote connector for the FSM multi-cluster
mesh
Package mesh implements the mesh methods.
Package mesh implements the mesh methods.
messaging
Package messaging implements the messaging infrastructure between different components within the control plane.
Package messaging implements the messaging infrastructure between different components within the control plane.
metricsstore
Package metricsstore implements a Prometheus metrics store for FSM's control plane metrics.
Package metricsstore implements a Prometheus metrics store for FSM's control plane metrics.
models
Package models implements the HealthProbe struct.
Package models implements the HealthProbe struct.
multicluster
Package multicluster is a generated GoMock package.
Package multicluster is a generated GoMock package.
plugin
Package plugin is a generated GoMock package.
Package plugin is a generated GoMock package.
policy
Package policy is a generated GoMock package.
Package policy is a generated GoMock package.
protobuf
Package protobuf contains function(s) pertaining to protobufs
Package protobuf contains function(s) pertaining to protobufs
providers/fsm
Package fsm implements MulticlusterClient's methods.
Package fsm implements MulticlusterClient's methods.
providers/kube
Package kube implements KubeClient's methods.
Package kube implements KubeClient's methods.
providers/kube/fake
Package fake implements Fake's methods.
Package fake implements Fake's methods.
reconciler
Package reconciler implements reconciler client's methods.
Package reconciler implements reconciler client's methods.
service
Package service is a generated GoMock package.
Package service is a generated GoMock package.
sidecar
Package sidecar implements adapter's methods.
Package sidecar implements adapter's methods.
sidecar/driver
Package driver implements Driver's methods.
Package driver implements Driver's methods.
sidecar/providers/pipy
Package pipy implements utility routines related to Pipy proxy, and models an instance of a proxy to be able to generate XDS configurations for it.
Package pipy implements utility routines related to Pipy proxy, and models an instance of a proxy to be able to generate XDS configurations for it.
sidecar/providers/pipy/bootstrap
Package bootstrap implements functionality related to Pipy's bootstrap config.
Package bootstrap implements functionality related to Pipy's bootstrap config.
sidecar/providers/pipy/client
Package client implements the PipyRepo struct.
Package client implements the PipyRepo struct.
sidecar/providers/pipy/driver
Package driver implements debugger's methods.
Package driver implements debugger's methods.
sidecar/providers/pipy/registry
Package registry implements handler's methods.
Package registry implements handler's methods.
sidecar/providers/pipy/repo
Package repo implements broadcast's methods.
Package repo implements broadcast's methods.
signals
Package signals implements functionality related to being notified on signals from the Operating System.
Package signals implements functionality related to being notified on signals from the Operating System.
smi
Package smi is a generated GoMock package.
Package smi is a generated GoMock package.
smi/fake
Package fake implements Fake's methods.
Package fake implements Fake's methods.
strings
Package strings implements utility routines related to the string type.
Package strings implements utility routines related to the string type.
tests
Package tests implements utility routines used for unit testing.
Package tests implements utility routines used for unit testing.
tests/certificates
Package certificates defines sample certificates used for unit testing.
Package certificates defines sample certificates used for unit testing.
ticker
Package ticker reintroduces the ticker concept.
Package ticker reintroduces the ticker concept.
trafficpolicy
Package trafficpolicy defines the types to represent traffic policies internally in the FSM control plane, and utility routines to process them.
Package trafficpolicy defines the types to represent traffic policies internally in the FSM control plane, and utility routines to process them.
utils
Package utils provides generic utility routines used within FSM.
Package utils provides generic utility routines used within FSM.
utils/cidr
Package cidr calculates CIDR network
Package cidr calculates CIDR network
validator
Package validator implements utility routines related to Kubernetes' admission webhooks.
Package validator implements utility routines related to Kubernetes' admission webhooks.
version
Package version provides version information for the compiled binary, and an HTTP handler to serve the version information via an HTTP request.
Package version provides version information for the compiled binary, and an HTTP handler to serve the version information via an HTTP request.
webhook
Package webhook is a generated GoMock package.
Package webhook is a generated GoMock package.
webhook/cluster
Package cluster contains webhook logic for the Cluster resource
Package cluster contains webhook logic for the Cluster resource
webhook/flb/secret
Package secret contains webhook logic for the FLB secret resource
Package secret contains webhook logic for the FLB secret resource
webhook/flb/service
Package service contains webhook logic for the FLB service resource
Package service contains webhook logic for the FLB service resource
webhook/flb/tls
Package tls contains webhook logic for the FLB TLS secret resource
Package tls contains webhook logic for the FLB TLS secret resource
webhook/gateway
Package gateway contains webhook logic for the Gateway resource
Package gateway contains webhook logic for the Gateway resource
webhook/gatewayclass
Package gatewayclass contains webhook logic for the GatewayClass resource
Package gatewayclass contains webhook logic for the GatewayClass resource
webhook/globaltrafficpolicy
Package globaltrafficpolicy contains webhook logic for the GlobalTrafficPolicy resource
Package globaltrafficpolicy contains webhook logic for the GlobalTrafficPolicy resource
webhook/grpcroute
Package grpcroute provides webhook for grpcroute
Package grpcroute provides webhook for grpcroute
webhook/httproute
Package httproute provides webhook for httproute
Package httproute provides webhook for httproute
webhook/ingress
Package ingress contains webhook logic for the Ingress resource
Package ingress contains webhook logic for the Ingress resource
webhook/namespacedingress
Package namespacedingress contains the types for the NamespaceDingress webhook
Package namespacedingress contains the types for the NamespaceDingress webhook
webhook/serviceexport
Package serviceexport contains webhook logic for the ServiceExport resource
Package serviceexport contains webhook logic for the ServiceExport resource
webhook/serviceimport
Package serviceimport contains webhook logic for the ServiceImport resource
Package serviceimport contains webhook logic for the ServiceImport resource
webhook/tcproute
Package tcproute provides webhook for tcproute
Package tcproute provides webhook for tcproute
webhook/tlsroute
Package tlsroute provides webhook for tlsroute
Package tlsroute provides webhook for tlsroute
webhook/udproute
Package udproute provides webhook for udproute
Package udproute provides webhook for udproute
workerpool
Package workerpool implements the thread-pool paradigm in Go.
Package workerpool implements the thread-pool paradigm in Go.
scripts
generate_chart
Package main implements generate chart application.
Package main implements generate chart application.
tests
e2e
Package e2e defines test's const vars.
Package e2e defines test's const vars.
framework
Package framework implements test framework common methods.
Package framework implements test framework common methods.
scale
Package scale implements scale test's methods.
Package scale implements scale test's methods.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL