common

package
v0.0.0-...-6c744c8 Latest Latest
Warning

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

Go to latest
Published: Mar 13, 2025 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

Functions

func PingInterLink(ctx context.Context) (bool, int, error)

PingInterLink pings the InterLink API and returns true if there's an answer. The second return value is given by the answer provided by the API.

func SetDurationSpan

func SetDurationSpan(startTime int64, span trace.Span, opts ...SpanOption)

Types

type ContainerLogOpts

type ContainerLogOpts struct {
	Tail         int       `json:"Tail"`
	LimitBytes   int       `json:"Bytes"`
	Timestamps   bool      `json:"Timestamps"`
	Follow       bool      `json:"Follow"`
	Previous     bool      `json:"Previous"`
	SinceSeconds int       `json:"SinceSeconds"`
	SinceTime    time.Time `json:"SinceTime"`
}

ContainerLogOpts is a struct in which it is possible to specify options to retrieve logs from the sidecar

type InterLinkConfig

type InterLinkConfig struct {
	VKConfigPath      string `yaml:"VKConfigPath"`
	VKTokenFile       string `yaml:"VKTokenFile"`
	Interlinkurl      string `yaml:"InterlinkURL"`
	Sidecarurl        string `yaml:"SidecarURL"`
	Sbatchpath        string `yaml:"SbatchPath"`
	Scancelpath       string `yaml:"ScancelPath"`
	Squeuepath        string `yaml:"SqueuePath"`
	Interlinkport     string `yaml:"InterlinkPort"`
	Socket            string `yaml:"Socket"`
	Sidecarport       string `yaml:"SidecarPort"`
	Commandprefix     string `yaml:"CommandPrefix"`
	ExportPodData     bool   `yaml:"ExportPodData"`
	DataRootFolder    string `yaml:"DataRootFolder"`
	ServiceAccount    string `yaml:"ServiceAccount"`
	Namespace         string `yaml:"Namespace"`
	Tsocks            bool   `yaml:"Tsocks"`
	Tsockspath        string `yaml:"TsocksPath"`
	Tsocksconfig      string `yaml:"TsocksConfig"`
	Tsockslogin       string `yaml:"TsocksLoginNode"`
	BashPath          string `yaml:"BashPath"`
	VerboseLogging    bool   `yaml:"VerboseLogging"`
	ErrorsOnlyLogging bool   `yaml:"ErrorsOnlyLogging"`
	PodIP             string `yaml:"PodIP"`
	SingularityPrefix string `yaml:"SingularityPrefix"`
	// contains filtered or unexported fields
}

InterLinkConfig holds the whole configuration

var InterLinkConfigInst InterLinkConfig

func NewInterLinkConfig

func NewInterLinkConfig() (InterLinkConfig, error)

NewInterLinkConfig returns a variable of type InterLinkConfig, used in many other functions and the first encountered error.

type LogStruct

type LogStruct struct {
	Namespace     string           `json:"Namespace"`
	PodUID        string           `json:"PodUID"`
	PodName       string           `json:"PodName"`
	ContainerName string           `json:"ContainerName"`
	Opts          ContainerLogOpts `json:"Opts"`
}

LogStruct is needed to identify the job/container running on the sidecar to retrieve the logs from. Using ContainerLogOpts struct allows to specify more options on how to collect logs

type PodCreateRequests

type PodCreateRequests struct {
	Pod        v1.Pod         `json:"pod"`
	ConfigMaps []v1.ConfigMap `json:"configmaps"`
	Secrets    []v1.Secret    `json:"secrets"`
}

PodCreateRequests is a struct holding data for a create request. Retrieved ConfigMaps and Secrets are held along the Pod description itself.

type PodStatus

type PodStatus struct {
	PodName        string               `json:"name"`
	PodUID         string               `json:"UID"`
	PodNamespace   string               `json:"namespace"`
	JobID          string               `json:"JID"`
	Containers     []v1.ContainerStatus `json:"containers"`
	InitContainers []v1.ContainerStatus `json:"initContainers"`
}

PodStatus is a simplified v1.Pod struct, holding only necessary variables to uniquely identify a job/service in the sidecar. It is used to request

type RetrievedContainer

type RetrievedContainer struct {
	Name       string         `json:"name"`
	ConfigMaps []v1.ConfigMap `json:"configMaps"`
	Secrets    []v1.Secret    `json:"secrets"`
	EmptyDirs  []string       `json:"emptyDirs"`
}

RetrievedContainer is used in InterLink to rearrange data structure in a suitable way for the sidecar

type RetrievedPodData

type RetrievedPodData struct {
	Pod            v1.Pod               `json:"pod"`
	Containers     []RetrievedContainer `json:"container"`
	InitContainers []RetrievedContainer `json:"initContainer"`
	JobScript      string               `json:"jobScript"`
}

RetrievedPoData is used in InterLink to rearrange data structure in a suitable way for the sidecar

type SpanConfig

type SpanConfig struct {
	HTTPReturnCode int
	SetHTTPCode    bool
}

type SpanOption

type SpanOption func(*SpanConfig)

func WithHTTPReturnCode

func WithHTTPReturnCode(code int) SpanOption

Jump to

Keyboard shortcuts

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