api

package
v0.3.0-alpha Latest Latest
Warning

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

Go to latest
Published: Dec 8, 2023 License: MPL-2.0 Imports: 9 Imported by: 0

Documentation

Overview

+kubebuilder:object:generate=true

Index

Constants

View Source
const (
	DefaultLogFormat             = "json"
	DefaultLogLevel              = "info"
	DefaultMaxEventSizeBytes     = 5242880 // 5 MiB
	DefaultReleaseLimitCount     = 100
	DefaultReleaseTimeoutSeconds = 300 // 5 mins
	DefaultTimeoutSeconds        = 30

	MaximumMaxEventSizeBytes = 16777216 // 16 MiB
)
View Source
const (
	LabelK8sAppBranch             string = "kubefox.xigxog.io/app-branch"
	LabelK8sAppCommit             string = "kubefox.xigxog.io/app-commit"
	LabelK8sAppCommitShort        string = "kubefox.xigxog.io/app-commit-short"
	LabelK8sAppComponent          string = "kubefox.xigxog.io/app-component"
	LabelK8sAppDeployment         string = "kubefox.xigxog.io/app-deployment"
	LabelK8sAppName               string = "app.kubernetes.io/name"
	LabelK8sAppTag                string = "kubefox.xigxog.io/app-tag"
	LabelK8sAppVersion            string = "kubefox.xigxog.io/app-version"
	LabelK8sComponent             string = "app.kubernetes.io/component"
	LabelK8sComponentCommit       string = "kubefox.xigxog.io/component-commit"
	LabelK8sComponentCommitShort  string = "kubefox.xigxog.io/component-commit-short"
	LabelK8sInstance              string = "app.kubernetes.io/instance"
	LabelK8sPlatform              string = "kubefox.xigxog.io/platform"
	LabelK8sPlatformComponent     string = "kubefox.xigxog.io/platform-component"
	LabelK8sReleaseStatus         string = "kubefox.xigxog.io/release-status"
	LabelK8sRuntimeVersion        string = "app.kubernetes.io/runtime-version"
	LabelK8sSourceKind            string = "kubefox.xigxog.io/source-kind"
	LabelK8sSourceResourceVersion string = "kubefox.xigxog.io/source-resource-version"
	LabelK8sVirtualEnv            string = "kubefox.xigxog.io/virtual-env"
	LabelK8sVirtualEnvSnapshot    string = "kubefox.xigxog.io/virtual-env-snapshot"
)

Kubernetes Labels

View Source
const (
	AnnotationTemplateData     string = "kubefox.xigxog.io/template-data"
	AnnotationTemplateDataHash string = "kubefox.xigxog.io/template-data-hash"
)

Kubernetes Annotations

View Source
const (
	LabelOCIApp       string = "com.xigxog.kubefox.app"
	LabelOCIComponent string = "com.xigxog.kubefox.component"
	LabelOCICreated   string = "org.opencontainers.image.created"
	LabelOCIRevision  string = "org.opencontainers.image.revision"
	LabelOCISource    string = "org.opencontainers.image.source"
)

Container Labels

View Source
const (
	EnvNodeName = "KUBEFOX_NODE"
	EnvPodIP    = "KUBEFOX_POD_IP"
	EnvPodName  = "KUBEFOX_POD"
)
View Source
const (
	PlatformComponentBootstrap string = "bootstrap"
	PlatformComponentBroker    string = "broker"
	PlatformComponentHTTPSrv   string = "httpsrv"
	PlatformComponentNATS      string = "nats"
	PlatformComponentOperator  string = "operator"
)
View Source
const (
	ValKeyHeader     = "header"
	ValKeyHost       = "host"
	ValKeyMethod     = "method"
	ValKeyPath       = "path"
	ValKeyQuery      = "queryParam"
	ValKeySpanId     = "spanId"
	ValKeyStatus     = "status"
	ValKeyStatusCode = "statusCode"
	ValKeyTraceFlags = "traceFlags"
	ValKeyTraceId    = "traceId"
	ValKeyURL        = "url"
)

Keys for well known values.

View Source
const (
	HeaderAbbrvDep       = "kf-dep"
	HeaderAbbrvEnv       = "kf-env"
	HeaderAbbrvEventType = "kf-type"
	HeaderAdapter        = "kubefox-adapter"
	HeaderContentLength  = "Content-Length"
	HeaderDep            = "kubefox-deployment"
	HeaderEnv            = "kubefox-environment"
	HeaderEventType      = "kubefox-type"
	HeaderHost           = "Host"
	HeaderShortDep       = "kfd"
	HeaderShortEnv       = "kfe"
	HeaderShortEventType = "kft"
	HeaderTraceId        = "kubefox-trace-id"
)

Headers and query params.

View Source
const (
	CharSetUTF8 = "charset=UTF-8"

	DataSchemaEvent = "kubefox.proto.v1.Event"

	ContentTypeHTML     = "text/html"
	ContentTypeJSON     = "application/json"
	ContentTypePlain    = "text/plain"
	ContentTypeProtobuf = "application/protobuf"
)
View Source
const (
	DefaultRouteId = -1
)
View Source
const (
	FinalizerReleaseProtection string = "kubefox.xigxog.io/release-protection"
)

Variables

View Source
var (
	RegexpCommit = regexp.MustCompile(`^[0-9a-f]{40}$`)
	RegexpGitRef = regexp.MustCompile(`^[a-z0-9][a-z0-9-\\.]{0,28}[a-z0-9]$`)
	RegexpImage  = regexp.MustCompile(`^.*:[a-z0-9-]{40}$`)
	RegexpName   = regexp.MustCompile(`^[a-z0-9][a-z0-9-]{0,28}[a-z0-9]$`)
	RegexpUUID   = regexp.MustCompile(`^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$`)
)
View Source
var (
	KubeFoxHome = utils.EnvDef("KUBEFOX_HOME", path.Join("/", "tmp", "kubefox"))

	FileCACert  = "ca.crt"
	FileTLSCert = "tls.crt"
	FileTLSKey  = "tls.key"

	PathCACert      = path.Join(KubeFoxHome, FileCACert)
	PathSvcAccToken = "/var/run/secrets/kubernetes.io/serviceaccount/token"
	PathTLSCert     = path.Join(KubeFoxHome, FileTLSCert)
	PathTLSKey      = path.Join(KubeFoxHome, FileTLSKey)
)
View Source
var EFS embed.FS

Functions

This section is empty.

Types

type App

type App struct {
	Name              string `json:"name"`
	ContainerRegistry string `json:"containerRegistry,omitempty"`
}

func (*App) DeepCopy

func (in *App) DeepCopy() *App

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

func (*App) DeepCopyInto

func (in *App) DeepCopyInto(out *App)

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

type AppDeploymentPolicy

type AppDeploymentPolicy string
const (
	AppDeploymentPolicyVersionOptional AppDeploymentPolicy = "VersionOptional"
	AppDeploymentPolicyVersionRequired AppDeploymentPolicy = "VersionRequired"
)

type AppDetails

type AppDetails struct {
	App     `json:",inline"`
	Details `json:",inline"`
}

func (*AppDetails) DeepCopy

func (in *AppDetails) DeepCopy() *AppDetails

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

func (*AppDetails) DeepCopyInto

func (in *AppDetails) DeepCopyInto(out *AppDetails)

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

type ComponentDefinition

type ComponentDefinition struct {
	// +kubebuilder:validation:Enum=db;genesis;kubefox;http
	Type           ComponentType            `json:"type"`
	Routes         []RouteSpec              `json:"routes,omitempty"`
	DefaultHandler bool                     `json:"defaultHandler,omitempty"`
	EnvSchema      map[string]*EnvVarSchema `json:"envSchema,omitempty"`
	Dependencies   map[string]*Dependency   `json:"dependencies,omitempty"`
}

func (*ComponentDefinition) DeepCopy

func (in *ComponentDefinition) DeepCopy() *ComponentDefinition

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

func (*ComponentDefinition) DeepCopyInto

func (in *ComponentDefinition) DeepCopyInto(out *ComponentDefinition)

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

type ComponentDetails

type ComponentDetails struct {
	ComponentDefinition `json:",inline"`
	Details             `json:",inline"`
}

func (*ComponentDetails) DeepCopy

func (in *ComponentDetails) DeepCopy() *ComponentDetails

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

func (*ComponentDetails) DeepCopyInto

func (in *ComponentDetails) DeepCopyInto(out *ComponentDetails)

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

type ComponentType

type ComponentType string
const (
	ComponentTypeDatabase ComponentType = "db"
	ComponentTypeGenesis  ComponentType = "genesis"
	ComponentTypeHTTP     ComponentType = "http"
	ComponentTypeKubeFox  ComponentType = "kubefox"
)

type Dependency

type Dependency struct {
	// +kubebuilder:validation:Enum=db;kubefox;http
	Type ComponentType `json:"type"`
}

func (*Dependency) DeepCopy

func (in *Dependency) DeepCopy() *Dependency

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

func (*Dependency) DeepCopyInto

func (in *Dependency) DeepCopyInto(out *Dependency)

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

type Details

type Details struct {
	Title       string `json:"title,omitempty"`
	Description string `json:"description,omitempty"`
}

func (*Details) DeepCopy

func (in *Details) DeepCopy() *Details

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

func (*Details) DeepCopyInto

func (in *Details) DeepCopyInto(out *Details)

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

type EnvVarSchema

type EnvVarSchema struct {
	// +kubebuilder:validation:Enum=array;boolean;number;string
	Type     EnvVarType `json:"type"`
	Required bool       `json:"required"`
	// Unique indicates that this environment variable must have a unique value
	// across all environments. If the value is not unique then making a dynamic
	// request or creating a release that utilizes this variable will fail.
	Unique bool `json:"unique"`
}

func (*EnvVarSchema) DeepCopy

func (in *EnvVarSchema) DeepCopy() *EnvVarSchema

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

func (*EnvVarSchema) DeepCopyInto

func (in *EnvVarSchema) DeepCopyInto(out *EnvVarSchema)

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

type EnvVarType

type EnvVarType string
const (
	EnvVarTypeArray   EnvVarType = "array"
	EnvVarTypeBoolean EnvVarType = "boolean"
	EnvVarTypeNumber  EnvVarType = "number"
	EnvVarTypeString  EnvVarType = "string"
)

type EventType

type EventType string
const (
	EventTypeCron       EventType = "io.kubefox.cron"
	EventTypeDapr       EventType = "io.kubefox.dapr"
	EventTypeHTTP       EventType = "io.kubefox.http"
	EventTypeKubeFox    EventType = "io.kubefox.kubefox"
	EventTypeKubernetes EventType = "io.kubefox.kubernetes"
)

Component event types

const (
	EventTypeAck       EventType = "io.kubefox.ack"
	EventTypeBootstrap EventType = "io.kubefox.bootstrap"
	EventTypeError     EventType = "io.kubefox.error"
	EventTypeHealth    EventType = "io.kubefox.health"
	EventTypeMetrics   EventType = "io.kubefox.metrics"
	EventTypeNack      EventType = "io.kubefox.nack"
	EventTypeRegister  EventType = "io.kubefox.register"
	EventTypeRejected  EventType = "io.kubefox.rejected"
	EventTypeTelemetry EventType = "io.kubefox.telemetry"
	EventTypeUnknown   EventType = "io.kubefox.unknown"
)

Platform event types

type FollowRedirects

type FollowRedirects string
const (
	FollowRedirectsAlways   FollowRedirects = "Always"
	FollowRedirectsNever    FollowRedirects = "Never"
	FollowRedirectsSameHost FollowRedirects = "SameHost"
)

type RouteSpec

type RouteSpec struct {
	Id       int    `json:"id"`
	Rule     string `json:"rule"`
	Priority int    `json:"priority,omitempty"`
}

func (*RouteSpec) DeepCopy

func (in *RouteSpec) DeepCopy() *RouteSpec

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

func (*RouteSpec) DeepCopyInto

func (in *RouteSpec) DeepCopyInto(out *RouteSpec)

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

type Val

type Val struct {
	Type ValType `json:"-"`
	// contains filtered or unexported fields
}

func ValArrayFloat

func ValArrayFloat(val []float64) *Val

func ValArrayInt

func ValArrayInt(val []int) *Val

func ValArrayString

func ValArrayString(val []string) *Val

func ValBool

func ValBool(val bool) *Val

func ValFloat

func ValFloat(val float64) *Val

func ValInt

func ValInt(val int) *Val

func ValNil

func ValNil() *Val

func ValProto

func ValProto(val *structpb.Value) (*Val, error)

func ValString

func ValString(val string) *Val

func (*Val) Any

func (val *Val) Any() any

func (*Val) ArrayFloat

func (val *Val) ArrayFloat() []float64

ArrayFloat returns the array value if type is ArrayNumber. Otherwise nil is returned.

func (*Val) ArrayInt

func (val *Val) ArrayInt() []int

ArrayInt returns the array value if type is ArrayNumber. Otherwise nil is returned.

func (*Val) ArrayString

func (val *Val) ArrayString() []string

ArrayString returns the array value if type is ArrayString or ArrayNumber. Otherwise nil is returned.

func (*Val) Bool

func (val *Val) Bool() bool

Bool returns the boolean value if type is Bool. If type is Number, false will be returned if value is 0, otherwise true is returned. If type is String, an attempt to parse the boolean value will be made. If parsing fails or type is Array false will be returned.

func (*Val) BoolDef

func (val *Val) BoolDef(def bool) bool

func (*Val) DeepCopy

func (in *Val) DeepCopy() *Val

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

func (*Val) DeepCopyInto

func (in *Val) DeepCopyInto(out *Val)

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

func (*Val) Equals

func (val *Val) Equals(rhs *Val) bool

func (*Val) Float

func (val *Val) Float() float64

Float returns the float64 value if type is Number. If type is Bool 1 will be returned if true, otherwise 0 is returned. If type is String an attempt to parse the number will be made. If parsing fails or type is Array 0 will be returned.

func (*Val) FloatDef

func (val *Val) FloatDef(def float64) float64

func (*Val) Int

func (val *Val) Int() int

Int returns the int value if type is Number. If type is Bool 1 will be returned if true, otherwise 0 is returned. If type is String an attempt to parse the number will be made. If parsing fails or type is Array 0 will be returned.

func (*Val) IntDef

func (val *Val) IntDef(def int) int

func (*Val) IsArrayNumber

func (val *Val) IsArrayNumber() bool

func (*Val) IsArrayString

func (val *Val) IsArrayString() bool

func (*Val) IsBool

func (val *Val) IsBool() bool

func (*Val) IsEmpty

func (val *Val) IsEmpty() bool

func (*Val) IsNil

func (val *Val) IsNil() bool

func (*Val) IsNumber

func (val *Val) IsNumber() bool

func (*Val) IsString

func (val *Val) IsString() bool

func (*Val) IsUnknown

func (val *Val) IsUnknown() bool

func (*Val) MarshalJSON

func (val *Val) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface.

func (*Val) Proto

func (val *Val) Proto() *structpb.Value

func (*Val) String

func (val *Val) String() string

String returns the string value if type is String. If type is Bool the `fmt.Sprintf("%t", bool)` of the bool value is returned. If type is Number the `fmt.Sprintf("%f", float)` of the number value is returned. If type is Array the JSON representation of the array is returned.

func (*Val) StringDef

func (val *Val) StringDef(def string) string

func (*Val) UnmarshalJSON

func (val *Val) UnmarshalJSON(value []byte) error

UnmarshalJSON implements the json.Unmarshaller interface.

type ValType

type ValType int

ValType represents the stored type of Var.

const (
	Unknown     ValType = iota // holds an unknown
	Nil                        // holds a null
	Bool                       // holds a boolean
	Number                     // holds an int or float
	String                     // holds a string
	ArrayNumber                // holds an array of ints or floats
	ArrayString                // holds an array of strings
)

type VirtualEnvPolicy

type VirtualEnvPolicy string
const (
	VirtualEnvPolicySnapshotOptional VirtualEnvPolicy = "SnapshotOptional"
	VirtualEnvPolicySnapshotRequired VirtualEnvPolicy = "SnapshotRequired"
)

Directories

Path Synopsis
+kubebuilder:object:generate=true
+kubebuilder:object:generate=true
v1alpha1
Package v1alpha1 contains API Schema definitions for the k8s v1alpha1 API group +kubebuilder:object:generate=true +groupName=kubefox.xigxog.io
Package v1alpha1 contains API Schema definitions for the k8s v1alpha1 API group +kubebuilder:object:generate=true +groupName=kubefox.xigxog.io

Jump to

Keyboard shortcuts

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