Documentation
¶
Index ¶
- Constants
- func ApplyAdvancedScheduling(s *compute.Scheduling, config AdvancedConfig)
- func BuildAdditionalDisks(project, zone string, disks []AdditionalDisk) []*compute.AttachedDisk
- func BuildBootDisk(project, zone string, config BootDiskConfig) *compute.AttachedDisk
- func BuildConfidentialInstanceConfig(config SecurityConfig) *compute.ConfidentialInstanceConfig
- func BuildGuestAccelerators(config AdvancedConfig) []*compute.AcceleratorConfig
- func BuildInstanceFromConfig(project, zone, region string, config CreateVMConfig) (*compute.Instance, error)
- func BuildInstanceMetadata(config ManagementConfig) *compute.Metadata
- func BuildInstanceResourcePolicies(config AdvancedConfig) []string
- func BuildInstanceTags(networkTags string, firewallTags []string) []string
- func BuildLabels(config AdvancedConfig) map[string]string
- func BuildLocalSSDDisks(project, zone string, count int) []*compute.AttachedDisk
- func BuildNetworkInterfaces(project, region string, config NetworkingConfig) []*compute.NetworkInterface
- func BuildNodeAffinities(config AdvancedConfig) []*compute.SchedulingNodeAffinity
- func BuildScheduling(config ManagementConfig) *compute.Scheduling
- func BuildShieldedInstanceConfig(config SecurityConfig) *compute.ShieldedInstanceConfig
- func CreateFirewallRule(ctx context.Context, c Client, project, network string, ...) error
- func CreateVMAndWait(ctx context.Context, client Client, config CreateVMConfig) (map[string]any, error)
- func DeriveFamily(machineType string) string
- func EnsureFirewallRules(ctx context.Context, c Client, project, network string, ...) ([]string, error)
- func FormatMachineTypeSummary(mt *MachineType) string
- func GetInstance(ctx context.Context, client Client, project, zone, name string) ([]byte, error)
- func InsertInstance(ctx context.Context, client Client, project, zone string, ...) ([]byte, error)
- func InstancePayloadFromGetResponse(body []byte, zone string) (map[string]any, error)
- func ListAddressResources(ctx context.Context, c Client, project, region string) ([]core.IntegrationResource, error)
- func ListCustomImageResources(ctx context.Context, c Client, project string) ([]core.IntegrationResource, error)
- func ListDiskResources(ctx context.Context, c Client, project, zone string) ([]core.IntegrationResource, error)
- func ListDiskTypeResources(ctx context.Context, c Client, project, zone string, bootDiskOnly bool) ([]core.IntegrationResource, error)
- func ListFirewallResources(ctx context.Context, c Client, project string) ([]core.IntegrationResource, error)
- func ListMachineFamilyResources(ctx context.Context, c Client, zone string) ([]core.IntegrationResource, error)
- func ListMachineTypeResources(ctx context.Context, c Client, zone, machineFamily string) ([]core.IntegrationResource, error)
- func ListNetworkResources(ctx context.Context, c Client, project string) ([]core.IntegrationResource, error)
- func ListPublicImageResources(ctx context.Context, c Client, project string) ([]core.IntegrationResource, error)
- func ListRegionResources(ctx context.Context, c Client) ([]core.IntegrationResource, error)
- func ListSnapshotResources(ctx context.Context, c Client, project string) ([]core.IntegrationResource, error)
- func ListSnapshotScheduleResources(ctx context.Context, c Client, project, region string) ([]core.IntegrationResource, error)
- func ListSubnetworkResources(ctx context.Context, c Client, project, region string) ([]core.IntegrationResource, error)
- func ListZoneResources(ctx context.Context, c Client, region string) ([]core.IntegrationResource, error)
- func NormalizeOAuthScopes(scopes []string) []string
- func ParseNetworkTags(s string) []string
- func ResolveInternalIPAddress(ctx context.Context, c Client, project, region, value string) (string, error)
- func SetClientFactory(fn func(ctx core.ExecutionContext) (Client, error))
- func WaitForZoneOperation(ctx context.Context, client Client, project, zone, operationName string) error
- type AdditionalDisk
- type AdditionalDiskEntry
- type Address
- type AdvancedConfig
- type BootDiskConfig
- type Client
- type CreateFirewallRuleEntry
- type CreateVM
- func (c *CreateVM) Cancel(ctx core.ExecutionContext) error
- func (c *CreateVM) Cleanup(ctx core.SetupContext) error
- func (c *CreateVM) Color() string
- func (c *CreateVM) Configuration() []configuration.Field
- func (c *CreateVM) Description() string
- func (c *CreateVM) Documentation() string
- func (c *CreateVM) ExampleOutput() map[string]any
- func (c *CreateVM) Execute(ctx core.ExecutionContext) error
- func (c *CreateVM) HandleHook(ctx core.ActionHookContext) error
- func (c *CreateVM) HandleWebhook(ctx core.WebhookRequestContext) (int, *core.WebhookResponseBody, error)
- func (c *CreateVM) Hooks() []core.Hook
- func (c *CreateVM) Icon() string
- func (c *CreateVM) Label() string
- func (c *CreateVM) Name() string
- func (c *CreateVM) OutputChannels(configuration any) []core.OutputChannel
- func (c *CreateVM) ProcessQueueItem(ctx core.ProcessQueueContext) (*uuid.UUID, error)
- func (c *CreateVM) Setup(ctx core.SetupContext) error
- type CreateVMConfig
- type Disk
- type DiskType
- type Firewall
- type GuestAcceleratorEntry
- type IdentityConfig
- type Image
- type LabelEntry
- type MachineFamily
- type MachineType
- type ManagementConfig
- type MetadataKeyValue
- type Network
- type NetworkingConfig
- type NodeAffinityEntry
- type OSAndStorageConfig
- type OnVMInstance
- func (t *OnVMInstance) Cleanup(ctx core.TriggerContext) error
- func (t *OnVMInstance) Color() string
- func (t *OnVMInstance) Configuration() []configuration.Field
- func (t *OnVMInstance) Description() string
- func (t *OnVMInstance) Documentation() string
- func (t *OnVMInstance) ExampleData() map[string]any
- func (t *OnVMInstance) HandleHook(ctx core.TriggerHookContext) (map[string]any, error)
- func (t *OnVMInstance) HandleWebhook(ctx core.WebhookRequestContext) (int, *core.WebhookResponseBody, error)
- func (t *OnVMInstance) Hooks() []core.Hook
- func (t *OnVMInstance) Icon() string
- func (t *OnVMInstance) Label() string
- func (t *OnVMInstance) Name() string
- func (t *OnVMInstance) OnIntegrationMessage(ctx core.IntegrationMessageContext) error
- func (t *OnVMInstance) Setup(ctx core.TriggerContext) error
- type OnVMInstanceConfiguration
- type OnVMInstanceMetadata
- type ProvisioningModel
- type Region
- type ResourcePolicy
- type SecurityConfig
- type Snapshot
- type Subnetwork
- type Zone
Constants ¶
View Source
const ( BootDiskSourcePublicImage = "publicImage" BootDiskSourceCustomImage = "customImage" BootDiskSourceSnapshot = "snapshot" BootDiskSourceExistingDisk = "existingDisk" )
View Source
const ( AdditionalDiskModeNew = "newDisk" AdditionalDiskModeExisting = "existingDisk" )
View Source
const ( DefaultDiskType = "pd-balanced" DefaultDiskSizeGb = 10 )
View Source
const ( ConfidentialInstanceTypeSEV = "SEV" // AMD Secure Encrypted Virtualization ConfidentialInstanceTypeSEVSNP = "SEV_SNP" // AMD SEV - Secure Nested Paging ConfidentialInstanceTypeTDX = "TDX" // Intel Trust Domain eXtension )
View Source
const ( NICTypeGVNIC = "GVNIC" NICTypeVirtioNet = "VIRTIO_NET" )
View Source
const ( StackTypeIPv4Only = "IPV4_ONLY" StackTypeDualStack = "IPV4_IPV6" )
View Source
const ( ExternalIPNone = "none" ExternalIPEphemeral = "ephemeral" ExternalIPStatic = "static" )
View Source
const ( InternalIPEphemeral = "ephemeral" InternalIPStatic = "static" )
View Source
const ( OnHostMaintenanceMigrate = "MIGRATE" OnHostMaintenanceTerminate = "TERMINATE" )
View Source
const ( NodeAffinityOperatorIn = "IN" NodeAffinityOperatorNotIn = "NOT_IN" )
View Source
const ( ResourceTypeRegion = "region" ResourceTypeZone = "zone" ResourceTypeMachineFamily = "machineFamily" ResourceTypeMachineType = "machineType" )
View Source
const ( ResourceTypePublicImages = "publicImages" ResourceTypeCustomImages = "customImages" ResourceTypeSnapshots = "snapshots" ResourceTypeDisks = "disks" ResourceTypeDiskTypes = "diskTypes" ResourceTypeSnapshotSchedules = "snapshotSchedules" )
View Source
const ( ResourceTypeNetwork = "network" ResourceTypeSubnetwork = "subnetwork" ResourceTypeAddress = "address" ResourceTypeFirewall = "firewall" )
View Source
const ( EmittedEventType = "gcp.compute.vmInstance" // SinkFilter is the Cloud Logging advanced log filter for VM instance // creation audit events. Used when creating the per-trigger logging sink. SinkFilter = `` /* 222-byte string literal not displayed */ )
View Source
const AddressTypeExternal = "EXTERNAL"
Variables ¶
This section is empty.
Functions ¶
func ApplyAdvancedScheduling ¶
func ApplyAdvancedScheduling(s *compute.Scheduling, config AdvancedConfig)
func BuildAdditionalDisks ¶
func BuildAdditionalDisks(project, zone string, disks []AdditionalDisk) []*compute.AttachedDisk
func BuildBootDisk ¶
func BuildBootDisk(project, zone string, config BootDiskConfig) *compute.AttachedDisk
func BuildConfidentialInstanceConfig ¶
func BuildConfidentialInstanceConfig(config SecurityConfig) *compute.ConfidentialInstanceConfig
func BuildGuestAccelerators ¶
func BuildGuestAccelerators(config AdvancedConfig) []*compute.AcceleratorConfig
func BuildInstanceFromConfig ¶
func BuildInstanceFromConfig(project, zone, region string, config CreateVMConfig) (*compute.Instance, error)
func BuildInstanceMetadata ¶
func BuildInstanceMetadata(config ManagementConfig) *compute.Metadata
func BuildInstanceResourcePolicies ¶
func BuildInstanceResourcePolicies(config AdvancedConfig) []string
func BuildInstanceTags ¶
func BuildLabels ¶
func BuildLabels(config AdvancedConfig) map[string]string
func BuildLocalSSDDisks ¶
func BuildLocalSSDDisks(project, zone string, count int) []*compute.AttachedDisk
func BuildNetworkInterfaces ¶
func BuildNetworkInterfaces(project, region string, config NetworkingConfig) []*compute.NetworkInterface
func BuildNodeAffinities ¶
func BuildNodeAffinities(config AdvancedConfig) []*compute.SchedulingNodeAffinity
func BuildScheduling ¶
func BuildScheduling(config ManagementConfig) *compute.Scheduling
func BuildShieldedInstanceConfig ¶
func BuildShieldedInstanceConfig(config SecurityConfig) *compute.ShieldedInstanceConfig
func CreateFirewallRule ¶
func CreateFirewallRule(ctx context.Context, c Client, project, network string, rule CreateFirewallRuleEntry) error
CreateFirewallRule creates a single firewall rule in the project. If the rule already exists (409), it is treated as success.
func CreateVMAndWait ¶
func DeriveFamily ¶
func EnsureFirewallRules ¶
func EnsureFirewallRules(ctx context.Context, c Client, project, network string, rules []CreateFirewallRuleEntry) ([]string, error)
EnsureFirewallRules creates each rule and returns the list of target tags to apply to the instance.
func FormatMachineTypeSummary ¶
func FormatMachineTypeSummary(mt *MachineType) string
func GetInstance ¶
func InsertInstance ¶
func ListAddressResources ¶
func ListDiskResources ¶
func ListDiskTypeResources ¶
func ListFirewallResources ¶
func ListNetworkResources ¶
func ListRegionResources ¶
func ListSnapshotResources ¶
func ListSubnetworkResources ¶
func ListZoneResources ¶
func NormalizeOAuthScopes ¶
func ParseNetworkTags ¶
func ResolveInternalIPAddress ¶
func ResolveInternalIPAddress(ctx context.Context, c Client, project, region, value string) (string, error)
ResolveInternalIPAddress returns a literal IP for use as networkIP. If value is a literal IP (no slash), it is returned as-is. If value is a full URL or resource path to a reserved address, it is fetched and the address field (literal IP) is returned. Compute Engine networkInterfaces.networkIP accepts only literal IPs.
func SetClientFactory ¶
func SetClientFactory(fn func(ctx core.ExecutionContext) (Client, error))
Types ¶
type AdditionalDisk ¶
type AdditionalDiskEntry ¶
type Address ¶
type AdvancedConfig ¶
type AdvancedConfig struct {
GuestAccelerators []GuestAcceleratorEntry `mapstructure:"guestAccelerators"`
NodeAffinities []NodeAffinityEntry `mapstructure:"nodeAffinities"`
ResourcePolicies []string `mapstructure:"resourcePolicies"`
MinNodeCpus int64 `mapstructure:"minNodeCpus"`
Labels []LabelEntry `mapstructure:"labels"`
EnableDisplayDevice bool `mapstructure:"enableDisplayDevice"`
EnableSerialPortAccess bool `mapstructure:"enableSerialPortAccess"`
}
type BootDiskConfig ¶
type CreateFirewallRuleEntry ¶
type CreateVM ¶
type CreateVM struct{}
func (*CreateVM) Configuration ¶
func (c *CreateVM) Configuration() []configuration.Field
func (*CreateVM) Description ¶
func (*CreateVM) Documentation ¶
func (*CreateVM) ExampleOutput ¶
func (*CreateVM) HandleHook ¶ added in v0.18.0
func (c *CreateVM) HandleHook(ctx core.ActionHookContext) error
func (*CreateVM) HandleWebhook ¶
func (c *CreateVM) HandleWebhook(ctx core.WebhookRequestContext) (int, *core.WebhookResponseBody, error)
func (*CreateVM) OutputChannels ¶
func (c *CreateVM) OutputChannels(configuration any) []core.OutputChannel
func (*CreateVM) ProcessQueueItem ¶
type CreateVMConfig ¶
type CreateVMConfig struct {
InstanceName string `mapstructure:"instanceName"`
Region string `mapstructure:"region"`
Zone string `mapstructure:"zone"`
MachineFamily string `mapstructure:"machineFamily"`
MachineType string `mapstructure:"machineType"`
ProvisioningModel string `mapstructure:"provisioningModel"`
AutomaticRestart *bool `mapstructure:"automaticRestart"`
OnHostMaintenance string `mapstructure:"onHostMaintenance"`
MetadataItems []MetadataKeyValue `mapstructure:"metadataItems"`
StartupScript string `mapstructure:"startupScript"`
ShutdownScript string `mapstructure:"shutdownScript"`
MaintenancePolicy string `mapstructure:"maintenancePolicy"`
Labels []LabelEntry `mapstructure:"labels"`
GuestAccelerators []GuestAcceleratorEntry `mapstructure:"guestAccelerators"`
MinNodeCpus int64 `mapstructure:"minNodeCpus"`
NodeAffinities []NodeAffinityEntry `mapstructure:"nodeAffinities"`
ResourcePolicies []string `mapstructure:"resourcePolicies"`
EnableDisplayDevice bool `mapstructure:"enableDisplayDevice"`
EnableSerialPortAccess bool `mapstructure:"enableSerialPortAccess"`
SecurityConfig `mapstructure:",squash"`
IdentityConfig `mapstructure:",squash"`
NetworkingConfig `mapstructure:",squash"`
OSAndStorageConfig `mapstructure:",squash"`
}
type Firewall ¶
type GuestAcceleratorEntry ¶
type IdentityConfig ¶
type Image ¶
type Image struct {
Name string `json:"name"`
Family string `json:"family"`
Description string `json:"description"`
SelfLink string `json:"selfLink"`
}
func GetImageFromFamily ¶
func ListCustomImages ¶
type LabelEntry ¶
type MachineFamily ¶
type MachineFamily struct {
Family string `json:"family"`
}
func ListMachineFamilies ¶
type MachineType ¶
type MachineType struct {
Name string `json:"name"`
GuestCPUs int `json:"guestCpus"`
MemoryMB int `json:"memoryMb"`
Description string `json:"description"`
Family string `json:"family,omitempty"`
}
func GetMachineType ¶
func ListMachineTypes ¶
type ManagementConfig ¶
type ManagementConfig struct {
MetadataItems []MetadataKeyValue `mapstructure:"metadataItems"`
StartupScript string `mapstructure:"startupScript"`
ShutdownScript string `mapstructure:"shutdownScript"`
AutomaticRestart *bool `mapstructure:"automaticRestart"`
OnHostMaintenance string `mapstructure:"onHostMaintenance"`
MaintenancePolicy string `mapstructure:"maintenancePolicy"`
}
type MetadataKeyValue ¶
type NetworkingConfig ¶
type NetworkingConfig struct {
Network string `mapstructure:"network"`
Subnetwork string `mapstructure:"subnetwork"`
NicType string `mapstructure:"nicType"`
InternalIPType string `mapstructure:"internalIPType"`
InternalIPAddress string `mapstructure:"internalIPAddress"`
ExternalIPType string `mapstructure:"externalIPType"`
ExternalIPAddress string `mapstructure:"externalIPAddress"`
NetworkTags string `mapstructure:"networkTags"`
StackType string `mapstructure:"stackType"`
CreateFirewallRules []CreateFirewallRuleEntry `mapstructure:"createFirewallRules"`
}
type NodeAffinityEntry ¶
type OSAndStorageConfig ¶
type OSAndStorageConfig struct {
BootDiskSourceType string `mapstructure:"bootDiskSourceType"`
BootDiskOS string `mapstructure:"bootDiskOS"`
BootDiskPublicImage string `mapstructure:"bootDiskPublicImage"`
BootDiskCustomImage string `mapstructure:"bootDiskCustomImage"`
BootDiskSnapshot string `mapstructure:"bootDiskSnapshot"`
BootDiskExistingDisk string `mapstructure:"bootDiskExistingDisk"`
BootDiskType string `mapstructure:"bootDiskType"`
BootDiskSizeGb int64 `mapstructure:"bootDiskSizeGb"`
BootDiskEncryptionKey string `mapstructure:"bootDiskEncryptionKey"`
BootDiskSnapshotSchedule string `mapstructure:"bootDiskSnapshotSchedule"`
BootDiskAutoDelete bool `mapstructure:"bootDiskAutoDelete"`
LocalSSDCount int64 `mapstructure:"localSSDCount"`
AdditionalDisks []AdditionalDiskEntry `mapstructure:"additionalDisks"`
}
type OnVMInstance ¶
type OnVMInstance struct{}
func (*OnVMInstance) Cleanup ¶
func (t *OnVMInstance) Cleanup(ctx core.TriggerContext) error
func (*OnVMInstance) Color ¶
func (t *OnVMInstance) Color() string
func (*OnVMInstance) Configuration ¶
func (t *OnVMInstance) Configuration() []configuration.Field
func (*OnVMInstance) Description ¶
func (t *OnVMInstance) Description() string
func (*OnVMInstance) Documentation ¶
func (t *OnVMInstance) Documentation() string
func (*OnVMInstance) ExampleData ¶
func (t *OnVMInstance) ExampleData() map[string]any
func (*OnVMInstance) HandleHook ¶ added in v0.18.0
func (t *OnVMInstance) HandleHook(ctx core.TriggerHookContext) (map[string]any, error)
func (*OnVMInstance) HandleWebhook ¶
func (t *OnVMInstance) HandleWebhook(ctx core.WebhookRequestContext) (int, *core.WebhookResponseBody, error)
func (*OnVMInstance) Hooks ¶ added in v0.18.0
func (t *OnVMInstance) Hooks() []core.Hook
func (*OnVMInstance) Icon ¶
func (t *OnVMInstance) Icon() string
func (*OnVMInstance) Label ¶
func (t *OnVMInstance) Label() string
func (*OnVMInstance) Name ¶
func (t *OnVMInstance) Name() string
func (*OnVMInstance) OnIntegrationMessage ¶
func (t *OnVMInstance) OnIntegrationMessage(ctx core.IntegrationMessageContext) error
func (*OnVMInstance) Setup ¶
func (t *OnVMInstance) Setup(ctx core.TriggerContext) error
type OnVMInstanceConfiguration ¶
type OnVMInstanceConfiguration struct{}
type OnVMInstanceMetadata ¶
type ProvisioningModel ¶
type ProvisioningModel string
const ( ProvisioningStandard ProvisioningModel = "STANDARD" ProvisioningSpot ProvisioningModel = "SPOT" )
type Region ¶
type ResourcePolicy ¶
type ResourcePolicy struct {
Name string `json:"name"`
}
func ListSnapshotSchedules ¶
type SecurityConfig ¶
type SecurityConfig struct {
ShieldedVM bool `mapstructure:"shieldedVM"`
ShieldedVMEnableSecureBoot bool `mapstructure:"shieldedVMEnableSecureBoot"`
ShieldedVMEnableVtpm bool `mapstructure:"shieldedVMEnableVtpm"`
ShieldedVMEnableIntegrityMonitoring bool `mapstructure:"shieldedVMEnableIntegrityMonitoring"`
ConfidentialVM bool `mapstructure:"confidentialVM"`
ConfidentialVMType string `mapstructure:"confidentialVMType"`
}
type Subnetwork ¶
type Subnetwork struct {
Name string `json:"name"`
Region string `json:"region"`
SelfLink string `json:"selfLink"`
}
func ListSubnetworks ¶
Click to show internal directories.
Click to hide internal directories.