Help us shape the future of Go! Take the 2026 Go Developer Survey

bean

package
v0.2.4 Latest Latest
Warning

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

Go to latest
Published: Mar 15, 2021 License: Apache-2.0 Imports: 3 Imported by: 22

Documentation

Index

Constants

View Source
const (
	LayoutISO     = "2006-01-02 15:04:05"
	LayoutUS      = "January 2, 2006 15:04:05"
	LayoutRFC3339 = "2006-01-02T15:04:05Z07:00"
)
View Source
const (
	EXPOSE_INTERNAL ExposeType = "clusterIp"
	EXPOSE_EXTERNAL ExposeType = "elb"
	SCHEME_HTTP     Scheme     = "http"
	SCHEME_HTTPS    Scheme     = "https"
	SCHEME_TCP      Scheme     = "tcp"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type BuildBinaryConfig

type BuildBinaryConfig struct {
	Name   string  `json:"name"`
	Stages []Stage `json:"stages"` //stages will be executed sequentially
}

user should be able to compose multiple sequential and parallel steps for building binary.

type CDMaterialMetadata

type CDMaterialMetadata struct {
	Url    string `json:"url,omitempty"`
	Branch string `json:"branch,omitempty"`
	Tag    string `json:"tag,omitempty"`
}

--------- cd related struct ---------

type CDPatchRequest

type CDPatchRequest struct {
	Pipeline *CDPipelineConfigObject `json:"pipeline,omitempty"`
	AppId    int                     `json:"appId,omitempty"`
	Action   CdPatchAction           `json:"action,omitempty"`
	UserId   int32                   `json:"-"`
}

type CDPipelineConfigObject

type CDPipelineConfigObject struct {
	Id                            int                               `json:"id,omitempty"  validate:"number" `
	EnvironmentId                 int                               `json:"environmentId,omitempty"  validate:"number,required" `
	EnvironmentName               string                            `json:"environmentName,omitempty" `
	CiPipelineId                  int                               `json:"ciPipelineId,omitempty" validate:"number,required"`
	TriggerType                   pipelineConfig.TriggerType        `json:"triggerType,omitempty" validate:"oneof=AUTOMATIC MANUAL"`
	Name                          string                            `json:"name,omitempty" validate:"name-component,max=50"` //pipelineName
	Strategies                    []Strategy                        `json:"strategies,omitempty"`
	Namespace                     string                            `json:"namespace,omitempty" validate:"name-component,max=50"` //namespace
	AppWorkflowId                 int                               `json:"appWorkflowId,omitempty" `
	DeploymentTemplate            pipelineConfig.DeploymentTemplate `json:"deploymentTemplate,omitempty" validate:"oneof=BLUE-GREEN ROLLING CANARY RECREATE"` //
	PreStage                      CdStage                           `json:"preStage"`
	PostStage                     CdStage                           `json:"postStage"`
	PreStageConfigMapSecretNames  PreStageConfigMapSecretNames      `json:"preStageConfigMapSecretNames"`
	PostStageConfigMapSecretNames PostStageConfigMapSecretNames     `json:"postStageConfigMapSecretNames"`
	RunPreStageInEnv              bool                              `json:"runPreStageInEnv"`
	RunPostStageInEnv             bool                              `json:"runPostStageInEnv"`
	CdArgoSetup                   bool                              `json:"isClusterCdActive"`
}

type CDPipelineViewObject

type CDPipelineViewObject struct {
	Id                 int                         `json:"id"`
	PipelineCounter    int                         `json:"pipelineCounter"`
	Environment        string                      `json:"environment"`
	Downstream         []int                       `json:"downstream"` //PipelineCounter of downstream
	Status             string                      `json:"status"`
	Message            string                      `json:"message"`
	ProgressText       string                      `json:"progress_text"`
	PipelineType       pipelineConfig.PipelineType `json:"pipelineType"`
	GitDiffUrl         string                      `json:"git_diff_url"`
	PipelineHistoryUrl string                      `json:"pipeline_history_url"` //remove
	Rollback           Rollback                    `json:"rollback"`
	Name               string                      `json:"-"`
	CDSourceObject
}

type CDSourceObject

type CDSourceObject struct {
	Id          int                `json:"id"`
	DisplayName string             `json:"displayName"`
	Metadata    CDMaterialMetadata `json:"metadata"`
}

type CdPatchAction

type CdPatchAction int
const (
	CD_CREATE CdPatchAction = iota
	CD_DELETE               //delete this pipeline
	CD_UPDATE
)

func (CdPatchAction) String

func (a CdPatchAction) String() string

type CdPipelines

type CdPipelines struct {
	Pipelines []*CDPipelineConfigObject `json:"pipelines,omitempty" validate:"dive"`
	AppId     int                       `json:"appId,omitempty"  validate:"number,required" `
	UserId    int32                     `json:"-"`
}

type CdStage

type CdStage struct {
	TriggerType pipelineConfig.TriggerType `json:"triggerType,omitempty"`
	Name        string                     `json:"name,omitempty"`
	Status      string                     `json:"status,omitempty"`
	Config      string                     `json:"config,omitempty"`
}

type CiArtifactBean

type CiArtifactBean struct {
	Id           int             `json:"id"`
	Image        string          `json:"image,notnull"`
	ImageDigest  string          `json:"image_digest,notnull"`
	MaterialInfo json.RawMessage `json:"material_info"` //git material metadata json array string
	DataSource   string          `json:"data_source,notnull"`
	DeployedTime string          `json:"deployed_time"`
	Deployed     bool            `json:"deployed,notnull"`
	Latest       bool            `json:"latest,notnull"`
	IsVulnerable bool            `json:"vulnerable,notnull"`
	ScanEnabled  bool            `json:"scanEnabled,notnull"`
	Scanned      bool            `json:"scanned,notnull"`
}

type CiArtifactResponse

type CiArtifactResponse struct {
	//AppId           int      `json:"app_id"`
	CdPipelineId int              `json:"cd_pipeline_id,notnull"`
	CiArtifacts  []CiArtifactBean `json:"ci_artifacts,notnull"`
}

type CiConfigRequest

type CiConfigRequest struct {
	Id                int                `json:"id,omitempty" validate:"number"` //ciTemplateId
	AppId             int                `json:"appId,omitempty" validate:"required,number"`
	DockerRegistry    string             `json:"dockerRegistry,omitempty" `  //repo id example ecr mapped one-one with gocd registry entry
	DockerRepository  string             `json:"dockerRepository,omitempty"` // example test-app-1 which is inside ecr
	DockerBuildConfig *DockerBuildConfig `json:"dockerBuildConfig,omitempty" validate:"required,dive"`
	CiPipelines       []*CiPipeline      `json:"ciPipelines,omitempty" validate:"dive"` //a pipeline will be built for each ciMaterial
	AppName           string             `json:"appName,omitempty"`
	Version           string             `json:"version,omitempty"` //gocd etag used for edit purpose
	DockerRegistryUrl string             `json:"-"`
	CiTemplateName    string             `json:"-"`
	UserId            int32              `json:"-"`
	Materials         []Material         `json:"materials"`
	AppWorkflowId     int                `json:"appWorkflowId,omitempty"`
	BeforeDockerBuild []*Task            `json:"beforeDockerBuild,omitempty" validate:"dive"`
	AfterDockerBuild  []*Task            `json:"afterDockerBuild,omitempty" validate:"dive"`
	ScanEnabled       bool               `json:"scanEnabled,notnull"`
}

type CiGitWebhookTriggerRequest

type CiGitWebhookTriggerRequest struct {
	Ref          string     `json:"ref"`
	RefType      string     `json:"ref_type"`
	MasterBranch string     `json:"master_branch"`
	Description  string     `json:"description"`
	PusherType   string     `json:"pusher_type"`
	Repository   Repository `json:"repository"`
}

type CiMaterial

type CiMaterial struct {
	Source          *SourceTypeConfig `json:"source,omitempty" validate:"dive,required"`   //branch for ci
	Path            string            `json:"path,omitempty"`                              // defaults to root of git repo
	CheckoutPath    string            `json:"checkoutPath,omitempty"`                      //path where code will be checked out for single source `./` default for multiSource configured by user
	GitMaterialId   int               `json:"gitMaterialId,omitempty" validate:"required"` //id stored in db GitMaterial( foreign key)
	ScmId           string            `json:"scmId,omitempty"`                             //id of gocd object
	ScmName         string            `json:"scmName,omitempty"`
	ScmVersion      string            `json:"scmVersion,omitempty"`
	Id              int               `json:"id,omitempty"`
	GitMaterialName string            `json:"gitMaterialName"`
}

type CiPatchRequest

type CiPatchRequest struct {
	CiPipeline    *CiPipeline `json:"ciPipeline"`
	AppId         int         `json:"appId,omitempty"`
	Action        PatchAction `json:"action"`
	AppWorkflowId int         `json:"appWorkflowId,omitempty"`
	UserId        int32       `json:"-"`
}

----------------

type CiPipeline

type CiPipeline struct {
	IsManual                 bool              `json:"isManual"`
	DockerArgs               map[string]string `json:"dockerArgs"`
	IsExternal               bool              `json:"isExternal"`
	ParentCiPipeline         int               `json:"parentCiPipeline"`
	ParentAppId              int               `json:"parentAppId"`
	ExternalCiConfig         ExternalCiConfig  `json:"externalCiConfig"`
	CiMaterial               []*CiMaterial     `json:"ciMaterial,omitempty" validate:"dive,min=1"`
	Name                     string            `json:"name,omitempty" validate:"name-component,max=100"` //name suffix of corresponding pipeline. required, unique, validation corresponding to gocd pipelineName will be applicable
	Id                       int               `json:"id,omitempty" `
	Version                  string            `json:"version,omitempty"` //matchIf token version in gocd . used for update request
	Active                   bool              `json:"active,omitempty"`  //pipeline is active or not
	Deleted                  bool              `json:"deleted,omitempty"`
	BeforeDockerBuild        []*Task           `json:"beforeDockerBuild,omitempty" validate:"dive"`
	AfterDockerBuild         []*Task           `json:"afterDockerBuild,omitempty" validate:"dive"`
	BeforeDockerBuildScripts []*CiScript       `json:"beforeDockerBuildScripts,omitempty"`
	AfterDockerBuildScripts  []*CiScript       `json:"afterDockerBuildScripts,omitempty"`
	LinkedCount              int               `json:"linkedCount"`
	PipelineType             PipelineType      `json:"pipelineType,omitempty"`
	ScanEnabled              bool              `json:"scanEnabled,notnull"`
}

type CiPipelineMaterial

type CiPipelineMaterial struct {
	Id            int       `json:"Id"`
	GitMaterialId int       `json:"GitMaterialId"`
	Type          string    `json:"Type"`
	Value         string    `json:"Value"`
	Active        bool      `json:"Active"`
	GitCommit     GitCommit `json:"GitCommit"`
	GitTag        string    `json:"GitTag"`
}

type CiPipelineMin

type CiPipelineMin struct {
	Name             string       `json:"name,omitempty" validate:"name-component,max=100"` //name suffix of corresponding pipeline. required, unique, validation corresponding to gocd pipelineName will be applicable
	Id               int          `json:"id,omitempty" `
	Version          string       `json:"version,omitempty"` //matchIf token version in gocd . used for update request
	IsExternal       bool         `json:"isExternal,omitempty"`
	ParentCiPipeline int          `json:"parentCiPipeline"`
	ParentAppId      int          `json:"parentAppId"`
	PipelineType     PipelineType `json:"pipelineType,omitempty"`
	ScanEnabled      bool         `json:"scanEnabled,notnull"`
}

type CiScript

type CiScript struct {
	Id             int    `json:"id"`
	Index          int    `json:"index"`
	Name           string `json:"name"`
	Script         string `json:"script"`
	OutputLocation string `json:"outputLocation"`
}

type CiTrigger

type CiTrigger struct {
	CiMaterialId int    `json:"ciMaterialId"`
	CommitHash   string `json:"commitHash"`
}

type CiTriggerRequest

type CiTriggerRequest struct {
	PipelineId         int                  `json:"pipelineId"`
	CiPipelineMaterial []CiPipelineMaterial `json:"ciPipelineMaterials" validate:"required"`
	TriggeredBy        int32                `json:"triggeredBy"`
	InvalidateCache    bool                 `json:"invalidateCache"`
}

type CreateAppDTO

type CreateAppDTO struct {
	Id         int            `json:"id,omitempty" validate:"number"`
	AppName    string         `json:"appName" validate:"name-component,max=100"`
	UserId     int32          `json:"-"` //not exposed to UI
	Material   []*GitMaterial `json:"material" validate:"dive,min=1"`
	TeamId     int            `json:"teamId,omitempty" validate:"number,required"`
	TemplateId int            `json:"templateId"`
}

type CreateMaterialDTO

type CreateMaterialDTO struct {
	Id       int            `json:"id,omitempty" validate:"number"`
	AppId    int            `json:"appId" validate:"number"`
	Material []*GitMaterial `json:"material" validate:"dive,min=1"`
	UserId   int32          `json:"-"` //not exposed to UI
}

type DockerBuildConfig

type DockerBuildConfig struct {
	GitMaterialId  int               `json:"gitMaterialId,omitempty" validate:"required"`
	DockerfilePath string            `json:"dockerfileRelativePath,omitempty" validate:"required"`
	Args           map[string]string `json:"args,omitempty"`
}

type Environment

type Environment struct {
	Values string
}

set of unique attributes which corresponds to a cluster different environment of gocd and k8s cluster.

type EnvironmentGroup

type EnvironmentGroup struct {
	Name         string
	Environments []Environment
}

if Environments has multiple entries then application of them will be deployed simultaneously

type ExposeType

type ExposeType string

type ExternalCiConfig

type ExternalCiConfig struct {
	Id         int    `json:"id"`
	WebhookUrl string `json:"webhookUrl"`
	Payload    string `json:"payload"`
	AccessKey  string `json:"accessKey"`
}

type GitCiTriggerRequest

type GitCiTriggerRequest struct {
	CiPipelineMaterial CiPipelineMaterial `json:"ciPipelineMaterial" validate:"required"`
	TriggeredBy        int32              `json:"triggeredBy"`
}

type GitCommit

type GitCommit struct {
	Commit  string //git hash
	Author  string
	Date    time.Time
	Message string
	Changes []string
}

type GitMaterial

type GitMaterial struct {
	Name          string `json:"name,omitempty" `                       //not null, //default format pipelineGroup.AppName + "-" + inputMaterial.Name,
	Url           string `json:"url,omitempty" validate:"url,required"` //url of git repo
	Id            int    `json:"id,omitempty" validate:"number"`
	GitProviderId int    `json:"gitProviderId,omitempty" validate:"gt=0"`
	CheckoutPath  string `json:"checkoutPath" validate:"checkout-path-component"`
}

type HelmConfig

type HelmConfig struct {
}

contains reference to chart and values.yaml changes for next deploy

type Job

type Job struct {
	Name  string `json:"name"`
	Tasks []Task `json:"tasks"` //task will run sequentially
}

type Material

type Material struct {
	GitMaterialId int    `json:"gitMaterialId"`
	MaterialName  string `json:"materialName"`
}

type MaterialMetadata

type MaterialMetadata struct {
	ProgrammingLang      string
	LanguageRuntime      string
	BuildTool            string
	Executables          []string
	Profiles             map[string]string // pipeline-stage, profile
	LogDirs              map[string]string //file, log pattern
	EnvironmentVariables map[string]string
	PropertiesConfig     []PropertiesConfig
	ExposeConfig         []ServiceExposeConfig //a mocroservice can be exposed in multiple ways
	MonitoringConfig     MonitoringConfig
}

type MaterialOperations

type MaterialOperations interface {
	MaterialExists(material *GitMaterial) (bool, error)
	SaveMaterial(material *GitMaterial) error
	GenerateMaterialMetaData(material *GitMaterial) (*MaterialMetadata, error)
	ValidateMaterialMetaData(material *GitMaterial, metadata *MaterialMetadata) (bool, error)
	SaveMaterialMetaData(metadata *MaterialMetadata) error
}

type MonitoringConfig

type MonitoringConfig struct {
	ReadinessProbeEndpoint string
	InitialDelaySeconds    int32
	PeriodSeconds          int32
	TimeoutSeconds         int32
	SuccessThreshold       int32
	FailureThreshold       int32
	HttpHeaders            map[string]string
	TpMonitoringConf       []ThirdPartyMonitoringConfig
	// contains filtered or unexported fields
}

type Owner

type Owner struct {
	Login string `json:"login"`
	Id    int    `json:"id"`
	Type  string `json:"type"`
}

type PackagingConfig

type PackagingConfig struct {
}

tag git build binary push binary to artifact store build docker image push docker image docker args

type PatchAction

type PatchAction int

-------------------

const (
	CREATE        PatchAction = iota
	UPDATE_SOURCE             //update value of SourceTypeConfig
	DELETE                    //delete this pipeline

)

func (PatchAction) String

func (a PatchAction) String() string

type Pipeline

type Pipeline struct {
	Environment Environment
}

type PipelineCreateResponse

type PipelineCreateResponse struct {
	AppName string `json:"appName,omitempty"`
	AppId   int    `json:"appId,omitempty"`
}

type PipelineType

type PipelineType string
const (
	NORMAL   PipelineType = "NORMAL"
	LINKED   PipelineType = "LINKED"
	EXTERNAL PipelineType = "EXTERNAL"
)

type PostStageConfigMapSecretNames

type PostStageConfigMapSecretNames struct {
	ConfigMaps []string `json:"configMaps"`
	Secrets    []string `json:"secrets"`
}

type PreStageConfigMapSecretNames

type PreStageConfigMapSecretNames struct {
	ConfigMaps []string `json:"configMaps"`
	Secrets    []string `json:"secrets"`
}

type PropertiesConfig

type PropertiesConfig struct {
	Name          string
	Location      string
	MountLocation string //MountLocation and Location might be same

}

type Repository

type Repository struct {
	Id        int       `json:"id"`
	NodeId    string    `json:"node_id"`
	Name      string    `json:"name"`
	FullName  string    `json:"full_name"`
	Private   bool      `json:"private"`
	CreatedAt time.Time `json:"created_at"`
	UpdatedAt time.Time `json:"updated_at"`
	PushedAt  time.Time `json:"pushed_at"`
	CloneUrl  string    `json:"clone_url"`
	SvnUrl    string    `json:"svn_url"`
}

type Rollback

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

type Scheme

type Scheme string

type ServiceExposeConfig

type ServiceExposeConfig struct {
	ExposeType  ExposeType
	Scheme      Scheme
	Port        string
	Path        string
	BackendPath string
	Host        string
}

type SourceType

type SourceType string

type SourceTypeConfig

type SourceTypeConfig struct {
	Type  pipelineConfig.SourceType `` /* 130-byte string literal not displayed */
	Value string                    `json:"value,omitempty" `
}

type Stage

type Stage struct {
	Name string `json:"name"`
	Jobs []Job  `json:"jobs"` //job will run in parallel
}

type Strategy

type Strategy struct {
	DeploymentTemplate pipelineConfig.DeploymentTemplate `json:"deploymentTemplate,omitempty" validate:"oneof=BLUE-GREEN ROLLING CANARY RECREATE"` //
	Config             json.RawMessage                   `json:"config,omitempty" validate:"string"`
	Default            bool                              `json:"default"`
}

type Task

type Task struct {
	Name string   `json:"name"`
	Type string   `json:"type"` //for now ignore this input
	Cmd  string   `json:"cmd"`
	Args []string `json:"args"`
}

type Test

type Test struct {
	Name    string
	Command string
}

used for automated unit and integration test

type TestExecutorImageProperties

type TestExecutorImageProperties struct {
	ImageName string `json:"imageName,omitempty"`
	Arg       string `json:"arg,omitempty"`
	ReportDir string `json:"reportDir,omitempty"`
}

type ThirdPartyMonitoringConfig

type ThirdPartyMonitoringConfig struct {
}

type UpdateMaterialDTO

type UpdateMaterialDTO struct {
	AppId    int          `json:"appId" validate:"number"`
	Material *GitMaterial `json:"material" validate:"dive,min=1"`
	UserId   int32        `json:"-"` //not exposed to UI
}

Jump to

Keyboard shortcuts

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