Class KubernetesResourceUtil


  • public class KubernetesResourceUtil
    extends Object
    • 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/directories
      static 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 metadata
      static Duration getAge​(io.fabric8.kubernetes.api.model.HasMetadata kubernetesResource)
      Calculates age of a kubernetes resource
      static 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 entity
      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
      static String getName​(io.fabric8.kubernetes.api.model.HasMetadata entity)
      Returns name of the resource from it's Metadata
      static String getName​(io.fabric8.kubernetes.api.model.ObjectMeta entity)
      Returns name of the resource from it's Metadata
      static String getNamespace​(io.fabric8.kubernetes.api.model.HasMetadata entity)
      Getting namespace from Kubernetes Resource
      static String getNamespace​(io.fabric8.kubernetes.api.model.ObjectMeta entity)
      Null safe get operation for getting namespace from Kubernetes Resource's MetaData
      static Map<String,​String> getOrCreateAnnotations​(io.fabric8.kubernetes.api.model.HasMetadata entity)
      Null safe get for fetching annotations from MetaData of Kubernetes Resource
      static Map<String,​String> getOrCreateLabels​(io.fabric8.kubernetes.api.model.HasMetadata entity)
      Null safe get method for getting Labels of a Kubernetes Resource
      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
      static String getQualifiedName​(io.fabric8.kubernetes.api.model.HasMetadata entity)
      Returns Qualified name for the specified Kubernetes Resource
      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
      static 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 metadata
      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)  
      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) instead
      static 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 values
      static 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 possible
      static void setResourceVersion​(io.fabric8.kubernetes.api.model.HasMetadata entity, String resourceVersion)
      Set resource version of a kubernetes resource
      static void sortEventListBasedOnTimestamp​(List<io.fabric8.kubernetes.api.model.Event> eventList)  
    • Field Detail

      • KUBERNETES_SUBDOMAIN_REGEX

        public static final Pattern KUBERNETES_SUBDOMAIN_REGEX
      • KUBERNETES_DNS1123_LABEL_REGEX

        public static final Pattern KUBERNETES_DNS1123_LABEL_REGEX
      • KUBERNETES_KEY_REGEX

        public static final Pattern KUBERNETES_KEY_REGEX
    • 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 provided
        resourceVersion - 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 provided
        namespace - 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 properties
        name - 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) and isValidSubdomainName(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 values
        Validates 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) instead
        Check 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 map
        username - username that needs to be used during secret creation
        password - 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 map
        username - username that needs to be used during secret creation
        password - password that needs to be used during secret creation
        secretName - 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 create
        dirOrFilePaths - 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