v0

package
v0.0.9 Latest Latest
Warning

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

Go to latest
Published: May 31, 2021 License: Apache-2.0 Imports: 7 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AzBISubnetsValidation added in v0.0.7

func AzBISubnetsValidation(sl validator.StructLevel)

Types

type Config

type Config struct {
	Kind    *string  `json:"kind" validate:"required,eq=azbi"`
	Version *string  `json:"version" validate:"required,version=~0"`
	Params  *Params  `json:"params" validate:"required"`
	Unused  []string `json:"-"`
}

func NewConfig

func NewConfig() *Config

TODO test

func (*Config) GetParams added in v0.0.6

func (c *Config) GetParams() *Params

func (*Config) Marshal added in v0.0.4

func (c *Config) Marshal() ([]byte, error)

func (*Config) Unmarshal added in v0.0.4

func (c *Config) Unmarshal(b []byte) (err error)

type DataDisk added in v0.0.5

type DataDisk struct {
	GbSize      *int    `json:"disk_size_gb" validate:"required,min=1"`
	StorageType *string `json:"storage_type" validate:"required,eq=Standard_LRS|eq=Premium_LRS|eq=StandardSSD_LRS|eq=UltraSSD_LRS"` // https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/managed_disk#storage_account_type
}

type Output

type Output struct {
	RgName   *string         `json:"rg_name"`
	VnetName *string         `json:"vnet_name"`
	VmGroups []OutputVmGroup `json:"vm_groups"`
}

func (*Output) GetRgNameV added in v0.0.6

func (o *Output) GetRgNameV() string

func (*Output) GetVmGroups added in v0.0.7

func (o *Output) GetVmGroups() []OutputVmGroup

func (*Output) GetVnetNameV added in v0.0.6

func (o *Output) GetVnetNameV() string

type OutputDataDisk added in v0.0.5

type OutputDataDisk struct {
	Size *int `json:"size"`
	Lun  *int `json:"lun"`
}

type OutputVm added in v0.0.4

type OutputVm struct {
	Name       *string          `json:"vm_name"`
	PrivateIps []string         `json:"private_ips"`
	PublicIp   *string          `json:"public_ip"`
	DataDisks  []OutputDataDisk `json:"data_disks"`
}

func (*OutputVm) GetDataDisks added in v0.0.7

func (v *OutputVm) GetDataDisks() []OutputDataDisk

type OutputVmGroup added in v0.0.4

type OutputVmGroup struct {
	Name *string    `json:"vm_group_name"`
	Vms  []OutputVm `json:"vms"`
}

func (*OutputVmGroup) GetFirstVm added in v0.0.7

func (g *OutputVmGroup) GetFirstVm() *OutputVm

func (*OutputVmGroup) GetVms added in v0.0.7

func (g *OutputVmGroup) GetVms() []OutputVm

type Params

type Params struct {
	Name             *string   `json:"name" validate:"required,min=1"`
	Location         *string   `json:"location" validate:"required,min=1"`
	AddressSpace     []string  `json:"address_space" validate:"omitempty,min=1,dive,min=1,cidr"`
	Subnets          []Subnet  `json:"subnets" validate:"required_with=AddressSpace,excluded_without=AddressSpace,omitempty,min=1,dive,required"` // TODO custom validator that subnets are in AddressSpaces
	VmGroups         []VmGroup `json:"vm_groups" validate:"required,dive"`
	RsaPublicKeyPath *string   `json:"rsa_pub_path" validate:"required,min=1"`
}

func (*Params) ExtractEmptySubnets added in v0.0.6

func (p *Params) ExtractEmptySubnets() []Subnet

ExtractEmptySubnets gets params and extracts from it list of Subnet unassigned to any of VmGroup.

func (*Params) GetLocationV added in v0.0.6

func (p *Params) GetLocationV() string

func (*Params) GetNameV added in v0.0.6

func (p *Params) GetNameV() string

func (*Params) GetRsaPublicKeyV added in v0.0.6

func (p *Params) GetRsaPublicKeyV() string

type Subnet added in v0.0.3

type Subnet struct {
	Name            *string  `json:"name" validate:"required,min=1"`
	AddressPrefixes []string `json:"address_prefixes" validate:"required,min=1,dive,required,cidr"`
}

type VmGroup added in v0.0.4

type VmGroup struct {
	Name        *string    `json:"name" validate:"required,min=1"`
	VmCount     *int       `json:"vm_count" validate:"required,min=1"`
	VmSize      *string    `json:"vm_size" validate:"required,min=1"`
	UsePublicIP *bool      `json:"use_public_ip" validate:"required"`
	SubnetNames []string   `json:"subnet_names" validate:"omitempty,min=1,dive,required"`
	VmImage     *VmImage   `json:"vm_image" validate:"required,dive"`
	DataDisks   []DataDisk `json:"data_disks" validate:"required,dive"`
}

type VmImage added in v0.0.4

type VmImage struct {
	Publisher *string `json:"publisher" validate:"required,min=1"`
	Offer     *string `json:"offer" validate:"required,min=1"`
	Sku       *string `json:"sku" validate:"required,min=1"`
	Version   *string `json:"version" validate:"required,min=1"`
}

Jump to

Keyboard shortcuts

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