Documentation ¶
Index ¶
- Constants
- Variables
- func CheckDisabledCapabilities(disableCaps string) error
- func CompareWithRevision(ctx context.Context, c client.Client, ...) (bool, error)
- func ComputeSpecHash(spec interface{}) (string, error)
- func ConstructRevisionName(componentName string, revision int64) string
- func ConvertOpenAPISchema2SwaggerObject(data []byte) (*openapi3.Schema, error)
- func DiscoveryFromPodSpec(w *unstructured.Unstructured, fieldPath string) ([]intstr.IntOrString, error)
- func DiscoveryFromPodTemplate(w *unstructured.Unstructured, fields ...string) ([]intstr.IntOrString, map[string]string, error)
- func ExtractRevision(revisionName string) (int, error)
- func FixOpenAPISchema(name string, schema *openapi3.Schema)
- func GenerateOpenAPISchemaFromDefinition(definitionName, cueTemplate string) ([]byte, error)
- func GetAppNextRevision(app *v1beta1.Application) (string, int64)
- func GetKubeSchematicOpenAPISchema(params []commontypes.KubeParameter) ([]byte, error)
- func GetOpenAPISchemaFromTerraformComponentDefinition(configuration string) ([]byte, error)
- func GetPodSpecPath(workloadDef *v1alpha2.WorkloadDefinition) (string, bool)
- func GetTerraformConfigurationFromRemote(name, remoteURL, remotePath string) (string, error)
- func GetUnstructuredObjectStatusCondition(obj *unstructured.Unstructured, condType string) (*condition.Condition, bool, error)
- func PrepareParameterCue(capabilityName, capabilityTemplate string) (string, error)
- func RefreshPackageDiscover(ctx context.Context, k8sClient client.Client, ...) error
- func SelectOAMAppLabelsWithoutRevision(labels map[string]string) map[string]string
- func StoreInSet(disableCaps string) mapset.Set
- type CapabilityBaseDefinition
- type CapabilityComponentDefinition
- type CapabilityDefinitionInterface
- type CapabilityStepDefinition
- type CapabilityTraitDefinition
- type ErrNoSectionParameterInCue
Constants ¶
const ( TerraformVariableString string = "string" TerraformVariableNumber string = "number" TerraformVariableBool string = "bool" TerraformVariableList string = "list" TerraformVariableTuple string = "tuple" TerraformVariableMap string = "map" TerraformVariableObject string = "object" TerraformVariableNull string = "" TerraformVariableAny string = "any" TerraformListTypePrefix string = "list(" TerraformTupleTypePrefix string = "tuple(" TerraformMapTypePrefix string = "map(" TerraformObjectTypePrefix string = "object(" TerraformSetTypePrefix string = "set(" )
data types of parameter value
const LabelPodSpecable = "workload.oam.dev/podspecable"
LabelPodSpecable defines whether a workload has podSpec or not.
Variables ¶
var DefaultBackoff = wait.Backoff{ Duration: 1 * time.Second, Factor: 2, Steps: 5, Jitter: 0.1, }
DefaultBackoff is the backoff we use in controller
var ExtractComponentName = util.ExtractComponentName
ExtractComponentName will extract the componentName from a revisionName
Functions ¶
func CheckDisabledCapabilities ¶ added in v0.2.0
CheckDisabledCapabilities checks whether the disabled capability controllers are valid
func CompareWithRevision ¶ added in v1.0.0
func CompareWithRevision(ctx context.Context, c client.Client, componentName, nameSpace, latestRevision string, curCompSpec *v1alpha2.ComponentSpec) (bool, error)
CompareWithRevision compares a component's spec with the component's latest revision content
func ComputeSpecHash ¶ added in v1.0.0
ComputeSpecHash computes the hash value of a k8s resource spec
func ConstructRevisionName ¶ added in v1.0.0
ConstructRevisionName will generate a revisionName given the componentName and revision will be <componentName>-v<RevisionNumber>, for example: comp-v1
func ConvertOpenAPISchema2SwaggerObject ¶ added in v1.0.0
ConvertOpenAPISchema2SwaggerObject converts OpenAPI v2 JSON schema to Swagger Object
func DiscoveryFromPodSpec ¶
func DiscoveryFromPodSpec(w *unstructured.Unstructured, fieldPath string) ([]intstr.IntOrString, error)
DiscoveryFromPodSpec will discover pods from podSpec
func DiscoveryFromPodTemplate ¶
func DiscoveryFromPodTemplate(w *unstructured.Unstructured, fields ...string) ([]intstr.IntOrString, map[string]string, error)
DiscoveryFromPodTemplate not only discovery port, will also use labels in podTemplate
func ExtractRevision ¶ added in v1.0.0
ExtractRevision will extract the revision from a revisionName
func FixOpenAPISchema ¶ added in v1.2.0
FixOpenAPISchema fixes tainted `description` filed, missing of title `field`.
func GenerateOpenAPISchemaFromDefinition ¶ added in v1.0.0
GenerateOpenAPISchemaFromDefinition returns the parameter of a definition
func GetAppNextRevision ¶ added in v1.0.0
func GetAppNextRevision(app *v1beta1.Application) (string, int64)
GetAppNextRevision will generate the next revision name and revision number for application
func GetKubeSchematicOpenAPISchema ¶ added in v1.1.0
func GetKubeSchematicOpenAPISchema(params []commontypes.KubeParameter) ([]byte, error)
GetKubeSchematicOpenAPISchema gets OpenAPI v3 schema based on kube schematic parameters for component and trait definition
func GetOpenAPISchemaFromTerraformComponentDefinition ¶ added in v1.0.6
GetOpenAPISchemaFromTerraformComponentDefinition gets OpenAPI v3 schema by WorkloadDefinition name
func GetPodSpecPath ¶
func GetPodSpecPath(workloadDef *v1alpha2.WorkloadDefinition) (string, bool)
GetPodSpecPath get podSpec field and label
func GetTerraformConfigurationFromRemote ¶ added in v1.2.0
GetTerraformConfigurationFromRemote gets Terraform Configuration(HCL)
func GetUnstructuredObjectStatusCondition ¶ added in v1.1.0
func GetUnstructuredObjectStatusCondition(obj *unstructured.Unstructured, condType string) (*condition.Condition, bool, error)
GetUnstructuredObjectStatusCondition returns the status.condition with matching condType from an unstructured object.
func PrepareParameterCue ¶ added in v1.2.0
PrepareParameterCue cuts `parameter` section form definition .cue file
func RefreshPackageDiscover ¶ added in v1.0.2
func RefreshPackageDiscover(ctx context.Context, k8sClient client.Client, dm discoverymapper.DiscoveryMapper, pd *packages.PackageDiscover, definition runtime.Object) error
RefreshPackageDiscover help refresh package discover
func SelectOAMAppLabelsWithoutRevision ¶
SelectOAMAppLabelsWithoutRevision will filter and return OAM app labels only, if no labels, return the original one.
func StoreInSet ¶ added in v0.2.0
StoreInSet stores items in Set
Types ¶
type CapabilityBaseDefinition ¶ added in v1.0.0
type CapabilityBaseDefinition struct { }
CapabilityBaseDefinition is the base struct for CapabilityWorkloadDefinition and CapabilityTraitDefinition
func (*CapabilityBaseDefinition) CreateOrUpdateConfigMap ¶ added in v1.0.0
func (def *CapabilityBaseDefinition) CreateOrUpdateConfigMap(ctx context.Context, k8sClient client.Client, namespace, definitionName, definitionType string, labels map[string]string, appliedWorkloads []string, jsonSchema []byte, ownerReferences []metav1.OwnerReference) (string, error)
CreateOrUpdateConfigMap creates ConfigMap to store OpenAPI v3 schema or or updates data in ConfigMap
type CapabilityComponentDefinition ¶ added in v1.0.0
type CapabilityComponentDefinition struct { Name string `json:"name"` ComponentDefinition v1beta1.ComponentDefinition `json:"componentDefinition"` WorkloadType util.WorkloadType `json:"workloadType"` WorkloadDefName string `json:"workloadDefName"` Helm *commontypes.Helm `json:"helm"` Kube *commontypes.Kube `json:"kube"` Terraform *commontypes.Terraform `json:"terraform"` CapabilityBaseDefinition }
CapabilityComponentDefinition is the struct for ComponentDefinition
func NewCapabilityComponentDef ¶ added in v1.1.0
func NewCapabilityComponentDef(componentDefinition *v1beta1.ComponentDefinition) CapabilityComponentDefinition
NewCapabilityComponentDef will create a CapabilityComponentDefinition
func (*CapabilityComponentDefinition) GetOpenAPISchema ¶ added in v1.0.0
func (def *CapabilityComponentDefinition) GetOpenAPISchema(pd *packages.PackageDiscover, name string) ([]byte, error)
GetOpenAPISchema gets OpenAPI v3 schema by WorkloadDefinition name
func (*CapabilityComponentDefinition) StoreOpenAPISchema ¶ added in v1.0.0
func (def *CapabilityComponentDefinition) StoreOpenAPISchema(ctx context.Context, k8sClient client.Client, pd *packages.PackageDiscover, namespace, name, revName string) (string, error)
StoreOpenAPISchema stores OpenAPI v3 schema in ConfigMap from WorkloadDefinition
type CapabilityDefinitionInterface ¶ added in v1.0.0
type CapabilityDefinitionInterface interface { GetCapabilityObject(ctx context.Context, k8sClient client.Client, namespace, name string) (*types.Capability, error) GetOpenAPISchema(ctx context.Context, k8sClient client.Client, namespace, name string) ([]byte, error) }
CapabilityDefinitionInterface is the interface for Capability (WorkloadDefinition and TraitDefinition)
type CapabilityStepDefinition ¶ added in v1.1.8
type CapabilityStepDefinition struct { Name string `json:"name"` StepDefinition v1beta1.WorkflowStepDefinition `json:"stepDefinition"` CapabilityBaseDefinition }
CapabilityStepDefinition is the Capability struct for WorkflowStepDefinition
func NewCapabilityStepDef ¶ added in v1.1.8
func NewCapabilityStepDef(stepdefinition *v1beta1.WorkflowStepDefinition) CapabilityStepDefinition
NewCapabilityStepDef will create a CapabilityStepDefinition
func (*CapabilityStepDefinition) GetOpenAPISchema ¶ added in v1.1.8
func (def *CapabilityStepDefinition) GetOpenAPISchema(pd *packages.PackageDiscover, name string) ([]byte, error)
GetOpenAPISchema gets OpenAPI v3 schema by StepDefinition name
func (*CapabilityStepDefinition) StoreOpenAPISchema ¶ added in v1.1.8
func (def *CapabilityStepDefinition) StoreOpenAPISchema(ctx context.Context, k8sClient client.Client, pd *packages.PackageDiscover, namespace, name string, revName string) (string, error)
StoreOpenAPISchema stores OpenAPI v3 schema from StepDefinition in ConfigMap
type CapabilityTraitDefinition ¶ added in v1.0.0
type CapabilityTraitDefinition struct { Name string `json:"name"` TraitDefinition v1beta1.TraitDefinition `json:"traitDefinition"` DefCategoryType util.WorkloadType `json:"defCategoryType"` Kube *commontypes.Kube `json:"kube"` CapabilityBaseDefinition }
CapabilityTraitDefinition is the Capability struct for TraitDefinition
func NewCapabilityTraitDef ¶ added in v1.1.0
func NewCapabilityTraitDef(traitdefinition *v1beta1.TraitDefinition) CapabilityTraitDefinition
NewCapabilityTraitDef will create a CapabilityTraitDefinition
func (*CapabilityTraitDefinition) GetOpenAPISchema ¶ added in v1.0.0
func (def *CapabilityTraitDefinition) GetOpenAPISchema(pd *packages.PackageDiscover, name string) ([]byte, error)
GetOpenAPISchema gets OpenAPI v3 schema by TraitDefinition name
func (*CapabilityTraitDefinition) StoreOpenAPISchema ¶ added in v1.0.0
func (def *CapabilityTraitDefinition) StoreOpenAPISchema(ctx context.Context, k8sClient client.Client, pd *packages.PackageDiscover, namespace, name string, revName string) (string, error)
StoreOpenAPISchema stores OpenAPI v3 schema from TraitDefinition in ConfigMap
type ErrNoSectionParameterInCue ¶ added in v1.0.0
type ErrNoSectionParameterInCue struct {
// contains filtered or unexported fields
}
ErrNoSectionParameterInCue means there is not parameter section in Cue template of a workload
func (ErrNoSectionParameterInCue) Error ¶ added in v1.1.0
func (e ErrNoSectionParameterInCue) Error() string