{
  "id": "example1",
  "name": "my-awesome-php-app",
  "description": "Example PHP application with PostgreSQL database",
  "buildConfigs": [
    {
      "name": "mfojtik/nginx-php-app",
      "type": "docker",
      "sourceUri": "https://raw.githubusercontent.com/mfojtik/phpapp/master/Dockerfile",
      "imageRepository": "mfojtik/nginx-php-app"
    },
    {
      "name": "postgres",
      "type": "docker",
      "sourceUri": "https://raw.githubusercontent.com/docker-library/postgres/docker/9.2/Dockerfile",
      "imageRepository": "postgres"
    }
  ],
  "imageRepositories": [
    {
      "name": "mfojtik/nginx-php-app",
      "url": "internal.registry.com:5000/mfojtik/phpapp"
    },
    {
      "name": "postgres",
      "url": "registry.hub.docker.com/postgres"
    }
  ],
  "parameters": [
    {
      "name": "DB_PASSWORD",
      "description": "PostgreSQL admin user password",
      "type": "string",
      "generate": "[a-zA-Z0-9]{8}"
    },
    {
      "name": "DB_USER",
      "description": "PostgreSQL username",
      "type": "string",
      "generate": "admin[a-zA-Z0-9]{4}"
    },
    {
      "name": "DB_NAME",
      "description": "PostgreSQL database name",
      "type": "string",
      "value": "mydb"
    }
  ],
  "services": [
    {
      "id": "database",
      "kind": "Service",
      "apiVersion": "v1beta1",
      "port": 5432,
      "selector": {
        "name": "database"
      }
    },
    {
      "id": "frontend",
      "kind": "Service",
      "apiVersion": "v1beta1",
      "port": 8080,
      "selector": {
        "name": "frontend"
      }
    }
  ],
  "deploymentConfigs": [
    {
      "kind": "DeploymentConfig",
      "apiVersion": "v1beta1",
      "labels": {
        "name": "database"
      },
      "desiredState": {
        "replicas": 2,
        "replicaSelector": {
          "name": "database"
        },
        "podTemplate": {
          "kind": "Pod",
          "apiVersion": "v1beta1",
          "id": "database",
          "desiredState": {
            "manifest": {
              "version": "v1beta1",
              "id": "database",
              "containers": [{
                "name": "postgresql",
                "image": "postgres",
                "env": [
                  {
                    "name": "PGPASSWORD",
                    "value": "${DB_PASSWORD}"
                  },
                  {
                    "name": "PGUSER",
                    "value": "${DB_USER}"
                  },
                  {
                    "name": "PGDATABASE",
                    "value": "${DB_NAME}"
                  }
                ],
                "ports": [
                  {
                    "containerPort": 5432,
                  }
                ]
              }
              ]
            }
          },
          "labels": {
            "name": "database"
          }
        }
      }
    },
    {
      "kind": "DeploymentConfig",
      "apiVersion": "v1beta1",
      "labels": {
        "name": "frontend"
      },
      "desiredState": {
        "replicas": 2,
        "replicaSelector": {
          "name": "frontend"
        },
        "podTemplate": {
          "kind": "Pod",
          "apiVersion": "v1beta1",
          "id": "frontend",
          "desiredState": {
            "manifest": {
              "version": "v1beta1",
              "id": "frontend",
              "containers": [{
                "name": "frontend",
                "image": "mfojtik/nginx-php-app",
                "env": [
                  {
                    "name": "PGPASSWORD",
                    "value": "${DB_PASSWORD}"
                  },
                  {
                    "name": "PGUSER",
                    "value": "${DB_USER}"
                  },
                  {
                    "name": "PGDATABASE",
                    "value": "${DB_NAME}"
                  }
                ],
                "ports": [
                  {
                    "containerPort": 9292,
                    "hostPort": 8080
                  }
                ]
              }
              ]
            }
          },
          "labels": {
            "name": "frontend"
          }
        }
      }
    }
  ]
}