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 Summary

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

    Constructors
    Constructor
    Description
    OpenShiftUtils(io.fabric8.openshift.client.OpenShiftClient client)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    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
    io.fabric8.openshift.api.model.Route
    createRoute(String project, String name, String service, String port, Map<String,String> labels)
    Creates route in given namespace
    io.fabric8.kubernetes.api.model.Service
    createService(String project, String name, String portName, int port, Map<String,String> selector, Map<String,String> labels)
     
    Optional<io.fabric8.kubernetes.api.model.apps.Deployment>
    deploymentsWithPrefix(String project, String... prefixes)
    Finds the first deployment with name matching given prefixes
    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
    void
    ensureHasEnv(io.fabric8.kubernetes.api.model.Container container, io.fabric8.kubernetes.api.model.EnvVar envVar)
    Ensures container has environment variable
    void
    ensureHasPullSecret(io.fabric8.kubernetes.api.model.apps.Deployment deployment, String secret)
     
    void
    ensureNoEnv(io.fabric8.kubernetes.api.model.apps.Deployment deployment, String envVar)
    Ensures each container of given deployment has a environment variable
    void
    ensureNoEnv(io.fabric8.kubernetes.api.model.Container container, String envVar)
    Ensures container does not have environment variable
    static boolean
     
    io.fabric8.kubernetes.api.model.ServiceAccount
    linkPullSecret(String project, String account, io.fabric8.kubernetes.api.model.Secret secret)
    Links pull secret to service account
    io.fabric8.kubernetes.api.model.ServiceAccount
    linkPullSecret(String project, String account, String secret)
    Links pull secret to service account
    List<io.fabric8.kubernetes.api.model.Pod>
    podsForDeployment(io.fabric8.kubernetes.api.model.apps.Deployment deployment)
     
    List<io.fabric8.kubernetes.api.model.Pod>
    podsWithLabels(String project, Map<String,String> labels)
    Finds pods with given labels
    void
    waitForPods(String project, Map<String,String> labels)
    Waits until all pods with given labels are ready

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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
    • isRunningFromOcp

      public static boolean isRunningFromOcp()
    • 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