 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
- Constants
- type AppMetaInfoDto
- type BuildBinaryConfig
- type CDMaterialMetadata
- type CDPatchRequest
- type CDPipelineConfigObject
- type CDPipelineViewObject
- type CDSourceObject
- type CdPatchAction
- type CdPipelines
- type CdStage
- type CiArtifactBean
- type CiArtifactResponse
- type CiConfigRequest
- type CiGitWebhookTriggerRequest
- type CiMaterial
- type CiPatchRequest
- type CiPipeline
- type CiPipelineMaterial
- type CiPipelineMin
- type CiScript
- type CiTrigger
- type CiTriggerRequest
- type CreateAppDTO
- type CreateMaterialDTO
- type DockerBuildConfig
- type Environment
- type EnvironmentGroup
- type ExposeType
- type ExternalCiConfig
- type GitCiTriggerRequest
- type GitCommit
- type GitMaterial
- type HelmConfig
- type Job
- type Material
- type MaterialMetadata
- type MaterialOperations
- type MonitoringConfig
- type Owner
- type PackagingConfig
- type PatchAction
- type Pipeline
- type PipelineCreateResponse
- type PipelineType
- type PostStageConfigMapSecretNames
- type PreStageConfigMapSecretNames
- type PropertiesConfig
- type Repository
- type Rollback
- type Scheme
- type ServiceExposeConfig
- type SourceType
- type SourceTypeConfig
- type Stage
- type Strategy
- type Task
- type Test
- type TestExecutorImageProperties
- type ThirdPartyMonitoringConfig
- type UpdateMaterialDTO
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 AppMetaInfoDto ¶ added in v0.2.21
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 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"`
	AppWorkflowId            int               `json:"appWorkflowId,omitempty"`
}
    type CiPipelineMaterial ¶
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 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 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 GitCiTriggerRequest ¶
type GitCiTriggerRequest struct {
	CiPipelineMaterial CiPipelineMaterial `json:"ciPipelineMaterial" validate:"required"`
	TriggeredBy        int32              `json:"triggeredBy"`
}
    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 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 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 PipelineType ¶
type PipelineType string
const ( NORMAL PipelineType = "NORMAL" LINKED PipelineType = "LINKED" EXTERNAL PipelineType = "EXTERNAL" )
type PropertiesConfig ¶
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 ServiceExposeConfig ¶
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 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 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
}
     Click to show internal directories. 
   Click to hide internal directories.