Documentation ¶
Index ¶
- Constants
- Variables
- func DidNS(did manifest.DeploymentID) string
- func NewHostName(ns string, hostName string) string
- func ShouldBeIngress(expose *manifest.ServiceExpose) bool
- func ValidateSettings(settings Settings) error
- type ClusterDeployment
- type ClusterSettings
- type ContextKey
- type Deployment
- type HostnameDirective
- type IClusterDeployment
- type Ingress
- type NS
- type NetPol
- type SchedulerParams
- type SchedulerResourceGPU
- type SchedulerResources
- type Service
- type Settings
- type StatefulSet
- type Workload
Constants ¶
View Source
const ( TitanManagedLabelName = "titan.provider" TitanManifestServiceLabelName = "titan.provider/manifest-service" )
View Source
const ( StorageAttributePersistent = "persistent" StorageAttributeClass = "class" StorageClassDefault = "default" StorageAttributeMount = "mount" ResourceGPUNvidia = corev1.ResourceName("nvidia.com/gpu") ResourceGPUAMD = corev1.ResourceName("amd.com/gpu") GPUVendorNvidia = "nvidia" GPUVendorAMD = "amd" GPUAttributeVendor = "vendor" )
View Source
const SettingsKey = ContextKey("kube-client-settings")
View Source
const SuffixForNodePortServiceName = "-np"
Variables ¶
View Source
var ErrSettingsValidation = xerrors.New("settings validation")
Functions ¶
func DidNS ¶
func DidNS(did manifest.DeploymentID) string
func NewHostName ¶
func ShouldBeIngress ¶
func ShouldBeIngress(expose *manifest.ServiceExpose) bool
func ValidateSettings ¶
Types ¶
type ClusterDeployment ¶
type ClusterDeployment struct { Did manifest.DeploymentID Group *manifest.Group Sparams ClusterSettings }
func (*ClusterDeployment) ClusterParams ¶
func (d *ClusterDeployment) ClusterParams() ClusterSettings
func (*ClusterDeployment) DeploymentID ¶
func (d *ClusterDeployment) DeploymentID() manifest.DeploymentID
func (*ClusterDeployment) ManifestGroup ¶
func (d *ClusterDeployment) ManifestGroup() *manifest.Group
type ClusterSettings ¶
type ClusterSettings struct {
SchedulerParams []*SchedulerParams `json:"scheduler_params"`
}
type ContextKey ¶
type ContextKey string
type Deployment ¶
type Deployment interface { Create() (*appsv1.Deployment, error) Update(obj *appsv1.Deployment) (*appsv1.Deployment, error) // contains filtered or unexported methods }
func NewDeployment ¶
func NewDeployment(workload Workload) Deployment
type HostnameDirective ¶
type HostnameDirective struct { IngressName string Hostname string ServiceName string ServicePort int32 ReadTimeout uint32 SendTimeout uint32 NextTimeout uint32 MaxBodySize uint32 NextTries uint32 NextCases []string }
func BuildHostNameDirective ¶
func BuildHostNameDirective(ns, hostName, serviceName, ingressName string, serviceExpose *manifest.ServiceExpose) *HostnameDirective
type IClusterDeployment ¶
type IClusterDeployment interface { DeploymentID() manifest.DeploymentID ManifestGroup() *manifest.Group ClusterParams() ClusterSettings }
type Ingress ¶
type Ingress interface { Create() (*netv1.Ingress, error) Update(obj *netv1.Ingress) (*netv1.Ingress, error) // contains filtered or unexported methods }
func BuildIngress ¶
func BuildIngress(workload Workload, directive *HostnameDirective, tls []netv1.IngressTLS) Ingress
type NS ¶
type NS interface { Create() (*corev1.Namespace, error) Update(obj *corev1.Namespace) (*corev1.Namespace, error) // contains filtered or unexported methods }
func BuildNS ¶
func BuildNS(settings Settings, deployment IClusterDeployment) NS
type NetPol ¶
type NetPol interface { Create() ([]*netv1.NetworkPolicy, error) Update(obj *netv1.NetworkPolicy) (*netv1.NetworkPolicy, error) // contains filtered or unexported methods }
func BuildNetPol ¶
func BuildNetPol(settings Settings, deployment IClusterDeployment) NetPol
type SchedulerParams ¶
type SchedulerParams struct { RuntimeClass string `json:"runtime_class"` Resources *SchedulerResources `json:"resources,omitempty"` }
type SchedulerResourceGPU ¶
type SchedulerResources ¶
type SchedulerResources struct {
GPU *SchedulerResourceGPU `json:"gpu"`
}
type Service ¶
type Service interface { Create() (*corev1.Service, error) Update(obj *corev1.Service) (*corev1.Service, error) Any() bool // contains filtered or unexported methods }
func BuildService ¶
type Settings ¶
type Settings struct { // gcp: NodePort // others: ClusterIP DeploymentServiceType corev1.ServiceType // gcp: false // others: true DeploymentIngressStaticHosts bool // Ingress domain to map deployments to DeploymentIngressDomain string // Return load balancer host in lease status command ? // gcp: true // others: optional DeploymentIngressExposeLBHosts bool // Global hostname for arbitrary ports ClusterPublicHostname string // NetworkPoliciesEnabled determines if NetworkPolicies should be installed. NetworkPoliciesEnabled bool CPUCommitLevel float64 GPUCommitLevel float64 MemoryCommitLevel float64 StorageCommitLevel float64 DeploymentRuntimeClass string // Name of the image pull secret to use in pod spec DockerImagePullSecretsName string }
Settings configures k8s object generation such that it is customized to the cluster environment that is being used. For instance, GCP requires a different service type than minikube.
func NewDefaultSettings ¶
func NewDefaultSettings() Settings
type StatefulSet ¶
type StatefulSet interface { Create() (*appsv1.StatefulSet, error) Update(obj *appsv1.StatefulSet) (*appsv1.StatefulSet, error) // contains filtered or unexported methods }
func BuildStatefulSet ¶
func BuildStatefulSet(workload Workload) StatefulSet
type Workload ¶
type Workload struct {
// contains filtered or unexported fields
}
func NewWorkload ¶
func NewWorkload(settings Settings, deployment IClusterDeployment, serviceIdx int) Workload
Click to show internal directories.
Click to hide internal directories.