<p>One of my project which is using kubernetes to manage the containers has something called <strong>test</strong>. Where developer has defined connectivity.</p>
<p>I tried to search it over the internet but found nothing which can clear this.</p>
<p>Can somebody help me to understand this kind and connectivity in test.yml?</p>
<pre><code>kind: test
spec:
   connectivity:
      to:
      from
</code></pre>

Saurabh Sharma
<p><code>kind: Test</code> is a CustomResource (CR).
CRs can be used in a cluster after <a href="https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#create-a-customresourcedefinition" rel="nofollow noreferrer">applying a CustomResourceDefinition (CRD) that describes all the fields</a>.</p>
<p>By doing so you extend Kubernetes with new objects that can be used. This is useful if you want to <a href="https://kubernetes.io/docs/concepts/extend-kubernetes/operator/" rel="nofollow noreferrer">write your own operator or controller</a>.
Without an operator/controller the CR is <strong>not doing anything</strong>. It will just hold some information that you can lookup (similar to a ConfigMap) but it will not do anything.</p>
<p>Here is an explanation on how Kubernetes works for in-built objects such as a Deployment:</p>
<ol>
<li>You use <code>kubectl apply -f some-deployment.yaml</code></li>
<li>Your call will be sent to the kube-apiserver</li>
<li>The kube-apiserver will save the information (<code>name</code> of the Deployment, <code>replicas</code>, <code>image</code> to use, ...) in etcd</li>
<li>The kube-controller-manager continuously communicates to the kube-apiserver and asks him to show him all information there is regarding Deployments.</li>
<li>The kube-apiserver retrieves the information from etcd and sends it back to the kube-controller-manager</li>
<li>The kube-controller-manager sees that there is a new Deployment (the one you applied) and will now proceed on creating the Pods (and before that the ReplicaSet).</li>
</ol>
<p>As you can see the one that <em>actually</em> creates the Pods is the kube-controller-manager.</p>
<p>In case the kube-controller-manager does not support all the features you expect from Kubernetes, you are able to create your own controller which is called an operator by <a href="https://github.com/operator-framework/operator-sdk" rel="nofollow noreferrer">using the operator SDK</a>. Your operator can then watch all objects that you will create as a CustomResource (such as <code>Test</code>).</p>
<p>To check all the CRDs you applied on your cluster execute:</p>
<pre class="lang-sh prettyprint-override"><code>$ kubectl get crd
</code></pre>
<p>To get a list of <em>all</em> objects that you can apply to Kubernetes execute the following:</p>
<pre class="lang-sh prettyprint-override"><code>$ kubectl api-resources
</code></pre>
