Deploying Applications to specific Nodes

In this video

In his latest demo, Veer Muchandi explains how you can run different parts of your OpenShift projects in different components of your existing infrastructure.

Additional Notes

1. Setting the Default Node Selector for the OpenShift environment

OpenShift Administrator sets the default Node selectors for the entire OpenShift environment by editing


Find the projectConfig section and add defaultNodeSelector as follows. This is a yaml file; so make sure that the indentation is right.

  defaultNodeSelector: "region=primary”
2. Setting the NodeSelector for specific project

OpenShift administrator sets the node selector for a specific project by editing the project namespace. As an example to edit namespace for a project named “new project”

# oc edit namespace newproject

Find the annotations section and add a node selector annotation as under. This is a yaml file; so make sure that the indentation is right.

  annotations: “region=secondary" "" "" “"

To override the default node selectors (that are set for the entire environment in #1 above), the administrator can set the above value as an empty string (“”) for a project namespace. In such projects the defaults won’t apply.

3. Adding NodeSelectors to a DeploymentConfig

A developer or a deployer can make specific components to deploy on specific nodes by adding node selectors to a deployment configuration.

#oc edit dc <deploymentConfigName> -o json

find the section “spec” under “template” and add node selector section

        "template": {
            "metadata": {
                "name": "mysql",
                "creationTimestamp": null,
                "labels": {
                    "name": "mysql"
            "spec": {
         "nodeSelector": {
            "region": “primary"
4. Adding NodeSelectors to a Template

You can copy a template first

#oc get template <templatename> -n openshift > filename.json

Edit the json file and add the nodeselectors like how you did for the deployment configuration in #3 above. Also change the template name and namespace values in the metadata section at the beginning of the template.Save the json file.

Upload the template to your project by using

#oc create -f filename.json

Then you can start using the template.

Other Videos

View the Entire OpenShift 3 Demo Playlist

For the latest information on OpenShift 3, please visit

News, OpenShift Container Platform, OpenShift Dedicated, OpenShift Online, OpenShift Origin, Products, Videos

4 Responses to “Deploying Applications to specific Nodes”

  1. Srinivas Kotaru

    This is excellent video. You should provide similar short tutorials to educate openshift components. At this moment we don’t have too much resources to learn openshift internals. Documentation is good but it only covering what part. Not specifically talking “How” part. I am a experieced openshift user from v2 and v3. I am having trouble how to setup nodeselector and which level Your tutorials was real help for me to cover all aspects of it. Thank you

    Can you tell me how to use zone features? is it similar to region and but just add extra line zone = “west” or zone=”east” ?

    How about antiaffnity ? for example I always want to place 1 pod in zone and another pod in zone 2 as part of scalening ?

    Can you explain in details ?

    Srinivas Kotaru

    • Veer Muchandi

      Srinivas, Sorry I don’t have notifications when you ask questions. I just saw your comment. I bet you would have figured out setting affinity and anti-affinity by now.
      On the other note, please send an email at on the list of topics you wish you had these short tutorials.

      • Srinivas Kotaru

        Yep, we figured it out now. I appreciate taking time to write the nice short tutorials. I am giving continuous feedback to redhat to have good documentation. I think they are improving on every version but unfortunately that is not sufficient to explain a topic or use a new feature. I definitely use your email alias to get in touch coming days

        Srinivas Kotaru

  2. Daniel Kučera

    Thanks for this post. But please fix json indentation on section 3. Thanks.

Comments are closed.