api

package
v0.55.0 Latest Latest
Warning

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

Go to latest
Published: Jan 5, 2021 License: Apache-2.0 Imports: 9 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AKSAsset added in v0.16.0

type AKSAsset struct {
	AssetShared `json:",inline" yaml:",inline" hcl:",inline"`
	Azure       `json:",inline" yaml:",inline" hcl:",inline"`

	ClusterName       string `json:"cluster_name" yaml:"cluster_name" hcl:"cluster_name"`
	KubernetesVersion string `json:"kubernetes_version" yaml:"kubernetes_version" hcl:"kubernetes_version"`
	PublicKey         string `json:"public_key" yaml:"public_key" hcl:"public_key"`
	NodeCount         string `json:"node_count" yaml:"node_count" hcl:"node_count"`
	NodeType          string `json:"node_type" yaml:"node_type" hcl:"node_type"`
	DiskGB            string `json:"disk_gb" yaml:"disk_gb" hcl:"disk_gb"`
}

AKSAsset

type Asset

type Asset struct {
	Inline      *InlineAsset      `json:"inline,omitempty" yaml:"inline,omitempty" hcl:"inline,omitempty"`
	Docker      *DockerAsset      `json:"docker,omitempty" yaml:"docker,omitempty" hcl:"docker,omitempty"`
	DockerLayer *DockerLayerAsset `json:"dockerlayer,omitempty" yaml:"dockerlayer,omitempty" hcl:"dockerlayer,omitempty"`
	GitHub      *GitHubAsset      `json:"github,omitempty" yaml:"github,omitempty" hcl:"github,omitempty"`
	Web         *WebAsset         `json:"web,omitempty" yaml:"web,omitempty" hcl:"web,omitempty"`
	Helm        *HelmAsset        `json:"helm,omitempty" yaml:"helm,omitempty" hcl:"helm,omitempty"`
	Local       *LocalAsset       `json:"local,omitempty" yaml:"local,omitempty" hcl:"local,omitempty"`
	Terraform   *TerraformAsset   `json:"terraform,omitempty" yaml:"terraform,omitempty" hcl:"terraform,omitempty"`
	AmazonEKS   *EKSAsset         `json:"amazon_eks,omitempty" yaml:"amazon_eks,omitempty" hcl:"amazon_eks,omitempty"`
	GoogleGKE   *GKEAsset         `json:"google_gke,omitempty" yaml:"google_gke,omitempty" hcl:"google_gke,omitempty"`
	AzureAKS    *AKSAsset         `json:"azure_aks,omitempty" yaml:"azure_aks,omitempty" hcl:"azure_aks,omitempty"`
}

Asset is a spec to generate one or more deployment assets

type AssetShared

type AssetShared struct {
	// Dest is where this file should be output
	Dest string `json:"dest,omitempty" yaml:"dest,omitempty" hcl:"dest,omitempty"`
	// Mode is where this file should be output
	Mode os.FileMode `json:"mode,omitempty" yaml:"mode,omitempty" hcl:"mode,omitempty"`
	// Description is an optional description
	Description string `json:"description,omitempty" yaml:"description,omitempty" hcl:"description,omitempty"`
	// When is an optional boolean to determine whether to pull asset
	When string `json:"when,omitempty" yaml:"when,omitempty" hcl:"when,omitempty"`
}

AssetShared is attributes common to all assets

type Assets

type Assets struct {
	V1 []Asset `json:"v1,omitempty" yaml:"v1,omitempty" hcl:"v1,omitempty"`
}

Assets is the top level assets object

type Azure added in v0.16.0

type Azure struct {
	TenantID               string `json:"tenant_id" yaml:"tenant_id" hcl:"tenant_id"`
	SubscriptionID         string `json:"subscription_id" yaml:"subscription_id" hcl:"subscription_id"`
	ServicePrincipalID     string `json:"service_principal_id" yaml:"service_principal_id" hcl:"service_principal_id"`
	ServicePrincipalSecret string `json:"service_principal_secret" yaml:"service_principal_secret" hcl:"service_principal_secret"`
	ResourceGroupName      string `json:"resource_group_name" yaml:"resource_group_name" hcl:"resource_group_name"`
	Location               string `json:"location" yaml:"location" hcl:"location"`
}

type Config

type Config struct {
	V1 []libyaml.ConfigGroup `json:"v1,omitempty" yaml:"v1,omitempty" hcl:"v1,omitempty"`
}

Config is the top level config object

type ConfigStep

type ConfigStep struct {
	StepShared `json:",inline" yaml:",inline" hcl:",inline"`
}

func (*ConfigStep) Shared

func (c *ConfigStep) Shared() *StepShared

func (ConfigStep) ShortName

func (c ConfigStep) ShortName() string

type DockerAsset

type DockerAsset struct {
	AssetShared `json:",inline" yaml:",inline" hcl:",inline"`
	Image       string `json:"image" yaml:"image" hcl:"image"`
	Source      string `json:"source" yaml:"source" hcl:"source"`
}

DockerAsset is an asset that declares a docker image

type DockerLayerAsset

type DockerLayerAsset struct {
	DockerAsset `json:",inline" yaml:",inline" hcl:",inline"`
	Layer       string `json:"layer" yaml:"layer" hcl:"layer"`
}

DockerLayerAsset is an asset that will unpack a docker layer at `dest`

type EKSAsset

type EKSAsset struct {
	AssetShared `json:",inline" yaml:",inline" hcl:",inline"`

	ClusterName string `json:"cluster_name,omitempty" yaml:"cluster_name,omitempty" hcl:"cluster_name,omitempty"`
	Region      string `json:"region,omitempty" yaml:"region,omitempty" hcl:"region,omitempty"`

	CreatedVPC        *amazoneks.EKSCreatedVPC        `json:"created_vpc,omitempty" yaml:"created_vpc,omitempty" hcl:"created_vpc,omitempty"`
	ExistingVPC       *amazoneks.EKSExistingVPC       `json:"existing_vpc,omitempty" yaml:"existing_vpc,omitempty" hcl:"existing_vpc,omitempty"`
	AutoscalingGroups []amazoneks.EKSAutoscalingGroup `json:"autoscaling_groups,omitempty" yaml:"autoscaling_groups,omitempty" hcl:"autoscaling_groups,omitempty"`
}

EKSAsset

type EntitlementLabel added in v0.47.0

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

EntitlementLabel is a single entitlement label

type EntitlementValue added in v0.24.0

type EntitlementValue struct {
	Key    string             `json:"key"`
	Value  string             `json:"value"`
	Labels []EntitlementLabel `json:"labels"`
}

EntitlementValue is a single entitlement value

type Entitlements added in v0.24.0

type Entitlements struct {
	Meta         Meta               `json:"meta"`
	Serialized   string             `json:"serialized"`
	Signature    string             `json:"signature"`
	Values       []EntitlementValue `json:"values,omitempty"`
	Utilizations []Utilization      `json:"utilizations,omitempty"`
}

Entitlements is a signed object containing entitlments info+metadata

type GCPProvider

type GCPProvider struct {
	Credentials string `json:"credentials,omitempty" yaml:"credentials,omitempty" hcl:"credentials,omitempty"`
	Project     string `json:"project,omitempty" yaml:"project,omitempty" hcl:"project,omitempty"`
	Region      string `json:"region,omitempty" yaml:"region,omitempty" hcl:"region,omitempty"`
}

type GKEAsset

type GKEAsset struct {
	AssetShared `json:",inline" yaml:",inline" hcl:",inline"`

	GCPProvider `json:",inline" yaml:",inline" hcl:",inline"`

	// ClusterName required
	ClusterName      string `json:"cluster_name" yaml:"cluster_name" hcl:"cluster_name"`
	Zone             string `json:"zone,omitempty" yaml:"zone,omitempty" hcl:"zone,omitempty"`
	InitialNodeCount string `json:"initial_node_count,omitempty" yaml:"initial_node_count,omitempty" hcl:"initial_node_count,omitempty"`
	MachineType      string `json:"machine_type,omitempty" yaml:"machine_type,omitempty" hcl:"machine_type,omitempty"`
	AdditionalZones  string `json:"additional_zones,omitempty" yaml:"additional_zones,omitempty" hcl:"additional_zones,omitempty"`
	MinMasterVersion string `json:"min_master_version,omitempty" yaml:"min_master_version,omitempty" hcl:"min_master_version,omitempty"`
}

GKEAsset

type GitHubAsset

type GitHubAsset struct {
	AssetShared `json:",inline" yaml:",inline" hcl:",inline"`
	Repo        string `json:"repo" yaml:"repo" hcl:"repo"`
	Ref         string `json:"ref" yaml:"ref" hcl:"ref"`
	Path        string `json:"path" yaml:"path" hcl:"path"`
	Source      string `json:"source" yaml:"source" hcl:"source"`
	Proxy       bool   `json:"proxy" yaml:"proxy" hcl:"proxy"`
	StripPath   string `json:"strip_path" yaml:"strip_path" hcl:"strip_path"`
}

GitHubAsset is an asset whose contents are specified directly in the Spec

type GithubContent

type GithubContent struct {
	Repo  string       `json:"repo" yaml:"repo" hcl:"repo" meta:"repo"`
	Path  string       `json:"path" yaml:"path" hcl:"path" meta:"path"`
	Ref   string       `json:"ref" yaml:"ref" hcl:"ref" meta:"ref"`
	Files []GithubFile `json:"files" yaml:"files" hcl:"files" meta:"files"`
}

func (GithubContent) String added in v0.29.0

func (g GithubContent) String() string

Not using json.Marshal because I want to omit the file data, and don't feel like writing a custom marshaller

type GithubFile

type GithubFile struct {
	Name string `json:"name" yaml:"name" hcl:"name" meta:"name"`
	Path string `json:"path" yaml:"path" hcl:"path" meta:"path"`
	Sha  string `json:"sha" yaml:"sha" hcl:"sha" meta:"sha"`
	Size int64  `json:"size" yaml:"size" hcl:"size" meta:"size"`
	Data string `json:"data" yaml:"data" hcl:"data" meta:"data"`
}

GithubFile

func (GithubFile) String added in v0.29.0

func (file GithubFile) String() string

type HelmAsset

type HelmAsset struct {
	AssetShared `json:",inline" yaml:",inline" hcl:",inline"`
	Values      map[string]interface{} `json:"values" yaml:"values" hcl:"values"`
	HelmOpts    []string               `json:"helm_opts" yaml:"helm_opts" hcl:"helm_opts"`
	// GitHub references a github asset from which to pull the chart
	GitHub *GitHubAsset `json:"github,omitempty" yaml:"github,omitempty" hcl:"github,omitempty"`
	// HelmFetch pulls a chart as 'helm fetch' would
	HelmFetch *HelmFetch `json:"helm_fetch,omitempty" yaml:"helm_fetch,omitempty" hcl:"helm_fetch,omitempty"`
	// Local is an escape hatch, most impls will use github or some sort of ChartMuseum thing
	Local      *LocalHelmOpts `json:"local,omitempty" yaml:"local,omitempty" hcl:"local,omitempty"`
	ValuesFrom *ValuesFrom    `json:"values_from,omitempty" yaml:"values_from,omitempty" hcl:"values_from,omitempty"`
	Upstream   string         `json:"upstream,omitempty" yaml:"upstream,omitempty" hcl:"upstream,omitempty"`
}

HelmAsset is an asset that declares a helm chart on github

type HelmFetch

type HelmFetch struct {
	ChartRef string `json:"chart_ref" yaml:"chart_ref" hcl:"chart_ref"`
	RepoURL  string `json:"repo_url" yaml:"repo_url" hcl:"repo_url"`
	Version  string `json:"version" yaml:"version" hcl:"version"`
}

type HelmIntro

type HelmIntro struct {
	IsUpdate   bool
	StepShared `json:",inline" yaml:",inline" hcl:",inline"`
}

HelmIntro is a lifecycle step to render persisted README.md in the .ship folder

func (*HelmIntro) Shared

func (h *HelmIntro) Shared() *StepShared

func (*HelmIntro) ShortName

func (h *HelmIntro) ShortName() string

type HelmValues

type HelmValues struct {
	StepShared `json:",inline" yaml:",inline" hcl:",inline"`
	Path       string                  `json:"path,omitempty" yaml:"path,omitempty" hcl:"path,omitempty"`
	Readme     *HelmValuesReadmeSource `json:"readme,omitempty" yaml:"readme,omitempty" hcl:"readme,omitempty"`
}

HelmValues is a lifecycle step to render persisted values.yaml in the .ship folder and save user input changes to values.yaml

func (*HelmValues) Shared

func (h *HelmValues) Shared() *StepShared

func (*HelmValues) ShortName

func (h *HelmValues) ShortName() string

type HelmValuesReadmeSource added in v0.47.0

type HelmValuesReadmeSource struct {
	Contents string `json:"contents,omitempty" yaml:"contents,omitempty" hcl:"contents,omitempty"`
}

A HelmValuesReadmeSource tells ship how to populate the readme file for the helm values editor. if not provided, ship will use the default behavior of pulling the readme from the root of the default target chart

type Image

type Image struct {
	URL      string `json:"url" yaml:"url" hcl:"url" meta:"url"`
	Source   string `json:"source" yaml:"source" hcl:"source" meta:"source"`
	AppSlug  string `json:"appSlug" yaml:"appSlug" hcl:"appSlug" meta:"appSlug"`
	ImageKey string `json:"imageKey" yaml:"imageKey" hcl:"imageKey" meta:"imageKey"`
}

Image

type InlineAsset

type InlineAsset struct {
	AssetShared `json:",inline" yaml:",inline" hcl:",inline"`
	Contents    string `json:"contents" yaml:"contents" hcl:"contents"`
}

InlineAsset is an asset whose contents are specified directly in the Spec

type KubectlApply

type KubectlApply struct {
	StepShared `json:",inline" yaml:",inline" hcl:",inline"`
	Path       string `json:"path,omitempty" yaml:"path,omitempty" hcl:"path,omitempty"`
	Kubeconfig string `json:"kubeconfig,omitempty" yaml:"kubeconfig,omitempty" hcl:"kubeconfig,omitempty"`
}

KubectlApply is a lifeycle step to execute `apply` for a kubeconfig asset

func (*KubectlApply) Shared

func (k *KubectlApply) Shared() *StepShared

func (*KubectlApply) ShortName

func (k *KubectlApply) ShortName() string

type Kustomize

type Kustomize struct {
	StepShared `json:",inline" yaml:",inline" hcl:",inline"`
	Base       string `json:"base,omitempty" yaml:"base,omitempty" hcl:"base,omitempty"`
	Dest       string `json:"dest,omitempty" yaml:"dest,omitempty" hcl:"dest,omitempty"`
	Overlay    string `json:"overlay,omitempty" yaml:"overlay,omitempty" hcl:"overlay,omitempty"`
}

Kustomize is a lifecycle step to generate overlays for generated assets. It does not take a kustomization.yml, rather it will generate one in the .ship/ folder

func (*Kustomize) OverlayPath added in v0.16.0

func (k *Kustomize) OverlayPath() string

func (*Kustomize) Shared

func (k *Kustomize) Shared() *StepShared

func (*Kustomize) ShortName

func (k *Kustomize) ShortName() string

func (*Kustomize) TempRenderPath added in v0.47.0

func (k *Kustomize) TempRenderPath() string

type KustomizeIntro

type KustomizeIntro struct {
	StepShared `json:",inline" yaml:",inline" hcl:",inline"`
}

KustomizeIntro is a lifeycle step to display an informative intro page for kustomize

func (*KustomizeIntro) Shared

func (k *KustomizeIntro) Shared() *StepShared

func (*KustomizeIntro) ShortName

func (k *KustomizeIntro) ShortName() string

type License added in v0.47.0

type License struct {
	ID        string    `json:"id" yaml:"id" hcl:"id" meta:"id"`
	Assignee  string    `json:"assignee" yaml:"assignee" hcl:"assignee" meta:"assignee"`
	CreatedAt time.Time `json:"createdAt" yaml:"createdAt" hcl:"createdAt" meta:"created-at"`
	ExpiresAt time.Time `json:"expiresAt" yaml:"expiresAt" hcl:"expiresAt" meta:"expires-at"`
	Type      string    `json:"type" yaml:"type" hcl:"type" meta:"type"`
}

type Lifecycle

type Lifecycle struct {
	V1 []Step `json:"v1,omitempty" yaml:"v1,omitempty" hcl:"v1,omitempty"`
}

A Lifecycle is the top-level lifecycle object

type LocalAsset added in v0.27.0

type LocalAsset struct {
	AssetShared `json:",inline" yaml:",inline" hcl:",inline"`
	Path        string `json:"path" yaml:"path" hcl:"path"`
}

LocalAsset is an asset whose contents are on the local fs

type LocalHelmOpts

type LocalHelmOpts struct {
	ChartRoot string `json:"chart_root" yaml:"chart_root" hcl:"chart_root"`
}

LocalHelmOpts specifies a helm chart that should be templated using other assets that are already present at `ChartRoot`

type Message

type Message struct {
	StepShared `json:",inline" yaml:",inline" hcl:",inline"`
	Contents   string `json:"contents" yaml:"contents" hcl:"contents"`
	Level      string `json:"level,omitempty" yaml:"level,omitempty" hcl:"level,omitempty"`
}

Message is a lifeycle step to print a message

func (*Message) Shared

func (m *Message) Shared() *StepShared

func (*Message) ShortName

func (m *Message) ShortName() string

type Meta added in v0.24.0

type Meta struct {
	LastUpdated time.Time `json:"lastUpdated"`
	CustomerID  string    `json:"customerID"`
}

Meta describes metadata about an entitlements payload

type Release

type Release struct {
	Metadata ReleaseMetadata
	Spec     Spec
}

Release

func (*Release) FindRenderRoot added in v0.21.0

func (r *Release) FindRenderRoot() string

func (*Release) FindRenderStep added in v0.16.0

func (r *Release) FindRenderStep() *Render

type ReleaseMetadata

type ReleaseMetadata struct {
	ReleaseID       string          `json:"releaseId" yaml:"releaseId" hcl:"releaseId" meta:"release-id"`
	Sequence        int64           `json:"sequence" yaml:"sequence" hcl:"sequence" meta:"sequence"`
	CustomerID      string          `json:"customerId" yaml:"customerId" hcl:"customerId" meta:"customer-id"`
	InstallationID  string          `json:"installation" yaml:"installation" hcl:"installation" meta:"installation-id"`
	ChannelID       string          `json:"channelId" yaml:"channelId" hcl:"channelId" meta:"channel-id"`
	AppSlug         string          `json:"appSlug" yaml:"appSlug" hcl:"appSlug" meta:"app-slug"`
	LicenseID       string          `json:"licenseId" yaml:"licenseId" hcl:"licenseId" meta:"license-id"`
	ChannelName     string          `json:"channelName" yaml:"channelName" hcl:"channelName" meta:"channel-name"`
	ChannelIcon     string          `json:"channelIcon" yaml:"channelIcon" hcl:"channelIcon" meta:"channel-icon"`
	Semver          string          `json:"semver" yaml:"semver" hcl:"semver" meta:"release-version"`
	ReleaseNotes    string          `json:"releaseNotes" yaml:"releaseNotes" hcl:"releaseNotes" meta:"release-notes"`
	Created         string          `json:"created" yaml:"created" hcl:"created" meta:"release-date"`
	Installed       string          `json:"installed" yaml:"installed" hcl:"installed" meta:"install-date"`
	RegistrySecret  string          `json:"registrySecret" yaml:"registrySecret" hcl:"registrySecret" meta:"registry-secret"`
	Images          []Image         `json:"images" yaml:"images" hcl:"images" meta:"images"`
	GithubContents  []GithubContent `json:"githubContents" yaml:"githubContents" hcl:"githubContents" meta:"githubContents"`
	ShipAppMetadata ShipAppMetadata `json:"shipAppMetadata" yaml:"shipAppMetadata" hcl:"shipAppMetadata" meta:"shipAppMetadata"`
	Entitlements    Entitlements    `json:"entitlements" yaml:"entitlements" hcl:"entitlements" meta:"entitlements"`
	EntitlementSpec string          `json:"entitlementSpec" yaml:"entitlementSpec" hcl:"entitlementSpec" meta:"entitlementSpec"`
	ConfigSpec      string          `json:"configSpec" yaml:"configSpec" hcl:"configSpec" meta:"configSpec"`
	CollectSpec     string          `json:"collectSpec" yaml:"collectSpec" hcl:"collectSpec" meta:"collectSpec"`
	AnalyzeSpec     string          `json:"analyzeSpec" yaml:"analyzeSpec" hcl:"analyzeSpec" meta:"analyzeSpec"`
	Type            string          `json:"type" yaml:"type" hcl:"type" meta:"type"`
	License         License         `json:"license" yaml:"license" hcl:"license" meta:"license"`
}

ReleaseMetadata

func (ReleaseMetadata) ReleaseName

func (r ReleaseMetadata) ReleaseName() string

type Render

type Render struct {
	StepShared `json:",inline" yaml:",inline" hcl:",inline"`
	Root       string  `json:"root,omitempty" yaml:"root,omitempty" hcl:"root,omitempty"`
	Assets     *Assets `json:"assets,omitempty" yaml:"assets,omitempty" hcl:"assets,omitempty"`
}

Render is a lifeycle step to collect config and render assets

func (*Render) RenderRoot added in v0.21.0

func (r *Render) RenderRoot() string

func (*Render) Shared

func (r *Render) Shared() *StepShared

func (*Render) ShortName

func (r *Render) ShortName() string

type ShipAppMetadata

type ShipAppMetadata struct {
	Description  string `json:"description" yaml:"description" hcl:"description" meta:"description"`
	Version      string `json:"version" yaml:"version" hcl:"version" meta:"version"`
	Icon         string `json:"icon" yaml:"icon" hcl:"icon" meta:"icon"`
	Name         string `json:"name" yaml:"name" hcl:"name" meta:"name"`
	Readme       string `json:"readme" yaml:"readme" hcl:"readme" meta:"readme"`
	URL          string `json:"url" yaml:"url" hcl:"url" meta:"url"`
	ContentSHA   string `json:"contentSHA" yaml:"contentSHA" hcl:"contentSHA" meta:"contentSHA"`
	ReleaseNotes string `json:"releaseNotes" yaml:"releaseNotes" hcl:"releaseNotes" meta:"release-notes"`
}

type Spec

type Spec struct {
	Assets    Assets    `json:"assets" yaml:"assets" hcl:"asset"`
	Lifecycle Lifecycle `json:"lifecycle" yaml:"lifecycle" hcl:"lifecycle"`
	Config    Config    `json:"config" yaml:"config" hcl:"config"`
}

Spec is the top level Ship document that defines an application

type Step

type Step struct {
	Message        *Message        `json:"message,omitempty" yaml:"message,omitempty" hcl:"message,omitempty"`
	Config         *ConfigStep     `json:"config,omitempty" yaml:"config,omitempty" hcl:"config,omitempty"`
	Render         *Render         `json:"render,omitempty" yaml:"render,omitempty" hcl:"render,omitempty"`
	Terraform      *Terraform      `json:"terraform,omitempty" yaml:"terraform,omitempty" hcl:"terraform,omitempty"`
	Kustomize      *Kustomize      `json:"kustomize,omitempty" yaml:"kustomize,omitempty" hcl:"kustomize,omitempty"`
	Unfork         *Unfork         `json:"unfork,omitempty" yaml:"unfork,omitempty" hcl:"unfork,omitempty"`
	KustomizeIntro *KustomizeIntro `json:"kustomizeIntro,omitempty" yaml:"kustomizeIntro,omitempty" hcl:"kustomizeIntro,omitempty"`
	HelmIntro      *HelmIntro      `json:"helmIntro,omitempty" yaml:"helmIntro,omitempty" hcl:"helmIntro,omitempty"`
	HelmValues     *HelmValues     `json:"helmValues,omitempty" yaml:"helmValues,omitempty" hcl:"helmValues,omitempty"`
	KubectlApply   *KubectlApply   `json:"kubectlApply,omitempty" yaml:"kubectlApply,omitempty" hcl:"kubectlApply,omitempty"`
}

Step represents vendor-customized configuration steps & messaging

func (Step) GetStep

func (s Step) GetStep() StepDetails

func (Step) Shared

func (s Step) Shared() *StepShared

func (Step) ShortName

func (s Step) ShortName() string

func (*Step) String

func (s *Step) String() string

type StepDetails

type StepDetails interface {
	Shared() *StepShared
	ShortName() string
}

type StepShared

type StepShared struct {
	ID          string   `json:"id,omitempty" yaml:"id,omitempty" hcl:",key"`
	Description string   `json:"description,omitempty" yaml:"description,omitempty" hcl:"description,omitempty"`
	Requires    []string `json:"requires,omitempty" yaml:"requires,omitempty" hcl:"requires,omitempty"`
	Invalidates []string `json:"invalidates,omitempty" yaml:"invalidates,omitempty" hcl:"invalidates,omitempty"`
}

type Terraform

type Terraform struct {
	StepShared `json:",inline" yaml:",inline" hcl:",inline"`
	Path       string `json:"path,omitempty" yaml:"path,omitempty" hcl:"path,omitempty"`
	When       string `json:"when,omitempty" yaml:"when,omitempty" hcl:"when,omitempty"`
}

Terraform is a lifeycle step to execute `apply` for a runbook's terraform asset

func (*Terraform) Shared

func (t *Terraform) Shared() *StepShared

func (*Terraform) ShortName

func (t *Terraform) ShortName() string

type TerraformAsset

type TerraformAsset struct {
	AssetShared `json:",inline" yaml:",inline" hcl:",inline"`
	// GitHub references a github asset from which to pull a terraform module
	GitHub *GitHubAsset `json:"github" yaml:"github" hcl:"github"`
	// Inline allows a vendor to specify a terraform module inline in ship
	Inline string `json:"inline,omitempty" yaml:"inline,omitempty" hcl:"inline,omitempty"`
}

TerraformAsset

type Unfork added in v0.27.0

type Unfork struct {
	StepShared   `json:",inline" yaml:",inline" hcl:",inline"`
	UpstreamBase string `json:"upstreamBase" yaml:"upstreamBase" hcl:"upstreamBase"`
	ForkedBase   string `json:"forkedBase" yaml:"forkedBase" hcl:"forkedBase"`
	Dest         string `json:"dest,omitempty" yaml:"dest,omitempty" hcl:"dest,omitempty"`
	Overlay      string `json:"overlay,omitempty" yaml:"overlay,omitempty" hcl:"overlay,omitempty"`
}

Unfork is a lifecycle step to generate patches and overlays for two generates assets that consist of raw K8S YAML

func (*Unfork) OverlayPath added in v0.27.0

func (k *Unfork) OverlayPath() string

func (*Unfork) Shared added in v0.27.0

func (u *Unfork) Shared() *StepShared

func (*Unfork) ShortName added in v0.27.0

func (k *Unfork) ShortName() string

type Utilization added in v0.24.0

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

Utilization is a single utilization value

type ValuesFrom

type ValuesFrom struct {
	Path string `json:"path,omitempty" yaml:"path,omitempty" hcl:"path,omitempty"`
	// SaveToState is used when a HelmValues step is not part of the lifecycle (e.g. Unfork) in order to save
	// the merged helm values to state.
	SaveToState bool `json:"save_to_state,omitempty" yaml:"save_to_state,omitempty" hcl:"save_to_state,omitempty"`
}

type ValuesFromLifecycle

type ValuesFromLifecycle struct{}

type WebAsset

type WebAsset struct {
	AssetShared `json:",inline" yaml:",inline" hcl:",inline"`
	Body        string              `json:"body" yaml:"body" hcl:"body"`
	BodyFormat  string              `json:"bodyFormat" yaml:"bodyFormat" hcl:"bodyFormat"`
	Headers     map[string][]string `json:"headers" yaml:"headers" hcl:"headers"`
	Method      string              `json:"method" yaml:"method" hcl:"method"`
	URL         string              `json:"url" yaml:"url" hcl:"url"`
}

WebAsset is an asset whose contents are specified by the HTML at the corresponding URL

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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