Class OpenShiftUtils


  • public class OpenShiftUtils
    extends Object
    Utility methods for working with OpenShift
    Author:
    Jakub Cechacek
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private io.fabric8.openshift.client.OpenShiftClient client  
      private static org.slf4j.Logger LOGGER  
    • Constructor Summary

      Constructors 
      Constructor Description
      OpenShiftUtils​(io.fabric8.openshift.client.OpenShiftClient client)  
    • Field Detail

      • LOGGER

        private static final org.slf4j.Logger LOGGER
      • client

        private io.fabric8.openshift.client.OpenShiftClient client
    • Constructor Detail

      • OpenShiftUtils

        public OpenShiftUtils​(io.fabric8.openshift.client.OpenShiftClient client)
    • Method Detail

      • createRoute

        public io.fabric8.openshift.api.model.Route createRoute​(String project,
                                                                String name,
                                                                String service,
                                                                String port,
                                                                Map<String,​String> labels)
        Creates route in given namespace
        Parameters:
        project - project where this route will be created
        name - name of the route
        service - target service
        port - target port
        labels - labels set to set on this route
        Returns:
        Route object for created route
      • createNetworkPolicy

        public io.fabric8.kubernetes.api.model.networking.v1.NetworkPolicy createNetworkPolicy​(String project,
                                                                                               String name,
                                                                                               Map<String,​String> podSelectorLabels,
                                                                                               List<io.fabric8.kubernetes.api.model.networking.v1.NetworkPolicyPort> ports)
        Creates new NetworkPolicy in given namespace allowing public access
        Parameters:
        project - project where this network policy will be created
        name - name of the policy
        podSelectorLabels - labels used as pod selectors
        ports - ports for which access will be allowed
        Returns:
        NetworkPolicy object for created policy
      • linkPullSecret

        public io.fabric8.kubernetes.api.model.ServiceAccount linkPullSecret​(String project,
                                                                             String account,
                                                                             String secret)
        Links pull secret to service account
        Parameters:
        project - project where this operation happens
        account - service account name
        secret - secret name
        Returns:
        Service account object to which this secret was linked
      • linkPullSecret

        public io.fabric8.kubernetes.api.model.ServiceAccount linkPullSecret​(String project,
                                                                             String account,
                                                                             io.fabric8.kubernetes.api.model.Secret secret)
        Links pull secret to service account
        Parameters:
        project - project where this operation happens
        account - service account name
        secret - secret object
        Returns:
        Service account object to which this secret was linked
      • ensureHasEnv

        public void ensureHasEnv​(io.fabric8.kubernetes.api.model.apps.Deployment deployment,
                                 io.fabric8.kubernetes.api.model.EnvVar envVar)
        Ensures each container of given deployment has a environment variable
        Parameters:
        deployment - deployment
        envVar - environment variable
      • ensureNoEnv

        public void ensureNoEnv​(io.fabric8.kubernetes.api.model.apps.Deployment deployment,
                                String envVar)
        Ensures each container of given deployment has a environment variable
        Parameters:
        deployment - deployment
        envVar - environment variable
      • ensureHasEnv

        public void ensureHasEnv​(io.fabric8.kubernetes.api.model.Container container,
                                 io.fabric8.kubernetes.api.model.EnvVar envVar)
        Ensures container has environment variable
        Parameters:
        container - container
        envVar - environment variable
      • ensureNoEnv

        public void ensureNoEnv​(io.fabric8.kubernetes.api.model.Container container,
                                String envVar)
        Ensures container does not have environment variable
        Parameters:
        container - container
        envVar - environment variable
      • ensureHasPullSecret

        public void ensureHasPullSecret​(io.fabric8.kubernetes.api.model.apps.Deployment deployment,
                                        String secret)
      • podsWithLabels

        public io.fabric8.kubernetes.api.model.PodList podsWithLabels​(String project,
                                                                      Map<String,​String> labels)
        Finds pods with given labels
        Parameters:
        project - project where to look for pods
        labels - labels used to identify pods
        Returns:
        PodList of matching pods
      • waitForPods

        public void waitForPods​(String project,
                                Map<String,​String> labels)
        Waits until all pods with given labels are ready
        Parameters:
        project - project where to look for pods
        labels - labels used to identify pods