Documentation ¶
Index ¶
- func DependencyContains(d []DependsOn, str string) bool
- func NewDeployment(config *Configuration, tier *Datacenter, stage, organization string) *appsv1.Deployment
- func NewDeploymentStrategy(s *DeployStrategy) appsv1.DeploymentStrategy
- func NewService(application, stage, namespace string, ports []Port) *apiv1.Service
- func NewServiceAccount(application, stage, namespace, imagePullSecretName string) *apiv1.ServiceAccount
- type Application
- type ApplicationPermissions
- type Assignees
- type ChaosMonkey
- type Configuration
- type CustomBanner
- type DataSources
- type Datacenter
- type DependsOn
- type DeployStrategy
- type EnvVar
- type Moniker
- type Notification
- type NotificationMessage
- type Option
- type Parameter
- type Pipeline
- type PipelineArtifact
- type PipelineExpectedArtifact
- type PipelineTrafficManagement
- type PipelineTrafficManagementOptions
- type Port
- type Probe
- type Profile
- type PullRequestOptions
- type ResourceList
- type ResourceRequirements
- type RollingUpdateDeployment
- type Stage
- type StageEnabled
- type StageExecutionWindow
- type StageExecutionWindowJitter
- type StageExecutionWindowWhitelist
- type Trigger
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DependencyContains ¶
DependencyContains checks if a string is present in a dependencies slice as name
func NewDeployment ¶
func NewDeployment(config *Configuration, tier *Datacenter, stage, organization string) *appsv1.Deployment
NewDeployment return kubernetes Deployment object with default values
func NewDeploymentStrategy ¶
func NewDeploymentStrategy(s *DeployStrategy) appsv1.DeploymentStrategy
NewDeploymentStrategy return kubernetes Strategy for deployment
func NewService ¶
NewService return kubernetes Service object with default values
func NewServiceAccount ¶
func NewServiceAccount(application, stage, namespace, imagePullSecretName string) *apiv1.ServiceAccount
NewServiceAccount return kubernetes ServiceAccount object with default values
Types ¶
type Application ¶
type Application struct { Accounts string `json:"accounts,omitempty"` CloudProviders string `json:"cloudProviders"` CreateTs string `json:"createTs,omitempty"` CustomBanners []*CustomBanner `json:"customBanners,omitempty"` DataSources *DataSources `json:"dataSources,omitempty"` Description string `json:"description,omitempty"` Email string `json:"email,omitempty"` LastModifiedBy string `json:"lastModifiedBy,omitempty"` Name string `json:"name"` Permissions *ApplicationPermissions `json:"permissions,omitempty"` TrafficGuards []string `json:"trafficGuards,omitempty"` UpdateTs string `json:"updateTs,omitempty"` User string `json:"user,omitempty"` }
Application represents full config for spinnaker application
func NewApplication ¶
func NewApplication(app *Configuration) *Application
type ApplicationPermissions ¶
type ApplicationPermissions struct { Execute []string `json:"EXECUTE"` Read []string `json:"READ"` Write []string `json:"WRITE"` }
ApplicationPermissions application permissions
func AppendApplicationPermissions ¶
func AppendApplicationPermissions(teamOwner string) *ApplicationPermissions
AppendApplicationPermissions appends team owner permissions to defaults one
type Assignees ¶
type Assignees struct {
// contains filtered or unexported fields
}
Assignees has GitHub users.
func (*Assignees) RemoveFromList ¶
RemoveFromList removes users from the list.
type ChaosMonkey ¶
type Configuration ¶
type Configuration struct { Application string `json:"application"` DockerImage string `json:"image,omitempty"` Profiles *[]*Profile `json:"profiles,omitempty"` EnvFrom []string `json:"envFrom,omitempty"` DependsOn []DependsOn `json:"dependsOn,omitempty"` Type string `json:"type"` Owners string `json:"owners,omitempty"` OwnerEmail string `json:"ownerEmail,omitempty"` NodePool string `json:"nodePool,omitempty"` Namespace string `json:"namespace,omitempty"` SlackChannel string `json:"slackChannel,omitempty"` JenkinsJobName string `json:"jenkinsJobName,omitempty"` Ports []Port `json:"ports,omitempty"` Strategy *DeployStrategy `json:"strategy,omitempty"` ChaosMonkey *ChaosMonkey `json:"chaosMonkey,omitempty"` Version string `json:"version,omitempty"` RestrictExecutionDuringTimeWindow bool `json:"restrictExecutionDuringTimeWindow,omitempty"` SkipAutogeneration bool `json:"skipAutogeneration,omitempty"` }
type CustomBanner ¶
type CustomBanner struct { BackgroundColor string `json:"backgroundColor"` Enabled bool `json:"enabled"` Text string `json:"text"` TextColor string `json:"textColor"` }
CustomBanner represents custom banners config for application
type DataSources ¶
DataSources represents data sources config for application
type Datacenter ¶
type Datacenter struct { TierName string `json:"tierName"` Replicas int32 `json:"replicas"` NodePool string `json:"nodePool,omitempty"` Env *[]EnvVar `json:"env"` EnvFrom []string `json:"envFrom,omitempty"` Command []string `json:"command,omitempty"` Resources *ResourceRequirements `json:"resources"` ProgressDeadline int32 `json:"progressDeadline,omitempty"` LivenessProbe *Probe `json:"livenessProbe,omitempty"` ReadinessProbe *Probe `json:"readinessProbe,omitempty"` StartupProbe *Probe `json:"startupProbe,omitempty"` PodPriority string `json:"podPriority,omitempty"` ChaosMonkey *ChaosMonkey `json:"chaosMonkey,omitempty"` Version string `json:"version,omitempty"` }
type DeployStrategy ¶
type DeployStrategy struct { // Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate. Type string `json:"type,omitempty"` // Rolling update config params. Present only if DeployStrategyType = RollingUpdate. RollingUpdate *RollingUpdateDeployment `json:"rollingUpdate,omitempty"` }
type Moniker ¶
type Moniker struct { App string `json:"app"` Cluster string `json:"cluster,omitempty"` Detail string `json:"detail,omitempty"` Stack string `json:"stack,omitempty"` Sequence string `json:"sequence,omitempty"` }
Moniker represents moniker config - component of the V2 Spinnaker Manifest Stage that allows users to label assets created by the Spinnaker v2 provider
type Notification ¶
type Notification struct { ID string `json:"id,omitempty"` Address string `json:"address"` Level string `json:"level"` Message map[string]NotificationMessage `json:"message"` Type string `json:"type"` When []string `json:"when"` }
Notifications represents full notifications config
type NotificationMessage ¶
type NotificationMessage struct {
Text string `json:"text"`
}
NotificationMessage represents text of a stage state
type Option ¶
type Option struct {
Value string `json:"value,omitempty"`
}
Option contains the value of the option in a given pipeline parameter
type Parameter ¶
type Parameter struct { ID string `json:"id"` Default string `json:"default"` Description string `json:"description"` HasOptions bool `json:"hasOptions,omitempty"` Label string `json:"label"` Name string `json:"name"` Options []Option `json:"options,omitempty"` Pinned bool `json:"pinned"` Required bool `json:"required"` }
Parameter is a parameter declaration for a pipeline config
type Pipeline ¶
type Pipeline struct { AppConfig map[string]interface{} `json:"appConfig,omitempty"` Application string `json:"application"` Disabled bool `json:"disabled,omitempty"` ExpectedArtifacts []*PipelineExpectedArtifact `json:"expectedArtifacts,omitempty"` ID string `json:"id,omitempty"` Index int `json:"index,omitempty"` KeepWaitingPipelines bool `json:"keepWaitingPipelines"` LastModifiedBy string `json:"lastModifiedBy"` LimitConcurrent bool `json:"limitConcurrent"` Name string `json:"name"` Notifications []Notification `json:"notifications,omitempty"` ParameterConfig *[]*Parameter `json:"parameterConfig,omitempty"` Roles []string `json:"roles,omitempty"` SpelEvaluator string `json:"spelEvaluator,omitempty"` Stages []*Stage `json:"stages,omitempty"` Triggers []*Trigger `json:"triggers,omitempty"` UpdateTs string `json:"updateTs,omitempty"` }
PipelineConfig represents full pipeline config - fields for the top level object of a spinnaker pipeline. Mostly used for constructing JSON
func NewBuildPipeline ¶
func NewBuildPipeline(pipe *Configuration) *Pipeline
NewBuildPipeline return build pipeline with default values
func NewDeployPipeline ¶
func NewDeployPipeline(pipe *Configuration, pipeValues map[string]interface{}) *Pipeline
NewDeployPipeline return deploy to DC pipeline with default values
func NewPromotePipeline ¶
func NewPromotePipeline(pipe *Configuration, pipeValues map[string]interface{}) *Pipeline
NewPromotePipeline return promote to stage pipeline with default values
type PipelineArtifact ¶
type PipelineArtifact struct { ArtifactAccount string `json:"artifactAccount,omitempty"` CustomKind bool `json:"customKind,omitempty"` ID string `json:"id,omitempty"` Location string `json:"location,omitempty"` Metadata map[string]string `json:"metadata,omitempty"` Name string `json:"name,omitempty"` Reference string `json:"reference,omitempty"` Type string `json:"type,omitempty"` Version string `json:"version,omitempty"` }
PipelineArtifact represents default artifact config
type PipelineExpectedArtifact ¶
type PipelineExpectedArtifact struct { DefaultArtifact *PipelineArtifact `json:"defaultArtifact"` DisplayName string `json:"displayName"` ID string `json:"id"` MatchArtifact *PipelineArtifact `json:"matchArtifact"` UseDefaultArtifact bool `json:"useDefaultArtifact"` UsePriorArtifact bool `json:"usePriorArtifact"` }
PipelineExpectedArtifact represents expected artifact config
type PipelineTrafficManagement ¶
type PipelineTrafficManagement struct { Enabled bool `json:"enabled"` Options *PipelineTrafficManagementOptions `json:"options,omitempty"` }
PipelineTrafficManagement represents pipeline traffic management config
type PipelineTrafficManagementOptions ¶
type PipelineTrafficManagementOptions struct { EnableTraffic bool `json:"enableTraffic"` Namespace string `json:"namespace,omitempty"` Services []string `json:"services"` Strategy string `json:"strategy,omitempty"` }
PipelineTrafficManagementOptions represents pipeline traffic management options config
type Profile ¶
type Profile struct { ProfileName string `json:"profileName"` Datacenters *[]*Datacenter `json:"datacenters"` }
type PullRequestOptions ¶
type PullRequestOptions struct { // Name of the owner (user or org) of the repo to create the commit in Organization string // Name of repository to create the commit in RepositoryName string // Name of the author of the commit AuthorName string // Email of the author of the commit AuthorEmail string // Name of branch to create the commit in. If it does not already exists, it will be created using the `master` branch CommitBranch string // Content of the commit message CommitMessage string // Title of the pull request. If not specified, no pull request will be created PRSubject string // Text to put in the description of the pull request PRDescription string Entries []*github.TreeEntry Reference *github.Reference Tree *github.Tree }
PullRequestOptions stores additional GitHub specific data for creating PR
type ResourceList ¶
type ResourceRequirements ¶
type ResourceRequirements struct { Limits *ResourceList `json:"limits"` Requests *ResourceList `json:"requests"` }
type RollingUpdateDeployment ¶
type RollingUpdateDeployment struct { // Value can be ONLY a percentage of desired pods (ex: 10%). // Absolute number is calculated from percentage by rounding down. // This can not be 0 if MaxSurge is 0. // Defaults to 25%. // Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods // immediately when the rolling update starts. Once new pods are ready, old ReplicaSet // can be scaled down further, followed by scaling up the new ReplicaSet, ensuring // that the total number of pods available at all times during the update is at // least 70% of desired pods. MaxUnavailable string `json:"maxUnavailable,omitempty"` // The maximum number of pods that can be scheduled above the desired number of // pods. // Value can be ONLY a percentage of desired pods (ex: 10%). // This can not be 0 if MaxUnavailable is 0. // Absolute number is calculated from percentage by rounding up. // Defaults to 25%. // Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when // the rolling update starts, such that the total number of old and new pods do not exceed // 130% of desired pods. Once old pods have been killed, // new ReplicaSet can be scaled up further, ensuring that total number of pods running // at any time during the update is at most 130% of desired pods. MaxSurge string `json:"maxSurge,omitempty"` }
type Stage ¶
type Stage struct { Account string `json:"account,omitempty"` CloudProvider string `json:"cloudProvider,omitempty"` Comments string `json:"comments,omitempty"` ContinuePipeline bool `json:"continuePipeline,omitempty"` FailOnFailedExpressions bool `json:"failOnFailedExpressions,omitempty"` FailPipeline bool `json:"failPipeline,omitempty"` Instructions string `json:"instructions,omitempty"` Job string `json:"job,omitempty"` JudgmentInputs []string `json:"judgmentInputs,omitempty"` Master string `json:"master,omitempty"` ManifestArtifactAccount string `json:"manifestArtifactAccount,omitempty"` ManifestArtifactID string `json:"manifestArtifactId,omitempty"` Manifests []appsv1.Deployment `json:"manifests,omitempty"` Moniker *Moniker `json:"moniker,omitempty"` Name string `json:"name"` NamespaceOverride string `json:"namespaceOverride,omitempty"` Notifications []Notification `json:"notifications,omitempty"` OverrideTimeout bool `json:"overrideTimeout,omitempty"` Parameters map[string]string `json:"parameters,omitempty"` PropagateAuthenticationContext bool `json:"propagateAuthenticationContext,omitempty"` RefID string `json:"refId"` RequiredArtifactIds []string `json:"requiredArtifactIds,omitempty"` RequisiteStageRefIds []string `json:"requisiteStageRefIds"` RestrictExecutionDuringTimeWindow bool `json:"restrictExecutionDuringTimeWindow,omitempty"` RestrictedExecutionWindow *StageExecutionWindow `json:"restrictedExecutionWindow,omitempty"` SkipExpressionEvaluation bool `json:"skipExpressionEvaluation,omitempty"` Source string `json:"source,omitempty"` SendNotifications bool `json:"sendNotifications,omitempty"` StageEnabled *StageEnabled `json:"stageEnabled,omitempty"` StageTimeoutMs int `json:"stageTimeoutMs,omitempty"` TrafficManagement *PipelineTrafficManagement `json:"trafficManagement,omitempty"` Type string `json:"type"` }
Stages represents full stages config
type StageEnabled ¶
StageEnabled represents stage enabled config
type StageExecutionWindow ¶
type StageExecutionWindow struct { Days []int `json:"days"` Jitter *StageExecutionWindowJitter `json:"jitter,omitempty"` Whitelist *[]*StageExecutionWindowWhitelist `json:"whitelist"` }
StageExecutionWindow when to execute pipeline stage
type StageExecutionWindowJitter ¶
type StageExecutionWindowJitter struct { Enabled bool `json:"enabled"` MaxDelay int `json:"maxDelay"` MinDelay int `json:"minDelay"` SkipManual bool `json:"skipManual"` }
StageExecutionWindowJitter random jitter to add to execution window
type StageExecutionWindowWhitelist ¶
type StageExecutionWindowWhitelist struct { EndHour int `json:"endHour"` EndMin int `json:"endMin"` StartHour int `json:"startHour"` StartMin int `json:"startMin"` }
StageExecutionWindowWhitelist which hours to deploy
type Trigger ¶
type Trigger struct { Account string `json:"account,omitempty"` Application string `json:"application,omitempty"` Branch string `json:"branch,omitempty"` Enabled bool `json:"enabled"` ExpectedArtifactIds []string `json:"expectedArtifactIds"` Organization string `json:"organization,omitempty"` Pipeline string `json:"pipeline,omitempty"` Project string `json:"project,omitempty"` Registry string `json:"registry,omitempty"` Repository string `json:"repository,omitempty"` RunAsUser string `json:"runAsUser"` Secret string `json:"secret,omitempty"` Slug string `json:"slug,omitempty"` Source string `json:"source,omitempty"` Status []string `json:"status,omitempty"` Tag string `json:"tag,omitempty"` Type string `json:"type"` }
Triggers represents full trigers config
Source Files ¶
- configuration_properties.go
- github_assignees.go
- github_pull_request_options.go
- k8s_affinity.go
- k8s_annotations.go
- k8s_containers.go
- k8s_deployment.go
- k8s_labels.go
- k8s_probes.go
- k8s_resources.go
- k8s_service.go
- k8s_service_account.go
- k8s_strategy.go
- k8s_tolerations.go
- k8s_volume_mounts.go
- k8s_volumes.go
- spinnaker_application.go
- spinnaker_application_permissions.go
- spinnaker_moniker.go
- spinnaker_notification.go
- spinnaker_pipeline.go
- spinnaker_pipeline_artifact.go
- spinnaker_pipeline_expected_artifacts.go
- spinnaker_pipeline_parameter.go
- spinnaker_pipeline_stage.go
- spinnaker_pipeline_trigger.go
- spinnaker_stage_execution_window.go
- spinnaker_traffic_management.go
- spinnaker_traffic_management_options.go