My Ansible Playbook to install an OpenShift Lab
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2837 lines
81 KiB

{
"base_env": [
{
"name": "RAILS_ENV",
"value": "production"
},
{
"name": "DATABASE_URL",
"value": "mysql2://root:${MYSQL_ROOT_PASSWORD}@system-mysql/${MYSQL_DATABASE}"
},
{
"name": "FORCE_SSL",
"value": "true"
},
{
"name": "THREESCALE_SUPERDOMAIN",
"value": "${WILDCARD_DOMAIN}"
},
{
"name": "TENANT_NAME",
"value": "${TENANT_NAME}"
},
{
"name": "APICAST_ACCESS_TOKEN",
"value": "${APICAST_ACCESS_TOKEN}"
},
{
"name": "ADMIN_ACCESS_TOKEN",
"value": "${ADMIN_ACCESS_TOKEN}"
},
{
"name": "PROVIDER_PLAN",
"value": "enterprise"
},
{
"name": "USER_LOGIN",
"value": "${ADMIN_USERNAME}"
},
{
"name": "USER_PASSWORD",
"value": "${ADMIN_PASSWORD}"
},
{
"name": "RAILS_LOG_TO_STDOUT",
"value": "true"
},
{
"name": "RAILS_LOG_LEVEL",
"value": "info"
},
{
"name": "THINKING_SPHINX_ADDRESS",
"value": "system-sphinx"
},
{
"name": "THINKING_SPHINX_PORT",
"value": "9306"
},
{
"name": "THINKING_SPHINX_CONFIGURATION_FILE",
"value": "/tmp/sphinx.conf"
},
{
"name": "EVENTS_SHARED_SECRET",
"value": "${SYSTEM_BACKEND_SHARED_SECRET}"
},
{
"name": "THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE",
"value": "VERIFY_NONE"
},
{
"name": "APICAST_BACKEND_ROOT_ENDPOINT",
"value": "https://backend-${TENANT_NAME}.${WILDCARD_DOMAIN}"
},
{
"name": "CONFIG_INTERNAL_API_USER",
"value": "${SYSTEM_BACKEND_USERNAME}"
},
{
"name": "CONFIG_INTERNAL_API_PASSWORD",
"value": "${SYSTEM_BACKEND_PASSWORD}"
},
{
"name": "SECRET_KEY_BASE",
"value": "${SYSTEM_APP_SECRET_KEY_BASE}"
},
{
"name": "AMP_RELEASE",
"value": "${AMP_RELEASE}"
},
{
"name": "SMTP_ADDRESS",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "address"
}
}
},
{
"name": "SMTP_USER_NAME",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "username"
}
}
},
{
"name": "SMTP_PASSWORD",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "password"
}
}
},
{
"name": "SMTP_DOMAIN",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "domain"
}
}
},
{
"name": "SMTP_PORT",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "port"
}
}
},
{
"name": "SMTP_AUTHENTICATION",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "authentication"
}
}
},
{
"name": "SMTP_OPENSSL_VERIFY_MODE",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "openssl.verify.mode"
}
}
},
{
"name": "BACKEND_ROUTE",
"value": "https://backend-${TENANT_NAME}.${WILDCARD_DOMAIN}"
}
],
"apiVersion": "v1",
"kind": "Template",
"metadata": {
"name": "system"
},
"message": "Login on https://${TENANT_NAME}-admin.${WILDCARD_DOMAIN} as ${ADMIN_USERNAME}/${ADMIN_PASSWORD}",
"objects": [
{
"apiVersion": "v1",
"kind": "PersistentVolumeClaim",
"metadata": {
"name": "system-storage"
},
"spec": {
"accessModes": [
"ReadWriteMany"
],
"resources": {
"requests": {
"storage": "100Mi"
}
}
}
},
{
"apiVersion": "v1",
"kind": "PersistentVolumeClaim",
"metadata": {
"name": "mysql-storage"
},
"spec": {
"accessModes": [
"ReadWriteOnce"
],
"resources": {
"requests": {
"storage": "1Gi"
}
}
}
},
{
"apiVersion": "v1",
"kind": "PersistentVolumeClaim",
"metadata": {
"name": "system-redis-storage"
},
"spec": {
"accessModes": [
"ReadWriteOnce"
],
"resources": {
"requests": {
"storage": "1Gi"
}
}
}
},
{
"apiVersion": "v1",
"kind": "PersistentVolumeClaim",
"metadata": {
"name": "backend-redis-storage"
},
"spec": {
"accessModes": [
"ReadWriteOnce"
],
"resources": {
"requests": {
"storage": "1Gi"
}
}
}
},
{
"apiVersion": "v1",
"kind": "DeploymentConfig",
"metadata": {
"name": "backend-cron"
},
"spec": {
"replicas": 1,
"selector": {
"name": "backend-cron"
},
"strategy": {
"rollingParams": {
"intervalSeconds": 1,
"maxSurge": "25%",
"maxUnavailable": "25%",
"timeoutSeconds": 600,
"updatePeriodSeconds": 1
},
"type": "Rolling"
},
"template": {
"metadata": {
"labels": {
"name": "backend-cron"
}
},
"spec": {
"containers": [
{
"args": [
"backend-cron"
],
"env": [
{
"name": "CONFIG_REDIS_PROXY",
"value": "backend-redis:6379"
},
{
"name": "CONFIG_QUEUES_MASTER_NAME",
"value": "backend-redis:6379/1"
},
{
"name": "RACK_ENV",
"value": "production"
}
],
"image": "3scale-amp20/backend:1.0-2",
"imagePullPolicy": "IfNotPresent",
"name": "backend-cron"
}
]
}
},
"triggers": []
}
},
{
"apiVersion": "v1",
"kind": "DeploymentConfig",
"metadata": {
"name": "backend-redis"
},
"spec": {
"replicas": 1,
"selector": {
"name": "backend-redis"
},
"strategy": {
"type": "Recreate"
},
"template": {
"metadata": {
"labels": {
"name": "backend-redis"
}
},
"spec": {
"containers": [
{
"image": "${REDIS_IMAGE}",
"imagePullPolicy": "IfNotPresent",
"name": "backend-redis",
"readinessProbe": {
"exec": {
"command": [
"container-entrypoint",
"bash",
"-c",
"redis-cli set liveness-probe \"`date`\" | grep OK"
]
},
"initialDelaySeconds": 10,
"periodSeconds": 30,
"timeoutSeconds": 1
},
"livenessProbe": {
"tcpSocket": {
"port": 6379
},
"initialDelaySeconds": 10,
"periodSeconds": 10
},
"volumeMounts": [
{
"name": "backend-redis-storage",
"mountPath": "/var/lib/redis/data"
},
{
"name": "redis-config",
"mountPath": "/etc/redis.conf",
"subPath": "redis.conf"
}
]
}
],
"volumes": [
{
"name": "backend-redis-storage",
"persistentVolumeClaim": {
"claimName": "backend-redis-storage"
}
},
{
"name": "redis-config",
"configMap": {
"name": "redis-config",
"items": [
{
"key": "redis.conf",
"path": "redis.conf"
}
]
}
}
]
}
},
"triggers": []
}
},
{
"apiVersion": "v1",
"kind": "DeploymentConfig",
"metadata": {
"name": "backend-listener"
},
"spec": {
"replicas": 1,
"selector": {
"name": "backend-listener"
},
"strategy": {
"rollingParams": {
"intervalSeconds": 1,
"maxSurge": "25%",
"maxUnavailable": "25%",
"timeoutSeconds": 600,
"updatePeriodSeconds": 1
},
"type": "Rolling"
},
"template": {
"metadata": {
"labels": {
"name": "backend-listener"
}
},
"spec": {
"containers": [
{
"args": [
"3scale_backend",
"start",
"-e",
"production",
"-p",
"3000",
"-x",
"/dev/stdout"
],
"env": [
{
"name": "CONFIG_REDIS_PROXY",
"value": "backend-redis:6379"
},
{
"name": "CONFIG_QUEUES_MASTER_NAME",
"value": "backend-redis:6379/1"
},
{
"name": "RACK_ENV",
"value": "production"
},
{
"name": "CONFIG_INTERNAL_API_USER",
"value": "${SYSTEM_BACKEND_USERNAME}"
},
{
"name": "CONFIG_INTERNAL_API_PASSWORD",
"value": "${SYSTEM_BACKEND_PASSWORD}"
}
],
"image": "3scale-amp20/backend:1.0-2",
"imagePullPolicy": "IfNotPresent",
"name": "backend-listener",
"livenessProbe": {
"initialDelaySeconds": 30,
"periodSeconds": 10,
"tcpSocket": {
"port": 3000
}
},
"readinessProbe": {
"httpGet": {
"path": "/status",
"port": 3000
},
"initialDelaySeconds": 30,
"timeoutSeconds": 5
},
"ports": [
{
"containerPort": 3000,
"protocol": "TCP"
}
]
}
]
}
},
"triggers": []
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "backend-redis"
},
"spec": {
"ports": [
{
"port": 6379,
"protocol": "TCP",
"targetPort": 6379
}
],
"selector": {
"name": "backend-redis"
}
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "backend-listener"
},
"spec": {
"ports": [
{
"port": 3000,
"protocol": "TCP",
"targetPort": 3000,
"name": "http"
}
],
"selector": {
"name": "backend-listener"
}
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "system-provider"
},
"spec": {
"ports": [
{
"port": 3000,
"protocol": "TCP",
"targetPort": "provider",
"name": "http"
}
],
"selector": {
"name": "system-app"
}
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "system-developer"
},
"spec": {
"ports": [
{
"port": 3000,
"protocol": "TCP",
"targetPort": "developer",
"name": "http"
}
],
"selector": {
"name": "system-app"
}
}
},
{
"apiVersion": "v1",
"kind": "DeploymentConfig",
"metadata": {
"name": "backend-worker"
},
"spec": {
"replicas": 1,
"selector": {
"name": "backend-worker"
},
"strategy": {
"rollingParams": {
"intervalSeconds": 1,
"maxSurge": "25%",
"maxUnavailable": "25%",
"timeoutSeconds": 600,
"updatePeriodSeconds": 1
},
"type": "Rolling"
},
"template": {
"metadata": {
"labels": {
"name": "backend-worker"
}
},
"spec": {
"containers": [
{
"args": [
"3scale_backend_worker",
"run"
],
"env": [
{
"name": "CONFIG_REDIS_PROXY",
"value": "backend-redis:6379"
},
{
"name": "CONFIG_QUEUES_MASTER_NAME",
"value": "backend-redis:6379/1"
},
{
"name": "RACK_ENV",
"value": "production"
},
{
"name": "CONFIG_EVENTS_HOOK",
"value": "http://system-provider:3000/master/events/import"
},
{
"name": "CONFIG_EVENTS_HOOK_SHARED_SECRET",
"value": "${SYSTEM_BACKEND_SHARED_SECRET}"
}
],
"image": "3scale-amp20/backend:1.0-2",
"imagePullPolicy": "IfNotPresent",
"name": "backend-worker"
}
]
}
},
"triggers": []
}
},
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "system-mysql"
},
"spec": {
"ports": [
{
"name": "system-mysql",
"protocol": "TCP",
"port": 3306,
"targetPort": 3306,
"nodePort": 0
}
],
"selector": {
"name": "system-mysql"
}
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "system-redis"
},
"spec": {
"ports": [
{
"port": 6379,
"protocol": "TCP",
"targetPort": 6379,
"name": "redis"
}
],
"selector": {
"name": "system-redis"
}
}
},
{
"apiVersion": "v1",
"kind": "DeploymentConfig",
"metadata": {
"name": "system-redis"
},
"spec": {
"replicas": 1,
"selector": {
"name": "system-redis"
},
"strategy": {
"type": "Recreate"
},
"template": {
"metadata": {
"labels": {
"name": "system-redis"
}
},
"spec": {
"containers": [
{
"args": null,
"image": "${REDIS_IMAGE}",
"imagePullPolicy": "IfNotPresent",
"name": "system-redis",
"terminationMessagePath": "/dev/termination-log",
"volumeMounts": [
{
"name": "system-redis-storage",
"mountPath": "/var/lib/redis/data"
},
{
"name": "redis-config",
"mountPath": "/etc/redis.conf",
"subPath": "redis.conf"
}
],
"readinessProbe": {
"exec": {
"command": [
"container-entrypoint",
"bash",
"-c",
"redis-cli set liveness-probe \"`date`\" | grep OK"
]
},
"initialDelaySeconds": 30,
"periodSeconds": 10,
"timeoutSeconds": 5
},
"livenessProbe": {
"tcpSocket": {
"port": 6379
},
"initialDelaySeconds": 10,
"periodSeconds": 5
}
}
],
"volumes": [
{
"name": "system-redis-storage",
"persistentVolumeClaim": {
"claimName": "system-redis-storage"
}
},
{
"name": "redis-config",
"configMap": {
"name": "redis-config",
"items": [
{
"key": "redis.conf",
"path": "redis.conf"
}
]
}
}
]
}
},
"triggers": []
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "system-sphinx"
},
"spec": {
"ports": [
{
"port": 9306,
"protocol": "TCP",
"targetPort": 9306,
"name": "sphinx"
}
],
"selector": {
"name": "system-sphinx"
}
}
},
{
"apiVersion": "v1",
"kind": "DeploymentConfig",
"metadata": {
"name": "system-sphinx"
},
"spec": {
"replicas": 1,
"selector": {
"name": "system-sphinx"
},
"strategy": {
"rollingParams": {
"intervalSeconds": 1,
"maxSurge": "25%",
"maxUnavailable": "25%",
"timeoutSeconds": 600,
"updatePeriodSeconds": 1
},
"type": "Rolling"
},
"template": {
"metadata": {
"labels": {
"name": "system-sphinx"
}
},
"spec": {
"volumes": [
{
"name": "system-sphinx-database",
"emptyDir": {}
}
],
"containers": [
{
"args": [
"rake",
"openshift:thinking_sphinx:start"
],
"volumeMounts": [
{
"name": "system-sphinx-database",
"mountPath": "/opt/system/db/sphinx"
}
],
"env": [
{
"name": "RAILS_ENV",
"value": "production"
},
{
"name": "DATABASE_URL",
"value": "mysql2://root:${MYSQL_ROOT_PASSWORD}@system-mysql/${MYSQL_DATABASE}"
},
{
"name": "THINKING_SPHINX_ADDRESS",
"value": "0.0.0.0"
},
{
"name": "THINKING_SPHINX_CONFIGURATION_FILE",
"value": "db/sphinx/production.conf"
},
{
"name": "THINKING_SPHINX_PID_FILE",
"value": "db/sphinx/searchd.pid"
},
{
"name": "DELTA_INDEX_INTERVAL",
"value": "5"
},
{
"name": "FULL_REINDEX_INTERVAL",
"value": "60"
}
],
"image": "3scale-amp20/system:1.0-2",
"imagePullPolicy": "IfNotPresent",
"name": "system-sphinx",
"livenessProbe": {
"tcpSocket": {
"port": 9306
},
"initialDelaySeconds": 60,
"periodSeconds": 10
}
}
]
}
},
"triggers": []
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "system-memcache"
},
"spec": {
"ports": [
{
"port": 11211,
"protocol": "TCP",
"targetPort": 11211,
"name": "memcache"
}
],
"selector": {
"name": "system-memcache"
}
}
},
{
"apiVersion": "v1",
"kind": "DeploymentConfig",
"metadata": {
"name": "system-memcache"
},
"spec": {
"replicas": 1,
"selector": {
"name": "system-memcache"
},
"strategy": {
"rollingParams": {
"intervalSeconds": 1,
"maxSurge": "25%",
"maxUnavailable": "25%",
"timeoutSeconds": 600,
"updatePeriodSeconds": 1
},
"type": "Rolling"
},
"template": {
"metadata": {
"labels": {
"name": "system-memcache"
}
},
"spec": {
"containers": [
{
"args": null,
"env": null,
"image": "3scale-amp20/memcached:1.4.15-7",
"imagePullPolicy": "IfNotPresent",
"name": "memcache",
"readinessProbe": {
"exec": {
"command": [
"sh",
"-c",
"echo version | nc $HOSTNAME 11211 | grep VERSION"
]
},
"initialDelaySeconds": 10,
"periodSeconds": 30,
"timeoutSeconds": 5
},
"livenessProbe": {
"tcpSocket": {
"port": 11211
},
"initialDelaySeconds": 10,
"periodSeconds": 10
},
"command": [
"memcached",
"-m",
"64"
]
}
],
"ports": [
{
"containerPort": 6379,
"protocol": "TCP"
}
]
}
},
"triggers": []
}
},
{
"apiVersion": "v1",
"kind": "Route",
"metadata": {
"name": "system-provider-admin-route",
"labels": {
"app": "system-route"
}
},
"spec": {
"host": "${TENANT_NAME}-admin.${WILDCARD_DOMAIN}",
"to": {
"kind": "Service",
"name": "system-provider"
},
"port": {
"targetPort": "http"
},
"tls": {
"termination": "edge",
"insecureEdgeTerminationPolicy": "Allow"
}
}
},
{
"apiVersion": "v1",
"kind": "Route",
"metadata": {
"name": "backend-route",
"labels": {
"app": "system-route"
}
},
"spec": {
"host": "backend-${TENANT_NAME}.${WILDCARD_DOMAIN}",
"to": {
"kind": "Service",
"name": "backend-listener"
},
"port": {
"targetPort": "http"
},
"tls": {
"termination": "edge",
"insecureEdgeTerminationPolicy": "Allow"
}
}
},
{
"apiVersion": "v1",
"kind": "Route",
"metadata": {
"name": "system-developer-route",
"labels": {
"app": "system-route"
}
},
"spec": {
"host": "${TENANT_NAME}.${WILDCARD_DOMAIN}",
"to": {
"kind": "Service",
"name": "system-developer"
},
"port": {
"targetPort": "http"
},
"tls": {
"termination": "edge",
"insecureEdgeTerminationPolicy": "Allow"
}
}
},
{
"apiVersion": "v1",
"kind": "DeploymentConfig",
"metadata": {
"name": "apicast-staging"
},
"spec": {
"replicas": 1,
"selector": {
"deploymentconfig": "apicast-staging"
},
"strategy": {
"rollingParams": {
"intervalSeconds": 1,
"maxSurge": "25%",
"maxUnavailable": "25%",
"timeoutSeconds": 1800,
"updatePeriodSeconds": 1
},
"type": "Rolling"
},
"template": {
"metadata": {
"labels": {
"deploymentconfig": "apicast-staging"
}
},
"spec": {
"containers": [
{
"env": [
{
"name": "THREESCALE_PORTAL_ENDPOINT",
"value": "http://${APICAST_ACCESS_TOKEN}@system-provider:3000"
},
{
"name": "APICAST_CONFIGURATION_LOADER",
"value": "lazy"
},
{
"name": "APICAST_CONFIGURATION_CACHE",
"value": "0"
},
{
"name": "THREESCALE_DEPLOYMENT_ENV",
"value": "sandbox"
},
{
"name": "APICAST_MANAGEMENT_API",
"value": "${APICAST_MANAGEMENT_API}"
},
{
"name": "BACKEND_ENDPOINT_OVERRIDE",
"value": "http://backend-listener:3000"
},
{
"name": "OPENSSL_VERIFY",
"value": "${APICAST_OPENSSL_VERIFY}"
},
{
"name": "APICAST_RESPONSE_CODES",
"value": "${APICAST_RESPONSE_CODES}"
},
{
"name": "REDIS_URL",
"value": "redis://system-redis:6379/2"
}
],
"image": "3scale-amp20/apicast-gateway:1.0-3",
"imagePullPolicy": "IfNotPresent",
"name": "apicast-staging",
"livenessProbe": {
"httpGet": {
"path": "/status/live",
"port": 8090
},
"initialDelaySeconds": 10,
"timeoutSeconds": 5,
"periodSeconds": 10
},
"readinessProbe": {
"httpGet": {
"path": "/status/ready",
"port": 8090
},
"initialDelaySeconds": 15,
"timeoutSeconds": 5,
"periodSeconds": 30
},
"ports": [
{
"containerPort": 8080,
"protocol": "TCP"
},
{
"containerPort": 8090,
"protocol": "TCP"
}
]
}
]
}
},
"triggers": []
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "apicast-staging"
},
"spec": {
"ports": [
{
"name": "gateway",
"port": 8080,
"protocol": "TCP",
"targetPort": 8080
},
{
"name": "management",
"port": 8090,
"protocol": "TCP",
"targetPort": 8090
}
],
"selector": {
"deploymentconfig": "apicast-staging"
}
}
},
{
"apiVersion": "v1",
"kind": "DeploymentConfig",
"metadata": {
"name": "apicast-production"
},
"spec": {
"replicas": 1,
"selector": {
"deploymentconfig": "apicast-production"
},
"strategy": {
"rollingParams": {
"intervalSeconds": 1,
"maxSurge": "25%",
"maxUnavailable": "25%",
"timeoutSeconds": 1800,
"updatePeriodSeconds": 1
},
"type": "Rolling"
},
"template": {
"metadata": {
"labels": {
"deploymentconfig": "apicast-production"
}
},
"spec": {
"containers": [
{
"env": [
{
"name": "THREESCALE_PORTAL_ENDPOINT",
"value": "http://${APICAST_ACCESS_TOKEN}@system-provider:3000"
},
{
"name": "APICAST_CONFIGURATION_LOADER",
"value": "boot"
},
{
"name": "APICAST_CONFIGURATION_CACHE",
"value": "300"
},
{
"name": "THREESCALE_DEPLOYMENT_ENV",
"value": "production"
},
{
"name": "APICAST_MANAGEMENT_API",
"value": "${APICAST_MANAGEMENT_API}"
},
{
"name": "BACKEND_ENDPOINT_OVERRIDE",
"value": "http://backend-listener:3000"
},
{
"name": "OPENSSL_VERIFY",
"value": "${APICAST_OPENSSL_VERIFY}"
},
{
"name": "APICAST_RESPONSE_CODES",
"value": "${APICAST_RESPONSE_CODES}"
},
{
"name": "REDIS_URL",
"value": "redis://system-redis:6379/1"
}
],
"image": "3scale-amp20/apicast-gateway:1.0-3",
"imagePullPolicy": "IfNotPresent",
"name": "apicast-production",
"livenessProbe": {
"httpGet": {
"path": "/status/live",
"port": 8090
},
"initialDelaySeconds": 10,
"timeoutSeconds": 5,
"periodSeconds": 10
},
"readinessProbe": {
"httpGet": {
"path": "/status/ready",
"port": 8090
},
"initialDelaySeconds": 15,
"timeoutSeconds": 5,
"periodSeconds": 30
},
"ports": [
{
"containerPort": 8080,
"protocol": "TCP"
},
{
"containerPort": 8090,
"protocol": "TCP"
}
]
}
]
}
},
"triggers": []
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "apicast-production"
},
"spec": {
"ports": [
{
"name": "gateway",
"port": 8080,
"protocol": "TCP",
"targetPort": 8080
},
{
"name": "management",
"port": 8090,
"protocol": "TCP",
"targetPort": 8090
}
],
"selector": {
"deploymentconfig": "apicast-production"
}
}
},
{
"apiVersion": "v1",
"kind": "Route",
"metadata": {
"name": "api-apicast-staging-route",
"labels": {
"app": "apicast-staging"
}
},
"spec": {
"host": "api-${TENANT_NAME}-apicast-staging.${WILDCARD_DOMAIN}",
"to": {
"kind": "Service",
"name": "apicast-staging"
},
"port": {
"targetPort": "gateway"
},
"tls": {
"termination": "edge",
"insecureEdgeTerminationPolicy": "Allow"
}
}
},
{
"apiVersion": "v1",
"kind": "Route",
"metadata": {
"name": "api-apicast-production-route",
"labels": {
"app": "apicast-production"
}
},
"spec": {
"host": "api-${TENANT_NAME}-apicast-production.${WILDCARD_DOMAIN}",
"to": {
"kind": "Service",
"name": "apicast-production"
},
"port": {
"targetPort": "gateway"
},
"tls": {
"termination": "edge",
"insecureEdgeTerminationPolicy": "Allow"
}
}
},
{
"apiVersion": "v1",
"kind": "DeploymentConfig",
"metadata": {
"name": "system-app"
},
"spec": {
"replicas": 1,
"selector": {
"name": "system-app"
},
"strategy": {
"rollingParams": {
"intervalSeconds": 1,
"maxSurge": "25%",
"maxUnavailable": "25%",
"timeoutSeconds": 600,
"updatePeriodSeconds": 1,
"pre": {
"failurePolicy": "Retry",
"execNewPod": {
"containerName": "system-provider",
"command": [
"bash",
"-c",
"bundle exec rake boot openshift:deploy"
],
"env": [
{
"name": "RAILS_ENV",
"value": "production"
},
{
"name": "DATABASE_URL",
"value": "mysql2://root:${MYSQL_ROOT_PASSWORD}@system-mysql/${MYSQL_DATABASE}"
},
{
"name": "FORCE_SSL",
"value": "true"
},
{
"name": "THREESCALE_SUPERDOMAIN",
"value": "${WILDCARD_DOMAIN}"
},
{
"name": "TENANT_NAME",
"value": "${TENANT_NAME}"
},
{
"name": "APICAST_ACCESS_TOKEN",
"value": "${APICAST_ACCESS_TOKEN}"
},
{
"name": "ADMIN_ACCESS_TOKEN",
"value": "${ADMIN_ACCESS_TOKEN}"
},
{
"name": "PROVIDER_PLAN",
"value": "enterprise"
},
{
"name": "USER_LOGIN",
"value": "${ADMIN_USERNAME}"
},
{
"name": "USER_PASSWORD",
"value": "${ADMIN_PASSWORD}"
},
{
"name": "RAILS_LOG_TO_STDOUT",
"value": "true"
},
{
"name": "RAILS_LOG_LEVEL",
"value": "info"
},
{
"name": "THINKING_SPHINX_ADDRESS",
"value": "system-sphinx"
},
{
"name": "THINKING_SPHINX_PORT",
"value": "9306"
},
{
"name": "THINKING_SPHINX_CONFIGURATION_FILE",
"value": "/tmp/sphinx.conf"
},
{
"name": "EVENTS_SHARED_SECRET",
"value": "${SYSTEM_BACKEND_SHARED_SECRET}"
},
{
"name": "THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE",
"value": "VERIFY_NONE"
},
{
"name": "APICAST_BACKEND_ROOT_ENDPOINT",
"value": "https://backend-${TENANT_NAME}.${WILDCARD_DOMAIN}"
},
{
"name": "CONFIG_INTERNAL_API_USER",
"value": "${SYSTEM_BACKEND_USERNAME}"
},
{
"name": "CONFIG_INTERNAL_API_PASSWORD",
"value": "${SYSTEM_BACKEND_PASSWORD}"
},
{
"name": "SECRET_KEY_BASE",
"value": "${SYSTEM_APP_SECRET_KEY_BASE}"
},
{
"name": "AMP_RELEASE",
"value": "${AMP_RELEASE}"
},
{
"name": "SMTP_ADDRESS",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "address"
}
}
},
{
"name": "SMTP_USER_NAME",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "username"
}
}
},
{
"name": "SMTP_PASSWORD",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "password"
}
}
},
{
"name": "SMTP_DOMAIN",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "domain"
}
}
},
{
"name": "SMTP_PORT",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "port"
}
}
},
{
"name": "SMTP_AUTHENTICATION",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "authentication"
}
}
},
{
"name": "SMTP_OPENSSL_VERIFY_MODE",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "openssl.verify.mode"
}
}
},
{
"name": "BACKEND_ROUTE",
"value": "https://backend-${TENANT_NAME}.${WILDCARD_DOMAIN}"
}
],
"volumes": [
"system-storage"
]
}
},
"post": {
"failurePolicy": "Abort",
"execNewPod": {
"containerName": "system-provider",
"command": [
"bash",
"-c",
"bundle exec rake boot openshift:post_deploy"
]
}
}
},
"type": "Rolling"
},
"template": {
"metadata": {
"labels": {
"name": "system-app"
}
},
"spec": {
"containers": [
{
"args": null,
"env": [
{
"name": "RAILS_ENV",
"value": "production"
},
{
"name": "DATABASE_URL",
"value": "mysql2://root:${MYSQL_ROOT_PASSWORD}@system-mysql/${MYSQL_DATABASE}"
},
{
"name": "FORCE_SSL",
"value": "true"
},
{
"name": "THREESCALE_SUPERDOMAIN",
"value": "${WILDCARD_DOMAIN}"
},
{
"name": "TENANT_NAME",
"value": "${TENANT_NAME}"
},
{
"name": "APICAST_ACCESS_TOKEN",
"value": "${APICAST_ACCESS_TOKEN}"
},
{
"name": "ADMIN_ACCESS_TOKEN",
"value": "${ADMIN_ACCESS_TOKEN}"
},
{
"name": "PROVIDER_PLAN",
"value": "enterprise"
},
{
"name": "USER_LOGIN",
"value": "${ADMIN_USERNAME}"
},
{
"name": "USER_PASSWORD",
"value": "${ADMIN_PASSWORD}"
},
{
"name": "RAILS_LOG_TO_STDOUT",
"value": "true"
},
{
"name": "RAILS_LOG_LEVEL",
"value": "info"
},
{
"name": "THINKING_SPHINX_ADDRESS",
"value": "system-sphinx"
},
{
"name": "THINKING_SPHINX_PORT",
"value": "9306"
},
{
"name": "THINKING_SPHINX_CONFIGURATION_FILE",
"value": "/tmp/sphinx.conf"
},
{
"name": "EVENTS_SHARED_SECRET",
"value": "${SYSTEM_BACKEND_SHARED_SECRET}"
},
{
"name": "THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE",
"value": "VERIFY_NONE"
},
{
"name": "APICAST_BACKEND_ROOT_ENDPOINT",
"value": "https://backend-${TENANT_NAME}.${WILDCARD_DOMAIN}"
},
{
"name": "CONFIG_INTERNAL_API_USER",
"value": "${SYSTEM_BACKEND_USERNAME}"
},
{
"name": "CONFIG_INTERNAL_API_PASSWORD",
"value": "${SYSTEM_BACKEND_PASSWORD}"
},
{
"name": "SECRET_KEY_BASE",
"value": "${SYSTEM_APP_SECRET_KEY_BASE}"
},
{
"name": "AMP_RELEASE",
"value": "${AMP_RELEASE}"
},
{
"name": "SMTP_ADDRESS",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "address"
}
}
},
{
"name": "SMTP_USER_NAME",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "username"
}
}
},
{
"name": "SMTP_PASSWORD",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "password"
}
}
},
{
"name": "SMTP_DOMAIN",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "domain"
}
}
},
{
"name": "SMTP_PORT",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "port"
}
}
},
{
"name": "SMTP_AUTHENTICATION",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "authentication"
}
}
},
{
"name": "SMTP_OPENSSL_VERIFY_MODE",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "openssl.verify.mode"
}
}
},
{
"name": "BACKEND_ROUTE",
"value": "https://backend-${TENANT_NAME}.${WILDCARD_DOMAIN}"
}
],
"image": "3scale-amp20/system:1.0-2",
"imagePullPolicy": "IfNotPresent",
"command": [
"env",
"TENANT_MODE=provider",
"PORT=3000",
"container-entrypoint",
"bundle",
"exec",
"unicorn",
"-c",
"config/unicorn.rb"
],
"name": "system-provider",
"livenessProbe": {
"timeoutSeconds": 10,
"initialDelaySeconds": 20,
"tcpSocket": {
"port": "provider"
},
"periodSeconds": 10
},
"readinessProbe": {
"httpGet": {
"path": "/check.txt",
"port": "provider",
"scheme": "HTTP",
"httpHeaders": [
{
"name": "X-Forwarded-Proto",
"value": "https"
}
]
},
"initialDelaySeconds": 30,
"timeoutSeconds": 10,
"periodSeconds": 30
},
"ports": [
{
"containerPort": 3000,
"protocol": "TCP",
"name": "provider"
}
],
"volumeMounts": [
{
"name": "system-storage",
"mountPath": "/opt/system/public/system"
}
]
},
{
"args": null,
"env": [
{
"name": "RAILS_ENV",
"value": "production"
},
{
"name": "DATABASE_URL",
"value": "mysql2://root:${MYSQL_ROOT_PASSWORD}@system-mysql/${MYSQL_DATABASE}"
},
{
"name": "FORCE_SSL",
"value": "true"
},
{
"name": "THREESCALE_SUPERDOMAIN",
"value": "${WILDCARD_DOMAIN}"
},
{
"name": "TENANT_NAME",
"value": "${TENANT_NAME}"
},
{
"name": "APICAST_ACCESS_TOKEN",
"value": "${APICAST_ACCESS_TOKEN}"
},
{
"name": "ADMIN_ACCESS_TOKEN",
"value": "${ADMIN_ACCESS_TOKEN}"
},
{
"name": "PROVIDER_PLAN",
"value": "enterprise"
},
{
"name": "USER_LOGIN",
"value": "${ADMIN_USERNAME}"
},
{
"name": "USER_PASSWORD",
"value": "${ADMIN_PASSWORD}"
},
{
"name": "RAILS_LOG_TO_STDOUT",
"value": "true"
},
{
"name": "RAILS_LOG_LEVEL",
"value": "info"
},
{
"name": "THINKING_SPHINX_ADDRESS",
"value": "system-sphinx"
},
{
"name": "THINKING_SPHINX_PORT",
"value": "9306"
},
{
"name": "THINKING_SPHINX_CONFIGURATION_FILE",
"value": "/tmp/sphinx.conf"
},
{
"name": "EVENTS_SHARED_SECRET",
"value": "${SYSTEM_BACKEND_SHARED_SECRET}"
},
{
"name": "THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE",
"value": "VERIFY_NONE"
},
{
"name": "APICAST_BACKEND_ROOT_ENDPOINT",
"value": "https://backend-${TENANT_NAME}.${WILDCARD_DOMAIN}"
},
{
"name": "CONFIG_INTERNAL_API_USER",
"value": "${SYSTEM_BACKEND_USERNAME}"
},
{
"name": "CONFIG_INTERNAL_API_PASSWORD",
"value": "${SYSTEM_BACKEND_PASSWORD}"
},
{
"name": "SECRET_KEY_BASE",
"value": "${SYSTEM_APP_SECRET_KEY_BASE}"
},
{
"name": "AMP_RELEASE",
"value": "${AMP_RELEASE}"
},
{
"name": "SMTP_ADDRESS",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "address"
}
}
},
{
"name": "SMTP_USER_NAME",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "username"
}
}
},
{
"name": "SMTP_PASSWORD",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "password"
}
}
},
{
"name": "SMTP_DOMAIN",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "domain"
}
}
},
{
"name": "SMTP_PORT",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "port"
}
}
},
{
"name": "SMTP_AUTHENTICATION",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "authentication"
}
}
},
{
"name": "SMTP_OPENSSL_VERIFY_MODE",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "openssl.verify.mode"
}
}
},
{
"name": "BACKEND_ROUTE",
"value": "https://backend-${TENANT_NAME}.${WILDCARD_DOMAIN}"
}
],
"image": "3scale-amp20/system:1.0-2",
"command": [
"env",
"TENANT_MODE=developer",
"PORT=3001",
"container-entrypoint",
"bundle",
"exec",
"unicorn",
"-c",
"config/unicorn.rb"
],
"imagePullPolicy": "IfNotPresent",
"name": "system-developer",
"livenessProbe": {
"timeoutSeconds": 10,
"initialDelaySeconds": 20,
"tcpSocket": {
"port": "developer"
},
"periodSeconds": 10
},
"readinessProbe": {
"httpGet": {
"path": "/check.txt",
"port": "developer",
"scheme": "HTTP",
"httpHeaders": [
{
"name": "X-Forwarded-Proto",
"value": "https"
}
]
},
"initialDelaySeconds": 30,
"timeoutSeconds": 10,
"periodSeconds": 30
},
"ports": [
{
"containerPort": 3001,
"protocol": "TCP",
"name": "developer"
}
],
"volumeMounts": [
{
"name": "system-storage",
"mountPath": "/opt/system/public/system",
"readOnly": true
}
]
}
],
"volumes": [
{
"name": "system-storage",
"persistentVolumeClaim": {
"claimName": "system-storage"
}
}
]
}
},
"triggers": []
}
},
{
"apiVersion": "v1",
"kind": "DeploymentConfig",
"metadata": {
"name": "system-resque"
},
"spec": {
"replicas": 1,
"selector": {
"name": "system-resque"
},
"strategy": {
"rollingParams": {
"intervalSeconds": 1,
"maxSurge": "25%",
"maxUnavailable": "25%",
"timeoutSeconds": 600,
"updatePeriodSeconds": 1
},
"type": "Rolling"
},
"template": {
"metadata": {
"labels": {
"name": "system-resque"
}
},
"spec": {
"containers": [
{
"args": [
"rake",
"resque:work",
"QUEUE=*"
],
"env": [
{
"name": "RAILS_ENV",
"value": "production"
},
{
"name": "DATABASE_URL",
"value": "mysql2://root:${MYSQL_ROOT_PASSWORD}@system-mysql/${MYSQL_DATABASE}"
},
{
"name": "FORCE_SSL",
"value": "true"
},
{
"name": "THREESCALE_SUPERDOMAIN",
"value": "${WILDCARD_DOMAIN}"
},
{
"name": "TENANT_NAME",
"value": "${TENANT_NAME}"
},
{
"name": "APICAST_ACCESS_TOKEN",
"value": "${APICAST_ACCESS_TOKEN}"
},
{
"name": "ADMIN_ACCESS_TOKEN",
"value": "${ADMIN_ACCESS_TOKEN}"
},
{
"name": "PROVIDER_PLAN",
"value": "enterprise"
},
{
"name": "USER_LOGIN",
"value": "${ADMIN_USERNAME}"
},
{
"name": "USER_PASSWORD",
"value": "${ADMIN_PASSWORD}"
},
{
"name": "RAILS_LOG_TO_STDOUT",
"value": "true"
},
{
"name": "RAILS_LOG_LEVEL",
"value": "info"
},
{
"name": "THINKING_SPHINX_ADDRESS",
"value": "system-sphinx"
},
{
"name": "THINKING_SPHINX_PORT",
"value": "9306"
},
{
"name": "THINKING_SPHINX_CONFIGURATION_FILE",
"value": "/tmp/sphinx.conf"
},
{
"name": "EVENTS_SHARED_SECRET",
"value": "${SYSTEM_BACKEND_SHARED_SECRET}"
},
{
"name": "THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE",
"value": "VERIFY_NONE"
},
{
"name": "APICAST_BACKEND_ROOT_ENDPOINT",
"value": "https://backend-${TENANT_NAME}.${WILDCARD_DOMAIN}"
},
{
"name": "CONFIG_INTERNAL_API_USER",
"value": "${SYSTEM_BACKEND_USERNAME}"
},
{
"name": "CONFIG_INTERNAL_API_PASSWORD",
"value": "${SYSTEM_BACKEND_PASSWORD}"
},
{
"name": "SECRET_KEY_BASE",
"value": "${SYSTEM_APP_SECRET_KEY_BASE}"
},
{
"name": "AMP_RELEASE",
"value": "${AMP_RELEASE}"
},
{
"name": "SMTP_ADDRESS",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "address"
}
}
},
{
"name": "SMTP_USER_NAME",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "username"
}
}
},
{
"name": "SMTP_PASSWORD",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "password"
}
}
},
{
"name": "SMTP_DOMAIN",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "domain"
}
}
},
{
"name": "SMTP_PORT",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "port"
}
}
},
{
"name": "SMTP_AUTHENTICATION",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "authentication"
}
}
},
{
"name": "SMTP_OPENSSL_VERIFY_MODE",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "openssl.verify.mode"
}
}
},
{
"name": "BACKEND_ROUTE",
"value": "https://backend-${TENANT_NAME}.${WILDCARD_DOMAIN}"
}
],
"image": "3scale-amp20/system:1.0-2",
"imagePullPolicy": "IfNotPresent",
"name": "system-resque",
"volumeMounts": [
{
"name": "system-storage",
"mountPath": "/opt/system/public/system"
}
]
},
{
"args": [
"rake",
"resque:scheduler",
"QUEUE=*"
],
"env": [
{
"name": "RAILS_ENV",
"value": "production"
},
{
"name": "DATABASE_URL",
"value": "mysql2://root:${MYSQL_ROOT_PASSWORD}@system-mysql/${MYSQL_DATABASE}"
},
{
"name": "FORCE_SSL",
"value": "true"
},
{
"name": "THREESCALE_SUPERDOMAIN",
"value": "${WILDCARD_DOMAIN}"
},
{
"name": "TENANT_NAME",
"value": "${TENANT_NAME}"
},
{
"name": "APICAST_ACCESS_TOKEN",
"value": "${APICAST_ACCESS_TOKEN}"
},
{
"name": "ADMIN_ACCESS_TOKEN",
"value": "${ADMIN_ACCESS_TOKEN}"
},
{
"name": "PROVIDER_PLAN",
"value": "enterprise"
},
{
"name": "USER_LOGIN",
"value": "${ADMIN_USERNAME}"
},
{
"name": "USER_PASSWORD",
"value": "${ADMIN_PASSWORD}"
},
{
"name": "RAILS_LOG_TO_STDOUT",
"value": "true"
},
{
"name": "RAILS_LOG_LEVEL",
"value": "info"
},
{
"name": "THINKING_SPHINX_ADDRESS",
"value": "system-sphinx"
},
{
"name": "THINKING_SPHINX_PORT",
"value": "9306"
},
{
"name": "THINKING_SPHINX_CONFIGURATION_FILE",
"value": "/tmp/sphinx.conf"
},
{
"name": "EVENTS_SHARED_SECRET",
"value": "${SYSTEM_BACKEND_SHARED_SECRET}"
},
{
"name": "THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE",
"value": "VERIFY_NONE"
},
{
"name": "APICAST_BACKEND_ROOT_ENDPOINT",
"value": "https://backend-${TENANT_NAME}.${WILDCARD_DOMAIN}"
},
{
"name": "CONFIG_INTERNAL_API_USER",
"value": "${SYSTEM_BACKEND_USERNAME}"
},
{
"name": "CONFIG_INTERNAL_API_PASSWORD",
"value": "${SYSTEM_BACKEND_PASSWORD}"
},
{
"name": "SECRET_KEY_BASE",
"value": "${SYSTEM_APP_SECRET_KEY_BASE}"
},
{
"name": "AMP_RELEASE",
"value": "${AMP_RELEASE}"
},
{
"name": "SMTP_ADDRESS",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "address"
}
}
},
{
"name": "SMTP_USER_NAME",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "username"
}
}
},
{
"name": "SMTP_PASSWORD",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "password"
}
}
},
{
"name": "SMTP_DOMAIN",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "domain"
}
}
},
{
"name": "SMTP_PORT",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "port"
}
}
},
{
"name": "SMTP_AUTHENTICATION",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "authentication"
}
}
},
{
"name": "SMTP_OPENSSL_VERIFY_MODE",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "openssl.verify.mode"
}
}
},
{
"name": "BACKEND_ROUTE",
"value": "https://backend-${TENANT_NAME}.${WILDCARD_DOMAIN}"
}
],
"image": "3scale-amp20/system:1.0-2",
"imagePullPolicy": "IfNotPresent",
"name": "system-scheduler"
}
],
"volumes": [
{
"name": "system-storage",
"persistentVolumeClaim": {
"claimName": "system-storage"
}
}
]
}
},
"triggers": []
}
},
{
"apiVersion": "v1",
"kind": "DeploymentConfig",
"metadata": {
"name": "system-sidekiq"
},
"spec": {
"replicas": 1,
"selector": {
"name": "system-sidekiq"
},
"strategy": {
"rollingParams": {
"intervalSeconds": 1,
"maxSurge": "25%",
"maxUnavailable": "25%",
"timeoutSeconds": 600,
"updatePeriodSeconds": 1
},
"type": "Rolling"
},
"template": {
"metadata": {
"labels": {
"name": "system-sidekiq"
}
},
"spec": {
"containers": [
{
"args": [
"rake",
"sidekiq:worker"
],
"env": [
{
"name": "RAILS_ENV",
"value": "production"
},
{
"name": "DATABASE_URL",
"value": "mysql2://root:${MYSQL_ROOT_PASSWORD}@system-mysql/${MYSQL_DATABASE}"
},
{
"name": "FORCE_SSL",
"value": "true"
},
{
"name": "THREESCALE_SUPERDOMAIN",
"value": "${WILDCARD_DOMAIN}"
},
{
"name": "TENANT_NAME",
"value": "${TENANT_NAME}"
},
{
"name": "APICAST_ACCESS_TOKEN",
"value": "${APICAST_ACCESS_TOKEN}"
},
{
"name": "ADMIN_ACCESS_TOKEN",
"value": "${ADMIN_ACCESS_TOKEN}"
},
{
"name": "PROVIDER_PLAN",
"value": "enterprise"
},
{
"name": "USER_LOGIN",
"value": "${ADMIN_USERNAME}"
},
{
"name": "USER_PASSWORD",
"value": "${ADMIN_PASSWORD}"
},
{
"name": "RAILS_LOG_TO_STDOUT",
"value": "true"
},
{
"name": "RAILS_LOG_LEVEL",
"value": "info"
},
{
"name": "THINKING_SPHINX_ADDRESS",
"value": "system-sphinx"
},
{
"name": "THINKING_SPHINX_PORT",
"value": "9306"
},
{
"name": "THINKING_SPHINX_CONFIGURATION_FILE",
"value": "/tmp/sphinx.conf"
},
{
"name": "EVENTS_SHARED_SECRET",
"value": "${SYSTEM_BACKEND_SHARED_SECRET}"
},
{
"name": "THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE",
"value": "VERIFY_NONE"
},
{
"name": "APICAST_BACKEND_ROOT_ENDPOINT",
"value": "https://backend-${TENANT_NAME}.${WILDCARD_DOMAIN}"
},
{
"name": "CONFIG_INTERNAL_API_USER",
"value": "${SYSTEM_BACKEND_USERNAME}"
},
{
"name": "CONFIG_INTERNAL_API_PASSWORD",
"value": "${SYSTEM_BACKEND_PASSWORD}"
},
{
"name": "SECRET_KEY_BASE",
"value": "${SYSTEM_APP_SECRET_KEY_BASE}"
},
{
"name": "AMP_RELEASE",
"value": "${AMP_RELEASE}"
},
{
"name": "SMTP_ADDRESS",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "address"
}
}
},
{
"name": "SMTP_USER_NAME",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "username"
}
}
},
{
"name": "SMTP_PASSWORD",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "password"
}
}
},
{
"name": "SMTP_DOMAIN",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "domain"
}
}
},
{
"name": "SMTP_PORT",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "port"
}
}
},
{
"name": "SMTP_AUTHENTICATION",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "authentication"
}
}
},
{
"name": "SMTP_OPENSSL_VERIFY_MODE",
"valueFrom": {
"configMapKeyRef": {
"name": "smtp",
"key": "openssl.verify.mode"
}
}
},
{
"name": "BACKEND_ROUTE",
"value": "https://backend-${TENANT_NAME}.${WILDCARD_DOMAIN}"
}
],
"image": "3scale-amp20/system:1.0-2",
"imagePullPolicy": "IfNotPresent",
"name": "system-sidekiq",
"volumeMounts": [
{
"name": "system-storage",
"mountPath": "/opt/system/public/system"
}
]
}
],
"volumes": [
{
"name": "system-storage",
"persistentVolumeClaim": {
"claimName": "system-storage"
}
}
]
}
},
"triggers": []
}
},
{
"kind": "DeploymentConfig",
"apiVersion": "v1",
"metadata": {
"name": "system-mysql"
},
"spec": {
"strategy": {
"type": "Recreate"
},
"triggers": [],
"replicas": 1,
"selector": {
"name": "system-mysql"
},
"template": {
"metadata": {
"labels": {
"name": "system-mysql"
}
},
"spec": {
"containers": [
{
"name": "system-mysql",
"image": "${MYSQL_IMAGE}",
"ports": [
{
"containerPort": 3306,
"protocol": "TCP"
}
],
"resources": {
"limits": {
"memory": "2Gi"
},
"requests": {
"cpu": "1",
"memory": "1Gi"
}
},
"readinessProbe": {
"timeoutSeconds": 5,
"initialDelaySeconds": 10,
"periodSeconds": 30,
"exec": {
"command": [
"/bin/sh",
"-i",
"-c",
"MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"
]
}
},
"livenessProbe": {
"initialDelaySeconds": 30,
"periodSeconds": 10,
"tcpSocket": {
"port": 3306
}
},
"env": [
{
"name": "MYSQL_USER",
"value": "${MYSQL_USER}"
},
{
"name": "MYSQL_PASSWORD",
"value": "${MYSQL_PASSWORD}"
},
{
"name": "MYSQL_DATABASE",
"value": "${MYSQL_DATABASE}"
},
{
"name": "MYSQL_ROOT_PASSWORD",
"value": "${MYSQL_ROOT_PASSWORD}"
},
{
"name": "MYSQL_LOWER_CASE_TABLE_NAMES",
"value": "1"
}
],
"volumeMounts": [
{
"name": "mysql-storage",
"mountPath": "/var/lib/mysql/data"
}
],
"imagePullPolicy": "IfNotPresent"
}
],
"volumes": [
{
"name": "mysql-storage",
"persistentVolumeClaim": {
"claimName": "mysql-storage"
}
}
]
}
}
}
},
{
"kind": "ConfigMap",
"apiVersion": "v1",
"metadata": {
"name": "redis-config"
},
"data": {
"redis.conf": "protected-mode no\n\nport 6379\n\ntimeout 0\ntcp-keepalive 300\n\ndaemonize no\nsupervised no\n\nloglevel notice\n\ndatabases 16\n\nsave 900 1\nsave 300 10\nsave 60 10000\n\nstop-writes-on-bgsave-error yes\n\nrdbcompression yes\nrdbchecksum yes\n\ndbfilename dump.rdb\n\nslave-serve-stale-data yes\nslave-read-only yes\n\nrepl-diskless-sync no\nrepl-disable-tcp-nodelay no\n\nappendonly yes\nappendfilename \"appendonly.aof\"\nappendfsync everysec\nno-appendfsync-on-rewrite no\nauto-aof-rewrite-percentage 100\nauto-aof-rewrite-min-size 64mb\naof-load-truncated yes\n\nlua-time-limit 5000\n\nactiverehashing no\n\naof-rewrite-incremental-fsync yes\ndir /var/lib/redis/data\n"
}
},
{
"kind": "ConfigMap",
"apiVersion": "v1",
"metadata": {
"name": "smtp"
},
"data": {
"address": "",
"username": "",
"password": "",
"domain": "",
"port": "",
"authentication": "",
"openssl.verify.mode": ""
}
}
],
"parameters": [
{
"name": "AMP_RELEASE",
"description": "AMP release tag.",
"value": "2.0.0-CR2-redhat-1",
"required": true
},
{
"name": "ADMIN_PASSWORD",
"required": true,
"generate": "expression",
"from": "[a-z0-9]{8}"
},
{
"name": "ADMIN_USERNAME",
"value": "admin",
"required": true
},
{
"name": "APICAST_ACCESS_TOKEN",
"required": true,
"generate": "expression",
"from": "[a-z0-9]{8}",
"description": "Read Only Access Token that is APIcast going to use to download its configuration."
},
{
"name": "ADMIN_ACCESS_TOKEN",
"required": false,
"generate": "expression",
"from": "[a-z0-9]{16}",
"description": "Admin Access Token with all scopes and write permissions for API access."
},
{
"name": "WILDCARD_DOMAIN",
"description": "Root domain for the wildcard routes. Eg. example.com will generate 3scale-admin.example.com.",
"required": true
},
{
"name": "TENANT_NAME",
"description": "Tenant name under the root that Admin UI will be available with -admin suffix.",
"required": true,
"value": "3scale"
},
{
"name": "MYSQL_USER",
"displayName": "MySQL User",
"description": "Username for MySQL user that will be used for accessing the database.",
"value": "mysql",
"required": true
},
{
"name": "MYSQL_PASSWORD",
"displayName": "MySQL Password",
"description": "Password for the MySQL user.",
"generate": "expression",
"from": "[a-z0-9]{8}",
"required": true
},
{
"name": "MYSQL_DATABASE",
"displayName": "MySQL Database Name",
"description": "Name of the MySQL database accessed.",
"value": "system",
"required": true
},
{
"name": "MYSQL_ROOT_PASSWORD",
"displayName": "MySQL Root password.",
"description": "Password for Root user.",
"generate": "expression",
"from": "[a-z0-9]{8}",
"required": true
},
{
"name": "SYSTEM_BACKEND_USERNAME",
"description": "Internal 3scale API username for internal 3scale api auth.",
"value": "3scale_api_user",
"required": true
},
{
"name": "SYSTEM_BACKEND_PASSWORD",
"description": "Internal 3scale API password for internal 3scale api auth.",
"generate": "expression",
"from": "[a-z0-9]{8}",
"required": true
},
{
"name": "REDIS_IMAGE",
"description": "Redis image to use",
"required": true,
"value": "rhscl/redis-32-rhel7:3.2-5.7"
},
{
"name": "MYSQL_IMAGE",
"description": "Mysql image to use",
"required": true,
"value": "rhscl/mysql-56-rhel7:5.6-13.14"
},
{
"name": "SYSTEM_BACKEND_SHARED_SECRET",
"description": "Shared secret to import events from backend to system.",
"generate": "expression",
"from": "[a-z0-9]{8}",
"required": true
},
{
"name": "SYSTEM_APP_SECRET_KEY_BASE",
"description": "System application secret key base",
"generate": "expression",
"from": "[a-f0-9]{128}",
"required": true
},
{
"name": "APICAST_MANAGEMENT_API",
"description": "Scope of the APIcast Management API. Can be disabled, status or debug. At least status required for health checks.",
"required": false,
"value": "status"
},
{
"name": "APICAST_OPENSSL_VERIFY",
"description": "Turn on/off the OpenSSL peer verification when downloading the configuration. Can be set to true/false.",
"required": false,
"value": "false"
},
{
"name": "APICAST_RESPONSE_CODES",
"description": "Enable logging response codes in APIcast.",
"value": "true",
"required": false
}
]
}