Documentation ¶
Overview ¶
Package manifest represents a valid BOSH manifest and provides funcs to load it, marshal it and access its fields.
Index ¶
- Constants
- func ExtractWatchTime(rawWatchTime string) (string, error)
- func RenderJobTemplates(boshManifestPath string, jobsDir string, jobsOutputDir string, ...) error
- func SlashedVariable(name string) bool
- type AddOn
- type AddOnJob
- type AddOnPlacementJob
- type AddOnPlacementRules
- type AddOnStemcell
- type Agent
- type AgentEnv
- type AgentEnvBoshConfig
- type AgentSettings
- type AuthType
- type BPMInfo
- type BPMInstanceGroup
- type Disk
- type Disks
- type Feature
- type IPv6
- type InstanceGroup
- type InstanceGroupProperties
- type InstanceGroupQuarks
- type InstanceGroupResolver
- func (igr *InstanceGroupResolver) BPMInfo() (BPMInfo, error)
- func (igr *InstanceGroupResolver) CollectQuarksLinks(linksPath string) error
- func (igr *InstanceGroupResolver) Manifest() (Manifest, error)
- func (igr *InstanceGroupResolver) Resolve(initialRollout bool) error
- func (igr *InstanceGroupResolver) SaveLinks(path string) error
- type InstanceGroupType
- type InstanceGroups
- type Job
- type JobDir
- type JobInstance
- type JobLink
- type JobLinkProperties
- type JobProperties
- type JobSpec
- type JobSpecLink
- type JobSpecProvider
- type Manifest
- func (m *Manifest) ApplyAddons(log *zap.SugaredLogger) error
- func (m *Manifest) ApplyUpdateBlock()
- func (m *Manifest) GetJobOS(instanceGroupName, jobName string) (string, error)
- func (m *Manifest) GetReleaseImage(instanceGroupName, jobName string) (string, error)
- func (m *Manifest) ImplicitVariables() ([]string, error)
- func (m *Manifest) ListMissingProviders() map[string]bool
- func (m *Manifest) Marshal() ([]byte, error)
- func (m *Manifest) PropagateGlobalUpdateBlockToIGs()
- func (m *Manifest) SHA1() (string, error)
- type MigratedFrom
- type Network
- type OpsPatch
- type OpsPatches
- type Port
- type PostStartCondition
- type PreRenderOps
- type PreRenderScripts
- type Quarks
- type QuarksLink
- type Release
- type ReleaseImageProvider
- type ReleaseStemcell
- type Stemcell
- type Update
- type VMResource
- type Variable
- type VariableOptions
Constants ¶
const ( // DataDir the mount path for the data directory. DataDir = "/var/vcap/data" // SysDir the mount path for the sys directory. SysDir = "/var/vcap/sys" // JobSpecFilename is the name of the job spec manifest in an unpacked BOSH release JobSpecFilename = "job.MF" )
const ( ClientAuth AuthType = "client_auth" ServerAuth AuthType = "server_auth" IGTypeService InstanceGroupType = "service" IGTypeErrand InstanceGroupType = "errand" IGTypeAutoErrand InstanceGroupType = "auto-errand" IGTypeDefault InstanceGroupType = "" // BoshDNSAddOnName name of bosh dns addon. BoshDNSAddOnName = "bosh-dns" BOSHDNSAliasesAddOnName = "bosh-dns-aliases" )
AuthType values from BOSH deployment manifest
const (
// DesiredManifestKeyName is the name of the key in desired manifest secret
DesiredManifestKeyName = "manifest.yaml"
)
const LinkFile = "link"
LinkFile is the property in the secrets data, containing the link properties yaml
const QuarksLinksProperty = "quarks_links"
QuarksLinksProperty is the key for the manifest.Properties containing all external link secrets
Variables ¶
This section is empty.
Functions ¶
func ExtractWatchTime ¶
ExtractWatchTime computes the watch time from a range or an absolute value This parses the time string used in the BOSH manifest's update config: https://bosh.io/docs/manifest-v2/#update
func RenderJobTemplates ¶
func RenderJobTemplates( boshManifestPath string, jobsDir string, jobsOutputDir string, instanceGroupName string, podIP net.IP, azIndex int, podOrdinal int, replicas int, initialRollout bool, ) error
RenderJobTemplates will render templates for all jobs of the instance group https://bosh.io/docs/create-release/#job-specs boshManifest is a resolved manifest for a single instance group
qsts pod mutator sets pod-ordinal (to name suffix of the pod) replicas is set to 1 in the container factory azIndex is set to 1 in the container factory qsts controller overwrites replicas, if InjectReplicasEnv is true, otherwise replicas is 1. qsts controller overwrites azIndex (1..n), or to 0 if ig.AZs is null
func SlashedVariable ¶
SlashedVariable returns true if the variable name contains a slash. This could be a https://bosh.io/docs/cli-int/#absolute explicit variable, but more likely it's the '/' syntax that was introduced to specify the key in a secret, e.g. 'ca.private_key' for *implicit variables*. Explicit variables use a dot to separate the secret name from the key.
Types ¶
type AddOn ¶
type AddOn struct { Name string `json:"name"` Jobs []AddOnJob `json:"jobs"` Include *AddOnPlacementRules `json:"include,omitempty"` Exclude *AddOnPlacementRules `json:"exclude,omitempty"` }
AddOn from BOSH deployment manifest
type AddOnJob ¶
type AddOnJob struct { Name string `json:"name"` Release string `json:"release"` Properties JobProperties `json:"properties,omitempty"` Consumes map[string]interface{} `json:"consumes,omitempty"` Provides map[string]interface{} `json:"provides,omitempty"` }
AddOnJob from BOSH deployment manifest
type AddOnPlacementJob ¶
AddOnPlacementJob from BOSH deployment manifest
type AddOnPlacementRules ¶
type AddOnPlacementRules struct { Stemcell []*AddOnStemcell `json:"stemcell,omitempty"` Deployments []string `json:"deployments,omitempty"` Jobs []*AddOnPlacementJob `json:"release,omitempty"` InstanceGroup []string `json:"instance_groups,omitempty"` Networks []string `json:"networks,omitempty"` Teams []string `json:"teams,omitempty"` Lifecycle InstanceGroupType `json:"lifecycle,omitempty"` }
AddOnPlacementRules from BOSH deployment manifest
type AddOnStemcell ¶
type AddOnStemcell struct {
OS string `json:"os"`
}
AddOnStemcell from BOSH deployment manifest
type Agent ¶
type Agent struct { Settings AgentSettings `json:"settings,omitempty"` Tmpfs *bool `json:"tmpfs,omitempty"` }
Agent from BOSH deployment manifest.
type AgentEnv ¶
type AgentEnv struct { PersistentDiskFS string `json:"persistent_disk_fs,omitempty"` PersistentDiskMountOptions []string `json:"persistent_disk_mount_options,omitempty"` AgentEnvBoshConfig AgentEnvBoshConfig `json:"bosh,omitempty"` }
AgentEnv from BOSH deployment manifest.
type AgentEnvBoshConfig ¶
type AgentEnvBoshConfig struct { Password string `json:"password,omitempty"` KeepRootPassword string `json:"keep_root_password,omitempty"` RemoveDevTools *bool `json:"remove_dev_tools,omitempty"` RemoveStaticLibraries *bool `json:"remove_static_libraries,omitempty"` SwapSize *int `json:"swap_size,omitempty"` IPv6 IPv6 `json:"ipv6,omitempty"` JobDir *JobDir `json:"job_dir,omitempty"` Agent Agent `json:"agent,omitempty"` }
AgentEnvBoshConfig contains supported settings from the <instance-group>.env.bosh hash of the BOSH deployment manifest.
type AgentSettings ¶
type AgentSettings struct { Annotations map[string]string `json:"annotations,omitempty"` Labels map[string]string `json:"labels,omitempty"` Affinity *corev1.Affinity `json:"affinity,omitempty"` DisableLogSidecar bool `json:"disable_log_sidecar,omitempty" yaml:"disable_log_sidecar,omitempty"` ServiceAccountName string `json:"serviceAccountName,omitempty" yaml:"serviceAccountName,omitempty"` AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty" yaml:"automountServiceAccountToken,omitempty"` ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"` Tolerations []corev1.Toleration `json:"tolerations,omitempty"` EphemeralAsPVC bool `json:"ephemeralAsPVC,omitempty"` Disks Disks `json:"disks,omitempty"` JobBackoffLimit *int32 `json:"jobBackoffLimit,omitempty"` PreRenderOps *PreRenderOps `json:"preRenderOps,omitempty"` InjectReplicasEnv *bool `json:"injectReplicasEnv,omitempty"` TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty" yaml:"terminationGracePeriodSeconds,omitempty"` DNS string `json:"dns,omitempty"` }
AgentSettings from BOSH deployment manifest, '<instance-group>.env.bosh.agent.settings'. These annotations and labels are added to kube resources. Affinity & tolerations are added into the pod's definition.
func (*AgentSettings) Set ¶
func (as *AgentSettings) Set(manifestName, igName, version string)
Set overrides labels and annotations with operator-owned metadata.
type BPMInfo ¶
type BPMInfo struct { InstanceGroup BPMInstanceGroup `json:"instance_group,omitempty"` Configs bpm.Configs `json:"configs,omitempty"` Variables []Variable `json:"variables,omitempty"` }
BPMInfo contains custom information about instance group which matters for quarksStatefulSet pods such as AZ's, instance group count and BPM Configs
type BPMInstanceGroup ¶
type BPMInstanceGroup struct { Name string `json:"name"` Instances int `json:"instances"` AZs []string `json:"azs"` Env AgentEnv `json:"env,omitempty"` }
BPMInstanceGroup is a custom instance group spec that should be included in the BPM secret created by the bpm quarksJob.
type Disk ¶
type Disk struct { PersistentVolumeClaim *corev1.PersistentVolumeClaim `json:"pvc,omitempty"` Volume *corev1.Volume `json:"volume,omitempty"` VolumeMount *corev1.VolumeMount `json:"volumeMount,omitempty"` Filters map[string]string `json:"filters,omitempty"` }
Disk represents a converted BPM disk to k8s resources.
func (*Disk) MatchesFilter ¶
MatchesFilter returns true if the disk matches the filter with one of its Filters.
type Disks ¶
type Disks []Disk
Disks represents a slice of BPMResourceDisk. Part of the BOSH manifest at '<instance-group>.env.bosh.agent.settings.disks'.
func (Disks) BPMMounts ¶
func (disks Disks) BPMMounts() (*corev1.VolumeMount, *corev1.VolumeMount)
BPMMounts returns the volume mounts for the containers
func (Disks) PVCs ¶
func (disks Disks) PVCs() []corev1.PersistentVolumeClaim
PVCs returns a slice of PVC of each BPMResourceDisk
func (Disks) VolumeMounts ¶
func (disks Disks) VolumeMounts() []corev1.VolumeMount
VolumeMounts returns a slice of VolumeMount of each BPMResourceDisk contained in BPMResourceDisks.
type Feature ¶
type Feature struct { ConvergeVariables bool `json:"converge_variables"` RandomizeAzPlacement *bool `json:"randomize_az_placement,omitempty"` UseDNSAddresses *bool `json:"use_dns_addresses,omitempty"` UseTmpfsJobConfig *bool `json:"use_tmpfs_job_config,omitempty"` }
Feature from BOSH deployment manifest
type InstanceGroup ¶
type InstanceGroup struct { Name string `json:"name"` Instances int `json:"instances"` AZs []string `json:"azs"` Jobs []Job `json:"jobs"` VMType string `json:"vm_type,omitempty"` VMExtensions []string `json:"vm_extensions,omitempty"` VMResources *VMResource `json:"vm_resources"` Stemcell string `json:"stemcell"` PersistentDisk *int `json:"persistent_disk,omitempty"` PersistentDiskType string `json:"persistent_disk_type,omitempty"` Networks []*Network `json:"networks,omitempty"` Update *Update `json:"update,omitempty"` MigratedFrom []*MigratedFrom `json:"migrated_from,omitempty"` LifeCycle InstanceGroupType `json:"lifecycle,omitempty"` Properties InstanceGroupProperties `json:"properties,omitempty"` Env AgentEnv `json:"env,omitempty"` }
InstanceGroup from BOSH deployment manifest.
func (*InstanceGroup) IndexedServiceName ¶
func (ig *InstanceGroup) IndexedServiceName(index int, azIndex int) string
IndexedServiceName constructs an indexed service name. It's used to construct the service names other than the headless service.
func (*InstanceGroup) IsErrand ¶
func (ig *InstanceGroup) IsErrand() bool
IsErrand returns true if the instance group is any kind of BOSH errand
func (*InstanceGroup) NameSanitized ¶
func (ig *InstanceGroup) NameSanitized() string
NameSanitized returns the sanitized instance group name.
func (*InstanceGroup) ServicePorts ¶
func (ig *InstanceGroup) ServicePorts() []corev1.ServicePort
ServicePorts returns the service ports used by this instance group
type InstanceGroupProperties ¶
type InstanceGroupProperties struct { Properties map[string]interface{} Quarks InstanceGroupQuarks }
InstanceGroupProperties represents the properties map of a InstanceGroup
func (*InstanceGroupProperties) MarshalJSON ¶
func (p *InstanceGroupProperties) MarshalJSON() ([]byte, error)
MarshalJSON is implemented to support inlining Properties
func (*InstanceGroupProperties) UnmarshalJSON ¶
func (p *InstanceGroupProperties) UnmarshalJSON(b []byte) error
UnmarshalJSON is implemented to support inlining properties
type InstanceGroupQuarks ¶
type InstanceGroupQuarks struct {
RequiredService *string `json:"required_service,omitempty" mapstructure:"required_service"`
}
InstanceGroupQuarks represents the quark property of a InstanceGroup
type InstanceGroupResolver ¶
type InstanceGroupResolver struct {
// contains filtered or unexported fields
}
InstanceGroupResolver gathers data for jobs in the manifest, it handles links and returns a deployment manifest that only has information pertinent to an instance group.
func NewInstanceGroupResolver ¶
func NewInstanceGroupResolver(fs afero.Fs, basedir string, deploymentName string, manifest Manifest, instanceGroupName string) (*InstanceGroupResolver, error)
NewInstanceGroupResolver returns a data gatherer with logging for a given input manifest and instance group
func (*InstanceGroupResolver) BPMInfo ¶
func (igr *InstanceGroupResolver) BPMInfo() (BPMInfo, error)
BPMInfo returns an instance of BPMInfo which consists info about instances, azs, env, variables and a map of all BOSH jobs in the instance group. The output will be persisted by QuarksJob as 'bpm.yaml' in the `<deployment-name>.bpm.<instance-group>-v<version>` secret.
func (*InstanceGroupResolver) CollectQuarksLinks ¶
func (igr *InstanceGroupResolver) CollectQuarksLinks(linksPath string) error
CollectQuarksLinks collects all links from a directory specified by path
func (*InstanceGroupResolver) Manifest ¶
func (igr *InstanceGroupResolver) Manifest() (Manifest, error)
Manifest returns a manifest for a specific instance group only. That manifest includes the gathered data from BPM and links. The output will be persisted by QuarksJob as 'properties.yaml' in the `<deployment-name>.ig-resolved.<instance-group>-v<version>` secret.
func (*InstanceGroupResolver) Resolve ¶
func (igr *InstanceGroupResolver) Resolve(initialRollout bool) error
Resolve collects bpm and link information and enriches the manifest accordingly
Data gathered: * job spec information * job properties * bosh links * bpm yaml file data
func (*InstanceGroupResolver) SaveLinks ¶
func (igr *InstanceGroupResolver) SaveLinks(path string) error
SaveLinks writes provides.json with all links for this instance group
type InstanceGroupType ¶
type InstanceGroupType string
InstanceGroupType represents instance groups types
type InstanceGroups ¶
type InstanceGroups []*InstanceGroup
InstanceGroups represents a slice of pointers of InstanceGroup.
func (InstanceGroups) InstanceGroupByName ¶
func (instanceGroups InstanceGroups) InstanceGroupByName(name string) (*InstanceGroup, bool)
InstanceGroupByName returns the instance group identified by the given name. The second return parameter indicates if the instance group was found.
type Job ¶
type Job struct { Name string `json:"name"` Release string `json:"release"` Consumes map[string]interface{} `json:"consumes,omitempty"` Provides map[string]interface{} `json:"provides,omitempty"` Properties JobProperties `json:"properties,omitempty"` }
Job from BOSH deployment manifest
type JobDir ¶
type JobDir struct { Tmpfs *bool `json:"tmpfs,omitempty"` TmpfsSize string `json:"tmpfs_size,omitempty"` }
JobDir from BOSH deployment manifest.
type JobInstance ¶
type JobInstance struct { Address string `json:"address"` AZ string `json:"az"` Index int `json:"index"` Instance int `json:"instance"` Name string `json:"name"` Bootstrap bool `json:"bootstrap"` ID string `json:"id"` Network map[string]interface{} `json:"networks"` }
JobInstance for data gathering.
type JobLink ¶
type JobLink struct { Address string `json:"address"` Instances []JobInstance `json:"instances"` Properties JobLinkProperties `json:"properties"` }
JobLink describes links inside a job properties quarks.
type JobLinkProperties ¶
type JobLinkProperties map[string]interface{}
JobLinkProperties are the properties from the provides section in a job spec manifest
type JobProperties ¶
type JobProperties struct { Quarks Quarks `json:"quarks"` Properties map[string]interface{} `json:"-"` }
JobProperties represents the properties map of a Job
func (*JobProperties) FromMap ¶
func (p *JobProperties) FromMap(properties map[string]interface{}) error
FromMap populates a JobProperties based on a map
func (*JobProperties) MarshalJSON ¶
func (p *JobProperties) MarshalJSON() ([]byte, error)
MarshalJSON is implemented to support inlining Properties
func (*JobProperties) ToMap ¶
func (p *JobProperties) ToMap() map[string]interface{}
ToMap returns a complete map with all properties, including the quarks key
func (*JobProperties) UnmarshalJSON ¶
func (p *JobProperties) UnmarshalJSON(b []byte) error
UnmarshalJSON is implemented to support inlining properties
type JobSpec ¶
type JobSpec struct { Name string Description string Packages []string Templates map[string]string Properties map[string]struct { Description string Default interface{} Example interface{} } Consumes []JobSpecProvider Provides []JobSpecLink }
JobSpec describes the contents of "job.MF" files
func (JobSpec) RetrieveNestedProperty ¶
RetrieveNestedProperty will generate a nested struct based on a string of the type foo.bar in the provided map It overrides existing property paths that are not of the correct type.
func (JobSpec) RetrievePropertyDefault ¶
RetrievePropertyDefault return the default value of the spec property
type JobSpecLink ¶
JobSpecLink represents a link in the job spec Provides field.
type JobSpecProvider ¶
JobSpecProvider represents a provider in the job spec Consumes field.
type Manifest ¶
type Manifest struct { DirectorUUID string `json:"director_uuid"` InstanceGroups InstanceGroups `json:"instance_groups,omitempty"` Features *Feature `json:"features,omitempty"` Tags map[string]string `json:"tags,omitempty"` Releases []*Release `json:"releases,omitempty"` Stemcells []*Stemcell `json:"stemcells,omitempty"` AddOns []*AddOn `json:"addons,omitempty"` Properties map[string]interface{} `json:"properties,omitempty"` Variables []Variable `json:"variables,omitempty"` Update *Update `json:"update,omitempty"` AddOnsApplied bool `json:"addons_applied,omitempty"` }
Manifest is a BOSH deployment manifest
func (*Manifest) ApplyAddons ¶
func (m *Manifest) ApplyAddons(log *zap.SugaredLogger) error
ApplyAddons goes through all defined addons and adds jobs to matched instance groups
func (*Manifest) ApplyUpdateBlock ¶
func (m *Manifest) ApplyUpdateBlock()
ApplyUpdateBlock interprets and propagates information of the 'update'-blocks
func (*Manifest) GetJobOS ¶
GetJobOS returns the stemcell layer OS used for a Job This is used for matching addon placement rules
func (*Manifest) GetReleaseImage ¶
GetReleaseImage returns the release image location for a given instance group/job
func (*Manifest) ImplicitVariables ¶
ImplicitVariables returns a list of all implicit variables in a manifest
func (*Manifest) ListMissingProviders ¶
ListMissingProviders returns a list of missing providers from the manifest
func (*Manifest) PropagateGlobalUpdateBlockToIGs ¶
func (m *Manifest) PropagateGlobalUpdateBlockToIGs()
PropagateGlobalUpdateBlockToIGs copies the update block to all instance groups
type MigratedFrom ¶
MigratedFrom from BOSH deployment manifest.
type Network ¶
type Network struct { Name string `json:"name"` StaticIps []string `json:"static_ips,omitempty"` Default []string `json:"default,omitempty"` }
Network from BOSH deployment manifest.
type OpsPatch ¶
type OpsPatch struct { Type string `json:"type,omitempty"` Path string `json:"path,omitempty"` Value interface{} `json:"value,omitempty"` }
OpsPatch represents a Json patch that can be performed on an Instance Group or BPM properties yaml file
type OpsPatches ¶
type OpsPatches []OpsPatch
OpsPatches is a list of ops files
func (*OpsPatches) Bytes ¶
func (o *OpsPatches) Bytes() ([]byte, error)
Bytes returns the yaml equivalent of the ops patch
type Port ¶
type Port struct { Name string `json:"name"` Protocol string `json:"protocol"` Internal int `json:"internal"` }
Port represents the port to be opened up for this job.
type PostStartCondition ¶
type PostStartCondition struct {
Exec *corev1.ExecAction `json:"exec,omitempty"`
}
PostStartCondition represents the condition that should succeed in order to execute the post-start script. It's often set to be the same as the readiness probe of a job.
type PreRenderOps ¶
type PreRenderOps struct { BPM OpsPatches `json:"bpm,omitempty"` InstanceGroup OpsPatches `json:"instanceGroup,omitempty"` }
PreRenderOps contains ops files for BPM and Instance Groups yaml files
type PreRenderScripts ¶
type PreRenderScripts struct { BPM []string `json:"bpm" yaml:"bpm"` IgResolver []string `json:"ig_resolver" yaml:"ig_resolver"` Jobs []string `json:"jobs" yaml:"jobs"` }
PreRenderScripts describes the different types of scripts that can be run inside a job.
type Quarks ¶
type Quarks struct { Consumes map[string]JobLink `json:"consumes"` Instances []JobInstance `json:"instances"` Release string `json:"release"` BPM *bpm.Config `json:"bpm,omitempty" yaml:"bpm,omitempty"` Ports []Port `json:"ports"` Run bpm.RunConfig `json:"run"` PreRenderScripts PreRenderScripts `json:"pre_render_scripts" yaml:"pre_render_scripts"` PostStart bpm.PostStart `json:"post_start"` Debug bool `json:"debug" yaml:"debug"` IsAddon bool `json:"is_addon" yaml:"is_addon"` Envs []corev1.EnvVar `json:"envs" yaml:"envs"` ActivePassiveProbes map[string]corev1.Probe `json:"activePassiveProbes,omitempty"` }
Quarks represents the special 'quarks' property key. It contains all kubernetes structures we need to add to the BOSH manifest.
type QuarksLink ¶
type QuarksLink struct { Type string `json:"type,omitempty"` Address string `json:"address,omitempty"` Instances []JobInstance `json:"instances,omitempty"` }
QuarksLink represents the links to share/discover information between BOSH and Kube Native components
type Release ¶
type Release struct { Name string `json:"name"` Version string `json:"version"` URL string `json:"url,omitempty"` SHA1 string `json:"sha1,omitempty"` Stemcell *ReleaseStemcell `json:"stemcell,omitempty"` }
Release from BOSH deployment manifest
type ReleaseImageProvider ¶
type ReleaseImageProvider interface { // GetReleaseImage returns the release image for an job in an instance group GetReleaseImage(instanceGroupName, jobName string) (string, error) }
ReleaseImageProvider interface to provide the docker release image for a BOSH job This lookup is currently implemented by the manifest model.
type ReleaseStemcell ¶
ReleaseStemcell from BOSH deployment manifest
type Stemcell ¶
type Stemcell struct { Alias string `json:"alias"` OS string `json:"os,omitempty"` Version string `json:"version"` Name string `json:"name,omitempty"` }
Stemcell from BOSH deployment manifest
type Update ¶
type Update struct { Canaries int `json:"canaries"` MaxInFlight string `json:"max_in_flight"` CanaryWatchTime string `json:"canary_watch_time"` UpdateWatchTime string `json:"update_watch_time"` Serial *bool `json:"serial,omitempty"` // must be pointer, because otherwise default is false VMStrategy *string `json:"vm_strategy,omitempty"` }
Update from BOSH deployment manifest.
type VMResource ¶
type VMResource struct { CPU int `json:"cpu"` RAM int `json:"ram"` EphemeralDiskSize int `json:"ephemeral_disk_size"` }
VMResource from BOSH deployment manifest.
type Variable ¶
type Variable struct { Name string `json:"name"` Type string `json:"type"` Options *VariableOptions `json:"options,omitempty"` }
Variable from BOSH deployment manifest
type VariableOptions ¶
type VariableOptions struct { CommonName string `json:"common_name"` AlternativeNames []string `json:"alternative_names,omitempty"` IsCA bool `json:"is_ca"` CA string `json:"ca,omitempty"` ExtendedKeyUsage []AuthType `json:"extended_key_usage,omitempty"` SignerType string `json:"signer_type,omitempty"` ServiceRef []qsv1a1.ServiceReference `json:"serviceRef,omitempty"` Copies []qsv1a1.Copy `json:"copies,omitempty"` ActivateEKSWorkaroundForSAN bool `json:"activateEKSWorkaroundForSAN,omitempty"` }
VariableOptions from BOSH deployment manifest