anchor.diff:  kind: NodeConfig
   masterKubeConfig: node.kubeconfig
   networkPluginName: ""
  -nodeName: myhost
  +nodeName: mynode
  +podManifestConfig: null
   servingInfo:
     bindAddress: 0.0.0.0:10250
     certFile: server.crt
     clientCA: node-client-ca.crt
     keyFile: server.key
  -volumeDirectory: openshift.local.volumes
  ----
  -
  -=== Stub for discussion of what the different values actually do
  +volumeDirectory: /openshift.local.volumes
  +----
  
positive.code: toc::[]
  
  == Overview
  `openshift start`, `openshift start master`, and `openshift start node` all take a limited set of arguments that are sufficient for development and experimental purposes, but are insufficient to describe and control the full set of configuration and security options that are necessary in a production environment.  To provide those options, it is necessary to use the dedicated master and node config files.
  
  The config files are fully specifying with no defaulting.  This means that any empty value means that you want to start up with an empty value for that parameter.  It makes it easy to reason about exactly what your configuration is, but it also means that it can be difficult to remember all of the options to specify.  To make this easier, the config files can be created with the `--write-config` flag and can be used via the `--config` flag.
  
  == Create the starting config files
  The `openshift start` command accepts flags that indicate that it should simply write the config file that it would have used and terminate.  This is useful for getting a starting point for the config.  You can do this by running 
  
  * `openshift start --write-config=openshift.local.config`
  * `openshift start master --write-config=openshift.local.config/master`
  * `osadm create-node-config --node-dir=openshift.local.config/node-myhost --node=myhost --hostnames=myhost.local,10.0.0.1`
  
  == Use the config files
  Once you have modified the config files to your liking, you can make use of them by specifying them as an argument.  Keep in mind that if you specify a config file, *none of the other flags you pass in will be respected*.  You can run them like: 
  
  * `openshift start --master-config=openshift.local.config/master/master-config.yaml --node-config=openshift.local.config/node-<node-name>/node-config.yaml`
  * `openshift start master --config=openshift.local.config/master/master-config.yaml`
  * `openshift start node --config=openshift.local.config/node-myhost/node-config.yaml`
  
  == Stub for discussion of generating the config for a new node
  
  
  == Example master.yaml
  This is an example at a point in time.  You should run `--write-config` to generate a file of your own.
  
  [source]
  ---
  apiVersion: v1
  assetConfig:
    logoutURL: ""
    masterPublicURL: https://10.0.0.1:8443
    publicURL: https://10.0.0.1:8443/console/
    servingInfo:
      bindAddress: 0.0.0.0:8443
      certFile: master.server.crt
      clientCA: ""
      keyFile: master.server.key
  corsAllowedOrigins:
  - 10.0.0.1:8443
  - 127.0.0.1
  - localhost
  dnsConfig:
  
negative.code:   keyFile: master.kubelet-client.key
    port: 10250
  kubernetesMasterConfig:
    masterCount: 1
    masterIP: 10.0.2.15
    schedulerConfigFile: ""
    servicesSubnet: 172.30.0.0/16
    staticNodeNames: []
  masterClients:
    deployerKubeConfig: openshift-deployer.kubeconfig
    externalKubernetesKubeConfig: ""
    openshiftLoopbackKubeConfig: openshift-client.kubeconfig
  masterPublicURL: https://10.0.2.15:8443
  oauthConfig:
    assetPublicURL: https://10.0.2.15:8443/console/
    grantConfig:
      method: auto
    identityProviders:
  