Class OpenShiftUtils

java.lang.Object
io.debezium.testing.system.tools.OpenShiftUtils

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

    • LOGGER

      private static final org.slf4j.Logger LOGGER
    • client

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

    • OpenShiftUtils

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

    • 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
    • createService

      public io.fabric8.kubernetes.api.model.Service createService(String project, String name, String portName, int port, Map<String,String> selector, Map<String,String> labels)
    • 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 List<io.fabric8.kubernetes.api.model.Pod> 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
    • podsForDeployment

      public List<io.fabric8.kubernetes.api.model.Pod> podsForDeployment(io.fabric8.kubernetes.api.model.apps.Deployment deployment)
    • 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
    • scaleDeploymentToZero

      public void scaleDeploymentToZero(io.fabric8.kubernetes.api.model.apps.Deployment deployment)
    • waitForDeploymentToScaleDown

      public void waitForDeploymentToScaleDown(io.fabric8.kubernetes.api.model.apps.Deployment deployment)
    • deploymentsWithPrefix

      public Optional<io.fabric8.kubernetes.api.model.apps.Deployment> deploymentsWithPrefix(String project, String... prefixes)
      Finds the first deployment with name matching given prefixes
      Parameters:
      project - project where to search
      prefixes - acceptable prefixes
      Returns:
      first deployment with name matching any given prefix
    • createOrReplaceOperatorGroup

      public void createOrReplaceOperatorGroup(String namespace, String name)
    • waitForOperatorDeploymentExists

      public void waitForOperatorDeploymentExists(String namespace, OpenshiftOperatorEnum operator)
      Wait until Deployment of given operator exists in given namespace for DEPLOYMENT_EXISTS_TIMEOUT seconds
      Parameters:
      namespace -
      operator -
    • createOcpClient

      public static io.fabric8.openshift.client.OpenShiftClient createOcpClient()
    • getPodResource

      private io.fabric8.kubernetes.client.dsl.PodResource getPodResource(io.fabric8.kubernetes.api.model.Pod pod, String project)
    • executeCommand

      public OpenShiftUtils.CommandOutputs executeCommand(io.fabric8.kubernetes.api.model.apps.Deployment deployment, String project, boolean debugLogs, String... commands) throws InterruptedException
      Throws:
      InterruptedException