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