v1

package
v0.0.0-...-3bfe646 Latest Latest
Warning

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

Go to latest
Published: Jun 28, 2023 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Overview

Package v1 is the v1 version of the API. +groupName=gravitational.io

Index

Constants

View Source
const (
	// KindApplication is the legacy kind for a user application
	KindApplication = "Application"

	// KindSystemApplication is the legacy kind for a system application
	KindSystemApplication = "SystemApplication"

	// KindRuntime is the legacy kind for a runtime application
	KindRuntime = "Runtime"

	// ServiceRoleMaster names a label that defines a master node role
	ServiceRoleMaster ServiceRole = "master"

	// ServiceRoleNode names a label that defines a regular node role
	ServiceRoleNode ServiceRole = "node"

	// Version specifies the package version
	Version = "v1"

	// RuntimePackageName names the runtime package with extended AWS configuration
	RuntimePackageName = "k8s-aws"

	// RuntimeOnPremPackageName names the runtime package for onprem configuration
	RuntimeOnPremPackageName = "k8s-onprem"
)
View Source
const (
	// SelectorRole defines a package role selector
	SelectorRole = "role"
	// SelectorPlacement defines a node placement selector
	SelectorPlacement = "placement"

	// PlacementMaster defines the value of the placement selector to be on master
	PlacementMaster = "master"
)
View Source
const AWSTerraformSchema = `` /* 2246-byte string literal not displayed */

AWSTerraformSchema defines the AWS provisioner schema

View Source
const OnPremSchema = `` /* 553-byte string literal not displayed */

OnPremSchema defines the schema for the onprem provisioner

View Source
const ServerSchema = `` /* 2641-byte string literal not displayed */

ServerSchema defines the cluster node schema

View Source
const VirshSchema = `` /* 1438-byte string literal not displayed */

VirshSchema defines the virsh provisioner schema

Variables

View Source
var ManifestSchema = fmt.Sprintf(`{
  "type": "object",
  "required": ["apiVersion", "kind", "metadata"],
  "properties": {
    "apiVersion": {"type": "string"},
    "kind": {"type": "string"},
    "namespace": {"type": "string"},
    "metadata": {
      "type": "object",
      "required": ["name", "resourceVersion"],
      "properties": {
        "repository": {"type": "string", "default": "gravitational.io"},
        "name": {"type": "string"},
        "namespace": {"type": "string"},
        "resourceVersion": {"type": "string"},
        "releaseNotes": {"type": "string"},
        "logo": {
          "type": "object",
          "patternProperties": {
            "^[a-z0-9_A-Z\\-]+$": {"type": "string"}
          }
        }
      }
    },
    "base": {"type": "string"},
    "installer": {
      "type": "object",
      "properties": {
        "license": {
          "type": "object",
          "properties": {
            "enabled": {"type": "boolean", "default": false},
            "type": {"type": "string", "default": "certificate"},
            "trial_flavors": {
              "type": "array",
              "items": {"type": "string"}
            }
          }
        },
        "eula": {
          "type": "object",
          "properties": {
            "enabled": {"type": "boolean", "default": false},
            "source": {
              "type": "object",
              "properties": {
                "env": {"type": "string"},
                "path": {"type": "string"},
                "value": {"type": "string"}
              }
            }
          }
        },
        "flavors": {
          "type": "object",
          "properties": {
            "title": {"type": "string"},
            "default_flavor": {"type": "string"},
            "items": {
              "type": "array",
              "items": {
                "type": "object",
                "required": ["name", "threshold", "profiles"],
                "properties": {
                  "name": {"type": "string"},
                  "description": {"type": "string"},
                  "threshold": {
                    "type": "object",
                    "required": ["value", "label"],
                    "properties": {
                      "value": {"type": "number"},
                      "label": {"type": "string"}
                    }
                  },
                  "profiles": {
                    "type": "object",
                    "patternProperties": {
                      "^[a-z0-9_A-Z]+$": {"type": "number"}
                    }
                  }
                }
              }
            }
          }
        },
        "servers": {
          "type": "object",
          "patternProperties": {
            "^[a-z0-9_A-Z]+$": %v
          }
        },
        "provisioners": {
          "type": "object",
          "additionalProperties": false,
          "default": {},
          "properties": {
            "onprem": %v,
            "virsh": %v,
            "aws_terraform": %v
          }
        },
        "final_install_step": {
          "type": "object",
          "properties": {
            "service_name": {"type": "string"}
          }
        }
      }
    },
    "orchestration": {
      "type": "object",
      "required": ["k8s"],
      "properties": {
        "k8s": {
          "type": "object",
          "properties": {
            "cloud_provider": {"type": "string"}
          }
        }
      }
    },
    "endpoints": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {"type": "string"},
          "namespace": {"type": "string", "default": "default"},
          "description": {"type": "string"},
          "selector": {"type": "object"},
          "protocol": {"type": "string"},
          "port": {"type": "number", "default": 0}
        }
      }
    },
    "hooks": {
      "type": "object",
      "properties": {
        "install": {
          "type": "object",
          "properties": {
            "type": {"type": "string", "default": "install"},
            "spec": {"type": "object"}
          }
        },
        "post_install": {
          "type": "object",
          "properties": {
            "type": {"type": "string", "default": "post_install"},
            "spec": {"type": "object"}
          }
        },
        "uninstall": {
          "type": "object",
          "properties": {
            "type": {"type": "string", "default": "uninstall"},
            "spec": {"type": "object"}
          }
        },
        "pre_uninstall": {
          "type": "object",
          "properties": {
            "type": {"type": "string", "default": "pre_uninstall"},
            "spec": {"type": "object"}
          }
        },
        "update": {
          "type": "object",
          "properties": {
            "type": {"type": "string", "default": "update"},
            "spec": {"type": "object"}
          }
        },
        "post_update": {
          "type": "object",
          "properties": {
            "type": {"type": "string", "default": "post_update"},
            "spec": {"type": "object"}
          }
        },
        "rollback": {
          "type": "object",
          "properties": {
            "type": {"type": "string", "default": "rollback"},
            "spec": {"type": "object"}
          }
        },
        "post_rollback": {
          "type": "object",
          "properties": {
            "type": {"type": "string", "default": "post_rollback"},
            "spec": {"type": "object"}
          }
        },
        "pre_node_add": {
          "type": "object",
          "properties": {
            "type": {"type": "string", "default": "pre_node_add"},
            "spec": {"type": "object"}
          }
        },
        "post_node_add": {
          "type": "object",
          "properties": {
            "type": {"type": "string", "default": "post_node_add"},
            "spec": {"type": "object"}
          }
        },
        "pre_node_remove": {
          "type": "object",
          "properties": {
            "type": {"type": "string", "default": "pre_node_remove"},
            "spec": {"type": "object"}
          }
        },
        "post_node_remove": {
          "type": "object",
          "properties": {
            "type": {"type": "string", "default": "post_node_remove"},
            "spec": {"type": "object"}
          }
        },
        "status": {
          "type": "object",
          "properties": {
            "type": {"type": "string", "default": "status"},
            "spec": {"type": "object"}
          }
        },
        "info": {
          "type": "object",
          "properties": {
            "type": {"type": "string", "default": "info"},
            "spec": {"type": "object"}
          }
        },
        "license_updated": {
          "type": "object",
          "properties": {
            "type": {"type": "string", "default": "license_updated"},
            "spec": {"type": "object"}
          }
        },
        "start": {
          "type": "object",
          "properties": {
            "type": {"type": "string", "default": "start"},
            "spec": {"type": "object"}
          }
        },
        "stop": {
          "type": "object",
          "properties": {
            "type": {"type": "string", "default": "stop"},
            "spec": {"type": "object"}
          }
        },
        "dump": {
          "type": "object",
          "properties": {
            "type": {"type": "string", "default": "dump"},
            "spec": {"type": "object"}
          }
        },
        "backup": {
          "type": "object",
          "properties": {
            "type": {"type": "string", "default": "backup"},
            "spec": {"type": "object"}
          }
        },
        "restore": {
          "type": "object",
          "properties": {
            "type": {"type": "string", "default": "restore"},
            "spec": {"type": "object"}
          }
        }
      }
    },
    "dependencies": {
      "type": "object",
      "properties": {
        "packages": {
          "type": "array",
          "items": {
            "type": "object",
            "required": ["name"],
            "properties": {
              "name": {"type": "string"},
              "selector": {
                "type": "object",
                "properties": {
                  "role": {"type": "string"},
                  "placement": {"type": "string"}
                }
              }
            }
          }
        },
        "apps": {
          "type": "array",
          "items": {"type": "string"}
        }
      }
    },
    "opscenter": {
      "type": "object",
      "properties": {
        "address": {
          "type": "object",
          "properties": {
            "env": {"type": "string"},
            "path": {"type": "string"},
            "value": {"type": "string"}
          }
        },
        "token": {
          "type": "object",
          "properties": {
            "env": {"type": "string"},
            "path": {"type": "string"},
            "value": {"type": "string"}
          }
        }
      }
    },
    "extensions": {
      "type": "object",
      "properties": {
        "encryption": {
          "type": "object",
          "properties": {
            "encryption_key": {
              "type": "object",
              "properties": {
                "env": {"type": "string"},
                "path": {"type": "string"},
                "value": {"type": "string"}
              }
            },
            "ca_cert": {
              "type": "object",
              "properties": {
                "env": {"type": "string"},
                "path": {"type": "string"},
                "value": {"type": "string"}
              }
            }
          }
        },
        "user": {
          "type": "object",
          "properties": {
            "name": {"type": "string"},
            "type": {"type": "string", "default": "container"},
            "selector": {"type": "object"},
            "namespace": {"type": "string", "default": "default"},
            "shell": {"type": "string", "default": "/bin/bash"}
          }
        },
        "monitoring": {
          "type": "object",
          "properties": {
            "enabled": {"type": "boolean"}
          }
        }
      }
    },
    "webConfig": {
      "type": "object"
    }
  }
}`, ServerSchema, OnPremSchema, VirshSchema, AWSTerraformSchema)

ManifestSchema defines the schema for the manifest v1

View Source
var SchemeGroupVersion = kubeschema.GroupVersion{Group: "", Version: Version}

SchemeGroupVersion defines group and version for the application manifest type in the kubernetes resource scheme

Functions

func PackageMarshalJSON

func PackageMarshalJSON(locator *loc.Locator) ([]byte, error)

func PackageUnmarshalJSON

func PackageUnmarshalJSON(data []byte, locator *loc.Locator) error

Types

type AWSAction

type AWSAction struct {
	// Context is an AWS API context (EC2 or IAM)
	Context string `json:"context,omitempty"`
	// Name is the resource name
	Name string `json:"name,omitempty"`
}

AWSAction defines an action on a AWS resource

func (*AWSAction) DeepCopy

func (in *AWSAction) DeepCopy() *AWSAction

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

func (*AWSAction) DeepCopyInto

func (in *AWSAction) DeepCopyInto(out *AWSAction)

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

type AWSActions

type AWSActions []AWSAction

AWSActions defines a list of AWS actions

type AWSStatement

type AWSStatement struct {
	// PolicyVersion is the version of the document used to
	// describe the policy
	PolicyVersion string `json:"policy_version,omitempty"`
	// Actions defines a list of actions this terraform script will execute
	// Action is defined by a context (EC2 or IAM) and a name of the action
	// that is performed against a certain AWS resource:
	//  ec2:DescribeImages
	// defines an action to query EC2 image metadata
	Actions AWSActions `json:"items,omitempty"`
}

AWSStatement defines an extent of actions on AWS resources this script will execute

func (*AWSStatement) DeepCopy

func (in *AWSStatement) DeepCopy() *AWSStatement

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

func (*AWSStatement) DeepCopyInto

func (in *AWSStatement) DeepCopyInto(out *AWSStatement)

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

type AWSTerraformProvisioner

type AWSTerraformProvisioner struct {
	// Spec groups configuration parameters
	Spec AWSTerraformSpec `json:"variables,omitempty"`
}

AWSTerraformProvisioner defines configuration for an AWS terraform provisioner

func (*AWSTerraformProvisioner) DeepCopy

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

func (*AWSTerraformProvisioner) DeepCopyInto

func (in *AWSTerraformProvisioner) DeepCopyInto(out *AWSTerraformProvisioner)

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

type AWSTerraformSpec

type AWSTerraformSpec struct {
	// Image defines the AWS machine image to use to boot instances
	Image string `json:"ami,omitempty"`
	// Region defines an AWS region
	Region string `json:"region,omitempty"`
	// Regions is a list of AWS regions this application supports
	Regions []string `json:"regions,omitempty"`
	// AvailabilityZone defines an AWS availability zone to create instances in
	AvailabilityZone string `json:"az1,omitempty"`
	// AccessKey defines a access key part of the API key
	AccessKey string `json:"access_key,omitempty"`
	// SecretKey defines a secret key part of the API key
	SecretKey string `json:"secret_key,omitempty"`
	// VPCID is an ID of a pre-existing VPC to put instances into
	VPCID string `json:"vpc_id,omitempty"`
	// VPCCIDR defines a CIDR block for the VPC
	VPCCIDR string `json:"vpc_cidr,omitempty"`
	// SubnetID is an ID of a VPC's subnet to put instances into
	SubnetID string `json:"subnet_id,omitempty"`
	// SubnetCIDR defines a CIDR block for the subnet
	SubnetCIDR string `json:"subnet_cidr,omitempty"`
	// InternetGatewayID is an ID of internet gateway attached to a VPC
	InternetGatewayID string `json:"internet_gateway_id,omitempty"`
	// Statement defines an extent of actions on AWS resources this script will execute
	Statement AWSStatement `json:"required_actions,omitempty"`
	// KeyPair defines an optional key pair to use for provisioning
	KeyPair string `json:"key_pair,omitempty"`
	// TerraformSpec is terraform script describing infrastructure to provision, excluding
	// instances, such as VPC, security groups, etc.
	TerraformSpec string `json:"terraform_spec,omitempty"`
	// InstanceSpec is terraform script describing a single instance
	InstanceSpec string `json:"instance_spec,omitempty"`
	// Docker defines docker-specific configuration
	Docker Docker `json:"docker"`
}

AWSTerraformSpec groups all configuration parameters for an AWS terraform provisioner

func (*AWSTerraformSpec) DeepCopy

func (in *AWSTerraformSpec) DeepCopy() *AWSTerraformSpec

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

func (*AWSTerraformSpec) DeepCopyInto

func (in *AWSTerraformSpec) DeepCopyInto(out *AWSTerraformSpec)

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

type AppDependencies

type AppDependencies []AppDependency

AppDependencies defines a list of application package dependencies

func (AppDependencies) All

func (r AppDependencies) All() (packages []loc.Locator)

All returns a list of package locators in this dependency list

func (*AppDependencies) Merge

func (r *AppDependencies) Merge(apps AppDependencies)

Merge inserts apps into this dependency list avoiding duplicates

type AppDependency

type AppDependency struct {
	// Package defines the package name of the dependency
	Package loc.Locator
}

AppDependency defines a dependency on another application

func (*AppDependency) DeepCopy

func (in *AppDependency) DeepCopy() *AppDependency

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

func (*AppDependency) DeepCopyInto

func (in *AppDependency) DeepCopyInto(out *AppDependency)

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

func (*AppDependency) MarshalJSON

func (r *AppDependency) MarshalJSON() ([]byte, error)

MarshalJSON formats application dependency as JSON

func (*AppDependency) UnmarshalJSON

func (r *AppDependency) UnmarshalJSON(data []byte) error

UnmarshalJSON reads application package dependency from the specified data

type CPU

type CPU struct {
	MinCount int `json:"min_count"`
}

func (*CPU) DeepCopy

func (in *CPU) DeepCopy() *CPU

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

func (*CPU) DeepCopyInto

func (in *CPU) DeepCopyInto(out *CPU)

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

type Dependencies

type Dependencies struct {
	// Packages defines the package dependencies
	Packages PackageDependencies `json:"packages,omitempty"`
	// Apps defines the application dependencies
	Apps AppDependencies `json:"apps,omitempty"`
}

Dependencies defines a set of dependencies for an application

func (*Dependencies) DeepCopy

func (in *Dependencies) DeepCopy() *Dependencies

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

func (*Dependencies) DeepCopyInto

func (in *Dependencies) DeepCopyInto(out *Dependencies)

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

type Device

type Device struct {
	// Name is device's name, e.g. "vdb"
	Name string `json:"device,omitempty"`
	// MB is device's capacity in megabytes, e.g. 2048
	MB int `json:"mb,omitempty"`
}

Device represents manifest's "disk device" variable that specifies device name and capacity

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.

type Directories

type Directories []Directory

Directories is a list of directories

type Directory

type Directory struct {
	// Name directory name to check
	Name string `json:"name,omitempty"`
	// MinTotalMB is a minimum total MB available for this directory
	MinTotalMB int `json:"min_total_mb,omitempty"`
	// FSTypes is a list of allowed fs types mounted for this
	// directory
	FSTypes []string `json:"fs_types,omitempty"`
}

Directory specifies the system requirements for directory If the directory is not found, the parent's directory will be checked up to the root

func (*Directory) DeepCopy

func (in *Directory) DeepCopy() *Directory

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

func (*Directory) DeepCopyInto

func (in *Directory) DeepCopyInto(out *Directory)

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

type Disk

type Disk struct {
	// MinMBPerSecond is the minimum speed in megabytes per second
	MinMBPerSecond int `json:"min_mbps"`
}

Disk specifies disk performance requirements

func (*Disk) DeepCopy

func (in *Disk) DeepCopy() *Disk

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

func (*Disk) DeepCopyInto

func (in *Disk) DeepCopyInto(out *Disk)

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

type Docker

type Docker struct {
	// Backend defines the type of storage backend to setup Docker with
	Backend string `json:"backend,omitempty"`
	// MinTotalGB defines Docker's minimum device size requirement
	MinTotalGB int `json:"min_total_gb,omitempty"`
	// Args lists arbitrary docker options
	Args []string `json:"args,omitempty"`
}

Docker defines docker configuration

func (*Docker) DeepCopy

func (in *Docker) DeepCopy() *Docker

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

func (*Docker) DeepCopyInto

func (in *Docker) DeepCopyInto(out *Docker)

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

type EULA

type EULA struct {
	// Enabled is whether it is enabled for the installer
	Enabled bool `json:"enabled"`
	// Source is the source of the license agreement
	Source unversioned.MultiSourceValue `json:"source"`
}

EULA defines the End User License Agreement

func (*EULA) DeepCopy

func (in *EULA) DeepCopy() *EULA

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

func (*EULA) DeepCopyInto

func (in *EULA) DeepCopyInto(out *EULA)

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

type EncryptionExtension

type EncryptionExtension struct {
	// EncryptionKey is the passphrase for installer encryption
	EncryptionKey unversioned.MultiSourceValue `json:"encryption_key"`
	// CACert is the certificate authority certificate
	CACert unversioned.MultiSourceValue `json:"ca_cert"`
}

EncryptionExtension configures application installer encryption

func (*EncryptionExtension) DeepCopy

func (in *EncryptionExtension) DeepCopy() *EncryptionExtension

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

func (*EncryptionExtension) DeepCopyInto

func (in *EncryptionExtension) DeepCopyInto(out *EncryptionExtension)

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

type Endpoint

type Endpoint struct {
	// Name is the name of endpoint used for display purposes
	Name string `json:"name"`
	// Description is the verbose description of the endpoint used for display purposes
	Description string `json:"description"`
	// Selector is the label selector of a k8s service for this endpoint
	Selector map[string]string `json:"selector"`
	// Protocol is the communication protocol the service behind this endpoint is configured with (tcp, http, etc)
	Protocol string `json:"protocol"`
	// Port is the specific port for this service, can be left blank to default to all service ports
	Port int `json:"port"`
}

Endpoint represents an application endpoint

func (*Endpoint) DeepCopy

func (in *Endpoint) DeepCopy() *Endpoint

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

func (*Endpoint) DeepCopyInto

func (in *Endpoint) DeepCopyInto(out *Endpoint)

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

type Extensions

type Extensions struct {
	// Encryption configures application installer encryption
	Encryption *EncryptionExtension `json:"encryption,omitempty"`
	// User specifies a special user to create during install
	User *UserExtension `json:"user,omitempty"`
	// Monitoring configures monitoring extension
	Monitoring *MonitoringExtension `json:"monitoring,omitempty"`
}

Extensions section defines extensions such as encryption

func (*Extensions) DeepCopy

func (in *Extensions) DeepCopy() *Extensions

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

func (*Extensions) DeepCopyInto

func (in *Extensions) DeepCopyInto(out *Extensions)

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

type FinalInstallStep

type FinalInstallStep struct {
	// ServiceName is the name of a service running inside installed k8s cluster
	// that the installer should be redirected to
	ServiceName string `json:"service_name,omitempty"`
}

FinalInstallStep defines the last vendor-customizable installation step

func (*FinalInstallStep) DeepCopy

func (in *FinalInstallStep) DeepCopy() *FinalInstallStep

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

func (*FinalInstallStep) DeepCopyInto

func (in *FinalInstallStep) DeepCopyInto(out *FinalInstallStep)

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

type Flavor

type Flavor struct {
	// Name defines the flavor name
	Name string `json:"name,omitempty"`
	// Description provides free text description of the flavor
	Description string `json:"description,omitempty"`
	// Threshold defines the boundary between two scaling steps (flavors)
	Threshold Threshold `json:"threshold,omitempty"`
	// Profiles defines the allocation of server profiles in this scaling step
	Profiles map[string]int `json:"profiles,omitempty"`
}

Flavor defines a scaling behavior for a configured server profile

func (*Flavor) DeepCopy

func (in *Flavor) DeepCopy() *Flavor

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

func (*Flavor) DeepCopyInto

func (in *Flavor) DeepCopyInto(out *Flavor)

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

type Flavors

type Flavors struct {
	// Title sets a descriptive title for this scaling matrix
	Title string `json:"title"`
	// DefaultFlavor specifies the name of the default flavor for the application
	DefaultFlavor string `json:"default_flavor,omitempty"`
	// Items define a list of scaling steps (flavors)
	Items []Flavor `json:"items"`
}

Flavors defines a scaling behavior for the configured server profiles

func (*Flavors) DeepCopy

func (in *Flavors) DeepCopy() *Flavors

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

func (*Flavors) DeepCopyInto

func (in *Flavors) DeepCopyInto(out *Flavors)

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

type Header struct {
	metav1.TypeMeta
	// Metadata is the application metadata
	Metadata Metadata `json:"metadata,omitempty" yaml:"metadata,omitempty"`
}

func (*Header) DeepCopy

func (in *Header) DeepCopy() *Header

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

func (*Header) DeepCopyInto

func (in *Header) DeepCopyInto(out *Header)

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

type HookType

type HookType string

HookType defines the application hook type

const (
	// HookInstall defines the installation hook
	HookInstall HookType = "install"
	// HookUninstall defines the installation hook
	HookUninstall HookType = "uninstall"
	// HookInstalled defines the post install hook
	HookInstalled HookType = "post_install"
	// HookUninstalling defines the before uninstall hook
	HookUninstalling HookType = "pre_uninstall"
	// HookUpdate defines the application update hook
	HookUpdate HookType = "update"
	// HookUpdated defines the post application update hook
	HookUpdated HookType = "post_update"
	// HookRollback defines the application rollback hook
	HookRollback HookType = "rollback"
	// HookRolledBack defines the application post rollback hook
	HookRolledBack HookType = "post_rollback"
	// HookNodeAdding defines the before expand hook
	HookNodeAdding HookType = "pre_node_add"
	// HookNodeAdded defines the post expand hook
	HookNodeAdded HookType = "post_node_add"
	// HookNodeRemoving defines the before shrink hook
	HookNodeRemoving HookType = "pre_node_remove"
	// HookNodeRemoved defines the post shrink hook
	HookNodeRemoved HookType = "post_node_remove"
	// HookStatus defines the application status hook
	HookStatus HookType = "status"
	// HookInfo defines the application service info hook
	HookInfo HookType = "info"
	// HookLicenseUpdated defines the license update hook
	HookLicenseUpdated HookType = "license_updated"
	// HookStart defines the application start hook
	HookStart HookType = "start"
	// HookStop defines the application stop hook
	HookStop HookType = "stop"
	// HookDump defines the application dump hook
	HookDump HookType = "dump"
	// HookBackup defines a hook to trigger backup of application data.
	// The hook is scheduled on the same node where the backup command runs
	HookBackup HookType = "backup"
	// HookRestore defines a hook to restore application state from a previously
	// created backup.
	// The hook is scheduled on the same node where the restore command runs
	HookRestore HookType = "restore"
)

type Hooks

type Hooks struct {
	// Install hook executes an installation script
	Install *HooksBase `json:"install,omitempty"`
	// Installed hook executes script after install
	Installed *HooksBase `json:"post_install,omitempty"`
	// Uninstall hook executes an uninstallation script
	Uninstall *HooksBase `json:"uninstall,omitempty"`
	// Uninstalling hook runs just before the uninstall operation commences
	Uninstalling *HooksBase `json:"pre_uninstall,omitempty"`
	// NodeAdding hook runs before the expand operation starts
	NodeAdding *HooksBase `json:"pre_node_add,omitempty"`
	// NodeAdded hook runs after the expand operation has completed
	NodeAdded *HooksBase `json:"post_node_add,omitempty"`
	// NodeRemoving hook runs before the shrink operation starts
	NodeRemoving *HooksBase `json:"pre_node_remove,omitempty"`
	// NodeRemoved hook runs after the shrink operation has completed
	NodeRemoved *HooksBase `json:"post_node_remove,omitempty"`
	// Updating hook runs before the update operation starts
	Updating *HooksBase `json:"update,omitempty"`
	// Updated hook runs after the update operation has completed
	Updated *HooksBase `json:"post_update,omitempty"`
	// Rollback hook runs when update operation fails
	Rollback *HooksBase `json:"rollback,omitempty"`
	// RolledBack hook runs after rollback has been finished
	RolledBack *HooksBase `json:"post_rollback,omitempty"`
	// Status hook reports the status of the application
	Status *HooksBase `json:"status,omitempty"`
	// Info hook serves as an information endpoint for an installed application.
	// It is used to obtain the details of the application service(s)
	Info *HooksBase `json:"info,omitempty"`
	// LicenseUpdated hook is triggered when a site license has been updated.
	LicenseUpdated *HooksBase `json:"license_updated,omitempty"`
	// Start hook provides a way to start a stopped application.
	Start *HooksBase `json:"start,omitempty"`
	// Stop hook provides a way to stop a running application.
	Stop *HooksBase `json:"stop,omitempty"`
	// Dump hook is used for retrieving application-specific dumps for debug reports
	Dump *HooksBase `json:"dump,omitempty"`
	// HookBackup defines a hook to trigger backup of application data
	Backup *HooksBase `json:"backup,omitempty"`
	// HookRestore defines a hook to restore application state from a previously
	// created backup
	Restore *HooksBase `json:"restore,omitempty"`
}

Hooks defines a set of application lifecycle hooks in effect

func (Hooks) AllHooks

func (h Hooks) AllHooks() []*HooksBase

AllHooks returns all non-nil hooks.

func (*Hooks) DeepCopy

func (in *Hooks) DeepCopy() *Hooks

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

func (*Hooks) DeepCopyInto

func (in *Hooks) DeepCopyInto(out *Hooks)

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

type HooksBase

type HooksBase struct {
	// Type denotes the type of this hook
	Type HookType `json:"type,omitempty"`
	// JobSpec defines the raw kubernetes job resource template executed
	// verbatim
	JobSpec v1.Job `json:"spec,omitempty"`
}

HooksBase defines a hook as either a shell script run in the context of the automatically created job or the raw job spec

func (*HooksBase) DeepCopy

func (in *HooksBase) DeepCopy() *HooksBase

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

func (*HooksBase) DeepCopyInto

func (in *HooksBase) DeepCopyInto(out *HooksBase)

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

type Installer

type Installer struct {
	// Provisioners defines provisioner configuration
	Provisioners Provisioners `json:"provisioners,omitempty"`
	// Servers lists server profiles that specify generic hardware requirements
	// for a set of nodes
	Servers map[string]ServerProfile `json:"servers,omitempty"`
	// Flavors defines a scaling matrix for the configured server profiles
	Flavors Flavors `json:"flavors"`
	// License defines whether an application requires a license to operate
	License License `json:"license"`
	// EULA defines the End User License Agreement
	EULA EULA `json:"eula"`
	// FinalInstallStep defines the last vendor-customizable installation step
	FinalInstallStep *FinalInstallStep `json:"final_install_step,omitempty"`
}

Installer defines the installation section of the site manifest

func (*Installer) DeepCopy

func (in *Installer) DeepCopy() *Installer

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

func (*Installer) DeepCopyInto

func (in *Installer) DeepCopyInto(out *Installer)

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

type KubeConfig

type KubeConfig struct {
	// CloudProvider defines the cloud provider to use
	CloudProvider string `json:"cloud_provider,omitempty"`
}

KubeConfig defines kubernetes-specific orchestration configuration

func (*KubeConfig) DeepCopy

func (in *KubeConfig) DeepCopy() *KubeConfig

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

func (*KubeConfig) DeepCopyInto

func (in *KubeConfig) DeepCopyInto(out *KubeConfig)

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

type License

type License struct {
	// Enabled flag controls whether an application requires a license
	Enabled bool `json:"enabled"` // does not have "omitempty" so it's always explicit
	// Type is the type of license accepted by application (see ops.license.LicenseType* for details)
	Type string `json:"type"`
	// TrialFlavors is a list of flavor names that do not require a license
	TrialFlavors []string `json:"trial_flavors,omitempty"`
}

License defines whether the license mode is enabled for an application and which flavors do not require a license

func (*License) DeepCopy

func (in *License) DeepCopy() *License

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

func (*License) DeepCopyInto

func (in *License) DeepCopyInto(out *License)

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

type Manifest

type Manifest struct {
	Header
	*Installer     `json:"installer,omitempty"`
	*Orchestration `json:"orchestration,omitempty"`
	Dependencies   `json:"dependencies,omitempty"`
	*Hooks         `json:"hooks,omitempty"`
	Base           *ManifestRef `json:"base,omitempty"`
	Endpoints      []Endpoint   `json:"endpoints,omitempty"`
	WebConfig      *WebConfig   `json:"webConfig,omitempty"`
	// OpsCenterConfig defines the block to configure remote access to an OpsCenter
	OpsCenterConfig *OpsCenterConfig `json:"opscenter,omitempty"`
	// Extensions section defines various application extension features, such as
	// encryption
	Extensions *Extensions `json:"extensions,omitempty"`
}

Manifest is a site manifest +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func UnmarshalJSON

func UnmarshalJSON(bytes []byte) (*Manifest, error)

func (*Manifest) DeepCopy

func (in *Manifest) DeepCopy() *Manifest

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

func (*Manifest) DeepCopyInto

func (in *Manifest) DeepCopyInto(out *Manifest)

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

func (*Manifest) DeepCopyObject

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

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

func (Manifest) GetObjectKind

func (m Manifest) GetObjectKind() kubeschema.ObjectKind

GetObjectKind returns the manifest header

type ManifestRef

type ManifestRef struct {
	// Package names the referred to application
	Package loc.Locator
}

ManifestRef defines a reference to another application's manifest

func (*ManifestRef) DeepCopy

func (in *ManifestRef) DeepCopy() *ManifestRef

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

func (*ManifestRef) DeepCopyInto

func (in *ManifestRef) DeepCopyInto(out *ManifestRef)

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

func (*ManifestRef) MarshalJSON

func (r *ManifestRef) MarshalJSON() ([]byte, error)

MarshalJSON formats manifest reference as JSON

func (*ManifestRef) UnmarshalJSON

func (r *ManifestRef) UnmarshalJSON(data []byte) error

UnmarshalJSON reads manifest reference from the specified data

type Metadata

type Metadata struct {
	metav1.ObjectMeta
	// Repository is the name of the repository the application belongs to
	Repository string `json:"repository,omitempty" yaml:"repository,omitempty"`
	// ReleaseNotes are the release notes for the current application version
	ReleaseNotes string `json:"releaseNotes,omitempty" yaml:"releaseNotes,omitempty"`
	// Resources are the resource notes for the current application
	Resources string `json:"resources,omitempty" yaml:"resources,omitempty"`
	Logo map[string]string `json:"logo,omitempty" yaml:"logo,omitempty"`
}

Metadata defines the block of application-specific metadata

func (*Metadata) DeepCopy

func (in *Metadata) DeepCopy() *Metadata

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

func (*Metadata) DeepCopyInto

func (in *Metadata) DeepCopyInto(out *Metadata)

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

type MonitoringExtension

type MonitoringExtension struct {
	// Enabled flag controls monitoring extension status
	Enabled bool `json:"enabled"`
}

MonitoringExtension enables/disables monitoring

func (*MonitoringExtension) DeepCopy

func (in *MonitoringExtension) DeepCopy() *MonitoringExtension

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

func (*MonitoringExtension) DeepCopyInto

func (in *MonitoringExtension) DeepCopyInto(out *MonitoringExtension)

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

type Mount

type Mount struct {
	// Name defines a name for this mount
	Name string `json:"name,omitempty"`
	// Source defines the path on host mapped inside the cluster
	// environment container.
	// The source can be left empty at manifest definition state to
	// allow user input
	Source string `json:"source,omitempty"`
	// Destination is the mount point where the host path is mapped inside
	// the cluster container
	Destination string `json:"destination,omitempty"`
	// CreateIfMissing forces a non-existing source directory to be created
	CreateIfMissing *bool `json:"create_if_missing,omitempty"`
	// MinTotalMB is a minimum size requirement in MB for the source directory
	MinTotalMB int `json:"min_total_mb,omitempty"`
	// FSTypes is a list of allowed fs types for the source directory
	FSTypes []string `json:"fs_types,omitempty"`
}

Mount defines a mount point that maps a directory on host (Source) to a directory inside planet's filesystem namespace (Destination).

func (*Mount) DeepCopy

func (in *Mount) DeepCopy() *Mount

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

func (*Mount) DeepCopyInto

func (in *Mount) DeepCopyInto(out *Mount)

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

type Mounts

type Mounts map[string]Mount

Mounts is a list of mount points

func (Mounts) MarshalJSON

func (r Mounts) MarshalJSON() ([]byte, error)

MarshalJSON serializes r as a list of Mounts

func (*Mounts) UnmarshalJSON

func (r *Mounts) UnmarshalJSON(p []byte) error

UnmarshalJSON interprets input as a list of Mounts

type Network

type Network struct {
	// MinMBPerSecond is the minimum bandwidth in megabytes per second
	MinMBPerSecond int `json:"min_mbps"`
}

Network specifies network bandwidth requirements

func (*Network) DeepCopy

func (in *Network) DeepCopy() *Network

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

func (*Network) DeepCopyInto

func (in *Network) DeepCopyInto(out *Network)

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

type OS

type OS struct {
	// Name is the supported OS name (e.g. centos, rhel, ubuntu)
	Name string `json:"name"`
	// Versions is supported OS versions
	Versions []string `json:"versions"`
}

OS specifies Operating System requirements for a server

func (*OS) DeepCopy

func (in *OS) DeepCopy() *OS

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

func (*OS) DeepCopyInto

func (in *OS) DeepCopyInto(out *OS)

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

type OnPremProvisioner

type OnPremProvisioner struct {
	// Variables defines all configuration parameters for a bare metal provisioner
	Spec OnPremSpec `json:"variables"`
}

OnPremProvisioner defines a bare metal provisioner

func (*OnPremProvisioner) DeepCopy

func (in *OnPremProvisioner) DeepCopy() *OnPremProvisioner

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

func (*OnPremProvisioner) DeepCopyInto

func (in *OnPremProvisioner) DeepCopyInto(out *OnPremProvisioner)

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

type OnPremSpec

type OnPremSpec struct {
	// Docker defines docker configuration
	Docker Docker `json:"docker"`
}

OnPremSpec groups all configuration parameters for an on-premises provisioner

func (*OnPremSpec) DeepCopy

func (in *OnPremSpec) DeepCopy() *OnPremSpec

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

func (*OnPremSpec) DeepCopyInto

func (in *OnPremSpec) DeepCopyInto(out *OnPremSpec)

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

type OpsCenterConfig

type OpsCenterConfig struct {
	// Address specifies the address of the remote OpsCenter
	Address unversioned.MultiSourceValue `json:"address"`
	// Token defines the agent token used to connect to the remote OpsCenter
	Token unversioned.MultiSourceValue `json:"token"`
}

OpsCenterConfig specifies configuration to connect to a remote OpsCenter

func (*OpsCenterConfig) DeepCopy

func (in *OpsCenterConfig) DeepCopy() *OpsCenterConfig

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

func (*OpsCenterConfig) DeepCopyInto

func (in *OpsCenterConfig) DeepCopyInto(out *OpsCenterConfig)

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

type Orchestration

type Orchestration struct {
	// KubeConfig defines kubernetes-specific orchestration configuration
	KubeConfig KubeConfig `json:"k8s,omitempty"`
}

Orchestration defines cluster orchestration configuration

func (*Orchestration) DeepCopy

func (in *Orchestration) DeepCopy() *Orchestration

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

func (*Orchestration) DeepCopyInto

func (in *Orchestration) DeepCopyInto(out *Orchestration)

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

type PackageDependencies

type PackageDependencies []PackageDependency

PackageDependencies defines a list of package dependencies

func (PackageDependencies) All

func (r PackageDependencies) All() (packages []loc.Locator)

All returns a list of package locators in this dependency list

func (*PackageDependencies) Merge

func (r *PackageDependencies) Merge(packages PackageDependencies)

Merge inserts packages into this dependency list avoiding duplicates

func (PackageDependencies) WithName

func (r PackageDependencies) WithName(name string) (*loc.Locator, error)

func (PackageDependencies) WithRole

func (r PackageDependencies) WithRole(packageName string) (*loc.Locator, error)

WithRole returns a list of packages matching the specified role

func (PackageDependencies) WithSelector

func (r PackageDependencies) WithSelector(selector, value string) []loc.Locator

WithSelector returns a list of packages matching the specified selector value

type PackageDependency

type PackageDependency struct {
	// Package defines the package name of the dependency
	Package loc.Locator
	// Selector defines the list of selectors assigned to this package
	Selector map[string]string `json:"selector,omitempty"`
}

PackageDependency defines a dependency on a package

func (*PackageDependency) DeepCopy

func (in *PackageDependency) DeepCopy() *PackageDependency

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

func (*PackageDependency) DeepCopyInto

func (in *PackageDependency) DeepCopyInto(out *PackageDependency)

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

func (*PackageDependency) MarshalJSON

func (r *PackageDependency) MarshalJSON() ([]byte, error)

MarshalJSON formats package dependency as JSON

func (*PackageDependency) UnmarshalJSON

func (r *PackageDependency) UnmarshalJSON(data []byte) error

UnmarshalJSON reads package dependency from the specified data

type Provisioners

type Provisioners struct {
	// Virsh defines a virsh provisioner
	Virsh *VirshProvisioner `json:"virsh,omitempty"`
	// OnPrem defines a bare metal provisioner
	OnPrem *OnPremProvisioner `json:"onprem,omitempty"`
	// AWSTerraform defines an AWS terraform provisioner
	AWSTerraform *AWSTerraformProvisioner `json:"aws_terraform,omitempty"`
}

Provisioners defines the set of provisioners supported in the manifest

func (*Provisioners) DeepCopy

func (in *Provisioners) DeepCopy() *Provisioners

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

func (*Provisioners) DeepCopyInto

func (in *Provisioners) DeepCopyInto(out *Provisioners)

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

type RAM

type RAM struct {
	// MinTotalMB is a minimum amount of RAM provided by the system
	MinTotalMB int `json:"min_total_mb"`
}

RAM specifies minimum amount of megabytes that will be available

func (*RAM) DeepCopy

func (in *RAM) DeepCopy() *RAM

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

func (*RAM) DeepCopyInto

func (in *RAM) DeepCopyInto(out *RAM)

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

type ServerPorts

type ServerPorts struct {
	// Protocol is port protocol, tcp or udp
	Protocol string `json:"protocol"`
	// Ranges is the port ranges
	Ranges []string `json:"ranges"`
}

ServerPorts specifies port ranges that should be available on a server

func (*ServerPorts) DeepCopy

func (in *ServerPorts) DeepCopy() *ServerPorts

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

func (*ServerPorts) DeepCopyInto

func (in *ServerPorts) DeepCopyInto(out *ServerPorts)

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

type ServerProfile

type ServerProfile struct {
	// Description is a human-readable description of this porfile
	Description string `json:"description,omitempty"`
	// CPU specifies CPU requirements
	CPU CPU `json:"cpu,omitempty"`
	// RAM specifies RAM requirements
	RAM RAM `json:"ram,omitempty"`
	// OS specifies Operation System requirements
	OS []OS `json:"os,omitempty"`
	// Ports specifies port requirements
	Ports []ServerPorts `json:"ports,omitempty"`
	// Disk specifies I/O requirements
	Disk Disk `json:"disk,omitempty"`
	// Network specifies networking requirements
	Network Network `json:"network,omitempty"`
	// Directories specifies the directory requirements
	Directories Directories `json:"directories,omitempty"`
	// Mounts lists required mount points
	Mounts Mounts `json:"mounts,omitempty"`
	// Labels specifies a set of application-specific labels to assign
	// to this profile
	Labels map[string]string `json:"labels,omitempty"`
	// ServiceRole specifies the server role
	ServiceRole ServiceRole `json:"service_role,omitempty"`
	// InstanceTypes defines a list of supported instance types for every
	// supported cloud provider
	InstanceTypes map[string][]string `json:"instance_types,omitempty"`
	// FixedInstanceType indicates whether it is allowed to add servers (during expand)
	// of the same role with an instance type different than the one other servers of
	// this profile have been provisioned with
	FixedInstanceType bool `json:"fixed_instance_type"`
	// NonExpandable defines whether this profile is not available for expansion.
	// Default is false (i.e. expandable)
	NonExpandable bool `json:"non_expandable"`
	// Request augments the static server profile with information about how many servers
	// of a certain instance type were actually requested for an install/expand operation.
	//
	// This is sort of "runtime" information used only during installation/expansion so it
	// is not a part of manifest schema.
	Request ServerProfileRequest `json:"request,omitempty"`
}

ServerProfile defines a server configuration profile

func (*ServerProfile) DeepCopy

func (in *ServerProfile) DeepCopy() *ServerProfile

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

func (*ServerProfile) DeepCopyInto

func (in *ServerProfile) DeepCopyInto(out *ServerProfile)

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

type ServerProfileRequest

type ServerProfileRequest struct {
	// InstanceType is the instance type to provision
	InstanceType string `json:"instance_type,omitempty"`
	// Count is the number of servers to provision
	Count int `json:"count,omitempty"`
}

ServerProfileRequest contains information about how many nodes of a certain type were requested for install/expand.

func (*ServerProfileRequest) DeepCopy

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

func (*ServerProfileRequest) DeepCopyInto

func (in *ServerProfileRequest) DeepCopyInto(out *ServerProfileRequest)

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

type ServiceRole

type ServiceRole string

ServiceRole defines the type for the node service role

type Threshold

type Threshold struct {
	// Value sets the value for this threshold in arbitrary units
	Value int64 `json:"value,omitempty"`
	// Label defines the human-readable representation of the value.
	// It can potentially be used to specify the units used in Value
	Label string `json:"label,omitempty"`
}

Threshold defines a transition boundary between two flavors

func (*Threshold) DeepCopy

func (in *Threshold) DeepCopy() *Threshold

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

func (*Threshold) DeepCopyInto

func (in *Threshold) DeepCopyInto(out *Threshold)

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

type UserExtension

type UserExtension struct {
	// Name is the name of the user
	Name string `json:"name"`
	// Type is the user type, only "container" is supported currently
	Type string `json:"type"`
	// Selector is the selector for the "container" user
	Selector map[string]string `json:"selector"`
	// Namespace is the k8s namespace to look for the pod in
	Namespace string `json:"namespace"`
	// Shell is the shell to use inside container
	Shell string `json:"shell"`
}

UserExtension is a configuration for "user" extension

func (*UserExtension) DeepCopy

func (in *UserExtension) DeepCopy() *UserExtension

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

func (*UserExtension) DeepCopyInto

func (in *UserExtension) DeepCopyInto(out *UserExtension)

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

type VirshProvisioner

type VirshProvisioner struct {
	// Spec defines the configuration parameters for the virsh provisioner
	Spec VirshSpec `json:"variables,omitempty"`
	// Commands lists all the commands the provisioner runs during provisioning
	Commands []string `json:"commands,omitempty"`
}

VirshProvisioner defines configuration for a virsh provisioner

func (*VirshProvisioner) DeepCopy

func (in *VirshProvisioner) DeepCopy() *VirshProvisioner

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

func (*VirshProvisioner) DeepCopyInto

func (in *VirshProvisioner) DeepCopyInto(out *VirshProvisioner)

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

type VirshSpec

type VirshSpec struct {
	// Image defines the VM image to use to boot instances from
	Image string `json:"image,omitempty"`
	// Devices specifies the details of each configured device
	Devices []Device `json:"devices,omitempty"`
	// RAM specifies the memory allocated to the VM, in megabytes
	RAM int `json:"ram_mb,omitempty"`
	// Docker defines docker-specific configuration
	Docker Docker `json:"docker"`
}

VirshSpec groups all configuration parameters for a virsh provisioner

func (*VirshSpec) DeepCopy

func (in *VirshSpec) DeepCopy() *VirshSpec

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

func (*VirshSpec) DeepCopyInto

func (in *VirshSpec) DeepCopyInto(out *VirshSpec)

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

type WebConfig

type WebConfig struct {
	// Modules specifies various parts of web installer / site that can be customized
	Modules *WebModules `json:"modules,omitempty"`
}

WebConfig manifest section holds vendor-customizable parts of the installer or a deployed site (like text strings).

Its structure resembles config.js used on the frontend so it can be directly applied to config.js to override its default values with vendor-specific ones.

func (*WebConfig) DeepCopy

func (in *WebConfig) DeepCopy() *WebConfig

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

func (*WebConfig) DeepCopyInto

func (in *WebConfig) DeepCopyInto(out *WebConfig)

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

type WebFeature

type WebFeature struct {
	// Enabled turns the feature on/off
	Enabled bool `json:"enabled"`
}

WebFeature represents a UI feature (e.g. a tab in UI) that can be enabled/disabled

func (*WebFeature) DeepCopy

func (in *WebFeature) DeepCopy() *WebFeature

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

func (*WebFeature) DeepCopyInto

func (in *WebFeature) DeepCopyInto(out *WebFeature)

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

type WebFeatures

type WebFeatures struct {
	// Kubernetes is a tab with Kubernetes resources - pods, services, etc.
	Kubernetes *WebFeature `json:"k8s,omitempty"`
	// Configuration is a tab with Kubernetes config maps
	Configuration *WebFeature `json:"configMaps,omitempty"`
}

WebFeatures defines various UI features that can be enabled/disabled

func (*WebFeatures) DeepCopy

func (in *WebFeatures) DeepCopy() *WebFeatures

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

func (*WebFeatures) DeepCopyInto

func (in *WebFeatures) DeepCopyInto(out *WebFeatures)

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

type WebInstaller

type WebInstaller struct {
	// Providers is a list of providers the app installer supports
	Providers []string `json:"providers,omitempty"`
	// EnableTags controls whether the installer allows to change site labels before installation
	EnableTags bool `json:"enableTags,omitempty"`
	// LicenseHeaderText is the title that prompts user to choose licensed versus non-licensed deployment
	LicenseHeaderText string `json:"licenseHeaderText,omitempty"`
	// LicenseOptionTrialText is the text for non-licensed deployment type
	LicenseOptionTrialText string `json:"licenseOptionTrialText,omitempty"`
	// LicenseOptionText is the text for licensed deployment type
	LicenseOptionText string `json:"licenseOptionText,omitempty"`
	// LicenseUserHintText is the help message that appears on the deployment type screen
	LicenseUserHintText string `json:"licenseUserHintText,omitempty"`
	// EULAHeaderText is the title for the EULA screen
	EULAHeaderText string `json:"eulaHeaderText,omitempty"`
	// EULAAgreeText is the agree text for the EULA screen
	EULAAgreeText string `json:"eulaAgreeText,omitempty"`
}

WebInstaller defines vendor-customized text strings for the installer.

func (*WebInstaller) DeepCopy

func (in *WebInstaller) DeepCopy() *WebInstaller

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

func (*WebInstaller) DeepCopyInto

func (in *WebInstaller) DeepCopyInto(out *WebInstaller)

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

type WebModules

type WebModules struct {
	// Installer contains customizations for web installer
	Installer *WebInstaller `json:"installer,omitempty"`
	// Site contains UI customizations for a deployed site
	Site *WebSite `json:"site,omitempty"`
}

WebModules is a part of web config section that holds vendor customizations for various parts of the application.

func (*WebModules) DeepCopy

func (in *WebModules) DeepCopy() *WebModules

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

func (*WebModules) DeepCopyInto

func (in *WebModules) DeepCopyInto(out *WebModules)

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

type WebSite

type WebSite struct {
	// Features is a set of UI features that can be enabled/disabled
	Features *WebFeatures `json:"features,omitempty"`
}

WebSite defines UI customizations for a deployed site

func (*WebSite) DeepCopy

func (in *WebSite) DeepCopy() *WebSite

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

func (*WebSite) DeepCopyInto

func (in *WebSite) DeepCopyInto(out *WebSite)

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