<p>I'm using <code>openshift</code> container cluster to run my project.<br>
In my CI I'm using <code>helm</code> and <code>kubectl</code> to upgrade and rollout the deployments.</p>

<p>Following <a href="https://blog.openshift.com/getting-started-helm-openshift/" rel="nofollow noreferrer">this</a> guide, I have created this simple <code>DeploymentConfig</code>:</p>

<pre><code>apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
...
</code></pre>

<p>When I run <code>helm upgrade --install</code> I can see the new deployment in my openshift cluster.<br>
But I want to rollout the deployment using <code>kubectl</code> and it fails:</p>

<pre><code>helm upgrade --install --wait --namespace myapp nginx chart/
kubectl rollout status -n myapp -w "dc/nginx"
</code></pre>

<p>I'm getting this error <code>error: no king "DeploymentConfig" is registered for version "apps.openshift.io/v1" in scheme "k8s.io/kubernetes/pkg/kubectl/scheme/scheme.go:28"</code></p>

<p>Running <code>kubectl api-versions</code> does display "apps.openshift.io/v1" though.</p>

<p>Why can't I rollout the deployment using <code>kubectl</code>?</p>

natdev
<p>Kubernetes' command line interface (CLI), <strong>kubectl</strong>, is used to run commands against Kubernetes cluster, while <code>DeploymentConfigs</code>is specific to OpenShift distributions, and not available in standard Kubernetes.</p>

<p>Though, as long as <strong>oc</strong> is built on top of <strong>kubectl</strong>, converting a <strong>kubectl</strong> binary to <strong>oc</strong> is as simple as changing the binary’s name from <strong>kubectl</strong> to <strong>oc</strong>.</p>

<p>See more information for <a href="https://docs.openshift.com/container-platform/3.10/cli_reference/differences_oc_kubectl.html#differences-oc-kubectl-using-kubectl" rel="nofollow noreferrer">using kubectl and oc</a></p>
