api

package
v0.6.1 Latest Latest
Warning

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

Go to latest
Published: Mar 13, 2024 License: MPL-2.0 Imports: 12 Imported by: 0

Documentation

Overview

+kubebuilder:object:generate=true

Index

Constants

View Source
const (
	SecretMask               = "••••••"
	MaximumMaxEventSizeBytes = 16777216 // 16 MiB
)

Misc

View Source
const (
	DefaultLogFormat                        = "json"
	DefaultLogLevel                         = "info"
	DefaultMaxEventSizeBytes                = 5242880 // 5 MiB
	DefaultReleaseActivationDeadlineSeconds = 300     // 5 mins
	DefaultReleaseHistoryAgeLimit           = 0
	DefaultReleaseHistoryCountLimit         = 10
	DefaultTimeoutSeconds                   = 30
)

Defaults

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"
	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"
	LabelK8sComponentHash      string = "kubefox.xigxog.io/component-hash"
	LabelK8sComponentHashShort string = "kubefox.xigxog.io/component-hash-short"
	LabelK8sComponentType      string = "kubefox.xigxog.io/component-type"
	LabelK8sEnvironment        string = "kubefox.xigxog.io/environment"
	LabelK8sInstance           string = "app.kubernetes.io/instance"
	LabelK8sPlatform           string = "kubefox.xigxog.io/platform"
	LabelK8sReleaseManifest    string = "kubefox.xigxog.io/release-manifest"
	LabelK8sRuntimeVersion     string = "kubefox.xigxog.io/runtime-version"
	LabelK8sVirtualEnvironment string = "kubefox.xigxog.io/virtual-environment"
)

Kubernetes Labels

View Source
const (
	AnnotationLastApplied      string = "kubectl.kubernetes.io/last-applied-configuration"
	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 (
	FinalizerEnvironmentProtection string = "kubefox.xigxog.io/environment-protection"
	FinalizerReleaseProtection     string = "kubefox.xigxog.io/release-protection"
)
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 (
	ConditionTypeAvailable              string = "Available"
	ConditionTypeProgressing            string = "Progressing"
	ConditionTypeActiveReleaseAvailable string = "ActiveReleaseAvailable"
	ConditionTypeReleasePending         string = "ReleasePending"
)
View Source
const (
	ConditionReasonBrokerUnavailable              string = "BrokerUnavailable"
	ConditionReasonComponentDeploymentFailed      string = "ComponentDeploymentFailed"
	ConditionReasonComponentDeploymentProgressing string = "ComponentDeploymentProgressing"
	ConditionReasonComponentsAvailable            string = "ComponentsAvailable"
	ConditionReasonComponentsDeployed             string = "ComponentsDeployed"
	ConditionReasonComponentUnavailable           string = "ComponentUnavailable"
	ConditionReasonContextAvailable               string = "ContextAvailable"
	ConditionReasonEnvironmentNotFound            string = "EnvironmentNotFound"
	ConditionReasonHTTPSrvUnavailable             string = "HTTPSrvUnavailable"
	ConditionReasonNATSUnavailable                string = "NATSUnavailable"
	ConditionReasonNoRelease                      string = "NoRelease"
	ConditionReasonPendingDeadlineExceeded        string = "PendingDeadlineExceeded"
	ConditionReasonPlatformComponentsAvailable    string = "PlatformComponentsAvailable"
	ConditionReasonProblemsFound                  string = "ProblemsFound"
	ConditionReasonReconcileFailed                string = "ReconcileFailed"
	ConditionReasonReleaseActivated               string = "ReleaseActivated"
	ConditionReasonReleasePending                 string = "ReleasePending"
)
View Source
const (
	GRPCKeyApp       string = "app"
	GRPCKeyHash      string = "hash"
	GRPCKeyComponent string = "component"
	GRPCKeyId        string = "id"
	GRPCKeyPlatform  string = "platform"
	GRPCKeyPod       string = "pod"
	GRPCKeyToken     string = "token"
	GRPCKeyType      string = "type"
)

gRPC metadata keys.

View Source
const (
	ValKeyHeader       = "header"
	ValKeyHost         = "host"
	ValKeyMaxEventSize = "maxEventSize"
	ValKeyMethod       = "method"
	ValKeyPath         = "path"
	ValKeyPathSuffix   = "pathSuffix"
	ValKeyQuery        = "queryParam"
	ValKeyStatus       = "status"
	ValKeyStatusCode   = "statusCode"
	ValKeyURL          = "url"
	ValKeyVaultURL     = "vaultURL"
)

Keys for well known values.

View Source
const (
	HeaderAdapter                 = "kubefox-adapter"
	HeaderAppDep                  = "kubefox-app-deployment"
	HeaderAppDepAbbrv             = "kf-dep"
	HeaderAppDepShort             = "kfd"
	HeaderContentLength           = "Content-Length"
	HeaderContentType             = "Content-Type"
	HeaderEventId                 = "kubefox-event-id"
	HeaderEventType               = "kubefox-event-type"
	HeaderEventTypeAbbrv          = "kf-type"
	HeaderEventTypeShort          = "kft"
	HeaderHost                    = "Host"
	HeaderPlatform                = "kubefox-platform"
	HeaderReleaseManifest         = "kubefox-release-manifest"
	HeaderTraceId                 = "kubefox-trace-id"
	HeaderVirtualEnvironment      = "kubefox-virtual-environment"
	HeaderVirtualEnvironmentAbbrv = "kf-ve"
	HeaderVirtualEnvironmentShort = "kfv"
)

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
)

Variables

View Source
var (
	True  = &t
	False = &f
)
View Source
var (
	RegexpCommit = regexp.MustCompile(`^[0-9a-f]{40}$`)
	RegexpGitRef = regexp.MustCompile(`^[a-z0-9][a-z0-9-\\.]{0,28}[a-z0-9]$`)
	RegexpHash   = regexp.MustCompile(`^[0-9a-f]{32}$`)
	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 ArchiveReason

type ArchiveReason string
const (
	ArchiveReasonPendingDeadlineExceeded ArchiveReason = "PendingDeadlineExceeded"
	ArchiveReasonRolledBack              ArchiveReason = "RolledBack"
	ArchiveReasonSuperseded              ArchiveReason = "Superseded"
)

type ComponentDefinition

type ComponentDefinition struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=DBAdapter;KubeFox;HTTPAdapter
	Type           ComponentType          `json:"type"`
	Routes         []RouteSpec            `json:"routes,omitempty"`
	DefaultHandler bool                   `json:"defaultHandler,omitempty"`
	EnvVarSchema   EnvVarSchema           `json:"envVarSchema,omitempty"`
	Dependencies   map[string]*Dependency `json:"dependencies,omitempty"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="^[a-z0-9]{32}$"
	Hash  string `json:"hash"`
	Image string `json:"image,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 ComponentType

type ComponentType string
const (
	ComponentTypeBroker ComponentType = "Broker"
	// ComponentTypeDatabaseAdapter ComponentType = "DBAdapter"
	ComponentTypeHTTPAdapter ComponentType = "HTTPAdapter"
	ComponentTypeKubeFox     ComponentType = "KubeFox"
	ComponentTypeNATS        ComponentType = "NATS"
)

func (ComponentType) IsAdapter

func (c ComponentType) IsAdapter() bool

type Data

type Data struct {
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:validation:Type=object
	// +kubebuilder:pruning:PreserveUnknownFields
	Vars map[string]*Val `json:"vars,omitempty"`
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:validation:Type=object
	// +kubebuilder:pruning:PreserveUnknownFields
	Secrets map[string]*Val `json:"secrets,omitempty"`
}

func (*Data) DeepCopy

func (in *Data) DeepCopy() *Data

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

func (*Data) DeepCopyInto

func (in *Data) DeepCopyInto(out *Data)

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

func (*Data) Import

func (d *Data) Import(rhs *Data)

Import copies the data from the provided Data object into this Data object, retaining existing values.

func (*Data) Merge

func (d *Data) Merge(rhs *Data)

Merge copies the data from the provided Data object into this Data object, overriding existing values.

type DataDetails

type DataDetails struct {
	Details `json:",inline"`

	Vars    map[string]Details `json:"vars,omitempty"`
	Secrets map[string]Details `json:"secrets,omitempty"`
}

func (*DataDetails) DeepCopy

func (in *DataDetails) DeepCopy() *DataDetails

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

func (*DataDetails) DeepCopyInto

func (in *DataDetails) DeepCopyInto(out *DataDetails)

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

type DataKey

type DataKey struct {
	Instance  string
	Namespace string
	Kind      string
	Name      string
}

func (*DataKey) DeepCopy

func (in *DataKey) DeepCopy() *DataKey

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

func (*DataKey) DeepCopyInto

func (in *DataKey) DeepCopyInto(out *DataKey)

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

func (DataKey) String

func (d DataKey) String() string

type DataProvider

type DataProvider interface {
	Object

	GetData() *Data
	GetDataKey() DataKey
}

+kubebuilder:object:generate=false

type DataSourceKind

type DataSourceKind string
const (
	DataSourceKindVirtualEnvironment DataSourceKind = "VirtualEnvironment"
)

type Dependency

type Dependency struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=DBAdapter;KubeFox;HTTPAdapter
	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 EnvSchema

type EnvSchema struct {
	Vars    EnvVarSchema `json:"vars,omitempty"`
	Secrets EnvVarSchema `json:"secrets,omitempty"`
}

func (*EnvSchema) DeepCopy

func (in *EnvSchema) DeepCopy() *EnvSchema

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

func (*EnvSchema) DeepCopyInto

func (in *EnvSchema) DeepCopyInto(out *EnvSchema)

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

func (*EnvSchema) Validate

func (s *EnvSchema) Validate(data *Data, src *ProblemSource, appendName bool) []Problem

type EnvTemplate

type EnvTemplate struct {
	// contains filtered or unexported fields
}

+kubebuilder:object:generate=false

func NewEnvTemplate

func NewEnvTemplate(name, template string) *EnvTemplate

func (*EnvTemplate) EnvSchema

func (r *EnvTemplate) EnvSchema() *EnvSchema

func (*EnvTemplate) ParseError

func (r *EnvTemplate) ParseError() error

func (*EnvTemplate) Resolve

func (r *EnvTemplate) Resolve(data *Data, includeSecrets bool) (string, error)

TODO allow use of event params in templates? be useful for passing things to adapters.

func (*EnvTemplate) Template

func (r *EnvTemplate) Template() string

type EnvVarDefinition

type EnvVarDefinition struct {
	// +kubebuilder:validation:Enum=Array;Boolean;Number;String
	Type EnvVarType `json:"type,omitempty"`
	// +kubebuilder:default=false
	Required bool `json:"required"`
}

func (*EnvVarDefinition) DeepCopy

func (in *EnvVarDefinition) DeepCopy() *EnvVarDefinition

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

func (*EnvVarDefinition) DeepCopyInto

func (in *EnvVarDefinition) DeepCopyInto(out *EnvVarDefinition)

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

type EnvVarSchema

type EnvVarSchema map[string]*EnvVarDefinition

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.

func (EnvVarSchema) Validate

func (e EnvVarSchema) Validate(typ string, vars map[string]*Val, src *ProblemSource, appendName bool) []Problem

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 Object

type Object interface {
	GetNamespace() string
	GetName() string
	GetResourceVersion() string
	GetGeneration() int64
}

+kubebuilder:object:generate=false

type Problem

type Problem struct {
	Type ProblemType `json:"type"`

	Message string `json:"message,omitempty"`
	// Resources and attributes causing problem.
	Causes []ProblemSource `json:"causes,omitempty"`
}

func (*Problem) DeepCopy

func (in *Problem) DeepCopy() *Problem

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

func (*Problem) DeepCopyInto

func (in *Problem) DeepCopyInto(out *Problem)

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

type ProblemSource

type ProblemSource struct {
	Kind ProblemSourceKind `json:"kind"`
	Name string            `json:"name,omitempty"`
	// ObservedGeneration represents the .metadata.generation of the
	// ProblemSource that the problem was generated from. For instance, if the
	// ProblemSource .metadata.generation is currently 12, but the
	// observedGeneration is 9, the problem is out of date with respect to the
	// current state of the instance.
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
	// Path of source object attribute causing problem.
	Path string `json:"path,omitempty"`
	// Value causing problem. Pointer is used to distinguish between not set and
	// empty string.
	Value *string `json:"value,omitempty"`
}

func (*ProblemSource) DeepCopy

func (in *ProblemSource) DeepCopy() *ProblemSource

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

func (*ProblemSource) DeepCopyInto

func (in *ProblemSource) DeepCopyInto(out *ProblemSource)

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

type ProblemSourceKind

type ProblemSourceKind string
const (
	ProblemSourceKindAppDeployment      ProblemSourceKind = "AppDeployment"
	ProblemSourceKindComponent          ProblemSourceKind = "Component"
	ProblemSourceKindDeployment         ProblemSourceKind = "Deployment"
	ProblemSourceKindHTTPAdapter        ProblemSourceKind = "HTTPAdapter"
	ProblemSourceKindReleaseManifest    ProblemSourceKind = "ReleaseManifest"
	ProblemSourceKindVirtualEnvironment ProblemSourceKind = "VirtualEnvironment"
)

type ProblemType

type ProblemType string
const (
	ProblemTypeAdapterNotFound            ProblemType = "AdapterNotFound"
	ProblemTypeAppDeploymentFailed        ProblemType = "AppDeploymentFailed"
	ProblemTypeAppDeploymentNotFound      ProblemType = "AppDeploymentNotFound"
	ProblemTypeDependencyInvalid          ProblemType = "DependencyInvalid"
	ProblemTypeDependencyNotFound         ProblemType = "DependencyNotFound"
	ProblemTypeDeploymentFailed           ProblemType = "DeploymentFailed"
	ProblemTypeDeploymentNotFound         ProblemType = "DeploymentNotFound"
	ProblemTypeDeploymentUnavailable      ProblemType = "DeploymentUnavailable"
	ProblemTypeParseError                 ProblemType = "ParseError"
	ProblemTypePolicyViolation            ProblemType = "PolicyViolation"
	ProblemTypeReleaseManifestFailed      ProblemType = "ReleaseManifestFailed"
	ProblemTypeReleaseManifestNotFound    ProblemType = "ReleaseManifestNotFound"
	ProblemTypeReleaseManifestUnavailable ProblemType = "ReleaseManifestUnavailable"
	ProblemTypeRouteConflict              ProblemType = "RouteConflict"
	ProblemTypeVarNotFound                ProblemType = "VarNotFound"
	ProblemTypeVarWrongType               ProblemType = "VarWrongType"
	ProblemTypeVersionConflict            ProblemType = "VersionConflict"
)

type Problems

type Problems []Problem

func (Problems) DeepCopy

func (in Problems) DeepCopy() Problems

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

func (Problems) DeepCopyInto

func (in Problems) DeepCopyInto(out *Problems)

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

type ReleaseType

type ReleaseType string
const (
	ReleaseTypeStable  ReleaseType = "Stable"
	ReleaseTypeTesting ReleaseType = "Testing"
)

type RouteSpec

type RouteSpec struct {
	// +kubebuilder:validation:Required
	Id int `json:"id"`
	// +kubebuilder:validation:Required
	Rule         string       `json:"rule"`
	Priority     int          `json:"priority,omitempty"`
	EnvVarSchema EnvVarSchema `json:"envVarSchema,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) EnvVarType

func (val *Val) EnvVarType() EnvVarType

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 Array the JSON representation of the array is returned. Otherwise default string format of the value 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
)

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