anchor.diff:  === Creating the service
   
   The first step in integrating with an external service is to create an OpenShift service to
  -represent it.  The `Service` resource can express external services by having an empty `Selector`
  -field:
  +represent it.  This is very similar to creating an internal service; the difference is in the
  +service's `Selector` field.
  +
  +Internal OpenShift services use the `Selector` field to associate pods with services
  +via labels.  A system component called `EndpointsController` synchronizes the endpoints for
  +services that specify selectors with the pods that match the selector.  The service proxy and
  +OpenShift router load-balance requests to the service amongst the service's endpoints.
  +
  +The only difference between an internal OpenShift service and a service that represents an external
  +resource is that there are no pods to associate an external service with.  To represent external
  +services, we just need to leave the `Selector` field unset.  This will make the `EndpointsController`
  +ignore the service and allow you to specify endpoints manually:
   
   ----
   {
     "kind": "Service",
     "apiVersion": "v1beta3",
     "metadata": {
  -    "name": "external-service"
  +    "name": "example-external-service"
     },
     "spec": { <1>
       "port": 1234
  
positive.code: === Setting the endpoints
  
  The next step is to create endpoints for the service.  This will give the service proxy and router
  information about where to send traffic going to the service:
  
  ----
  {
    "kind": "Endpoints",
    "apiVersion": "v1beta3",
    "metadata": {
      "name": "external-service" <1>
    },
    "endpoints": [ <2>
      "api.mysaas.com:80",
  
negative.code: ----
  
  <1> Other fields on the `DeploymentConfig` are omitted
  
  === Using the service in your application
  
  Using an external service in your application is just like using an internal service.  Your
  application will be injected with environment variables for the service and the additional
  environment variables with the credentials described above.  In our example, The 'helloworld'
  container will receive the following environment variables:
  
  ----
  EXAMPLE_EXTERNAL_SERVICE_SERVICE_HOST=10.0.0.11 <1>
  EXAMPLE_EXTERNAL_SERVICE_SERVICE_PORT=1234
  EXAMPLE_EXTERNAL_SERVICE_PORT=tcp://10.0.0.11:1234
  EXAMPLE_EXTERNAL_SERVICE_PORT_1234_TCP=tcp://10.0.0.11:1234
  EXAMPLE_EXTERNAL_SERVICE_PORT_1234_TCP_PROTO=tcp
  EXAMPLE_EXTERNAL_SERVICE_PORT_1234_TCP_PORT=1234
  EXAMPLE_EXTERNAL_SERVICE_PORT_1234_TCP_ADDR=10.0.0.11
  SAAS_API_KEY=<value of SaaS api key>
  SAAS_USERNAME=<value of SaaS username>
  SAAS_PASSPHRASE=<value of SaaS passphrase>
  ----
  
  <1> Values are for example only; the actual IP will vary
  
  The application is responsible for reading the coordinates and credentials for the service from the
  environment and establishing a connection with the service.
  