Documentation
¶
Index ¶
- Constants
- Variables
- func ErrInitConfig(err error) error
- func GetMeshsyncCRD(dyClient dynamic.Interface) (*unstructured.Unstructured, error)
- func New(provider string) (config.Handler, error)
- func PatchCRVersion(config *rest.Config) error
- type ListenerConfig
- type ListenerConfigs
- type MeshsyncConfig
- type OutputFiltrationContainer
- type OutputNamespaceSet
- type OutputResourceSet
- type PipelineConfig
- type PipelineConfigs
- type ResourceConfig
Constants ¶
View Source
const ( ServerKey = "server-config" PipelineNameKey = "meshsync-pipeline" ResourcesKey = "resources" GlobalResourceKey = "global" LocalResourceKey = "local" ListenersKey = "listeners" LogStreamsKey = "log-streams" BrokerURL = "broker-url" RequestStream = "request-stream" LogStream = "log-stream" ExecShell = "exec-shell" InformerStore = "informer-store" OutputModeBroker = "broker" OutputModeFile = "file" )
View Source
const (
ErrInitConfigCode = "1000"
)
Variables ¶
View Source
var ( Server = map[string]string{ "name": "meshery-meshsync", "port": "11000", "version": "latest", "startedat": time.Now().String(), } DefaultPublishingSubject = "meshery.meshsync.core" Pipelines = map[string]PipelineConfigs{ GlobalResourceKey: []PipelineConfig{ { Name: "namespaces.v1.", PublishTo: DefaultPublishingSubject, }, { Name: "configmaps.v1.", PublishTo: "meshery.meshsync.core", }, { Name: "nodes.v1.", PublishTo: "meshery.meshsync.core", }, { Name: "secrets.v1.", PublishTo: "meshery.meshsync.core", }, { Name: "persistentvolumes.v1.", PublishTo: "meshery.meshsync.core", }, { Name: "persistentvolumeclaims.v1.", PublishTo: "meshery.meshsync.core", }, }, LocalResourceKey: []PipelineConfig{ { Name: "replicasets.v1.apps", PublishTo: DefaultPublishingSubject, }, { Name: "pods.v1.", PublishTo: DefaultPublishingSubject, }, { Name: "services.v1.", PublishTo: DefaultPublishingSubject, }, { Name: "deployments.v1.apps", PublishTo: DefaultPublishingSubject, }, { Name: "statefulsets.v1.apps", PublishTo: DefaultPublishingSubject, }, { Name: "daemonsets.v1.apps", PublishTo: DefaultPublishingSubject, }, { Name: "ingresses.v1.networking.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "ingressclass.v1.networking.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "endpoints.v1.", PublishTo: DefaultPublishingSubject, }, { Name: "endpointslices.v1.discovery.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "container.v1.core", PublishTo: DefaultPublishingSubject, }, { Name: "job.v1.batch", PublishTo: DefaultPublishingSubject, }, { Name: "service.apis", PublishTo: DefaultPublishingSubject, }, { Name: "csidriver.v1.storage.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "csinode.v1.storage.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "csistoragecapacity.v1.storage.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "volume.v1.", PublishTo: DefaultPublishingSubject, }, { Name: "volumeattributesclass.v1alpha1.storage.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "clustertrustbundle.v1alpha1.certificates.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "controllerrevision.v1.apps", PublishTo: DefaultPublishingSubject, }, { Name: "customresourcedefinition.v1.apiextensions.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "event.v1.events.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "limitrange.v1.", PublishTo: DefaultPublishingSubject, }, { Name: "horizontalpodautoscaler.v2.autoscaling", PublishTo: DefaultPublishingSubject, }, { Name: "mutatingwebhookconfiguration.v1.admissionregistration.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "podschedulingcontext.v1alpha2.resource.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "podtemplate.v1.", PublishTo: DefaultPublishingSubject, }, { Name: "poddisruptionbudget.v1.policy", PublishTo: DefaultPublishingSubject, }, { Name: "priorityclass.v1.scheduling.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "resourceclaim.v1alpha2.resource.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "resourceclaimtemplate.v1alpha2.resource.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "resourceclass.v1alpha2.resource.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "validatingwebhookconfiguration.v1.admissionregistration.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "validatingadmissionpolicy.v1beta1.admissionregistration.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "validatingadmissionpolicybinding.v1beta1.admissionregistration.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "binding.v1.", PublishTo: DefaultPublishingSubject, }, { Name: "certificatesigningrequest.v1.certificates.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "clusterrolebinding.v1.rbac.authorization.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "componentstatus.v1.", PublishTo: DefaultPublishingSubject, }, { Name: "flowschema.v1.flowcontrol.apiserver.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "ipaddress.v1alpha1.networking.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "lease.v1.coordination.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "localsubjectaccessreview.v1.authorization.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "node.v1.", PublishTo: DefaultPublishingSubject, }, { Name: "networkpolicy.v1.networking.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "prioritylevelconfiguration.v1.flowcontrol.apiserver.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "resourcequota.v1.", PublishTo: DefaultPublishingSubject, }, { Name: "role.v1.rbac.authorization.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "rolebinding.v1.rbac.authorization.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "runtimeclass.v1.node.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "selfsubjectaccessreview.v1.authorization.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "selfsubjectreview.v1.authentication.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "selfsubjectrulesreview.v1.authorization.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "serviceaccount.v1.", PublishTo: DefaultPublishingSubject, }, { Name: "servicecidr.v1alpha1.networking.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "storageversion.v1alpha1.internal.apiserver.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "subjectaccessreview.v1.authorization.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "tokenrequest.v1.authentication.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "tokenreview.v1.authentication.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "cronjobs.v1.batch", PublishTo: DefaultPublishingSubject, }, { Name: "replicationcontrollers.v1.", PublishTo: DefaultPublishingSubject, }, { Name: "storageclasses.v1.storage.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "clusterroles.v1.rbac.authorization.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "volumeattachments.v1.storage.k8s.io", PublishTo: DefaultPublishingSubject, }, { Name: "apiservices.v1.apiregistration.k8s.io", PublishTo: DefaultPublishingSubject, }, }, } Listeners = map[string]ListenerConfig{ LogStream: { Name: LogStream, ConnectionName: "meshsync-logstream", PublishTo: "meshery.meshsync.logs", }, ExecShell: { Name: ExecShell, ConnectionName: "meshsync-exec", PublishTo: "meshery.meshsync.exec", }, RequestStream: { Name: RequestStream, ConnectionName: "meshsync-request-stream", SubscribeTo: "meshery.meshsync.request", }, } DefaultEvents = []string{"ADD", "UPDATE", "DELETE"} )
View Source
var LocalMeshsyncConfig map[string]string = map[string]string{
"whitelist": `[{"Resource":"grafanas.v1beta1.grafana.integreatly.org","Events":["ADDED","MODIFIED","DELETED"]},{"Resource":"prometheuses.v1.monitoring.coreos.com","Events":["ADDED","MODIFIED","DELETED"]},{"Resource":"namespaces.v1.","Events":["ADDED","MODIFIED","DELETED"]},{"Resource":"configmaps.v1.","Events":["ADDED","MODIFIED","DELETED"]},{"Resource":"nodes.v1.","Events":["ADDED","MODIFIED","DELETED"]},{"Resource":"secrets.v1.","Events":["ADDED","MODIFIED","DELETED"]},{"Resource":"persistentvolumes.v1.","Events":["ADDED","MODIFIED","DELETED"]},{"Resource":"persistentvolumeclaims.v1.","Events":["ADDED","MODIFIED","DELETED"]},{"Resource":"replicasets.v1.apps","Events":["ADDED","MODIFIED","DELETED"]},{"Resource":"pods.v1.","Events":["ADDED","MODIFIED","DELETED"]},{"Resource":"services.v1.","Events":["ADDED","MODIFIED","DELETED"]},{"Resource":"deployments.v1.apps","Events":["ADDED","MODIFIED","DELETED"]},{"Resource":"statefulsets.v1.apps","Events":["ADDED","MODIFIED","DELETED"]},{"Resource":"daemonsets.v1.apps","Events":["ADDED","MODIFIED","DELETED"]},{"Resource":"ingresses.v1.networking.k8s.io","Events":["ADDED","MODIFIED","DELETED"]},{"Resource":"endpoints.v1.","Events":["ADDED","MODIFIED","DELETED"]},{"Resource":"endpointslices.v1.discovery.k8s.io","Events":["ADDED","MODIFIED","DELETED"]},{"Resource":"cronjobs.v1.batch","Events":["ADDED","MODIFIED","DELETED"]},{"Resource":"replicationcontrollers.v1.","Events":["ADDED","MODIFIED","DELETED"]},{"Resource":"storageclasses.v1.storage.k8s.io","Events":["ADDED","MODIFIED","DELETED"]},{"Resource":"clusterroles.v1.rbac.authorization.k8s.io","Events":["ADDED","MODIFIED","DELETED"]},{"Resource":"volumeattachments.v1.storage.k8s.io","Events":["ADDED","MODIFIED","DELETED"]},{"Resource":"apiservices.v1.apiregistration.k8s.io","Events":["ADDED","MODIFIED","DELETED"]}]`,
}
how it is defined in https://github.com/meshery/meshery/blob/master/install/kubernetes/helm/meshery-operator/charts/meshery-meshsync/values.yaml#L8
Functions ¶
func ErrInitConfig ¶
func GetMeshsyncCRD ¶
func GetMeshsyncCRD(dyClient dynamic.Interface) (*unstructured.Unstructured, error)
func PatchCRVersion ¶
Types ¶
type ListenerConfig ¶
type ListenerConfig struct {
Name string `json:"name" yaml:"name"`
ConnectionName string `json:"connection-name" yaml:"connection-name"`
PublishTo string `json:"publish-to" yaml:"publish-to"`
SubscribeTo string `json:"subscribe-to" yaml:"subscribe-to"`
Events []string `json:"events" yaml:"events"`
}
type ListenerConfigs ¶
type ListenerConfigs []ListenerConfig
type MeshsyncConfig ¶
type MeshsyncConfig struct {
BlackList []string `json:"blacklist" yaml:"blacklist"`
Pipelines map[string]PipelineConfigs `json:"pipeline-configs,omitempty" yaml:"pipeline-configs,omitempty"`
Listeners map[string]ListenerConfig `json:"listener-config,omitempty" yaml:"listener-config,omitempty"`
WhiteList []ResourceConfig `json:"resource-configs" yaml:"resource-configs"`
}
Meshsync configuration controls the resources meshsync produces and consumes
func GetMeshsyncCRDConfigs ¶
func GetMeshsyncCRDConfigs(dyClient dynamic.Interface) (*MeshsyncConfig, error)
func GetMeshsyncCRDConfigsLocal ¶
func GetMeshsyncCRDConfigsLocal() (*MeshsyncConfig, error)
func PopulateConfigs ¶
func PopulateConfigs(configMap corev1.ConfigMap) (*MeshsyncConfig, error)
PopulateConfigs compares the default configs and the whitelist and blacklist
func PopulateConfigsFromMap ¶
func PopulateConfigsFromMap(data map[string]string) (*MeshsyncConfig, error)
type OutputFiltrationContainer ¶ added in v0.8.22
type OutputFiltrationContainer struct {
NamespaceSet OutputNamespaceSet
ResourceSet OutputResourceSet
}
func NewOutputFiltrationContainer ¶ added in v0.8.22
func NewOutputFiltrationContainer( namespaceSet OutputNamespaceSet, resourceSet OutputResourceSet, ) OutputFiltrationContainer
type OutputNamespaceSet ¶ added in v0.8.22
func NewOutputNamespaceSet ¶ added in v0.8.22
func NewOutputNamespaceSet(namespaces ...string) OutputNamespaceSet
func (OutputNamespaceSet) Contains ¶ added in v0.8.22
func (s OutputNamespaceSet) Contains(value string) bool
type OutputResourceSet ¶ added in v0.8.22
func NewOutputResourceSet ¶ added in v0.8.22
func NewOutputResourceSet(resources []string) OutputResourceSet
func (OutputResourceSet) Contains ¶ added in v0.8.22
func (s OutputResourceSet) Contains(value string) bool
type PipelineConfig ¶
type PipelineConfigs ¶
type PipelineConfigs []PipelineConfig
func (PipelineConfigs) Add ¶
func (p PipelineConfigs) Add(pc PipelineConfig) PipelineConfigs
func (PipelineConfigs) Delete ¶
func (p PipelineConfigs) Delete(pc PipelineConfig) PipelineConfigs
type ResourceConfig ¶
Watched Resource configuration
Click to show internal directories.
Click to hide internal directories.