const ( // KubeConfigEnvVar defines the env variable KUBECONFIG which // contains the kubeconfig file path. KubeConfigEnvVar = "KUBECONFIG" // WatchNamespaceEnvVar is the constant for env variable WATCH_NAMESPACE // which is the namespace where the watch activity happens. // this value is empty if the operator is running with clusterScope. WatchNamespaceEnvVar = "WATCH_NAMESPACE" // OperatorNameEnvVar is the constant for env variable OPERATOR_NAME // which is the name of the current operator OperatorNameEnvVar = "OPERATOR_NAME" // PodNameEnvVar is the constant for env variable POD_NAME // which is the name of the current pod. PodNameEnvVar = "POD_NAME" )
ErrNoNamespace indicates that a namespace could not be found for the current environment
ErrRunLocal indicates that the operator is set to run in local mode (this error is returned by functions that only work on operators running in cluster mode)
var ForceRunModeEnv = "OSDK_FORCE_RUN_MODE"
ForceRunModeEnv indicates if the operator should be forced to run in either local or cluster mode (currently only used for local mode)
GetGVKsFromAddToScheme takes in the runtime scheme and filters out all generic apimachinery meta types. It returns just the GVK specific to this scheme.
GetOperatorName return the operator name
GetOperatorNamespace returns the namespace the operator should be running in.
GetPod returns a Pod object that corresponds to the pod in which the code is currently running. It expects the environment variable POD_NAME to be set by the downwards API.
GetWatchNamespace returns the namespace the operator should be watching for changes
ResourceExists returns true if the given resource kind exists in the given api groupversion
SupportsOwnerReference checks whether a given dependent supports owner references, based on the owner. This function performs following checks:
-- True: Owner is cluster-scoped. -- True: Both Owner and dependent are Namespaced with in same namespace. -- False: Owner is Namespaced and dependent is Cluster-scoped. -- False: Both Owner and dependent are Namespaced with different namespaces.