specs

package
v0.0.0-...-f1610be Latest Latest
Warning

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

Go to latest
Published: Sep 30, 2022 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Overview

Package specs Copyright 2020-2021 Author.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Mustafa mbayramo@vmware.com

Package specs Copyright 2020-2021 Author.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Mustafa mbayramo@vmware.com

Package specs Copyright 2020-2021 Author.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Mustafa mbayramo@vmware.com

Package specs Copyright 2020-2021 Author.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Mustafa mbayramo@vmware.com

Package specs Copyright 2020-2021 Author.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Mustafa mbayramo@vmware.com

Package specs Copyright 2020-2021 Author.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Mustafa mbayramo@vmware.com

Package specs Copyright 2020-2021 Author.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Mustafa mbayramo@vmware.com

Package specs Copyright 2020-2021 Author.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Mustafa mbayramo@vmware.com

Package specs Copyright 2020-2021 Author.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Mustafa mbayramo@vmware.com

Package specs Copyright 2020-2021 Author.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Mustafa mbayramo@vmware.com

Index

Constants

View Source
const (
	LcmTypeScaleOut = "SCALE_OUT"
	AspectId        = "aspect1"
)
View Source
const (
	// CpuManagerPolicy node pool attribute cpu manager
	CpuManagerPolicy = "kubernetes"

	// HealthyCheckReady healthy check ready flag
	HealthyCheckReady = "Ready"

	//HealthyCheckMemoryPressure memory pressure trigger
	HealthyCheckMemoryPressure = "MemoryPressure"

	//HealthyCheckDiskPressure disk pressure trigger
	HealthyCheckDiskPressure = "DiskPressure"

	//HealthyCheckPIDPressure pid trigger
	HealthyCheckPIDPressure = "PIDPressure"

	//HealthyCheckNetworkUnavailable network availability trigger
	HealthyCheckNetworkUnavailable = "NetworkUnavailable"

	//DefaultNodeStartupTimeout default start up timeout trigger
	DefaultNodeStartupTimeout = "20m"

	//FullCloneMode - full clone of VM
	FullCloneMode = "fullClone"

	// LinkedClone - link clone for VM
	LinkedClone = "linkedClone"
)
View Source
const (
	// SpecKindProvider provider registration spec
	SpecKindProvider SpecType = "provider"

	// SpecKindExtension spec type extension registration
	SpecKindExtension SpecType = "extensions"

	// SpecKindNodePool spec type node pool
	SpecKindNodePool SpecType = "node_pool"

	//SpecKindTemplate spec type cluster template
	SpecKindTemplate SpecType = "template"

	//SpecKindInstance spec type instance
	SpecKindInstance SpecType = "instance"

	//SpecKindCluster spec type cluster
	SpecKindCluster SpecType = "cluster"

	Unknown SpecFormatType = iota
	Yaml
	Json
	Xml
)

Variables

This section is empty.

Functions

func GetTestAssetsDir

func GetTestAssetsDir() string

GetTestAssetsDir return dir where test assets are it call RunOnRootFolder that change dir

Types

type AdditionalFilters

type AdditionalFilters struct {
	VimID string `json:"vimId" yaml:"vimId"`
}

AdditionalFilters Filter for repo query

type AdditionalParams

type AdditionalParams struct {
	VduParams           []VduParam `json:"vduParams,omitempty" yaml:"vduParams,omitempty"`
	DisableGrant        bool       `json:"disableGrant" yaml:"disableGrant"`
	IgnoreGrantFailure  bool       `json:"ignoreGrantFailure" yaml:"ignoreGrantFailure"`
	DisableAutoRollback bool       `json:"disableAutoRollback" yaml:"disableAutoRollback"`
}

type ClusterConfig

type ClusterConfig struct {
	Csi            []CsiConfig          `json:"csi,omitempty" yaml:"csi,omitempty"`
	Tools          []ClusterConfigTools `json:"tools,omitempty" yaml:"tools,omitempty"`
	SystemSettings []struct {
		Name       string `json:"name,omitempty" yaml:"name,omitempty"`
		Properties struct {
			Host     string `json:"host,omitempty" yaml:"host,omitempty"`
			Port     int    `json:"port,omitempty" yaml:"port,omitempty"`
			Protocol string `json:"protocol,omitempty" yaml:"protocol,omitempty"`
		} `json:"properties" yaml:"properties,omitempty"`
	} `json:"systemSettings,omitempty" yaml:"systemSettings,omitempty"`
}

type ClusterConfigProperties

type ClusterConfigProperties struct {
	ServerIP      string `json:"serverIP,omitempty" yaml:"serverIP,omitempty"`
	MountPath     string `json:"mountPath,omitempty" yaml:"mountPath,omitempty"`
	DatastoreUrl  string `json:"datastoreUrl,omitempty" yaml:"datastoreUrl,omitempty"`
	DatastoreName string `json:"datastoreName,omitempty" yaml:"datastoreName,omitempty"`
}

type ClusterConfigToolProperties

type ClusterConfigToolProperties struct {
	ExtensionId string `json:"extensionId,omitempty" yaml:"extensionId,omitempty"`
	Password    string `json:"password,omitempty" yaml:"password,omitempty"`
	Type        string `json:"type,omitempty" yaml:"type,omitempty"`
	Url         string `json:"url,omitempty" yaml:"url,omitempty"`
	Username    string `json:"username,omitempty" yaml:"username,omitempty"`
}

type ClusterConfigTools

type ClusterConfigTools struct {
	Name       string                       `json:"name,omitempty" yaml:"name,omitempty"`
	Properties *ClusterConfigToolProperties `json:"properties,omitempty" yaml:"properties,omitempty"`
}

type ClusterEntityTaskFilter

type ClusterEntityTaskFilter struct {
	EntityIds []string `json:"entityIds" yaml:"entity_ids"`
}

func NewClusterEntityTaskFilter

func NewClusterEntityTaskFilter(id string) *ClusterEntityTaskFilter

type ClusterFilterQuery

type ClusterFilterQuery struct {
	Filter struct {
		// EntityTypes
		// "cluster"
		// cluster, computeResource
		EntityTypes []string     `json:"entityTypes" yaml:"entity_types"`
		Cloud       *FilterCloud `json:"cloud" yaml:"cloud"`
	} `json:"filter"`
}

ClusterFilterQuery - filter based on endpoint cloud id

func NewClusterFilterQuery

func NewClusterFilterQuery(cloudId string) *ClusterFilterQuery

NewClusterFilterQuery creates new Filter query in order to get Folder view.

type ClusterTaskQuery

type ClusterTaskQuery struct {
	Filter            ClusterEntityTaskFilter `json:"filter" yaml:"filter" yaml:"filter"`
	IncludeChildTasks bool                    `json:"includeChildTasks,omitempty" yaml:"includeChildTasks"`
}

func NewClusterTaskQuery

func NewClusterTaskQuery(id string) *ClusterTaskQuery

type ClusterType

type ClusterType string
const (
	// ClusterManagement management k8s cluster
	ClusterManagement ClusterType = "MANAGEMENT"

	// ClusterWorkload workload k8s cluster
	ClusterWorkload ClusterType = "WORKLOAD"
)

type CniSpec

type CniSpec struct {
	Name       string `json:"name" yaml:"name"`
	Properties struct {
	} `json:"properties,omitempty" yaml:"properties,omitempty"`
}

type CpuMemoryReservation

type CpuMemoryReservation struct {
	Cpu         int `json:"cpu,omitempty" yaml:"cpu,omitempty"`
	MemoryInGiB int `json:"memoryInGiB,omitempty" yaml:"memoryInGiB,omitempty"`
}

type CsiConfig

type CsiConfig struct {
	Name       string                   `json:"name,omitempty" yaml:"name,omitempty"`
	Properties *ClusterConfigProperties `json:"properties,omitempty" yaml:"properties,omitempty"`
}

func (CsiConfig) IsNfsCsi

func (c CsiConfig) IsNfsCsi() bool

func (CsiConfig) IsVsphereCsi

func (c CsiConfig) IsVsphereCsi() bool

type CsiSpec

type CsiSpec struct {
	Name       string `json:"name" yaml:"name"`
	Properties struct {
		Name      string `json:"name" yaml:"name"`
		IsDefault bool   `json:"isDefault" yaml:"isDefault"`
		Timeout   string `json:"timeout,omitempty" yaml:"timeout,omitempty"`
	} `json:"properties" yaml:"properties"`
}

type Filter

type Filter struct {
	ExtraFilter AdditionalFilters `json:"additionalFilters"`
}

type FilterCloud

type FilterCloud struct {
	// 20210212053126765-51947d48-91b1-447e-ba40-668eb411f545
	EndpointId string `json:"endpointId,omitempty"`
}

type InstanceRequestSpec

type InstanceRequestSpec struct {
	//
	SpecType SpecType `json:"kind,omitempty" yaml:"kind,omitempty" valid:"required~kind is mandatory spec field"`
	//InstanceName
	InstanceName string `json:"instance_name,omitempty" yaml:"instance_name,omitempty" valid:"required~instance_name is mandatory spec field"`
	// NfdName catalog name
	NfdName string `json:"catalog_name,omitempty" yaml:"catalog_name,omitempty" valid:"required~catalog_name is mandatory spec field"`
	// CloudName target cloud name
	CloudName string `json:"cloud_name,omitempty" yaml:"cloud_name,omitempty" valid:"required~cloud_name is mandatory spec field"`
	// ClusterName target cluster name
	ClusterName string `json:"cluster_name,omitempty" yaml:"cluster_name,omitempty" valid:"required~cluster_name is mandatory spec field"`
	// VimType VC or K8S vim name
	VimType string `json:"vim_type,omitempty" yaml:"vim_type,omitempty"`
	//UseAttached
	UseAttached bool `json:"default_repo,omitempty" yaml:"default_repo,omitempty"`
	//Repo
	Repo string `json:"repo_url,omitempty" yaml:"repo_url,omitempty"`
	//RepoUsername
	RepoUsername string `json:"repo_username,omitempty" yaml:"repo_username,omitempty"`
	//RepoPassword
	RepoPassword string `json:"repo_password,omitempty" yaml:"repo_password,omitempty"`
	//NodePoolName
	NodePoolName string `json:"node_pool,omitempty" yaml:"node_pool,omitempty"`
	// user linked Repo
	UseLinkedRepo bool `json:"use_linked_repo,omitempty" yaml:"use_linked_repo,omitempty"`
	// Namespace target Namespace
	Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
	// FlavorName flavor name
	FlavorName string `json:"flavor_name,omitempty" yaml:"flavor_name,omitempty"`
	//Description
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// AdditionalParams additional placement details
	AdditionalParams AdditionalParams `json:"additionalParams,omitempty" yaml:"additionalParams,omitempty"`
	// fix name conflict
	DoAutoName bool `json:"auto_name,omitempty" yaml:"auto_name,omitempty"`
	// contains filtered or unexported fields
}

InstanceRequestSpec new instance request

func (*InstanceRequestSpec) Default

func (t *InstanceRequestSpec) Default() error

Default set default optional fields

func (*InstanceRequestSpec) GetCloudName

func (t *InstanceRequestSpec) GetCloudName() string

func (*InstanceRequestSpec) GetClusterName

func (t *InstanceRequestSpec) GetClusterName() string

func (*InstanceRequestSpec) GetDescription

func (t *InstanceRequestSpec) GetDescription() string

func (*InstanceRequestSpec) GetFlavorName

func (t *InstanceRequestSpec) GetFlavorName() string

func (*InstanceRequestSpec) GetInstanceName

func (t *InstanceRequestSpec) GetInstanceName() string

func (*InstanceRequestSpec) GetNamespace

func (t *InstanceRequestSpec) GetNamespace() string

func (*InstanceRequestSpec) GetNfdName

func (t *InstanceRequestSpec) GetNfdName() string

func (*InstanceRequestSpec) GetNodePoolName

func (t *InstanceRequestSpec) GetNodePoolName() string

func (*InstanceRequestSpec) GetRepo

func (t *InstanceRequestSpec) GetRepo() string

func (*InstanceRequestSpec) GetVimType

func (t *InstanceRequestSpec) GetVimType() string

func (*InstanceRequestSpec) IsAutoName

func (t *InstanceRequestSpec) IsAutoName() bool

func (*InstanceRequestSpec) IsValid

func (t *InstanceRequestSpec) IsValid() bool

IsValid return false if validator set error

func (*InstanceRequestSpec) Kind

func (t *InstanceRequestSpec) Kind() SpecType

func (*InstanceRequestSpec) SetAutoName

func (t *InstanceRequestSpec) SetAutoName(f bool)

func (*InstanceRequestSpec) SetCloudName

func (t *InstanceRequestSpec) SetCloudName(cloudName string)

func (*InstanceRequestSpec) SetClusterName

func (t *InstanceRequestSpec) SetClusterName(clusterName string)

func (*InstanceRequestSpec) SetDescription

func (t *InstanceRequestSpec) SetDescription(description string)

func (*InstanceRequestSpec) SetFlavorName

func (t *InstanceRequestSpec) SetFlavorName(flavorName string)

func (*InstanceRequestSpec) SetInstanceName

func (t *InstanceRequestSpec) SetInstanceName(instanceName string)

func (*InstanceRequestSpec) SetNamespace

func (t *InstanceRequestSpec) SetNamespace(namespace string)

func (*InstanceRequestSpec) SetNfdName

func (t *InstanceRequestSpec) SetNfdName(nfdName string)

func (*InstanceRequestSpec) SetNodePoolName

func (t *InstanceRequestSpec) SetNodePoolName(nodePoolName string)

func (*InstanceRequestSpec) SetRepo

func (t *InstanceRequestSpec) SetRepo(repo string)

func (*InstanceRequestSpec) SetVimType

func (t *InstanceRequestSpec) SetVimType(vimType string)

func (InstanceRequestSpec) SpecsFromFile

func (t InstanceRequestSpec) SpecsFromFile(fileName string, f ...SpecFormatType) (*RequestSpec, error)

SpecsFromFile method return instance form string

func (InstanceRequestSpec) SpecsFromReader

func (t InstanceRequestSpec) SpecsFromReader(r io.Reader, f ...SpecFormatType) (*RequestSpec, error)

SpecsFromReader create spec from reader

func (InstanceRequestSpec) SpecsFromString

func (t InstanceRequestSpec) SpecsFromString(s string, f ...SpecFormatType) (*RequestSpec, error)

func (*InstanceRequestSpec) UseLinked

func (t *InstanceRequestSpec) UseLinked() bool

func (*InstanceRequestSpec) Validate

func (t *InstanceRequestSpec) Validate() error

Validate method validate specs

type InvalidCloudSpec

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

InvalidCloudSpec error if cloud provider specs is invalid

func (*InvalidCloudSpec) Error

func (m *InvalidCloudSpec) Error() string

Error return error msg

type InvalidClusterSpec

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

InvalidClusterSpec error if specs invalid

func (*InvalidClusterSpec) Error

func (m *InvalidClusterSpec) Error() string

type InvalidExtensionSpec

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

InvalidExtensionSpec error if specs invalid

func (*InvalidExtensionSpec) Error

func (m *InvalidExtensionSpec) Error() string

type InvalidInstanceSpec

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

InvalidInstanceSpec error if specs invalid

func (*InvalidInstanceSpec) Error

func (m *InvalidInstanceSpec) Error() string

type InvalidNodePoolSpec

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

InvalidNodePoolSpec error if specs invalid

func (*InvalidNodePoolSpec) Error

func (m *InvalidNodePoolSpec) Error() string

type InvalidPoolSpec

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

InvalidPoolSpec error if specs invalid

func (*InvalidPoolSpec) Error

func (m *InvalidPoolSpec) Error() string

type InvalidTemplateSpec

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

InvalidTemplateSpec error if specs invalid

func (*InvalidTemplateSpec) Error

func (m *InvalidTemplateSpec) Error() string

type LcmCreateRequest

type LcmCreateRequest struct {
	VnfdId                 string `json:"vnfdId" yaml:"vnfdId"`
	VnfInstanceName        string `json:"vnfInstanceName" yaml:"vnfInstanceName"`
	VnfInstanceDescription string `json:"vnfInstanceDescription" yaml:"vnfInstanceDescription"`
	Metadata               struct {
		Tags []interface{} `json:"tags" yaml:"tags"`
	} `json:"metadata" yaml:"metadata"`
}

type LcmInstantiateRequest

type LcmInstantiateRequest struct {
	FlavourID           string                     `json:"flavourId,omitempty" yaml:"flavourId,omitempty"`
	VimConnectionInfo   []models.VimConnectionInfo `json:"vimConnectionInfo,omitempty" yaml:"vimConnectionInfo,omitempty"`
	AdditionalVduParams *AdditionalParams          `json:"additionalParams,omitempty" yaml:"additionalParams,omitempty"`
}

type LcmReconfigureRequest

type LcmReconfigureRequest struct {
	Type             string `json:"type" yaml:"type"`
	AspectId         string `json:"aspectId" yaml:"aspectId"`
	NumberOfSteps    int    `json:"numberOfSteps" yaml:"numberOfSteps"`
	AdditionalParams struct {
		SkipGrant     bool                   `json:"skipGrant" yaml:"skipGrant"`
		VduParams     []VduParams            `json:"vduParams" yaml:"vduParams"`
		LcmInterfaces []models.LcmInterfaces `json:"lcmInterfaces" yaml:"lcmInterfaces"`
	} `json:"additionalParams" yaml:"additional_params"`
}

type LcmTerminateRequest

type LcmTerminateRequest struct {
	TerminationType            string `json:"terminationType" yaml:"terminationType"`
	GracefulTerminationTimeout int    `json:"gracefulTerminationTimeout" yaml:"gracefulTerminationTimeout"`
	AdditionalParams           struct {
		LcmInterfaces []models.LcmInterfaces `json:"lcmInterfaces" yaml:"lcmInterfaces"`
	} `json:"additionalParams" yaml:"additionalParams"`
}

type NetworkFilter

type NetworkFilter struct {
	Filter struct {
		VimId      string   `json:"vimId" yaml:"vimId"`
		NodePoolId string   `json:"nodePoolId" yaml:"nodePoolId"`
		Type       []string `json:"type" yaml:"type"`
	} `json:"filter"`
}

type PoolExtra

type PoolExtra struct {
	NodePoolId string `json:"nodePoolId" yaml:"nodePoolId"`
}

type RepoQuery

type RepoQuery struct {
	QueryFilter Filter `json:"filter"`
}

type RequestSpec

type RequestSpec interface {
	Kind() SpecType
	Default() error
	Validate() error
	IsValid() bool
}

func ReadSpec

func ReadSpec(b io.Reader, spec RequestSpec, f ...SpecFormatType) (*RequestSpec, error)

ReadSpec - Read spec from io reader detects format and uses either yaml or json parser

func ReadSpecFromFromFile

func ReadSpecFromFromFile(fileName string, spec RequestSpec, f ...SpecFormatType) (*RequestSpec, error)

ReadSpecFromFromFile - reads instance spec from file and return TenantSpecs instance

func ReadSpecFromFromString

func ReadSpecFromFromString(str string, spec RequestSpec, f ...SpecFormatType) (*RequestSpec, error)

ReadSpecFromFromString take string that holds entire spec passed to reader and returns InstanceRequestSpec instance

type SpecAccessInfo

type SpecAccessInfo struct {
	// Username for Harbor it username that has admin access
	Username string `json:"username" yaml:"username" validate:"required"`
	// Password is base64 encoded string
	Password string `json:"password" yaml:"password" validate:"required"`
}

type SpecAdditionalParameters

type SpecAdditionalParameters struct {
	TrustAllCerts bool `json:"trustAllCerts" yaml:"trustAllCerts"`
}

type SpecCloudProvider

type SpecCloudProvider struct {
	//
	SpecType SpecType `json:"kind,omitempty" yaml:"kind,omitempty" valid:"required~kind is mandatory spec field"`

	// HcxCloudUrl HCX CP full url
	HcxCloudUrl string `json:"hcxCloudUrl" yaml:"hcxCloudUrl" valid:"required~hcxCloudUrl is mandatory spec field"`

	// VimName Name that TCA show
	VimName string `json:"vimName" yaml:"vimName" valid:"required~kind is mandatory spec field"`

	// Username used used to SSO domain
	Username string `json:"username" yaml:"username" valid:"required~username is mandatory spec field"`

	// Password password used for for SSO domain authentication
	Password string `json:"password" yaml:"password" valid:"required~password is mandatory spec field"`

	// TenantName for VC it "DEFAULT"
	TenantName string `json:"tenantName,omitempty" yaml:"tenantName,omitempty"`
	// contains filtered or unexported fields
}

SpecCloudProvider main spec for cloud provider registration

func (*SpecCloudProvider) Default

func (c *SpecCloudProvider) Default() error

Default set default values

func (*SpecCloudProvider) IsValid

func (c *SpecCloudProvider) IsValid() bool

IsValid return false if validator set error

func (*SpecCloudProvider) Kind

func (c *SpecCloudProvider) Kind() SpecType

Kind must return "provider" SpecType

func (SpecCloudProvider) SpecsFromFile

func (c SpecCloudProvider) SpecsFromFile(fileName string, f ...SpecFormatType) (*RequestSpec, error)

SpecsFromFile method return instance form string

func (SpecCloudProvider) SpecsFromReader

func (c SpecCloudProvider) SpecsFromReader(r io.Reader, f ...SpecFormatType) (*RequestSpec, error)

SpecsFromReader create spec from reader

func (SpecCloudProvider) SpecsFromString

func (c SpecCloudProvider) SpecsFromString(s string, f ...SpecFormatType) (*RequestSpec, error)

SpecsFromString method read cluster spec from string and return instance

func (*SpecCloudProvider) Validate

func (c *SpecCloudProvider) Validate() error

Validate method validates cloud provider spec. and if mandatory field not set return error.

type SpecCluster

type SpecCluster struct {
	SpecType            SpecType                 `json:"kind,omitempty" yaml:"kind,omitempty" valid:"required~kind is mandatory spec field"`
	Name                string                   `json:"name" yaml:"name" valid:"required~name is mandatory spec field"`
	ClusterPassword     string                   `json:"clusterPassword" yaml:"clusterPassword" valid:"required~clusterPassword is mandatory spec field"`
	ClusterTemplateId   string                   `json:"clusterTemplateId" yaml:"clusterTemplateId" valid:"required~clusterTemplateId is mandatory spec field"`
	ClusterType         string                   `json:"clusterType" yaml:"clusterType" valid:"required~clusterType is mandatory spec field"`
	Description         string                   `json:"description,omitempty" yaml:"description,omitempty"`
	Location            *models.Location         `json:"location,omitempty" yaml:"location,omitempty"`
	ClusterConfig       *ClusterConfig           `json:"clusterConfig,omitempty" yaml:"clusterConfig,omitempty"`
	HcxCloudUrl         string                   `json:"hcxCloudUrl" yaml:"hcxCloudUrl" valid:"required~vmTemplate is mandatory spec field"`
	EndpointIP          string                   `json:"endpointIP" yaml:"endpointIP" valid:"required~vmTemplate is mandatory spec field"`
	ManagementClusterId string                   `json:"managementClusterId,omitempty" yaml:"managementClusterId,omitempty"`
	VmTemplate          string                   `json:"vmTemplate" yaml:"vmTemplate" valid:"required~vmTemplate is mandatory spec field"`
	MasterNodes         []models.TypeNode        `json:"masterNodes" yaml:"masterNodes" valid:"required"`
	WorkerNodes         []models.TypeNode        `json:"workerNodes" yaml:"workerNodes" valid:"required"`
	PlacementParams     []models.PlacementParams `json:"placementParams" yaml:"placementParams" valid:"required"`
	// contains filtered or unexported fields
}

SpecCluster new cluster creation request

func (*SpecCluster) Default

func (c *SpecCluster) Default() error

Default TODO

func (*SpecCluster) FindNodePoolByName

func (c *SpecCluster) FindNodePoolByName(name string, isWorker bool) bool

FindNodePoolByName search for node pool name if isWorker will check worker node pool, otherwise Master node pools.

func (*SpecCluster) IsManagement

func (c *SpecCluster) IsManagement() bool

IsManagement return true if spec if management cluster spec

func (*SpecCluster) IsValid

func (c *SpecCluster) IsValid() bool

IsValid return false if validator set error

func (*SpecCluster) IsWorkload

func (c *SpecCluster) IsWorkload() bool

IsWorkload return if spec is for workload cluster

func (*SpecCluster) Kind

func (c *SpecCluster) Kind() SpecType

func (SpecCluster) SpecsFromFile

func (c SpecCluster) SpecsFromFile(fileName string, f ...SpecFormatType) (*RequestSpec, error)

SpecsFromFile method return instance form string

func (SpecCluster) SpecsFromReader

func (c SpecCluster) SpecsFromReader(r io.Reader, f ...SpecFormatType) (*RequestSpec, error)

SpecsFromReader create spec from reader

func (SpecCluster) SpecsFromString

func (c SpecCluster) SpecsFromString(s string, f ...SpecFormatType) (*RequestSpec, error)

SpecsFromString method read cluster spec from string and return instance

func (*SpecCluster) Validate

func (c *SpecCluster) Validate() error

Validate method validate specs

type SpecClusterConfig

type SpecClusterConfig struct {
	KubernetesVersion string      `json:"kubernetesVersion,omitempty" yaml:"kubernetesVersion,omitempty"`
	Cni               []CniSpec   `json:"cni,omitempty" yaml:"cni,omitempty"`
	Csi               []CsiSpec   `json:"csi,omitempty" yaml:"csi,omitempty"`
	Tools             []ToolsSpec `json:"tools,omitempty" yaml:"tools,omitempty"`
}

SpecClusterConfig cluster config spec is workload cluster config template

type SpecClusterTemplate

type SpecClusterTemplate struct {
	SpecType          SpecType           `json:"kind,omitempty" yaml:"kind,omitempty" valid:"required~kind is mandatory spec field"`
	Id                string             `json:"id,omitempty" yaml:"id,omitempty"`
	Name              string             `json:"name" yaml:"name" valid:"required~name is mandatory spec field"`
	ClusterType       string             `json:"clusterType" yaml:"clusterType" valid:"required~clusterType is mandatory spec field"`
	KubernetesVersion string             `json:"kubernetesVersion,omitempty" yaml:"kubernetesVersion,omitempty"`
	ClusterConfig     *SpecClusterConfig `json:"clusterConfig,omitempty" yaml:"clusterConfig,omitempty"`
	Description       string             `json:"description,omitempty" yaml:"description,omitempty"`
	MasterNodes       []SpecNodeTemplate `json:"masterNodes" yaml:"masterNodes"`
	WorkerNodes       []SpecNodeTemplate `json:"workerNodes" yaml:"workerNodes"`
	Tags              []struct {
		AutoCreated bool   `json:"autoCreated" yaml:"autoCreated"`
		Name        string `json:"name" yaml:"name"`
	} `json:"tags,omitempty" yaml:"tags,omitempty"`
	// contains filtered or unexported fields
}

SpecClusterTemplate Cluster template spec

func (*SpecClusterTemplate) Default

func (t *SpecClusterTemplate) Default() error

Default set optional template values

func (*SpecClusterTemplate) IsManagement

func (t *SpecClusterTemplate) IsManagement() bool

IsManagement return true if spec if management cluster spec

func (*SpecClusterTemplate) IsValid

func (t *SpecClusterTemplate) IsValid() bool

IsValid return false if validator set error

func (*SpecClusterTemplate) IsWorkload

func (t *SpecClusterTemplate) IsWorkload() bool

IsWorkload return if spec is for workload cluster

func (*SpecClusterTemplate) Kind

func (t *SpecClusterTemplate) Kind() SpecType

Kind must return kind "template" SpecType

func (SpecClusterTemplate) SpecsFromFile

func (t SpecClusterTemplate) SpecsFromFile(fileName string, f ...SpecFormatType) (*RequestSpec, error)

SpecsFromFile method return instance form string

func (SpecClusterTemplate) SpecsFromReader

func (t SpecClusterTemplate) SpecsFromReader(r io.Reader, f ...SpecFormatType) (*RequestSpec, error)

SpecsFromReader create spec from reader

func (SpecClusterTemplate) SpecsFromString

func (t SpecClusterTemplate) SpecsFromString(s string, f ...SpecFormatType) (*RequestSpec, error)

SpecsFromString method read cluster spec from string and return instance

func (*SpecClusterTemplate) Validate

func (t *SpecClusterTemplate) Validate() error

Validate method validate node pool specs

type SpecCpuManagerPolicy

type SpecCpuManagerPolicy struct {
	Type       string `json:"type,omitempty" yaml:"type,omitempty"`
	Policy     string `json:"policy,omitempty" yaml:"policy,omitempty"`
	Properties struct {
		KubeReserved   *CpuMemoryReservation `json:"kubeReserved,omitempty" yaml:"kubeReserved,omitempty"`
		SystemReserved *CpuMemoryReservation `json:"systemReserved,omitempty" yaml:"systemReserved,omitempty"`
	} `json:"properties,omitempty" yaml:"properties,omitempty"`
}

SpecCpuManagerPolicy cluster template parameter cpu manager policy

type SpecExtension

type SpecExtension struct {
	// SpecType indicate a spec type and meet Spec interface requirements.
	SpecType SpecType `json:"kind,omitempty" yaml:"kind,omitempty" valid:"required~kind is mandatory spec field"`
	//Name is extension name
	Name string `json:"name" yaml:"name" valid:"required~name is mandatory spec field"`
	// Version for harbor it 1.x 2.x
	Version              string                    `json:"version" yaml:"version" valid:"required~version is mandatory spec field"`
	Type                 string                    `json:"type" yaml:"type"  valid:"required~kind is mandatory spec field"`
	ExtensionKey         string                    `json:"extensionKey,omitempty" yaml:"extensionKey,omitempty"`
	ExtensionSubtype     string                    `json:"extensionSubtype" yaml:"extensionSubtype"`
	Products             []interface{}             `json:"products,omitempty" yaml:"products,omitempty"`
	VimInfo              []VimInfo                 `json:"vimInfo,omitempty" yaml:"vimInfo,omitempty"`
	InterfaceInfo        *SpecInterfaceInfo        `json:"interfaceInfo,omitempty" yaml:"interfaceInfo,omitempty"`
	AdditionalParameters *SpecAdditionalParameters `json:"additionalParameters,omitempty" yaml:"additionalParameters,omitempty"`
	AutoScaleEnabled     bool                      `json:"autoScaleEnabled" yaml:"autoScaleEnabled"`
	AutoHealEnabled      bool                      `json:"autoHealEnabled" yaml:"autoHealEnabled"`
	AccessInfo           *SpecAccessInfo           `json:"accessInfo,omitempty" yaml:"accessInfo,omitempty"`
	// contains filtered or unexported fields
}

SpecExtension extension such as Harbor registered in TCA

func (*SpecExtension) AddVim

func (t *SpecExtension) AddVim(name string)

AddVim add target vim

func (*SpecExtension) Default

func (t *SpecExtension) Default() error

Default TODO

func (*SpecExtension) GetVim

func (t *SpecExtension) GetVim(name string) (*VimInfo, error)

GetVim return vim spec

func (*SpecExtension) IsValid

func (t *SpecExtension) IsValid() bool

IsValid return false if validator set error

func (*SpecExtension) Kind

func (t *SpecExtension) Kind() SpecType

Kind return spec kind

func (SpecExtension) SpecsFromFile

func (t SpecExtension) SpecsFromFile(fileName string, f ...SpecFormatType) (*RequestSpec, error)

SpecsFromFile method return instance form string

func (SpecExtension) SpecsFromReader

func (t SpecExtension) SpecsFromReader(r io.Reader, f ...SpecFormatType) (*RequestSpec, error)

SpecsFromReader create spec from reader

func (SpecExtension) SpecsFromString

func (t SpecExtension) SpecsFromString(s string, f ...SpecFormatType) (*RequestSpec, error)

SpecsFromString method read cluster spec from string and return instance

func (*SpecExtension) Validate

func (t *SpecExtension) Validate() error

Validate method validate specs

type SpecFormatType

type SpecFormatType int

func (SpecFormatType) String

func (t SpecFormatType) String() string

type SpecHealthCheck

type SpecHealthCheck struct {
	NodeStartupTimeout  string `json:"nodeStartupTimeout" yaml:"nodeStartupTimeout"`
	UnhealthyConditions []struct {
		Type    string `json:"type" yaml:"type"`
		Status  string `json:"status" yaml:"status"`
		Timeout string `json:"timeout" yaml:"timeout"`
	} `json:"unhealthyConditions" yaml:"unhealthyConditions"`
}

SpecHealthCheck cluster template parameter health check

type SpecInterfaceInfo

type SpecInterfaceInfo struct {
	Url                string `json:"url" yaml:"url" validate:"required,url"`
	Description        string `json:"description,omitempty" yaml:"description,omitempty"`
	TrustedCertificate string `json:"trustedCertificate,omitempty" yaml:"trustedCertificate,omitempty"`
}

type SpecNodeConfig

type SpecNodeConfig struct {
	KubernetesVersion string                `json:"kubernetesVersion,omitempty" yaml:"kubernetesVersion,omitempty"`
	CpuManagerPolicy  *SpecCpuManagerPolicy `json:"cpuManagerPolicy,omitempty" yaml:"cpuManagerPolicy,omitempty"`
	HealthCheck       *SpecHealthCheck      `json:"healthCheck,omitempty" yaml:"healthCheck,omitempty"`
}

type SpecNodePool

type SpecNodePool struct {
	SpecType                      SpecType                 `json:"kind,omitempty" yaml:"kind,omitempty" valid:"required~kind is mandatory spec field"`
	Id                            string                   `json:"id,omitempty" yaml:"id,omitempty"`
	Name                          string                   `json:"name" yaml:"name" validate:"required" valid:"required~name is mandatory spec field"`
	CloneMode                     string                   `json:"cloneMode,omitempty" yaml:"clone_mode,omitempty" valid:"required~clone_mode is mandatory spec field"`
	Cpu                           int                      `json:"cpu" yaml:"cpu" validate:"required" valid:"required~cpu is mandatory spec field"`
	Memory                        int                      `json:"memory" yaml:"memory" validate:"required" valid:"required~memory is mandatory spec field"`
	Replica                       int                      `json:"replica" yaml:"replica" validate:"required" valid:"required~replica is mandatory spec field"`
	Storage                       int                      `json:"storage" yaml:"storage" validate:"required" valid:"required~storage is mandatory spec field"`
	Labels                        []string                 `json:"labels,omitempty" yaml:"labels" validate:"required" valid:"required~labels is mandatory spec field"`
	Networks                      []models.Network         `json:"networks" yaml:"networks" validate:"required" valid:"required~networks is mandatory spec field"`
	PlacementParams               []models.PlacementParams `json:"placementParams" yaml:"placementParams" validate:"required" valid:"required~placementParams is mandatory spec field"`
	Config                        *models.NodeConfig       `json:"config,omitempty" yaml:"config,omitempty"`
	Status                        string                   `json:"status" yaml:"status"`
	Nodes                         []models.Nodes           `json:"nodes,omitempty" yaml:"nodes,omitempty"`
	ActiveTasksCount              int                      `json:"activeTasksCount" yaml:"activeTasksCount"`
	IsNodeCustomizationDeprecated bool                     `json:"isNodeCustomizationDeprecated" yaml:"isNodeCustomizationDeprecated"`
	// contains filtered or unexported fields
}

SpecNodePool - a request to create new node pool and attach to a target.

func (*SpecNodePool) Default

func (t *SpecNodePool) Default() error

Default sets all all optional parameter to default value

func (*SpecNodePool) GetKind

func (t *SpecNodePool) GetKind() SpecType

GetKind return spec kind

func (*SpecNodePool) IsValid

func (t *SpecNodePool) IsValid() bool

IsValid return false if validator set error

func (*SpecNodePool) Kind

func (t *SpecNodePool) Kind() SpecType

func (SpecNodePool) SpecsFromFile

func (t SpecNodePool) SpecsFromFile(fileName string, f ...SpecFormatType) (*RequestSpec, error)

SpecsFromFile method reads instance form string

func (SpecNodePool) SpecsFromReader

func (t SpecNodePool) SpecsFromReader(r io.Reader, f ...SpecFormatType) (*RequestSpec, error)

SpecsFromReader reads node pool spec from io.Reader

func (SpecNodePool) SpecsFromString

func (t SpecNodePool) SpecsFromString(s string, f ...SpecFormatType) (*RequestSpec, error)

SpecsFromString method read cluster spec from string and return instance

func (*SpecNodePool) Validate

func (t *SpecNodePool) Validate() error

Validate method validate node pool specs

type SpecNodeTemplate

type SpecNodeTemplate struct {
	Cpu      int    `json:"cpu" yaml:"cpu"`
	Memory   int    `json:"memory" yaml:"memory"`
	Name     string `json:"name" yaml:"name"`
	Networks []struct {
		Label string `json:"label" yaml:"label"`
	} `json:"networks" yaml:"networks"`
	Storage   int             `json:"storage" yaml:"storage"`
	Replica   int             `json:"replica" yaml:"replica"`
	Labels    []string        `json:"labels" yaml:"labels"`
	CloneMode string          `json:"cloneMode" yaml:"cloneMode"`
	Config    *SpecNodeConfig `json:"config,omitempty" yaml:"config,omitempty"`
}

type SpecType

type SpecType string

type TaskFilter

type TaskFilter struct {
	Filter struct {
		EntityIds []string `json:"entityIds" yaml:"entityIds"`
	} `json:"filter" yaml:"filter"`
}

TaskFilter Task filter Query filter

type TenantFilter

type TenantFilter struct {
	NfType string `json:"nfType,omitempty" yaml:"nfType"`
	NfdId  string `json:"nfdId,omitempty" yaml:"nfdId"`
}

TenantFilter filter by nfType nad NfdId

type TenantsNfFilter

type TenantsNfFilter struct {
	Filter TenantFilter `json:"filter"`
}

TenantsNfFilter filter

type ToolsSpec

type ToolsSpec struct {
	Name    string `json:"name" yaml:"name"`
	Version string `json:"version" yaml:"version"`
}

type VMwareNetworkQuery

type VMwareNetworkQuery struct {
	Filter struct {
		// tenant id 20210212053126765-51947d48-91b1-447e-ba40-668eb411f545
		TenantId string `json:"tenantId"`
		// domain id in VC format domain-c13
		ClusterId string `json:"clusterId"`
	} `json:"filter"`
}

VMwareNetworkQuery - filter

type VMwareResourcePoolQuery

type VMwareResourcePoolQuery struct {
	Filter struct {
		// resourcePool
		EntityTypes []string     `json:"entityTypes"`
		Cloud       *FilterCloud `json:"cloud,omitempty"`
		// "childTypes":["VirtualMachine","VirtualApp"],"container":"domain-c8"}}
		ChildTypes []string `json:"childTypes,omitempty"`
		Container  string   `json:"container,omitempty"`
	} `json:"filter"`
}

func NewVMwareResourcePoolQuery

func NewVMwareResourcePoolQuery(cloudId string) *VMwareResourcePoolQuery

NewVMwareResourcePoolQuery create a new Filter to query resource pools.

type VMwareTemplateQuery

type VMwareTemplateQuery struct {
	Filter struct {
		Cloud *FilterCloud `json:"cloud"`
		// templateType k8svm
		TemplateType string `json:"templateType,omitempty"`
		// v1.20.4+vmware.1
		K8SVersion string `json:"k8sVersion,omitempty"`
	} `json:"filter"`
}

func NewVMwareTemplateQuery

func NewVMwareTemplateQuery(cloudId string, templateType string, ver string) *VMwareTemplateQuery

NewVMwareTemplateQuery

type VduParam

type VduParam struct {
	Namespace string `json:"namespace" yaml:"namespace"`
	RepoURL   string `json:"repoUrl" yaml:"repoUrl"`
	Username  string `json:"username" yaml:"username"`
	Password  string `json:"password" yaml:"password"`
	VduName   string `json:"vduName" yaml:"vduName"`
}

VduParam

type VduParams

type VduParams struct {
	VduName             string `json:"vduName" yaml:"vduName"`
	DeploymentProfileId string `json:"deploymentProfileId" yaml:"deploymentProfileId"`
	ChartName           string `json:"chartName" yaml:"chartName"`
	HelmName            string `json:"helmName" yaml:"helmName"`
	Namespace           string `json:"namespace" yaml:"namespace"`
	RepoUrl             string `json:"repoUrl" yaml:"repoUrl"`
	Username            string `json:"username" yaml:"username"`
	Password            string `json:"password" yaml:"password"`
	Overrides           string `json:"overrides" yaml:"overrides"`
	Metadata            []struct {
	} `json:"metadata" yaml:"metadata"`
	ImageName           string `json:"imageName" yaml:"imageName"`
	DisableAutoRollback bool   `json:"disableAutoRollback" yaml:"disableAutoRollback"`
	DisableGrant        bool   `json:"disableGrant" yaml:"disableGrant"`
	IgnoreGrantFailure  bool   `json:"ignoreGrantFailure" yaml:"ignoreGrantFailure"`
	CatalogName         string `json:"catalogName" yaml:"catalogName"`
	CatalogId           string `json:"catalogId" yaml:"catalogId"`
}

type VimConInfo

type VimConInfo struct {
	ID      string    `json:"id" yaml:"id"`
	VimType string    `json:"vimType" yaml:"vimType"`
	Extra   PoolExtra `json:"extra" yaml:"extra"`
}

type VimInfo

type VimInfo struct {
	VimName       string `json:"vimName" yaml:"vimName"`
	VimId         string `json:"vimId" yaml:"vimId"`
	VimSystemUUID string `json:"vimSystemUUID" yaml:"vimSystemUuid"`
}

type VmwareFolderQuery

type VmwareFolderQuery struct {
	Filter struct {
		// folder
		EntityTypes []string     `json:"entityTypes"`
		Cloud       *FilterCloud `json:"cloud,omitempty"`
		//"childTypes":["VirtualMachine","VirtualApp"]
		//childTypes":["VirtualMachine","VirtualApp"]}}
		ChildTypes []string `json:"childTypes"`
	} `json:"filter"`
}

VmwareFolderQuery folder view query

func NewVmwareFolderQuery

func NewVmwareFolderQuery(cloudId string) *VmwareFolderQuery

NewVmwareFolderQuery creates new Filter query in order to get Folder view.

Jump to

Keyboard shortcuts

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