Class KubernetesResourceUtil
- java.lang.Object
-
- io.fabric8.kubernetes.client.utils.KubernetesResourceUtil
-
public class KubernetesResourceUtil extends Object
-
-
Field Summary
Fields Modifier and Type Field Description static Pattern
KUBERNETES_DNS1123_LABEL_REGEX
static Pattern
KUBERNETES_KEY_REGEX
static Pattern
KUBERNETES_SUBDOMAIN_REGEX
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static io.fabric8.kubernetes.api.model.ConfigMapBuilder
addEntriesFromDirOrFileToConfigMap(io.fabric8.kubernetes.api.model.ConfigMapBuilder configMapBuilder, String key, Path dirOrFilePath)
static boolean
areAnnotationsValid(Map<String,String> map)
Checks the given map keys validity as annotations.static boolean
areLabelsValid(Map<String,String> map)
Checks the given map keys and values for validity as labels.static List<io.fabric8.kubernetes.api.model.EnvVar>
convertMapToEnvVarList(Map<String,String> envVarMap)
static io.fabric8.kubernetes.api.model.ConfigMap
createConfigMapFromDirOrFiles(String name, Path... dirOrFilePaths)
Create new ConfigMap from files/directoriesstatic io.fabric8.kubernetes.api.model.Secret
createDockerRegistrySecret(String dockerServer, String username, String password)
Create Secret by using username and password.static io.fabric8.kubernetes.api.model.Secret
createDockerRegistrySecret(String dockerServer, String username, String password, String secretName)
Create Secret by using username,password and secretName.protected static String
getAdditionalPropertyText(Map<String,Object> additionalProperties, String name)
Used to get additional properties from Object's metadatastatic Duration
getAge(io.fabric8.kubernetes.api.model.HasMetadata kubernetesResource)
Calculates age of a kubernetes resourcestatic io.fabric8.kubernetes.api.model.OwnerReference
getControllerUid(io.fabric8.kubernetes.api.model.HasMetadata resource)
static String
getKind(io.fabric8.kubernetes.api.model.HasMetadata entity)
Returns the kind of the entitystatic Map<String,String>
getLabels(io.fabric8.kubernetes.api.model.ObjectMeta metadata)
Returns the labels of the given metadata object or an empty map if the metadata or labels are nullstatic String
getName(io.fabric8.kubernetes.api.model.HasMetadata entity)
Returns name of the resource from it's Metadatastatic String
getName(io.fabric8.kubernetes.api.model.ObjectMeta entity)
Returns name of the resource from it's Metadatastatic String
getNamespace(io.fabric8.kubernetes.api.model.HasMetadata entity)
Getting namespace from Kubernetes Resourcestatic String
getNamespace(io.fabric8.kubernetes.api.model.ObjectMeta entity)
Null safe get operation for getting namespace from Kubernetes Resource's MetaDatastatic Map<String,String>
getOrCreateAnnotations(io.fabric8.kubernetes.api.model.HasMetadata entity)
Null safe get for fetching annotations from MetaData of Kubernetes Resourcestatic Map<String,String>
getOrCreateLabels(io.fabric8.kubernetes.api.model.HasMetadata entity)
Null safe get method for getting Labels of a Kubernetes Resourcestatic io.fabric8.kubernetes.api.model.ObjectMeta
getOrCreateMetadata(io.fabric8.kubernetes.api.model.HasMetadata entity)
Null safe operation for getting Metadata of a Kubernetes resourcestatic String
getQualifiedName(io.fabric8.kubernetes.api.model.HasMetadata entity)
Returns Qualified name for the specified Kubernetes Resourcestatic String
getResourceVersion(io.fabric8.kubernetes.api.model.HasMetadata entity)
Returns the resource version for the entity or null if it does not have onestatic boolean
hasController(io.fabric8.kubernetes.api.model.HasMetadata resource)
Checks whether the resource has some controller(parent) or not.static boolean
hasResourceVersion(io.fabric8.kubernetes.api.model.HasMetadata entity)
Returns true if this entity has a valid non blank resourceVersion in its metadatastatic <T extends io.fabric8.kubernetes.api.model.HasMetadata,V extends io.fabric8.kubernetes.api.builder.VisitableBuilder<T,V>>
Class<V>inferBuilderType(Class<T> type)
static <T extends io.fabric8.kubernetes.api.model.HasMetadata>
Class<? extends io.fabric8.kubernetes.api.model.KubernetesResourceList>inferListType(Class<T> type)
static boolean
isResourceReady(io.fabric8.kubernetes.api.model.HasMetadata item)
Deprecated.use client.resource(item).isReady() or Readiness.getInstance().isReady(item) insteadstatic boolean
isValidKey(String key)
Validates annotation or label key.static boolean
isValidLabelOrAnnotation(Map<String,String> map)
Deprecated.the rules are different for label and annotation valuesstatic boolean
isValidName(String name)
Validates name of a Kubernetes Resource name, label key/value or annotation key based on RFC 1123 Label Names.static boolean
isValidSubdomainName(String name)
Validates name of an resource according to DNS Subdomain rules.static String
sanitizeName(String name)
Returns an identifier from the given string that can be used as resource, label key/value, or annotation key in accordance to RFC 1123 Label Names.static void
setNamespace(io.fabric8.kubernetes.api.model.HasMetadata entity, String namespace)
Set namespace of a kubernetes resource if possiblestatic void
setResourceVersion(io.fabric8.kubernetes.api.model.HasMetadata entity, String resourceVersion)
Set resource version of a kubernetes resourcestatic void
sortEventListBasedOnTimestamp(List<io.fabric8.kubernetes.api.model.Event> eventList)
-
-
-
Method Detail
-
getResourceVersion
public static String getResourceVersion(io.fabric8.kubernetes.api.model.HasMetadata entity)
Returns the resource version for the entity or null if it does not have one- Parameters:
entity
- entity provided- Returns:
- returns resource version of provided entity
-
setResourceVersion
public static void setResourceVersion(io.fabric8.kubernetes.api.model.HasMetadata entity, String resourceVersion)
Set resource version of a kubernetes resource- Parameters:
entity
- entity providedresourceVersion
- updated resource version
-
setNamespace
public static void setNamespace(io.fabric8.kubernetes.api.model.HasMetadata entity, String namespace)
Set namespace of a kubernetes resource if possible- Parameters:
entity
- entity providednamespace
- the new namesapce
-
getKind
public static String getKind(io.fabric8.kubernetes.api.model.HasMetadata entity)
Returns the kind of the entity- Parameters:
entity
- provided entity- Returns:
- returns kind of entity provided
-
getQualifiedName
public static String getQualifiedName(io.fabric8.kubernetes.api.model.HasMetadata entity)
Returns Qualified name for the specified Kubernetes Resource- Parameters:
entity
- Kubernetes resource- Returns:
- returns qualified name
-
getName
public static String getName(io.fabric8.kubernetes.api.model.HasMetadata entity)
Returns name of the resource from it's Metadata- Parameters:
entity
- Kubernetes resource- Returns:
- returns name of resource
-
hasResourceVersion
public static boolean hasResourceVersion(io.fabric8.kubernetes.api.model.HasMetadata entity)
Returns true if this entity has a valid non blank resourceVersion in its metadata- Parameters:
entity
- entity provided- Returns:
- returns a boolean value indicating whether it has a valid non blank resourceVersion
-
getName
public static String getName(io.fabric8.kubernetes.api.model.ObjectMeta entity)
Returns name of the resource from it's Metadata- Parameters:
entity
- MetaData of kubernetes resource- Returns:
- returns name of resource
-
getAdditionalPropertyText
protected static String getAdditionalPropertyText(Map<String,Object> additionalProperties, String name)
Used to get additional properties from Object's metadata- Parameters:
additionalProperties
- additional propertiesname
- name of resource- Returns:
- returns additional property text
-
getNamespace
public static String getNamespace(io.fabric8.kubernetes.api.model.ObjectMeta entity)
Null safe get operation for getting namespace from Kubernetes Resource's MetaData- Parameters:
entity
- Kubernetes Resource- Returns:
- returns namespace as plain string
-
getNamespace
public static String getNamespace(io.fabric8.kubernetes.api.model.HasMetadata entity)
Getting namespace from Kubernetes Resource- Parameters:
entity
- Kubernetes Resource- Returns:
- returns namespace as plain string
-
getOrCreateAnnotations
public static Map<String,String> getOrCreateAnnotations(io.fabric8.kubernetes.api.model.HasMetadata entity)
Null safe get for fetching annotations from MetaData of Kubernetes Resource- Parameters:
entity
- Kubernetes resource- Returns:
- returns a hashmap containing annotations
-
sanitizeName
public static String sanitizeName(String name)
Returns an identifier from the given string that can be used as resource, label key/value, or annotation key in accordance to RFC 1123 Label Names.Note that this is more restrictive than necessary for most resources and label/annotation keys. It will truncate the name if necessary, which may affect uniqueness.
- Parameters:
name
- which needs to be sanitized- Returns:
- sanitized name
-
getOrCreateLabels
public static Map<String,String> getOrCreateLabels(io.fabric8.kubernetes.api.model.HasMetadata entity)
Null safe get method for getting Labels of a Kubernetes Resource- Parameters:
entity
- Kubernetes Resource- Returns:
- returns a hashmap containing labels
-
getLabels
public static Map<String,String> getLabels(io.fabric8.kubernetes.api.model.ObjectMeta metadata)
Returns the labels of the given metadata object or an empty map if the metadata or labels are null- Parameters:
metadata
- ObjectMeta for resource's metadata- Returns:
- returns labels as a hashmap
-
getOrCreateMetadata
public static io.fabric8.kubernetes.api.model.ObjectMeta getOrCreateMetadata(io.fabric8.kubernetes.api.model.HasMetadata entity)
Null safe operation for getting Metadata of a Kubernetes resource- Parameters:
entity
- Kubernetes Resource- Returns:
- returns ObjectMeta as metadata
-
isValidName
public static boolean isValidName(String name)
Validates name of a Kubernetes Resource name, label key/value or annotation key based on RFC 1123 Label Names.Note: this is more restrictive than what is allowed for annotation names or most resource names, however some resource types have additional restrictions on their names.
Refer to Kubernetes Naming Conventions
See also
isValidKey(String)
andisValidSubdomainName(String)
- Parameters:
name
- Name of resource/label/annotation- Returns:
- returns a boolean value indicating whether it's valid or not
-
isValidKey
public static boolean isValidKey(String key)
Validates annotation or label key.- Parameters:
key
- the annotation or label key- Returns:
- returns a boolean value indicating whether it's valid or not
-
isValidSubdomainName
public static boolean isValidSubdomainName(String name)
Validates name of an resource according to DNS Subdomain rules.Refer to Kubernetes Naming Conventions
- Parameters:
name
- Name of annotation- Returns:
- returns a boolean value indicating whether it's valid or not
-
isValidLabelOrAnnotation
@Deprecated public static boolean isValidLabelOrAnnotation(Map<String,String> map)
Deprecated.the rules are different for label and annotation valuesValidates labels/annotations of Kubernetes resources- Parameters:
map
- Label/Annotation of resource- Returns:
- returns a boolean value indicating whether it's valid or not
- See Also:
areLabelsValid(Map)
-
areLabelsValid
public static boolean areLabelsValid(Map<String,String> map)
Checks the given map keys and values for validity as labels.- Parameters:
map
- labels- Returns:
- returns a boolean value indicating whether it's valid or not
-
areAnnotationsValid
public static boolean areAnnotationsValid(Map<String,String> map)
Checks the given map keys validity as annotations.- Parameters:
map
- annotations- Returns:
- returns a boolean value indicating whether it's valid or not
-
hasController
public static boolean hasController(io.fabric8.kubernetes.api.model.HasMetadata resource)
Checks whether the resource has some controller(parent) or not.- Parameters:
resource
- resource- Returns:
- boolean value indicating whether it's a child or not.
-
getControllerUid
public static io.fabric8.kubernetes.api.model.OwnerReference getControllerUid(io.fabric8.kubernetes.api.model.HasMetadata resource)
-
sortEventListBasedOnTimestamp
public static void sortEventListBasedOnTimestamp(List<io.fabric8.kubernetes.api.model.Event> eventList)
-
convertMapToEnvVarList
public static List<io.fabric8.kubernetes.api.model.EnvVar> convertMapToEnvVarList(Map<String,String> envVarMap)
-
isResourceReady
@Deprecated public static boolean isResourceReady(io.fabric8.kubernetes.api.model.HasMetadata item)
Deprecated.use client.resource(item).isReady() or Readiness.getInstance().isReady(item) insteadCheck whether a Kubernetes resource is Ready or not. Applicable only to Deployment, ReplicaSet, Pod, ReplicationController, Endpoints, Node and StatefulSet- Parameters:
item
- item which needs to be checked- Returns:
- boolean value indicating it's status
-
getAge
public static Duration getAge(io.fabric8.kubernetes.api.model.HasMetadata kubernetesResource)
Calculates age of a kubernetes resource- Parameters:
kubernetesResource
-- Returns:
- a positive duration indicating age of the kubernetes resource
-
inferListType
public static <T extends io.fabric8.kubernetes.api.model.HasMetadata> Class<? extends io.fabric8.kubernetes.api.model.KubernetesResourceList> inferListType(Class<T> type)
-
inferBuilderType
public static <T extends io.fabric8.kubernetes.api.model.HasMetadata,V extends io.fabric8.kubernetes.api.builder.VisitableBuilder<T,V>> Class<V> inferBuilderType(Class<T> type)
-
createDockerRegistrySecret
public static io.fabric8.kubernetes.api.model.Secret createDockerRegistrySecret(String dockerServer, String username, String password)
Create Secret by using username and password.- Parameters:
dockerServer
- User to store key value pair for auths mapusername
- username that needs to be used during secret creationpassword
- password that needs to be used during secret creation secret's default name : "container-image-registry-secret" is the default name for secret- Returns:
- an object of Secret
-
createDockerRegistrySecret
public static io.fabric8.kubernetes.api.model.Secret createDockerRegistrySecret(String dockerServer, String username, String password, String secretName)
Create Secret by using username,password and secretName.- Parameters:
dockerServer
- User to store key value pair for auths mapusername
- username that needs to be used during secret creationpassword
- password that needs to be used during secret creationsecretName
- secretName that needs to be used during secret creation- Returns:
- an object of Secret
-
createConfigMapFromDirOrFiles
public static io.fabric8.kubernetes.api.model.ConfigMap createConfigMapFromDirOrFiles(String name, Path... dirOrFilePaths) throws IOException
Create new ConfigMap from files/directories- Parameters:
name
- name of Configmap to createdirOrFilePaths
- a var-arg for directory of file paths.- Returns:
- ConfigMap with data as key-value pair of file names and their contents
- Throws:
IOException
- in case of failure while reading file
-
addEntriesFromDirOrFileToConfigMap
public static io.fabric8.kubernetes.api.model.ConfigMapBuilder addEntriesFromDirOrFileToConfigMap(io.fabric8.kubernetes.api.model.ConfigMapBuilder configMapBuilder, String key, Path dirOrFilePath) throws IOException
- Throws:
IOException
-
-