v1alpha1

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Oct 28, 2021 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Overview

+groupName=device.equinixmetal.kubeform.com

Index

Constants

This section is empty.

Variables

View Source
var (
	// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.
	// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.
	SchemeBuilder runtime.SchemeBuilder

	AddToScheme = localSchemeBuilder.AddToScheme
)
View Source
var SchemeGroupVersion = schema.GroupVersion{Group: device.GroupName, Version: "v1alpha1"}

Functions

func GetDecoder

func GetDecoder() map[string]jsoniter.ValDecoder

func GetEncoder

func GetEncoder() map[string]jsoniter.ValEncoder

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns a Group qualified GroupKind

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type Device

type Device struct {
	metav1.TypeMeta   `json:",inline,omitempty"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              DeviceSpec   `json:"spec,omitempty"`
	Status            DeviceStatus `json:"status,omitempty"`
}

func (*Device) DeepCopy

func (in *Device) DeepCopy() *Device

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Device.

func (*Device) DeepCopyInto

func (in *Device) DeepCopyInto(out *Device)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Device) DeepCopyObject

func (in *Device) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Device) SetupWebhookWithManager

func (r *Device) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Device) ValidateCreate

func (r *Device) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*Device) ValidateDelete

func (r *Device) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*Device) ValidateUpdate

func (r *Device) ValidateUpdate(old runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type DeviceList

type DeviceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	// Items is a list of Device CRD objects
	Items []Device `json:"items,omitempty"`
}

DeviceList is a list of Devices

func (*DeviceList) DeepCopy

func (in *DeviceList) DeepCopy() *DeviceList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceList.

func (*DeviceList) DeepCopyInto

func (in *DeviceList) DeepCopyInto(out *DeviceList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DeviceList) DeepCopyObject

func (in *DeviceList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type DeviceSpec

type DeviceSpec struct {
	State *DeviceSpecResource `json:"state,omitempty" tf:"-"`

	Resource DeviceSpecResource `json:"resource" tf:"resource"`

	UpdatePolicy base.UpdatePolicy `json:"updatePolicy,omitempty" tf:"-"`

	TerminationPolicy base.TerminationPolicy `json:"terminationPolicy,omitempty" tf:"-"`

	ProviderRef core.LocalObjectReference `json:"providerRef" tf:"-"`

	SecretRef *core.LocalObjectReference `json:"secretRef,omitempty" tf:"-"`

	BackendRef *core.LocalObjectReference `json:"backendRef,omitempty" tf:"-"`
}

func (*DeviceSpec) DeepCopy

func (in *DeviceSpec) DeepCopy() *DeviceSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceSpec.

func (*DeviceSpec) DeepCopyInto

func (in *DeviceSpec) DeepCopyInto(out *DeviceSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeviceSpecIpAddress

type DeviceSpecIpAddress struct {
	// CIDR suffix for IP block assigned to this device
	// +optional
	Cidr *int64 `json:"cidr,omitempty" tf:"cidr"`
	// IDs of reservations to pick the blocks from
	// +optional
	// +kubebuilder:validation:MinItems=1
	ReservationIDS []string `json:"reservationIDS,omitempty" tf:"reservation_ids"`
	// one of public_ipv4,private_ipv4,public_ipv6
	Type *string `json:"type" tf:"type"`
}

func (*DeviceSpecIpAddress) DeepCopy

func (in *DeviceSpecIpAddress) DeepCopy() *DeviceSpecIpAddress

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceSpecIpAddress.

func (*DeviceSpecIpAddress) DeepCopyInto

func (in *DeviceSpecIpAddress) DeepCopyInto(out *DeviceSpecIpAddress)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeviceSpecNetwork

type DeviceSpecNetwork struct {
	// IPv4 or IPv6 address string
	// +optional
	Address *string `json:"address,omitempty" tf:"address"`
	// CIDR suffix for IP address block to be assigned, i.e. amount of addresses
	// +optional
	Cidr *int64 `json:"cidr,omitempty" tf:"cidr"`
	// IP version - "4" or "6"
	// +optional
	Family *int64 `json:"family,omitempty" tf:"family"`
	// Address of router
	// +optional
	Gateway *string `json:"gateway,omitempty" tf:"gateway"`
	// Whether the address is routable from the Internet
	// +optional
	Public *bool `json:"public,omitempty" tf:"public"`
}

func (*DeviceSpecNetwork) DeepCopy

func (in *DeviceSpecNetwork) DeepCopy() *DeviceSpecNetwork

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceSpecNetwork.

func (*DeviceSpecNetwork) DeepCopyInto

func (in *DeviceSpecNetwork) DeepCopyInto(out *DeviceSpecNetwork)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeviceSpecPorts

type DeviceSpecPorts struct {
	// Whether this port is part of a bond in bonded network setup
	// +optional
	Bonded *bool `json:"bonded,omitempty" tf:"bonded"`
	// The ID of the device
	// +optional
	ID *string `json:"ID,omitempty" tf:"id"`
	// MAC address assigned to the port
	// +optional
	Mac *string `json:"mac,omitempty" tf:"mac"`
	// Name of the port (e.g. eth0, or bond0)
	// +optional
	Name *string `json:"name,omitempty" tf:"name"`
	// One of [private_ipv4, public_ipv4, public_ipv6]
	// +optional
	Type *string `json:"type,omitempty" tf:"type"`
}

func (*DeviceSpecPorts) DeepCopy

func (in *DeviceSpecPorts) DeepCopy() *DeviceSpecPorts

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceSpecPorts.

func (*DeviceSpecPorts) DeepCopyInto

func (in *DeviceSpecPorts) DeepCopyInto(out *DeviceSpecPorts)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeviceSpecReinstall

type DeviceSpecReinstall struct {
	// Whether the OS disk should be filled with `00h` bytes before reinstall
	// +optional
	DeprovisionFast *bool `json:"deprovisionFast,omitempty" tf:"deprovision_fast"`
	// Whether the device should be reinstalled instead of destroyed
	// +optional
	Enabled *bool `json:"enabled,omitempty" tf:"enabled"`
	// Whether the non-OS disks should be kept or wiped during reinstall
	// +optional
	PreserveData *bool `json:"preserveData,omitempty" tf:"preserve_data"`
}

func (*DeviceSpecReinstall) DeepCopy

func (in *DeviceSpecReinstall) DeepCopy() *DeviceSpecReinstall

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceSpecReinstall.

func (*DeviceSpecReinstall) DeepCopyInto

func (in *DeviceSpecReinstall) DeepCopyInto(out *DeviceSpecReinstall)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeviceSpecReinstallCodec

type DeviceSpecReinstallCodec struct {
}

+k8s:deepcopy-gen=false

func (DeviceSpecReinstallCodec) Decode

func (DeviceSpecReinstallCodec) Encode

func (DeviceSpecReinstallCodec) Encode(ptr unsafe.Pointer, stream *jsoniter.Stream)

func (DeviceSpecReinstallCodec) IsEmpty

type DeviceSpecResource

type DeviceSpecResource struct {
	Timeouts *base.ResourceTimeout `json:"timeouts,omitempty" tf:"timeouts"`

	ID string `json:"id,omitempty" tf:"id,omitempty"`

	// The ipv4 private IP assigned to the device
	// +optional
	AccessPrivateIpv4 *string `json:"accessPrivateIpv4,omitempty" tf:"access_private_ipv4"`
	// The ipv4 maintenance IP assigned to the device
	// +optional
	AccessPublicIpv4 *string `json:"accessPublicIpv4,omitempty" tf:"access_public_ipv4"`
	// The ipv6 maintenance IP assigned to the device
	// +optional
	AccessPublicIpv6 *string `json:"accessPublicIpv6,omitempty" tf:"access_public_ipv6"`
	// If true, a device with OS custom_ipxe will
	// +optional
	AlwaysPxe *bool `json:"alwaysPxe,omitempty" tf:"always_pxe"`
	// monthly or hourly
	// +optional
	BillingCycle *string `json:"billingCycle,omitempty" tf:"billing_cycle"`
	// The timestamp for when the device was created
	// +optional
	Created *string `json:"created,omitempty" tf:"created"`
	// A string of the desired Custom Data for the device
	// +optional
	CustomData *string `json:"-" sensitive:"true" tf:"custom_data"`
	// The facility where the device is deployed
	// +optional
	DeployedFacility *string `json:"deployedFacility,omitempty" tf:"deployed_facility"`
	// ID of hardware reservation where this device was deployed. It is useful when using the next-available hardware reservation
	// +optional
	DeployedHardwareReservationID *string `json:"deployedHardwareReservationID,omitempty" tf:"deployed_hardware_reservation_id"`
	// Description string for the device
	// +optional
	Description *string `json:"description,omitempty" tf:"description"`
	// List of facility codes with deployment preferences. Equinix Metal API will go through the list and will deploy your device to first facility with free capacity. List items must be facility codes or any (a wildcard). To find the facility code, visit [Facilities API docs](https://metal.equinix.com/developers/api/facilities/), set your API auth token in the top of the page and see JSON from the API response. Conflicts with metro
	// +optional
	// +kubebuilder:validation:MinItems=1
	Facilities []string `json:"facilities,omitempty" tf:"facilities"`
	// Delete device even if it has volumes attached. Only applies for destroy action
	// +optional
	ForceDetachVolumes *bool `json:"forceDetachVolumes,omitempty" tf:"force_detach_volumes"`
	// The UUID of the hardware reservation where you want this device deployed, or next-available if you want to pick your next available reservation automatically
	// +optional
	HardwareReservationID *string `json:"hardwareReservationID,omitempty" tf:"hardware_reservation_id"`
	// The device hostname used in deployments taking advantage of Layer3 DHCP or metadata service configuration.
	// +optional
	Hostname *string `json:"hostname,omitempty" tf:"hostname"`
	// A list of IP address types for the device (structure is documented below)
	// +optional
	// +kubebuilder:validation:MinItems=1
	IpAddress []DeviceSpecIpAddress `json:"ipAddress,omitempty" tf:"ip_address"`
	// URL pointing to a hosted iPXE script. More
	// +optional
	IpxeScriptURL *string `json:"ipxeScriptURL,omitempty" tf:"ipxe_script_url"`
	// Whether the device is locked
	// +optional
	Locked *bool `json:"locked,omitempty" tf:"locked"`
	// Metro area for the new device. Conflicts with facilities
	// +optional
	Metro *string `json:"metro,omitempty" tf:"metro"`
	// The device's private and public IP (v4 and v6) network details. When a device is run without any special network configuration, it will have 3 addresses: public ipv4, private ipv4 and ipv6
	// +optional
	Network []DeviceSpecNetwork `json:"network,omitempty" tf:"network"`
	// Network type of a device, used in [Layer 2 networking](https://metal.equinix.com/developers/docs/networking/layer2/). Will be one of layer3, hybrid, hybrid-bonded, layer2-individual, layer2-bonded
	// +optional
	// Deprecated
	NetworkType *string `json:"networkType,omitempty" tf:"network_type"`
	// The operating system slug. To find the slug, or visit [Operating Systems API docs](https://metal.equinix.com/developers/api/operatingsystems), set your API auth token in the top of the page and see JSON from the API response
	OperatingSystem *string `json:"operatingSystem" tf:"operating_system"`
	// The device plan slug. To find the plan slug, visit [Device plans API docs](https://metal.equinix.com/developers/api/plans), set your auth token in the top of the page and see JSON from the API response
	Plan *string `json:"plan" tf:"plan"`
	// Ports assigned to the device
	// +optional
	Ports []DeviceSpecPorts `json:"ports,omitempty" tf:"ports"`
	// The ID of the project in which to create the device
	ProjectID *string `json:"projectID" tf:"project_id"`
	// Array of IDs of the project SSH keys which should be added to the device. If you omit this, SSH keys of all the members of the parent project will be added to the device. If you specify this array, only the listed project SSH keys will be added. Project SSH keys can be created with the [metal_project_ssh_key](project_ssh_key.md) resource
	// +optional
	ProjectSSHKeyIDS []string `json:"projectSSHKeyIDS,omitempty" tf:"project_ssh_key_ids"`
	// +optional
	Reinstall *DeviceSpecReinstall `json:"reinstall,omitempty" tf:"reinstall"`
	// Root password to the server (disabled after 24 hours)
	// +optional
	RootPassword *string `json:"-" sensitive:"true" tf:"root_password"`
	// List of IDs of SSH keys deployed in the device, can be both user and project SSH keys
	// +optional
	SshKeyIDS []string `json:"sshKeyIDS,omitempty" tf:"ssh_key_ids"`
	// The status of the device
	// +optional
	State *string `json:"state,omitempty" tf:"state"`
	// JSON for custom partitioning. Only usable on reserved hardware. More information in in the [Custom Partitioning and RAID](https://metal.equinix.com/developers/docs/servers/custom-partitioning-raid/) doc
	// +optional
	Storage *string `json:"storage,omitempty" tf:"storage"`
	// Tags attached to the device
	// +optional
	Tags []string `json:"tags,omitempty" tf:"tags"`
	// Timestamp for device termination. For example "2021-09-03T16:32:00+03:00". If you don't supply timezone info, timestamp is assumed to be in UTC.
	// +optional
	TerminationTime *string `json:"terminationTime,omitempty" tf:"termination_time"`
	// The timestamp for the last time the device was updated
	// +optional
	Updated *string `json:"updated,omitempty" tf:"updated"`
	// A string of the desired User Data for the device
	// +optional
	UserData *string `json:"-" sensitive:"true" tf:"user_data"`
	// Only used for devices in reserved hardware. If set, the deletion of this device will block until the hardware reservation is marked provisionable (about 4 minutes in August 2019)
	// +optional
	WaitForReservationDeprovision *bool `json:"waitForReservationDeprovision,omitempty" tf:"wait_for_reservation_deprovision"`
}

func (*DeviceSpecResource) DeepCopy

func (in *DeviceSpecResource) DeepCopy() *DeviceSpecResource

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceSpecResource.

func (*DeviceSpecResource) DeepCopyInto

func (in *DeviceSpecResource) DeepCopyInto(out *DeviceSpecResource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeviceStatus

type DeviceStatus struct {
	// Resource generation, which is updated on mutation by the API Server.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
	// +optional
	Phase status.Status `json:"phase,omitempty"`
	// +optional
	Conditions []kmapi.Condition `json:"conditions,omitempty"`
}

func (*DeviceStatus) DeepCopy

func (in *DeviceStatus) DeepCopy() *DeviceStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceStatus.

func (*DeviceStatus) DeepCopyInto

func (in *DeviceStatus) DeepCopyInto(out *DeviceStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NetworkType

type NetworkType struct {
	metav1.TypeMeta   `json:",inline,omitempty"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              NetworkTypeSpec   `json:"spec,omitempty"`
	Status            NetworkTypeStatus `json:"status,omitempty"`
}

func (*NetworkType) DeepCopy

func (in *NetworkType) DeepCopy() *NetworkType

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkType.

func (*NetworkType) DeepCopyInto

func (in *NetworkType) DeepCopyInto(out *NetworkType)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NetworkType) DeepCopyObject

func (in *NetworkType) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*NetworkType) SetupWebhookWithManager

func (r *NetworkType) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*NetworkType) ValidateCreate

func (r *NetworkType) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*NetworkType) ValidateDelete

func (r *NetworkType) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*NetworkType) ValidateUpdate

func (r *NetworkType) ValidateUpdate(old runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type NetworkTypeList

type NetworkTypeList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	// Items is a list of NetworkType CRD objects
	Items []NetworkType `json:"items,omitempty"`
}

NetworkTypeList is a list of NetworkTypes

func (*NetworkTypeList) DeepCopy

func (in *NetworkTypeList) DeepCopy() *NetworkTypeList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkTypeList.

func (*NetworkTypeList) DeepCopyInto

func (in *NetworkTypeList) DeepCopyInto(out *NetworkTypeList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NetworkTypeList) DeepCopyObject

func (in *NetworkTypeList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type NetworkTypeSpec

type NetworkTypeSpec struct {
	State *NetworkTypeSpecResource `json:"state,omitempty" tf:"-"`

	Resource NetworkTypeSpecResource `json:"resource" tf:"resource"`

	UpdatePolicy base.UpdatePolicy `json:"updatePolicy,omitempty" tf:"-"`

	TerminationPolicy base.TerminationPolicy `json:"terminationPolicy,omitempty" tf:"-"`

	ProviderRef core.LocalObjectReference `json:"providerRef" tf:"-"`

	BackendRef *core.LocalObjectReference `json:"backendRef,omitempty" tf:"-"`
}

func (*NetworkTypeSpec) DeepCopy

func (in *NetworkTypeSpec) DeepCopy() *NetworkTypeSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkTypeSpec.

func (*NetworkTypeSpec) DeepCopyInto

func (in *NetworkTypeSpec) DeepCopyInto(out *NetworkTypeSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NetworkTypeSpecResource

type NetworkTypeSpecResource struct {
	ID string `json:"id,omitempty" tf:"id,omitempty"`

	// The ID of the device on which the network type should be set
	DeviceID *string `json:"deviceID" tf:"device_id"`
	// Network type to set. Must be one of layer3, hybrid, hybrid-bonded, layer2-individual, layer2-bonded
	Type *string `json:"type" tf:"type"`
}

func (*NetworkTypeSpecResource) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkTypeSpecResource.

func (*NetworkTypeSpecResource) DeepCopyInto

func (in *NetworkTypeSpecResource) DeepCopyInto(out *NetworkTypeSpecResource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NetworkTypeStatus

type NetworkTypeStatus struct {
	// Resource generation, which is updated on mutation by the API Server.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
	// +optional
	Phase status.Status `json:"phase,omitempty"`
	// +optional
	Conditions []kmapi.Condition `json:"conditions,omitempty"`
}

func (*NetworkTypeStatus) DeepCopy

func (in *NetworkTypeStatus) DeepCopy() *NetworkTypeStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkTypeStatus.

func (*NetworkTypeStatus) DeepCopyInto

func (in *NetworkTypeStatus) DeepCopyInto(out *NetworkTypeStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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