| @ -0,0 +1,306 @@ | |||||
| { | |||||
| "kind": "Template", | |||||
| "apiVersion": "v1beta1", | |||||
| "labels": { | |||||
| "template": "django-app-template-sti" | |||||
| }, | |||||
| "metadata": { | |||||
| "name": "django-app", | |||||
| "annotations": { | |||||
| "description": "This is a Django application template for OpenShift", | |||||
| "tags": "python,django,postgres", | |||||
| "iconClass" : "icon-python" | |||||
| } | |||||
| }, | |||||
| "items": [ | |||||
| { | |||||
| "kind": "Service", | |||||
| "id": "web", | |||||
| "apiVersion": "v1beta1", | |||||
| "port": 80, | |||||
| "containerPort": 8080, | |||||
| "selector": { | |||||
| "name": "web" | |||||
| }, | |||||
| "metadata": { | |||||
| "annotations": { | |||||
| "description": "Exposes and load balances the Django app instances." | |||||
| } | |||||
| } | |||||
| }, | |||||
| { | |||||
| "kind": "Service", | |||||
| "id": "database", | |||||
| "apiVersion": "v1beta1", | |||||
| "port": 5432, | |||||
| "containerPort": 5432, | |||||
| "selector": { | |||||
| "name": "database" | |||||
| }, | |||||
| "metadata": { | |||||
| "annotations": { | |||||
| "description": "Exposes the PostgreSQL database server." | |||||
| } | |||||
| } | |||||
| }, | |||||
| { | |||||
| "kind": "BuildConfig", | |||||
| "apiVersion": "v1beta1", | |||||
| "metadata": { | |||||
| "name": "django-app", | |||||
| "labels": { | |||||
| "name": "django-app" | |||||
| }, | |||||
| "annotations": { | |||||
| "description": "Defines how to build the Django app." | |||||
| } | |||||
| }, | |||||
| "parameters": { | |||||
| "strategy": { | |||||
| "type": "STI", | |||||
| "stiStrategy": { | |||||
| "image": "openshift/python-33-centos7" | |||||
| } | |||||
| }, | |||||
| "source": { | |||||
| "type": "Git", | |||||
| "git": { | |||||
| "uri": "${PROJECT_REPO}" | |||||
| } | |||||
| }, | |||||
| "output": { | |||||
| "to": { | |||||
| "name": "django-app" | |||||
| } | |||||
| } | |||||
| }, | |||||
| "triggers": [ | |||||
| { | |||||
| "type": "imageChange", | |||||
| "imageChange": { | |||||
| "from": { | |||||
| "name": "python-33-centos7" | |||||
| }, | |||||
| "image": "openshift/python-33-centos7", | |||||
| "tag": "latest" | |||||
| } | |||||
| }, | |||||
| { | |||||
| "type": "github", | |||||
| "github": { | |||||
| "secret": "secret123" | |||||
| } | |||||
| }, | |||||
| { | |||||
| "type": "generic", | |||||
| "generic": { | |||||
| "secret": "secret123" | |||||
| } | |||||
| } | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "kind": "DeploymentConfig", | |||||
| "apiVersion": "v1beta1", | |||||
| "metadata": { | |||||
| "name": "web", | |||||
| "labels": { | |||||
| "name": "web" | |||||
| }, | |||||
| "annotations": { | |||||
| "description": "Defines how to deploy the Django app." | |||||
| } | |||||
| }, | |||||
| "template": { | |||||
| "controllerTemplate": { | |||||
| "replicaSelector": { | |||||
| "name": "web" | |||||
| }, | |||||
| "replicas": 1, | |||||
| "podTemplate": { | |||||
| "labels": { | |||||
| "name": "web" | |||||
| }, | |||||
| "desiredState": { | |||||
| "manifest": { | |||||
| "version": "v1beta1", | |||||
| "containers": [ | |||||
| { | |||||
| "name": "django", | |||||
| "image": "django-app", | |||||
| "ports": [ | |||||
| { | |||||
| "containerPort": 8080 | |||||
| } | |||||
| ], | |||||
| "env": [ | |||||
| { | |||||
| "name": "APP_MODULE", | |||||
| "value": "${APP_MODULE}" | |||||
| }, | |||||
| { | |||||
| "name": "DJANGO_SECRET_KEY", | |||||
| "value": "${DJANGO_SECRET_KEY}" | |||||
| }, | |||||
| { | |||||
| "name": "DATABASE_URL", | |||||
| "value": "postgres://${DATABASE_USER}:${DATABASE_PASSWORD}@$DATABASE_SERVICE_HOST:$DATABASE_SERVICE_PORT/${DATABASE_NAME}" | |||||
| } | |||||
| ] | |||||
| } | |||||
| ] | |||||
| } | |||||
| } | |||||
| } | |||||
| }, | |||||
| "strategy": { | |||||
| "type": "Recreate", | |||||
| "recreateParams": { | |||||
| "pre": { | |||||
| "failurePolicy": "Abort", | |||||
| "execNewPod": { | |||||
| "containerName": "django", | |||||
| "command": [ | |||||
| "./manage.py migrate" | |||||
| ] | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| }, | |||||
| "triggers": [ | |||||
| { | |||||
| "type": "ImageChange", | |||||
| "imageChangeParams": { | |||||
| "automatic": true, | |||||
| "containerNames": [ | |||||
| "django" | |||||
| ], | |||||
| "from": { | |||||
| "name": "django-app" | |||||
| }, | |||||
| "tag": "latest" | |||||
| } | |||||
| } | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "kind": "DeploymentConfig", | |||||
| "apiVersion": "v1beta1", | |||||
| "metadata": { | |||||
| "name": "database", | |||||
| "annotations": { | |||||
| "description": "Defines how to deploy the database." | |||||
| } | |||||
| }, | |||||
| "template": { | |||||
| "controllerTemplate": { | |||||
| "replicaSelector": { | |||||
| "name": "database" | |||||
| }, | |||||
| "replicas": 1, | |||||
| "podTemplate": { | |||||
| "labels": { | |||||
| "name": "database" | |||||
| }, | |||||
| "desiredState": { | |||||
| "manifest": { | |||||
| "version": "v1beta1", | |||||
| "containers": [ | |||||
| { | |||||
| "name": "database", | |||||
| "image": "openshift/postgresql-92-centos7", | |||||
| "ports": [ | |||||
| { | |||||
| "containerPort": 5432 | |||||
| } | |||||
| ], | |||||
| "env": [ | |||||
| { | |||||
| "name": "POSTGRESQL_USER", | |||||
| "value": "${DATABASE_USER}" | |||||
| }, | |||||
| { | |||||
| "name": "POSTGRESQL_PASSWORD", | |||||
| "value": "${DATABASE_PASSWORD}" | |||||
| }, | |||||
| { | |||||
| "name": "POSTGRESQL_DATABASE", | |||||
| "value": "${DATABASE_NAME}" | |||||
| } | |||||
| ] | |||||
| } | |||||
| ] | |||||
| } | |||||
| } | |||||
| } | |||||
| }, | |||||
| "strategy": { | |||||
| "type": "Recreate" | |||||
| } | |||||
| }, | |||||
| "triggers": [ | |||||
| { | |||||
| "type": "ConfigChange" | |||||
| } | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "kind": "ImageStream", | |||||
| "apiVersion": "v1beta1", | |||||
| "metadata": { | |||||
| "name": "django-app", | |||||
| "annotations": { | |||||
| "description": "Augments the Docker registry, keeps track of image changes for the Django app." | |||||
| } | |||||
| } | |||||
| }, | |||||
| { | |||||
| "kind": "ImageStream", | |||||
| "apiVersion": "v1beta1", | |||||
| "metadata": { | |||||
| "name": "python-33-centos7", | |||||
| "annotations": { | |||||
| "description": "Augments the Docker registry, keeps track of image changes for Python base image." | |||||
| } | |||||
| }, | |||||
| "spec": { | |||||
| "dockerImageRepository": "openshift/python-33-centos7" | |||||
| } | |||||
| } | |||||
| ], | |||||
| "parameters": [ | |||||
| { | |||||
| "description": "Change this to match your project's Git repository", | |||||
| "name": "PROJECT_REPO", | |||||
| "value": "git://github.com/rhcarvalho/openshift-django-quickstart.git" | |||||
| }, | |||||
| { | |||||
| "description": "Django WSGI application", | |||||
| "name": "APP_MODULE", | |||||
| "value": "project.wsgi" | |||||
| }, | |||||
| { | |||||
| "description": "Django secret key", | |||||
| "name": "DJANGO_SECRET_KEY", | |||||
| "generate": "expression", | |||||
| "from": "[\\w]{50}" | |||||
| }, | |||||
| { | |||||
| "description": "Database name", | |||||
| "name": "DATABASE_NAME", | |||||
| "value": "default" | |||||
| }, | |||||
| { | |||||
| "description": "Database user name", | |||||
| "name": "DATABASE_USER", | |||||
| "value": "admin" | |||||
| }, | |||||
| { | |||||
| "description": "Database user password", | |||||
| "name": "DATABASE_PASSWORD", | |||||
| "generate": "expression", | |||||
| "from": "[a-zA-Z0-9]{16}" | |||||
| } | |||||
| ] | |||||
| } | |||||