framework

package
v1.22.1 Latest Latest
Warning

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

Go to latest
Published: Jun 2, 2022 License: Apache-2.0 Imports: 28 Imported by: 2

Documentation

Overview

Package framework contains structures and functions to handle operator SDK and controllers specificness

Index

Constants

View Source
const (
	// DefaultPortName is the default protocol exposed by inner services specified in image metadata
	DefaultPortName = "http"
	// DefaultExposedPort TODO: found an agnostic API to fetch the ImageRaw from the docker image and read this value from there.
	DefaultExposedPort = 8080
	// LabelKeyOrgKie is the label key for KIE metadata
	LabelKeyOrgKie = "org.kie" + labelNamespaceSep
	// LabelKeyOrgKiePersistence is the label key for Persistence metadata
	LabelKeyOrgKiePersistence = LabelKeyOrgKie + "persistence"
	// LabelKeyOrgKiePersistenceRequired is the label key to check if persistence is enabled or not
	LabelKeyOrgKiePersistenceRequired = LabelKeyOrgKiePersistence + labelNamespaceSep + "required"

	// LabelKeyPrometheus is the label key for Prometheus metadata
	LabelKeyPrometheus = "prometheus.io"
	// LabelPrometheusScrape is the label key for prometheus scrape configuration
	LabelPrometheusScrape = LabelKeyPrometheus + "/scrape"
	// LabelPrometheusPath is the label key for prometheus metrics path
	LabelPrometheusPath = LabelKeyPrometheus + "/path"
	// LabelPrometheusPort is the label key for prometheus metrics port
	LabelPrometheusPort = LabelKeyPrometheus + "/port"
	// LabelPrometheusScheme is the label key for Prometheus metrics endpoint scheme
	LabelPrometheusScheme = LabelKeyPrometheus + "/scheme"
)
View Source
const (
	// LabelAppKey is the default label key to bind resources together in "Application Group"
	LabelAppKey = "app"
)

Variables

View Source
var (
	// ModeForCertificates unix file mode for certificates.
	ModeForCertificates = int32(0640)
	// ModeForPropertyFiles unix file mode for application property files.
	ModeForPropertyFiles = int32(0644)
	// ModeForProtoBufConfigMapVolume mode for Proto Buf config map volume
	ModeForProtoBufConfigMapVolume = int32(0644)
)
View Source
var (
	// DockerTagRegxCompiled is the compiled regex to verify docker tag names
	DockerTagRegxCompiled = *regexp.MustCompile(dockerTagRegx)
)

Functions

func AddIstioInjectSidecarAnnotation

func AddIstioInjectSidecarAnnotation(objectMeta *metav1.ObjectMeta)

AddIstioInjectSidecarAnnotation adds the annotation to be read by the Istio operator to setup sidecars in the given Pod

func AddOwnerReference

func AddOwnerReference(owner client.Object, scheme *runtime.Scheme, resources ...client.Object) error

AddOwnerReference adds given owner as a OwnerReference in the given resources

func ConvertImageTagToImage

func ConvertImageTagToImage(imageName string) api.Image

ConvertImageTagToImage converts a plain string into an Image structure. For example, see https://regex101.com/r/1YX9rh/1.

func ConvertImageToImageTag

func ConvertImageToImageTag(image api.Image) string

ConvertImageToImageTag converts an Image into a plain string (domain/namespace/name:tag).

func CreateBuildConfigComparator

func CreateBuildConfigComparator() func(deployed client.Object, requested client.Object) bool

CreateBuildConfigComparator creates a new comparator for BuildConfig using Label, Trigger and SourceStrategy

func CreateConfigMapComparator

func CreateConfigMapComparator() func(deployed client.Object, requested client.Object) bool

CreateConfigMapComparator creates a new comparator for ConfigMap using Label

func CreateDeploymentComparator

func CreateDeploymentComparator() func(deployed client.Object, requested client.Object) bool

CreateDeploymentComparator creates a new comparator for Deployment sorting volumes

func CreateDeploymentConfigComparator

func CreateDeploymentConfigComparator() func(deployed client.Object, requested client.Object) bool

CreateDeploymentConfigComparator creates a new comparator for DeploymentConfig using Trigger and RollingParams

func CreateEnvVar

func CreateEnvVar(key string, value string) corev1.EnvVar

CreateEnvVar will create EnvVar value for provided key/value pair

func CreateImageStreamComparator

func CreateImageStreamComparator() func(deployed client.Object, requested client.Object) bool

CreateImageStreamComparator creates a new ImageStream comparator

func CreatePKCS12TrustStoreFromSecret

func CreatePKCS12TrustStoreFromSecret(secret *v1.Secret, password string, keys ...string) ([]byte, error)

CreatePKCS12TrustStoreFromSecret creates a PCKS12 with certificates inside a Kubernetes secret. The `keys` parameter must contain public certificates only.

func CreateRouteComparator

func CreateRouteComparator() func(deployed client.Object, requested client.Object) bool

CreateRouteComparator creates a new comparator for Route using Label

func CreateSecretEnvVar

func CreateSecretEnvVar(variableName, secretName, secretKey string) corev1.EnvVar

CreateSecretEnvVar will create EnvVar value to hold SecretKey for given secret key/name

func CreateServiceMonitorComparator

func CreateServiceMonitorComparator() func(deployed client.Object, requested client.Object) bool

CreateServiceMonitorComparator creates a new comparator for ServiceMonitor using Label

func CreateSharedImageStreamComparator

func CreateSharedImageStreamComparator() func(deployed client.Object, requested client.Object) bool

CreateSharedImageStreamComparator creates a new Shared ImageStream comparator that verifies if the OwnerReferences are equal between them Also incorporates the `CreateImageStreamComparator` logic

func DiffEnvVar

func DiffEnvVar(env1 []corev1.EnvVar, env2 []corev1.EnvVar) []corev1.EnvVar

DiffEnvVar returns elements in `env1` that are not in `env2`

func DiscoverPortsAndProbesFromImage

func DiscoverPortsAndProbesFromImage(dc *appsv1.DeploymentConfig, dockerImage *dockerv10.DockerImage)

DiscoverPortsAndProbesFromImage set Ports and Probes based on labels set on the DockerImage of this DeploymentConfig

func EnvOverride

func EnvOverride(dst []corev1.EnvVar, src ...corev1.EnvVar) []corev1.EnvVar

EnvOverride replaces or appends the provided EnvVar to the collection

func ExtractPrometheusConfigurationFromImage

func ExtractPrometheusConfigurationFromImage(dockerImage *dockerv10.DockerImage) (scrape bool, scheme string, path string, port *intstr.IntOrString, err error)

ExtractPrometheusConfigurationFromImage retrieves prometheus configurations from the prometheus.io labels of the dockerImage

func GetEnvVar

func GetEnvVar(envName string, env []corev1.EnvVar) int

GetEnvVar returns the position of the EnvVar found by name

func GetEnvVarFromContainer

func GetEnvVarFromContainer(key string, container *corev1.Container) string

GetEnvVarFromContainer gets the environment variable value from the container

func GetLatestDeploymentCondition

func GetLatestDeploymentCondition(conditions []v1.DeploymentCondition) *v1.DeploymentCondition

GetLatestDeploymentCondition returns the latest condition of the array based on the LastUpdateTime field

func IsOwner

func IsOwner(resource client.Object, owner client.Object) bool

IsOwner checks if the given owner is in the `ownerReferences` of the given resource

func IsPersistenceEnabled

func IsPersistenceEnabled(dockerImage *dockerv10.DockerImage) (enabled bool)

IsPersistenceEnabled verifies if the image has labels indicating that persistence is enabled

func IsSafeToRollOutDeploymentConfig

func IsSafeToRollOutDeploymentConfig(dc *v1.DeploymentConfig) bool

IsSafeToRollOutDeploymentConfig checks if the given `DeploymentConfig` has successfully rolled out to the latest version, thus it's safe to perform a new roll out

func MergeImageMetadataWithDeploymentConfig

func MergeImageMetadataWithDeploymentConfig(dc *appsv1.DeploymentConfig, dockerImage *dockerv10.DockerImage) bool

MergeImageMetadataWithDeploymentConfig retrieves org.kie and prometheus.io labels from DockerImage and adds them to the DeploymentConfig returns true if any changes occurred in the deploymentConfig based on the dockerImage labels

func RemoveOwnerReference

func RemoveOwnerReference(owner client.Object, resources ...client.Object)

RemoveOwnerReference remove given owner from OwnerReference in the given resources

func RemoveSharedOwnerReference added in v1.8.0

func RemoveSharedOwnerReference(owner client.Object, resources ...client.Object) bool

RemoveSharedOwnerReference remove given owner from OwnerReference in the given resources only if resource is referred by multiple owners.

func SetEnvVar

func SetEnvVar(key, value string, container *corev1.Container)

SetEnvVar will update or add the environment variable into the given container

func SetEnvVarFromSecret

func SetEnvVarFromSecret(key, secretKey string, secret *corev1.Secret, container *corev1.Container)

SetEnvVarFromSecret will set the Environment Variable from a Secret

func SetOwner

func SetOwner(owner client.Object, scheme *runtime.Scheme, resources ...client.Object) error

SetOwner sets the given owner object into the given resources

func SplitImageTag

func SplitImageTag(imageTag string) (domain, name, tag string)

SplitImageTag breaks into parts a given tag name, adds "latest" to the tag name if it's empty. For example, see https://regex101.com/r/1YX9rh/1.

Types

type Comparator

type Comparator struct {
	ResourceType reflect.Type
	CompFunc     func(deployed client.Object, requested client.Object) bool
}

Comparator is a simple struct to encapsulate the complex elements from Operator Utils

type ComparatorBuilder

type ComparatorBuilder interface {
	// WithCustomComparator it's the custom comparator function that will get called by the Operator Utils
	WithCustomComparator(customComparator func(deployed client.Object, requested client.Object) (equal bool)) ComparatorBuilder
	// WithType defines the comparator resource type
	WithType(resourceType reflect.Type) ComparatorBuilder
	// UseDefaultComparator defines if the comparator will delegate the comparision to inner comparators from Operator Utils
	UseDefaultComparator() ComparatorBuilder
	// Build creates the Comparator in the form of Operator Utils interface
	Build() (reflect.Type, func(deployed client.Object, requested client.Object) bool)
}

ComparatorBuilder creates Comparators to be used during reconciliation phases

func NewComparatorBuilder

func NewComparatorBuilder() ComparatorBuilder

NewComparatorBuilder creates a new comparator builder for comparision usages

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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