core

package
v0.6.59 Latest Latest
Warning

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

Go to latest
Published: Mar 2, 2023 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ErrGetK8sComponentsCode     = "2212"
	ErrParseK8sManifestCode     = "2213"
	ErrCreatePatternServiceCode = "2214"
	ErrPatternFromCytoscapeCode = "2300"
)
View Source
const Format prettifier = true

In case of any breaking change or bug caused by this, set this to false and the whitespace addition in schema generated/consumed would be removed(will go back to default behavior)

Variables

View Source
var ComponentTypesSingleton = ComponentTypes{
	Names:                     make(map[string]bool),
	LatestVersionForComponent: make(map[string]string),
}

ComponentTypesSingleton is initialized per meshery instance and acts as a helper middleware between client facing API and capability registry. Examples of names stored in this struct are: core,kubernetes,istio,linkerd

Functions

func ConvertMapInterfaceMapString added in v0.6.53

func ConvertMapInterfaceMapString(v interface{}, prettify bool, endString bool) interface{}

ConvertMapInterfaceMapString converts map[interface{}]interface{} => map[string]interface{}

It will also convert []interface{} => []string

func DeleteK8sWorkloads

func DeleteK8sWorkloads(ctx string)

DeleteK8sWorkloads deletes the registered in memory k8s workloads for a given k8s contextID.

func ErrCreatePatternService

func ErrCreatePatternService(err error) error

func ErrGetK8sComponents

func ErrGetK8sComponents(err error) error

func ErrParseK8sManifest

func ErrParseK8sManifest(err error) error

func ErrPatternFromCytoscape added in v0.6.52

func ErrPatternFromCytoscape(err error) error

func GetK8Components

func GetK8Components(ctxt context.Context, config []byte) (*manifests.Component, error)

GetK8Components returns all the generated definitions and schemas for available api resources

func RegisterK8sOAMWorkloads added in v0.6.23

func RegisterK8sOAMWorkloads() error

func RegisterMesheryOAMTraits

func RegisterMesheryOAMTraits() error

RegisterMesheryOAMTraits will register local meshery traits with meshery server

func RegisterMesheryOAMWorkloads

func RegisterMesheryOAMWorkloads() error

RegisterMesheryOAMWorkloads will register local meshery workloads with meshery server

func RegisterScope

func RegisterScope(data []byte) (err error)

RegisterScope will register a Scope definition into the database

func RegisterTrait

func RegisterTrait(data []byte) (err error)

RegisterTrait will register a TraitDefinition into the database

func RegisterWorkload

func RegisterWorkload(data []byte) (err error)

RegisterWorkload will register a workload definition into the database

Types

type ComponentTypes added in v0.6.9

type ComponentTypes struct {
	Names                     map[string]bool
	LatestVersionForComponent map[string]string
	// contains filtered or unexported fields
}

present in metadata."adapter.meshery.io/name". Ex- core,kubernetes,istio,linkerd,etc

func (*ComponentTypes) FilterWorkloadByVersionAndType added in v0.6.9

func (c *ComponentTypes) FilterWorkloadByVersionAndType(typ string, ver string) (v []WorkloadCapability)

func (*ComponentTypes) FilterWorkloadByVersionAndTypeAndName added in v0.6.9

func (c *ComponentTypes) FilterWorkloadByVersionAndTypeAndName(typ string, ver string, name string) (v []WorkloadCapability)

func (*ComponentTypes) FilterWorkloadVersionsByType added in v0.6.9

func (c *ComponentTypes) FilterWorkloadVersionsByType(typ string) (v []string)

func (*ComponentTypes) FilterWorkloadsForType added in v0.6.9

func (c *ComponentTypes) FilterWorkloadsForType(typ string) (w []WorkloadCapability)

func (*ComponentTypes) Get added in v0.6.9

func (c *ComponentTypes) Get() (names []string)

func (*ComponentTypes) Set added in v0.6.9

func (c *ComponentTypes) Set(name string)

func (*ComponentTypes) SetLatestVersion added in v0.6.9

func (c *ComponentTypes) SetLatestVersion(typ string, ver string)

type DryRunFailureCause added in v0.6.53

type DryRunFailureCause struct {
	Type      string //Type of error
	Message   string //Error message
	FieldPath string //Dot separated field path inside service. (For eg: <name>.settings.spec.containers (for pod) or <name>.annotations ) where <name> is the name of service/component
}

type DryRunResponse added in v0.6.53

type DryRunResponse struct {
	Status string
	Causes []DryRunFailureCause
}

type DryRunResponse2 added in v0.6.53

type DryRunResponse2 struct {
	//When success is true, error will be nil and Component will contain the structure of the component as it will look after deployment
	//When success is false, error will contain the errors. And Component will be set to Nil
	Success   bool            `json:"success"`
	Error     *DryRunResponse `json:"error"`
	Component *Service        `json:"component"` //Service is synonymous with Component. Later Service is to be changed to "Component"
}

type Pattern

type Pattern struct {
	// Name is the human-readable, display-friendly descriptor of the pattern
	Name string `yaml:"name,omitempty" json:"name,omitempty"`
	//Vars will be used to configure the pattern when it is imported from other patterns.
	Vars map[string]interface{} `yaml:"vars,omitempty" json:"vars,omitempty"`
	// PatternID is the moniker use to uniquely identify any given pattern
	// Convention: SMP-###-v#.#.#
	PatternID string              `yaml:"patternID,omitempty" json:"patternID,omitempty"`
	Services  map[string]*Service `yaml:"services,omitempty" json:"services,omitempty"`
}

Pattern is the golang representation of the Pattern config file model

func NewPatternFile

func NewPatternFile(yml []byte) (af Pattern, err error)

NewPatternFile takes in raw yaml and encodes it into a construct

func NewPatternFileFromCytoscapeJSJSON

func NewPatternFileFromCytoscapeJSJSON(name string, byt []byte) (Pattern, error)

NewPatternFileFromCytoscapeJSJSON takes in CytoscapeJS JSON and creates a PatternFile from it. This function always returns meshkit error

func NewPatternFileFromK8sManifest

func NewPatternFileFromK8sManifest(data string, ignoreErrors bool) (Pattern, error)

Note: If modified, make sure this function always returns a meshkit error

func (*Pattern) GenerateApplicationConfiguration

func (p *Pattern) GenerateApplicationConfiguration() (v1alpha1.Configuration, error)

GenerateApplicationConfiguration generates OAM Application Configuration from the the given Pattern file for a particular deploymnet

func (*Pattern) GetApplicationComponent

func (p *Pattern) GetApplicationComponent(name string) (v1alpha1.Component, error)

GetApplicationComponent generates OAM Application Components from the the given Pattern file

func (*Pattern) GetServiceType

func (p *Pattern) GetServiceType(name string) string

GetServiceType returns the type of the service

func (*Pattern) ToCytoscapeJS

func (p *Pattern) ToCytoscapeJS() (cytoscapejs.GraphElem, error)

ToCytoscapeJS converts pattern file into cytoscape object

func (*Pattern) ToYAML

func (p *Pattern) ToYAML() ([]byte, error)

ToYAML converts a patternfile to yaml

type ScopeCapability

type ScopeCapability struct {
	OAMDefinition v1alpha1.ScopeDefinition `json:"oam_definition,omitempty"`
	// contains filtered or unexported fields
}

ScopeCapability is the struct for capturing the ScopeDefinition of a particular type

func GetScope

func GetScope(name string) (s []ScopeCapability)

GetScope takes in a scope name and will return a SLICE of all of the scopes registered against the name

func GetScopeByID

func GetScopeByID(name, id string) (w *ScopeCapability)

GetScopeByID takes an id of a scope and returns the scope

func GetScopes

func GetScopes() (scopes []ScopeCapability)

GetScopes return all of the scopes

func GetScopesByK8sAPIVersionKind

func GetScopesByK8sAPIVersionKind(apiVersion, kind string) (s []ScopeCapability)

GetScopesByK8sAPIVersionKind takes in kubernetes API version of a resource and its kind and returns all of the resources that matches that description

Meshery core resources DO NOT have these attached to themselves, hence in order to get them just pass in empty string for both the parameters

func (*ScopeCapability) GetID

func (cap *ScopeCapability) GetID() string

GetID returns the ID of the capability

func (*ScopeCapability) SetID

func (cap *ScopeCapability) SetID(id string)

SetID sets the ID of the capability

type Service

type Service struct {
	// ID is the id of the service and is completely internal to
	// Meshery Server and meshery providers
	ID *uuid.UUID `yaml:"id,omitempty" json:"id,omitempty"`
	// Name is the name of the service and is an optional parameter
	// If given then this supercedes the name of the service inherited
	// from the parent
	Name        string            `yaml:"name,omitempty" json:"name,omitempty"`
	Type        string            `yaml:"type,omitempty" json:"type,omitempty"`
	APIVersion  string            `yaml:"apiVersion,omitempty" json:"apiVersion,omitempty"`
	Namespace   string            `yaml:"namespace,omitempty" json:"namespace,omitempty"`
	Version     string            `yaml:"version,omitempty" json:"version,omitempty"`
	Model       string            `yaml:"model,omitempty" json:"model,omitempty"`
	Labels      map[string]string `yaml:"labels,omitempty" json:"labels,omitempty"`
	Annotations map[string]string `yaml:"annotations,omitempty" json:"annotations,omitempty"`
	// DependsOn correlates one or more objects as a required dependency of this service
	// DependsOn is used to determine sequence of operations
	DependsOn []string `yaml:"dependsOn,omitempty" json:"dependsOn,omitempty"`

	Settings map[string]interface{} `yaml:"settings,omitempty" json:"settings,omitempty"`
	Traits   map[string]interface{} `yaml:"traits,omitempty" json:"traits,omitempty"`
}

Service represents the services defined within the appfile

type TraitCapability

type TraitCapability struct {
	OAMDefinition v1alpha1.TraitDefinition `json:"oam_definition,omitempty"`
	// contains filtered or unexported fields
}

TraitCapability is the struct for capturing the workload definition of a particular type

func GetTrait

func GetTrait(name string) (t []TraitCapability)

GetTrait takes in a trait name and will return a SLICE of all of the traits registered against the name

func GetTraitByID

func GetTraitByID(name, id string) *TraitCapability

GetTraitByID takes an id of a trait and returns the trait

func GetTraits

func GetTraits() (traits []TraitCapability)

GetTraits return all of the traits

func GetTraitsByK8sAPIVersionKind

func GetTraitsByK8sAPIVersionKind(apiVersion, kind string) (t []TraitCapability)

GetTraitsByK8sAPIVersionKind takes in kubernetes API version of a resource and its kind and returns all of the resources that matches that description

Meshery core resources DO NOT have these attached to themselves, hence in order to get them just pass in empty string for both the parameters

func (*TraitCapability) GetID

func (cap *TraitCapability) GetID() string

GetID returns the ID of the capability

func (*TraitCapability) SetID

func (cap *TraitCapability) SetID(id string)

SetID sets the ID of the capability

type WorkloadCapability

type WorkloadCapability struct {
	OAMDefinition v1alpha1.WorkloadDefinition `json:"oam_definition,omitempty"`
	// contains filtered or unexported fields
}

WorkloadCapability is the struct for capturing the workload definition of a particular type

func GetWorkload

func GetWorkload(name string) (w []WorkloadCapability)

GetWorkload takes in a workload name and will return a SLICE of all of the workloads registered against the name

func GetWorkloadByID

func GetWorkloadByID(name, id string) *WorkloadCapability

GetWorkloadByID takes an id of a workload and returns the workload

func GetWorkloads

func GetWorkloads() (caps []WorkloadCapability)

GetWorkloads return all of the workloads

func GetWorkloadsByK8sAPIVersionKind

func GetWorkloadsByK8sAPIVersionKind(apiVersion, kind string) (w []WorkloadCapability)

GetWorkloadsByK8sAPIVersionKind takes in kubernetes API version of a resource and its kind and returns all of the resources that matches that description

Meshery core resources DO NOT have these attached to themselves, hence in order to get them just pass in empty string for both the parameters

func (*WorkloadCapability) GetID

func (cap *WorkloadCapability) GetID() string

GetID returns the ID of the capability

func (*WorkloadCapability) SetID

func (cap *WorkloadCapability) SetID(id string)

SetID sets the ID of the capability

Jump to

Keyboard shortcuts

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