service

package
v1.7.0 Latest Latest
Warning

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

Go to latest
Published: Nov 16, 2021 License: Apache-2.0 Imports: 60 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddDeliveryVersion

func AddDeliveryVersion(taskID int, productName, workflowName string, pipelineTask *taskmodels.Task, logger *zap.SugaredLogger) error

func CancelTask

func CancelTask(userName, pipelineName string, taskID int64, typeString config.PipelineType, reqID string, log *zap.SugaredLogger) error

func CancelTaskV2

func CancelTaskV2(userName, pipelineName string, taskID int64, typeString config.PipelineType, requestID string, log *zap.SugaredLogger) error

func CreateBuild

func CreateBuild(username string, build *commonmodels.Build, log *zap.SugaredLogger) error

func CreateHelmRenderSet added in v1.2.0

func CreateHelmRenderSet(args *commonmodels.RenderSet, log *zap.SugaredLogger) error

CreateHelmRenderSet 添加renderSet

func CreateRenderSet

func CreateRenderSet(args *commonmodels.RenderSet, log *zap.SugaredLogger) error

func Delete

func Delete(name, productName string, log *zap.SugaredLogger) error

func DeleteClusterResourceAsync

func DeleteClusterResourceAsync(selector labels.Selector, kubeClient client.Client, log *zap.SugaredLogger) error

func DeleteDeliveryInfos

func DeleteDeliveryInfos(productName string, log *zap.SugaredLogger) error

func DeletePipeline

func DeletePipeline(pipelineName, requestID string, isDeletingProductTmpl bool, log *zap.SugaredLogger) error

func DeletePipelines

func DeletePipelines(productName, requestID string, log *zap.SugaredLogger) error

func DeleteProduct

func DeleteProduct(username, envName, productName, requestID string, log *zap.SugaredLogger) (err error)

func DeleteRenderSet

func DeleteRenderSet(productName string, log *zap.SugaredLogger) error

func DeleteResourcesAsync

func DeleteResourcesAsync(namespace string, selector labels.Selector, kubeClient client.Client, log *zap.SugaredLogger) error

根据namespace和selector删除所有资源

func DeleteServiceWebhookByName added in v1.3.0

func DeleteServiceWebhookByName(serviceName, productName string, logger *zap.SugaredLogger)

func DeleteTestModule

func DeleteTestModule(name, productName, requestID string, log *zap.SugaredLogger) error

func DeleteWorkflow

func DeleteWorkflow(workflowName, requestID string, isDeletingProductTmpl bool, log *zap.SugaredLogger) error

func DeleteWorkflows

func DeleteWorkflows(productName, requestID string, log *zap.SugaredLogger) error

func DownloadServiceManifests added in v1.4.0

func DownloadServiceManifests(base, projectName, serviceName string) error

func EnsureDefaultRegistrySecret

func EnsureDefaultRegistrySecret(namespace string, kubeClient client.Client, log *zap.SugaredLogger) error

func EnsureResp

func EnsureResp(build *commonmodels.Build)

func EnsureSecretEnvs

func EnsureSecretEnvs(existedKVs []*commonmodels.KeyVal, newKVs []*commonmodels.KeyVal)

EnsureSecretEnvs 转换敏感信息前端传入的Mask内容为真实内容

func ExtractImageName added in v1.5.0

func ExtractImageName(imageURI string) string

ExtractImageName extract image name from total image uri

func FillProductTemplateValuesYamls

func FillProductTemplateValuesYamls(tmpl *templatemodels.Product, log *zap.SugaredLogger) error

FillProductTemplateValuesYamls 返回renderSet中的renderChart信息

func FillProductTemplateVars

func FillProductTemplateVars(productTemplates []*template.Product, log *zap.SugaredLogger) error

func FindDefaultRegistry

func FindDefaultRegistry(log *zap.SugaredLogger) (*models.RegistryNamespace, error)

func GeneImageURI added in v1.5.0

func GeneImageURI(pathData map[string]string, flatMap map[string]interface{}) (string, error)

GeneImageURI generate valid image uri, legal formats: {repo} {repo}/{image} {repo}/{image}:{tag} {repo}:{tag} {image}:{tag} {image}

func GetConfigPayload

func GetConfigPayload(codeHostID int) *models.ConfigPayload

func GetDefaultRegistryNamespace added in v1.2.0

func GetDefaultRegistryNamespace(log *zap.SugaredLogger) (*models.RegistryNamespace, error)

func GetDockerfileTemplateContent added in v1.7.0

func GetDockerfileTemplateContent(id string) (string, error)

func GetGitlabAddress

func GetGitlabAddress(URL string) (string, error)

func GetLocalTestSuite

func GetLocalTestSuite(pipelineName, serviceName, testType string, taskID int64, testName string, typeString config.PipelineType, log *zap.SugaredLogger) (*commonmodels.TestReport, error)

func GetOwnerRepoBranchPath

func GetOwnerRepoBranchPath(URL string) (string, string, string, string, string, string, error)

GetOwnerRepoBranchPath 获取gitlab路径中的owner、repo、branch和path

func GetPipelineInfo

func GetPipelineInfo(pipelineName string, log *zap.SugaredLogger) (*commonmodels.Pipeline, error)

func GetPresetRules added in v1.5.0

func GetPresetRules() []*template.ImageSearchingRule

func GetProductEnvNamespace

func GetProductEnvNamespace(envName, productName, namespace string) string

func GetProductTemplate

func GetProductTemplate(productName string, log *zap.SugaredLogger) (*template.Product, error)

func GetRenderSet

func GetRenderSet(renderName string, revision int64, log *zap.SugaredLogger) (*commonmodels.RenderSet, error)

func GetRenderSetInfo

func GetRenderSetInfo(renderName string, revision int64) (*commonmodels.RenderSet, error)

func GetServiceInvolvedProjects added in v1.3.1

func GetServiceInvolvedProjects(services []*commonmodels.Service, skipProject string) (map[string][]string, error)

GetServiceInvolvedProjects returns a map, key is a service name, value is a list of all projects which are using this service. The given services must come from same project to make sure all service names are unique.

func GetServiceTasks

func GetServiceTasks(log *zap.SugaredLogger) (map[string][]string, error)

func GetServiceTemplate

func GetServiceTemplate(serviceName, serviceType, productName, excludeStatus string, revision int64, log *zap.SugaredLogger) (*commonmodels.Service, error)

func GetSubTaskContent

func GetSubTaskContent(deliveryVersion *commonmodels.DeliveryVersion, pipelineTask *taskmodels.Task, log *zap.SugaredLogger)

TODO: LOU rewrite it

func InsertDeliveryTest

func InsertDeliveryTest(args *commonmodels.DeliveryTest, log *zap.SugaredLogger) error

func InsertDeliveryVersion

func InsertDeliveryVersion(args *commonmodels.DeliveryVersion, log *zap.SugaredLogger) error

func IsAllKeyCovered

func IsAllKeyCovered(arg *commonmodels.RenderSet, log *zap.SugaredLogger) error

IsAllKeyCovered 检查是否覆盖所有产品key

func IsAllKeyCoveredService

func IsAllKeyCoveredService(productName, serviceName string, arg *commonmodels.RenderSet, log *zap.SugaredLogger) error

IsAllKeyCoveredService 检查是否覆盖所有服务key

func List

func List(log *zap.SugaredLogger) []*models.Queue

func ListHelmRepos

func ListHelmRepos(log *zap.SugaredLogger) ([]*commonmodels.HelmRepo, error)

func ListRegistryNamespaces

func ListRegistryNamespaces(log *zap.SugaredLogger) ([]*models.RegistryNamespace, error)

func ListServicesRenderKeys

func ListServicesRenderKeys(services []*templatemodels.ServiceInfo, log *zap.SugaredLogger) ([]*templatemodels.RenderKV, error)

func LogProductStats

func LogProductStats(user, event, prodName, requestID string, startTime int64, log *zap.SugaredLogger)

func ParseImagesByPresetRules added in v1.5.0

func ParseImagesByPresetRules(flatMap map[string]interface{}) ([]map[string]string, error)

ParseImagesByPresetRules parse images from flat yaml map with preset rules

func ParseImagesByRules added in v1.5.0

func ParseImagesByRules(nested map[string]interface{}, matchRules []*template.ImageSearchingRule) ([]*models.Container, error)

func ParseImagesForProductService added in v1.5.0

func ParseImagesForProductService(nested map[string]interface{}, serviceName, productName string) ([]*models.Container, error)

ParseImagesForProductService for product service

func PreLoadServiceManifests added in v1.4.0

func PreLoadServiceManifests(base string, svc *commonmodels.Service) error

func ProcessServiceWebhook added in v1.3.0

func ProcessServiceWebhook(updated, current *commonmodels.Service, serviceName string, logger *zap.SugaredLogger)

func ProcessWebhook added in v1.3.0

func ProcessWebhook(updatedHooks, currentHooks interface{}, name string, logger *zap.SugaredLogger) error

func Remove

func Remove(task *models.Queue, log *zap.SugaredLogger) error

func RenderValueForString

func RenderValueForString(origin string, rs *commonmodels.RenderSet) string

func ReplaceRuleVariable added in v1.6.0

func ReplaceRuleVariable(rule string, replaceValue *Variable) string

func SaveAndUploadService added in v1.4.0

func SaveAndUploadService(projectName, serviceName string, fileTree fs.FS) error

func SendErrorMessage

func SendErrorMessage(sender, title, requestID string, err error, log *zap.SugaredLogger)

func SendFailedTaskMessage

func SendFailedTaskMessage(username, productName, name, requestID string, workflowType config.PipelineType, err error, log *zap.SugaredLogger)

func SendMessage

func SendMessage(sender, title, content, requestID string, log *zap.SugaredLogger)

func SetRenderDataStatus

func SetRenderDataStatus(rs *commonmodels.RenderSet, log *zap.SugaredLogger) error

func UpdateBuild

func UpdateBuild(username string, build *commonmodels.Build, log *zap.SugaredLogger) error

func UpdatePmServiceTemplate added in v1.2.0

func UpdatePmServiceTemplate(username string, args *ServiceTmplBuildObject, log *zap.SugaredLogger) error

func UpdateRenderSet

func UpdateRenderSet(args *commonmodels.RenderSet, log *zap.SugaredLogger) error

func UpdateSubRenderSet

func UpdateSubRenderSet(name string, kvs []*templatemodels.RenderKV, log *zap.SugaredLogger) error

func ValidateKVs

func ValidateKVs(kvs []*templatemodels.RenderKV, services []*templatemodels.ServiceInfo, log *zap.SugaredLogger) error

func ValidateRenderSet

func ValidateRenderSet(productName, renderName string, serviceInfo *templatemodels.ServiceInfo, log *zap.SugaredLogger) (*commonmodels.RenderSet, error)

ValidateRenderSet 检查指定renderSet是否能覆盖产品所有需要渲染的值

Types

type CronjobPayload

type CronjobPayload struct {
	Name        string             `json:"name"`
	ProductName string             `json:"product_name"`
	Action      string             `json:"action"`
	JobType     string             `json:"job_type"`
	DeleteList  []string           `json:"delete_list,omitempty"`
	JobList     []*models.Schedule `json:"job_list,omitempty"`
}

type Empty added in v1.3.0

type Empty struct{}

type Features

type Features struct {
	Features []string `json:"features"`
}

type FilterFunc added in v1.5.0

type FilterFunc func(services []*Workload) []*Workload

type HookSet added in v1.3.0

type HookSet map[hookUniqueID]hookItem

func NewHookSet added in v1.3.0

func NewHookSet(items ...hookItem) HookSet

NewHookSet creates a HookSet from a list of values.

func (HookSet) Difference added in v1.3.0

func (s HookSet) Difference(s2 HookSet) HookSet

Difference returns a set of objects that are not in s2 For example: s1 = {a1, a2, a3} s2 = {a1, a2, a4, a5} s1.Difference(s2) = {a3} s2.Difference(s1) = {a4, a5}

func (HookSet) Has added in v1.3.0

func (s HookSet) Has(item hookItem) bool

Has returns true if and only if item is contained in the set.

func (HookSet) Insert added in v1.3.0

func (s HookSet) Insert(items ...hookItem) HookSet

Insert adds items to the set.

func (HookSet) Len added in v1.3.0

func (s HookSet) Len() int

Len returns the size of the set.

type IngressInfo

type IngressInfo struct {
	HostInfo []resource.HostInfo `json:"host_info"`
}

type KVPair added in v1.5.0

type KVPair struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

type PipelineResource

type PipelineResource struct {
	Version string `json:"version"`
	Kind    string `json:"kind"`
}

type RenderChartArg added in v1.5.0

type RenderChartArg struct {
	EnvName        string    `json:"envName,omitempty"`
	ServiceName    string    `json:"serviceName,omitempty"`
	ChartVersion   string    `json:"chartVersion,omitempty"`
	OverrideValues []*KVPair `json:"overrideValues,omitempty"`
	OverrideYaml   string    `json:"overrideYaml,omitempty"`
}

func (*RenderChartArg) FillRenderChartModel added in v1.5.0

func (args *RenderChartArg) FillRenderChartModel(chart *templatemodels.RenderChart, version string)

FillRenderChartModel fill render chart model

func (*RenderChartArg) LoadFromRenderChartModel added in v1.5.0

func (args *RenderChartArg) LoadFromRenderChartModel(chart *templatemodels.RenderChart)

LoadFromRenderChartModel load from render chart model

func (*RenderChartArg) ToOverrideValueString added in v1.6.0

func (args *RenderChartArg) ToOverrideValueString() string

type RepoConfig added in v1.5.0

type RepoConfig struct {
	CodehostID  int      `json:"codehostID,omitempty"`
	Owner       string   `json:"owner,omitempty"`
	Repo        string   `json:"repo,omitempty"`
	Branch      string   `json:"branch,omitempty"`
	ValuesPaths []string `json:"valuesPaths,omitempty"`
}

type ServiceProductMap

type ServiceProductMap struct {
	Service          string                    `json:"service_name"`
	Source           string                    `json:"source"`
	Type             string                    `json:"type"`
	Product          []string                  `json:"product"`
	ProductName      string                    `json:"product_name"`
	Containers       []*commonmodels.Container `json:"containers,omitempty"`
	Visibility       string                    `json:"visibility,omitempty"`
	CodehostID       int                       `json:"codehost_id"`
	RepoOwner        string                    `json:"repo_owner"`
	RepoName         string                    `json:"repo_name"`
	RepoUUID         string                    `json:"repo_uuid"`
	BranchName       string                    `json:"branch_name"`
	LoadPath         string                    `json:"load_path"`
	LoadFromDir      bool                      `json:"is_dir"`
	GerritRemoteName string                    `json:"gerrit_remote_name,omitempty"`
}

type ServiceResp

type ServiceResp struct {
	ServiceName        string              `json:"service_name"`
	ServiceDisplayName string              `json:"service_display_name"`
	Type               string              `json:"type"`
	Status             string              `json:"status"`
	Images             []string            `json:"images,omitempty"`
	ProductName        string              `json:"product_name"`
	EnvName            string              `json:"env_name"`
	Ingress            *IngressInfo        `json:"ingress"`
	Ready              string              `json:"ready"`
	EnvStatuses        []*models.EnvStatus `json:"env_statuses,omitempty"`
	WorkLoadType       string              `json:"workLoadType"`
}

产品列表页服务Response

func ListWorkloads added in v1.5.0

func ListWorkloads(envName, clusterID, namespace, productName string, perPage, page int, log *zap.SugaredLogger, filter ...FilterFunc) (int, []*ServiceResp, error)

func ListWorkloadsInEnv added in v1.5.0

func ListWorkloadsInEnv(envName, productName, filter string, perPage, page int, log *zap.SugaredLogger) (int, []*ServiceResp, error)

ListWorkloadsInEnv returns all workloads in the given env which meat the filter. A filter is in this format: a=b,c=d, and it is a fuzzy matching. Which means it will return all records with a field called a and the value contain character b.

type ServiceTmplBuildObject

type ServiceTmplBuildObject struct {
	ServiceTmplObject *ServiceTmplObject  `json:"pm_service_tmpl"`
	Build             *commonmodels.Build `json:"build"`
}

type ServiceTmplObject

type ServiceTmplObject struct {
	ProductName  string                        `json:"product_name"`
	ServiceName  string                        `json:"service_name"`
	Visibility   string                        `json:"visibility"`
	Revision     int64                         `json:"revision"`
	Type         string                        `json:"type"`
	Username     string                        `json:"username"`
	EnvConfigs   []*commonmodels.EnvConfig     `json:"env_configs"`
	EnvStatuses  []*commonmodels.EnvStatus     `json:"env_statuses,omitempty"`
	From         string                        `json:"from,omitempty"`
	HealthChecks []*commonmodels.PmHealthCheck `json:"health_checks"`
}

type ServiceTmplResp

type ServiceTmplResp struct {
	Data  []*ServiceProductMap `json:"data"`
	Total int                  `json:"total"`
}

func ListServiceTemplate

func ListServiceTemplate(productName string, log *zap.SugaredLogger) (*ServiceTmplResp, error)

ListServiceTemplate 列出服务模板

func ListWorkloadTemplate added in v1.5.0

func ListWorkloadTemplate(productName, envName string, log *zap.SugaredLogger) (*ServiceTmplResp, error)

ListWorkloadTemplate 列出实例模板

type Variable added in v1.6.0

type Variable struct {
	SERVICE        string
	TIMESTAMP      string
	TASK_ID        string
	REPO_COMMIT_ID string
	PROJECT        string
	ENV_NAME       string
	REPO_TAG       string
	REPO_BRANCH    string
	REPO_PR        string
}

type Workload added in v1.5.0

type Workload struct {
	EnvName     string                 `json:"env_name"`
	Name        string                 `json:"name"`
	Type        string                 `json:"type"`
	ProductName string                 `json:"product_name"`
	Spec        corev1.PodTemplateSpec `json:"-"`
	Images      []string               `json:"-"`
	Ready       bool                   `json:"ready"`
	ServiceName string                 `json:"service_name"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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