plugins

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Apr 1, 2021 License: Apache-2.0 Imports: 33 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// BaseRefPath is the target path for reference docs
	BaseRefPath = "docs/en/developers/references"
	// ReferenceSourcePath is the location for source reference
	ReferenceSourcePath = "hack/references"

	// ComponentDefinitionTypePath is the URL path for component typed capability
	ComponentDefinitionTypePath = "component-types"
	// WorkloadTypePath is the URL path for workload typed capability
	WorkloadTypePath = "workload-types"
	// TraitPath is the URL path for trait typed capability
	TraitPath = "traits"
)
View Source
const DescriptionUndefined = "description not defined"

DescriptionUndefined indicates the description is not defined

View Source
const TypeGithub = "github"

TypeGithub represents github

View Source
const TypeUnknown = "unknown"

TypeUnknown represents parse failed

Variables

View Source
var ConfigurationYamlSample = map[string]string{
	"autoscale": `
name: testapp

services:
  express-server:
    ...

    autoscale:
      min: 1
      max: 4
      cron:
        startAt:  "14:00"
        duration: "2h"
        days:     "Monday, Thursday"
        replicas: 2
        timezone: "America/Los_Angeles"
      cpuPercent: 10
`,
	"metrics": `
name: my-app-name

services:
  my-service-name:
    ...
    metrics:
      format: "prometheus"
      port: 8080
      path: "/metrics"
      scheme:  "http"
      enabled: true
`,
	"rollout": `
servcies:
  express-server:
    ...

    rollout:
      replicas: 2
      stepWeight: 50
      interval: "10s"
`,
	"route": `
name: my-app-name

services:
  my-service-name:
    ...
    route:
      domain: example.com
      issuer: tls
      rules:
        - path: /testapp
          rewriteTarget: /
`,
	"scaler": `
name: my-app-name

services:
  my-service-name:
    ...
    scaler:
      replicas: 100
`,
	"task": `
name: my-app-name

services:
  my-service-name:
    type: task
    image: perl
    count: 10
    cmd: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
`,
	"webservice": `
name: my-app-name

services:
  my-service-name:
    type: webservice # could be skipped
    image: oamdev/testapp:v1
    cmd: ["node", "server.js"]
    port: 8080
    cpu: "0.1"
    env:
      - name: FOO
        value: bar
      - name: FOO
        valueFrom:
          secretKeyRef:
            name: bar
            key: bar
`,
	"worker": `
name: my-app-name

services:
  my-service-name:
    type: worker
    image: oamdev/testapp:v1
    cmd: ["node", "server.js"]
`,
}

ConfigurationYamlSample stores the configuration yaml sample for capabilities

Functions

func GetCapabilitiesFromCluster

func GetCapabilitiesFromCluster(ctx context.Context, namespace string, c common.Args, selector labels.Selector) ([]types.Capability, error)

GetCapabilitiesFromCluster will get capability from K8s cluster

func GetComponentsFromCluster

func GetComponentsFromCluster(ctx context.Context, namespace string, c common.Args, selector labels.Selector) ([]types.Capability, []error, error)

GetComponentsFromCluster will get capability from K8s cluster

func GetDescription

func GetDescription(annotation map[string]string) string

GetDescription get description from annotation

func GetInstalledCapabilityWithCapName

func GetInstalledCapabilityWithCapName(capT types.CapType, capName string) (types.Capability, error)

GetInstalledCapabilityWithCapName will get cap by alias

func GetSubDir

func GetSubDir(dir string, capT types.CapType) string

GetSubDir will get dir for capability

func GetTraitsFromCluster

func GetTraitsFromCluster(ctx context.Context, namespace string, c common.Args, selector labels.Selector) ([]types.Capability, []error, error)

GetTraitsFromCluster will get capability from K8s cluster

func HandleDefinition

func HandleDefinition(name, crdName string, annotation map[string]string, extension *runtime.RawExtension, tp types.CapType, applyTo []string, schematic *commontypes.Schematic) (types.Capability, error)

HandleDefinition will handle definition to capability

func HandleTemplate

func HandleTemplate(in *runtime.RawExtension, schematic *commontypes.Schematic, name string) (types.Capability, error)

HandleTemplate will handle definition template to capability

func LoadAllInstalledCapability

func LoadAllInstalledCapability(userNamespace string, c common.Args) ([]types.Capability, error)

LoadAllInstalledCapability will list all capability

func LoadCapabilityByName

func LoadCapabilityByName(name string, userNamespace string, c common.Args) (types.Capability, error)

LoadCapabilityByName will load capability from local by name

func LoadCapabilityFromSyncedCenter

func LoadCapabilityFromSyncedCenter(mapper discoverymapper.DiscoveryMapper, dir string) ([]types.Capability, error)

LoadCapabilityFromSyncedCenter will load capability from dir

func LoadInstalledCapabilityWithType

func LoadInstalledCapabilityWithType(userNamespace string, c common.Args, capT types.CapType) ([]types.Capability, error)

LoadInstalledCapabilityWithType will load cap list by type

func ParseAndSyncCapability

func ParseAndSyncCapability(mapper discoverymapper.DiscoveryMapper, data []byte) (types.Capability, error)

ParseAndSyncCapability will convert config from remote center to capability

func RemoveLegacyTemps

func RemoveLegacyTemps(retainedTemps []types.Capability, dir string) int

RemoveLegacyTemps will remove capability definitions under `dir` but not included in `retainedTemps`.

func SinkTemp2Local

func SinkTemp2Local(templates []types.Capability, dir string) int

SinkTemp2Local will sink template to local file

func StoreRepos

func StoreRepos(repos []CapCenterConfig) error

StoreRepos will store cap center repo locally

func SyncDefinitionToLocal

func SyncDefinitionToLocal(ctx context.Context, c common.Args, localDefinitionDir string, capabilityName string) (*types.Capability, error)

SyncDefinitionToLocal sync definitions to local

func SyncDefinitionsToLocal

func SyncDefinitionsToLocal(ctx context.Context, c common.Args, localDefinitionDir string) ([]types.Capability, []string, error)

SyncDefinitionsToLocal sync definitions to local

Types

type BoolType

type BoolType = bool

BoolType is bool type

type CapCenterConfig

type CapCenterConfig struct {
	Name    string `json:"name"`
	Address string `json:"address"`
	Token   string `json:"token"`
}

CapCenterConfig is used to store cap center config in file

func LoadRepos

func LoadRepos() ([]CapCenterConfig, error)

LoadRepos will load all cap center repos TODO(wonderflow): we can make default(built-in) repo configurable, then we should make default inside the answer

type CenterClient

type CenterClient interface {
	SyncCapabilityFromCenter() error
}

CenterClient defines an interface for cap center client

func NewCenterClient

func NewCenterClient(ctx context.Context, name, address, token string) (CenterClient, error)

NewCenterClient create a client from type

type ConsoleReference

type ConsoleReference struct {
	ParseReference
	TableName   string             `json:"tableName"`
	TableObject *tablewriter.Table `json:"tableObject"`
}

ConsoleReference is the struct for capability information in console

func (*ConsoleReference) GenerateCapabilityProperties

func (ref *ConsoleReference) GenerateCapabilityProperties(capability *types.Capability) ([]ConsoleReference, error)

GenerateCapabilityProperties get all properties of a capability

type GithubCenter

type GithubCenter struct {
	// contains filtered or unexported fields
}

GithubCenter implementation of cap center

func NewGithubCenter

func NewGithubCenter(ctx context.Context, token, centerName string, r *GithubContent) (*GithubCenter, error)

NewGithubCenter will create client by github center implementation

func (*GithubCenter) SyncCapabilityFromCenter

func (g *GithubCenter) SyncCapabilityFromCenter() error

SyncCapabilityFromCenter will sync capability from github cap center TODO(wonderflow): currently we only sync by create, we also need to delete which not exist remotely.

type GithubContent

type GithubContent struct {
	Owner string `json:"owner"`
	Repo  string `json:"repo"`
	Path  string `json:"path"`
	Ref   string `json:"ref"`
}

GithubContent for cap center

func Parse

func Parse(addr string) (string, *GithubContent, error)

Parse will parse config from address

type Int64Type

type Int64Type = int64

Int64Type is int64 type

type MarkdownReference

type MarkdownReference struct {
	ParseReference
}

MarkdownReference is the struct for capability information in

func (*MarkdownReference) CreateMarkdown

func (ref *MarkdownReference) CreateMarkdown(caps []types.Capability, baseRefPath, referenceSourcePath string) error

CreateMarkdown creates markdown based on capabilities

func (*MarkdownReference) GenerateReferenceDocs

func (ref *MarkdownReference) GenerateReferenceDocs(baseRefPath string) error

GenerateReferenceDocs generates reference docs

type ParseReference

type ParseReference struct {
}

ParseReference is used to include the common function `parseParameter`

type Reference

type Reference interface {
	// contains filtered or unexported methods
}

Reference is the struct for capability information

type ReferenceParameter

type ReferenceParameter struct {
	types.Parameter `json:",inline,omitempty"`
	// PrintableType is same to `parameter.Type` which could be printable
	PrintableType string `json:"printableType"`
	// Depth marks the depth for calling of function `parseParameters`
	Depth *int `json:"depth"`
}

ReferenceParameter is the parameter section of CUE template

type RemoteCapabilities

type RemoteCapabilities []RemoteCapability

RemoteCapabilities is slice of cap center

type RemoteCapability

type RemoteCapability struct {
	// Name MUST be xxx.yaml
	Name string `json:"name"`
	URL  string `json:"downloadUrl"`
	Sha  string `json:"sha"`
	// Type MUST be file
	Type string `json:"type"`
}

RemoteCapability defines the capability discovered from remote cap center

type StringType

type StringType = string

StringType is string type

Jump to

Keyboard shortcuts

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