The OpenShift Jenkins Client Plugin is a Jenkins plugin written in Java that provides a fluent, domain-specific language for Jenkins Pipeline scripts to interact with OpenShift API servers. The plugin aims to deliver readable, concise, and comprehensive syntax for rich interactions with OpenShift clusters, leveraging the OpenShift command-line tool (oc) which must be available on nodes executing pipeline scripts. Since the 3.7 release of OpenShift, this plugin has been considered generally available, fully supported, and is included in the official OpenShift Jenkins images.
The plugin is classified across multiple domains including build automation, Kubernetes, cloud-native development, CI/CD integration, containerization, and DevOps. It serves as a client plugin that bridges Jenkins Pipeline functionality with OpenShift container orchestration, enabling teams to automate deployments and builds in containerized environments. The plugin is available through the Jenkins Update Center and can be built locally using Maven, with the resulting openshift-client.hpi binary uploadable directly into Jenkins.
The documentation covers extensive functionality including cluster configuration, credential setup, and Jenkins node preparation. Users can leverage the plugin for numerous OpenShift interactions such as deploying applications, managing ImageStreams, tagging images across namespaces, deleting and creating objects, updating resources without replacement, working with OpenShift templates, and promoting or migrating objects between environments. The plugin supports watching and waiting for operations, verifying deployments and services, and includes error handling capabilities. Advanced features include the ability to peer inside OpenShift objects and use selectors for fine-grained control.
The plugin maintains compatibility with Jenkins Declarative Pipeline syntax, though with specific requirements. The openshift directive must be the outermost closure to enable full declarative pipeline semantics, and all plugin usage must be encapsulated within the script directive since the plugin integrates as a Global Variable. The plugin also has documented limitations with the parallel step due to its singleton nature as a Global Variable, though the setLockName method can be used with the Lockable Resources plugin to manage parallel execution scenarios.
According to GitGenius activity tracking, the repository shows median issue and pull request response latency of 664.2 hours with a mean of 1005.4 hours. The most active issue labels include lifecycle/frozen and tide/merge-blocker, indicating some development constraints. Key contributors tracked include zemiak with 6 events, jmguzik with 4 events, and meh2481 with 4 events. The repository shares overlapping contributors with kgateway-dev/kgateway, kcp-dev/kcp, and openshift/origin-web-console, suggesting interconnected development efforts within the OpenShift ecosystem.
The plugin requires users to have familiarity with the OpenShift command-line interface and Jenkins Pipeline architecture, as the DSL passes method arguments directly to the oc command line in many cases. The documentation explicitly notes that it cannot provide complete descriptions of all possible OpenShift interactions and directs users to CLI documentation for pass-through arguments. For Linux users, additional requirements may exist for running the oc binary depending on the distribution. The plugin represents a mature integration point for organizations seeking to automate container deployments and CI/CD workflows within OpenShift environments using Jenkins Pipeline.