mirror of
https://github.com/openshift/openshift-docs.git
synced 2026-02-05 12:46:18 +01:00
480 lines
14 KiB
YAML
480 lines
14 KiB
YAML
---
|
|
kind: "Template"
|
|
apiVersion: "v1"
|
|
metadata:
|
|
name: "public-asciibinder-website"
|
|
annotations:
|
|
openshift.io/display-name: "Public AsciiBinder Static Website"
|
|
description: "Takes files created for static site generator AsciiBinder (http://asciibinder.org/) from a public source repo, builds them in Ruby, and deploys them in a PHP container."
|
|
tags: "ruby,asciibinder"
|
|
iconClass: "icon-shadowman"
|
|
template.openshift.io/long-description: "This template defines resources needed to develop an AsciiBinder application, including a build configuration and application deployment configuration."
|
|
template.openshift.io/provider-display-name: "Red Hat, Inc."
|
|
message: "The following service(s) have been created in your project: ${NAME}."
|
|
labels:
|
|
template: "asciibinder-website"
|
|
objects:
|
|
- kind: "Service"
|
|
apiVersion: "v1"
|
|
metadata:
|
|
name: "commercial-${NAME}"
|
|
annotations:
|
|
description: "Exposes and load balances the frontend application pods for the commercial deployment"
|
|
labels:
|
|
app: "${NAME}"
|
|
spec:
|
|
ports:
|
|
- name: "https"
|
|
port: 8443
|
|
targetPort: 8080
|
|
selector:
|
|
name: "commercial-${NAME}"
|
|
|
|
- kind: "Service"
|
|
apiVersion: "v1"
|
|
metadata:
|
|
name: "community-${NAME}"
|
|
annotations:
|
|
description: "Exposes and load balances the frontend application pods for the community deployment"
|
|
labels:
|
|
app: "${NAME}"
|
|
spec:
|
|
ports:
|
|
- name: "https"
|
|
port: 8443
|
|
targetPort: 8080
|
|
selector:
|
|
name: "community-${NAME}"
|
|
|
|
- kind: "Route"
|
|
apiVersion: "v1"
|
|
metadata:
|
|
name: "commercial-${NAME}"
|
|
labels:
|
|
app: "${NAME}"
|
|
spec:
|
|
host: "${COMMERCIAL_APPLICATION_DOMAIN}"
|
|
to:
|
|
kind: "Service"
|
|
name: "commercial-${NAME}"
|
|
weight: 1
|
|
port:
|
|
targetPort: "https"
|
|
tls:
|
|
termination: "edge"
|
|
insecureEdgeTerminationPolicy: "Redirect"
|
|
|
|
- kind: "Route"
|
|
apiVersion: "v1"
|
|
metadata:
|
|
name: "community-${NAME}"
|
|
labels:
|
|
app: "${NAME}"
|
|
spec:
|
|
host: "${COMMUNITY_APPLICATION_DOMAIN}"
|
|
to:
|
|
kind: "Service"
|
|
name: "community-${NAME}"
|
|
weight: 1
|
|
port:
|
|
targetPort: "https"
|
|
tls:
|
|
termination: "edge"
|
|
insecureEdgeTerminationPolicy: "Redirect"
|
|
|
|
- kind: "ImageStream"
|
|
apiVersion: "v1"
|
|
metadata:
|
|
name: "stg1-${NAME}"
|
|
annotations:
|
|
description: "Keeps track of changes in the stg1-${NAME} application image"
|
|
labels:
|
|
app: "${NAME}"
|
|
|
|
- kind: "ImageStream"
|
|
apiVersion: "v1"
|
|
metadata:
|
|
name: "final-commercial-${NAME}"
|
|
annotations:
|
|
description: "Keeps track of changes in the final-commercial-${NAME} application image"
|
|
labels:
|
|
app: "${NAME}"
|
|
|
|
- kind: "ImageStream"
|
|
apiVersion: "v1"
|
|
metadata:
|
|
name: "final-community-${NAME}"
|
|
annotations:
|
|
description: "Keeps track of changes in the final-community-${NAME} application image"
|
|
labels:
|
|
app: "${NAME}"
|
|
|
|
- kind: "ImageStream"
|
|
apiVersion: "v1"
|
|
metadata:
|
|
name: "httpd-24-rhel7"
|
|
annotations:
|
|
description: "Upstream httpd 2.4 s2i image"
|
|
labels:
|
|
app: "${NAME}"
|
|
spec:
|
|
lookupPolicy:
|
|
local: false
|
|
tags:
|
|
- annotations: null
|
|
from:
|
|
kind: "DockerImage"
|
|
name: "registry.access.redhat.com/rhscl/httpd-24-rhel7"
|
|
generation: 0
|
|
importPolicy:
|
|
scheduled: true
|
|
name: "latest"
|
|
referencePolicy:
|
|
type: "Source"
|
|
|
|
- kind: "BuildConfig"
|
|
apiVersion: "v1"
|
|
metadata:
|
|
name: "stg1-${NAME}"
|
|
annotations:
|
|
description: "Defines how to perform stage 1 build for ${NAME}"
|
|
labels:
|
|
app: "${NAME}"
|
|
spec:
|
|
nodeSelector:
|
|
source:
|
|
type: "Git"
|
|
git:
|
|
uri: "${SOURCE_REPOSITORY_URL}"
|
|
ref: "${SOURCE_REPOSITORY_REF}"
|
|
contextDir: "${CONTEXT_DIR}"
|
|
strategy:
|
|
type: "Source"
|
|
sourceStrategy:
|
|
from:
|
|
kind: "ImageStreamTag"
|
|
namespace: "${NAMESPACE}"
|
|
name: "ruby:2.3"
|
|
output:
|
|
to:
|
|
kind: "ImageStreamTag"
|
|
name: "stg1-${NAME}:latest"
|
|
triggers:
|
|
- type: "ImageChange"
|
|
- type: "ConfigChange"
|
|
- type: "GitHub"
|
|
github:
|
|
secret: "${GITHUB_WEBHOOK_SECRET}"
|
|
|
|
- kind: "BuildConfig"
|
|
apiVersion: "v1"
|
|
metadata:
|
|
name: "final-commercial-${NAME}"
|
|
annotations:
|
|
description: "Defines how to perform final commercial build for ${NAME} before deployment"
|
|
labels:
|
|
app: "${NAME}"
|
|
spec:
|
|
nodeSelector:
|
|
source:
|
|
type: "Images"
|
|
images:
|
|
- from:
|
|
kind: "ImageStreamTag"
|
|
name: "stg1-${NAME}:latest"
|
|
paths:
|
|
- sourcePath: "/opt/app-root/src/commercial_package/commercial/."
|
|
destinationDir: "."
|
|
strategy:
|
|
type: "Source"
|
|
sourceStrategy:
|
|
from:
|
|
kind: "ImageStreamTag"
|
|
name: "httpd-24-rhel7:latest"
|
|
output:
|
|
to:
|
|
kind: "ImageStreamTag"
|
|
name: "final-commercial-${NAME}:latest"
|
|
triggers:
|
|
- imageChange:
|
|
from:
|
|
kind: ImageStreamTag
|
|
name: 'stg1-${NAME}:latest'
|
|
type: "ImageChange"
|
|
- type: "ConfigChange"
|
|
|
|
- kind: "BuildConfig"
|
|
apiVersion: "v1"
|
|
metadata:
|
|
name: "final-community-${NAME}"
|
|
annotations:
|
|
description: "Defines how to perform final community build for ${NAME} before deployment"
|
|
labels:
|
|
app: "${NAME}"
|
|
spec:
|
|
nodeSelector:
|
|
source:
|
|
type: "Images"
|
|
images:
|
|
- from:
|
|
kind: "ImageStreamTag"
|
|
name: "stg1-${NAME}:latest"
|
|
paths:
|
|
- sourcePath: "/opt/app-root/src/community_package/community/."
|
|
destinationDir: "."
|
|
strategy:
|
|
type: "Source"
|
|
sourceStrategy:
|
|
from:
|
|
kind: "ImageStreamTag"
|
|
name: "httpd-24-rhel7:latest"
|
|
output:
|
|
to:
|
|
kind: "ImageStreamTag"
|
|
name: "final-community-${NAME}:latest"
|
|
triggers:
|
|
- imageChange:
|
|
from:
|
|
kind: ImageStreamTag
|
|
name: 'stg1-${NAME}:latest'
|
|
type: "ImageChange"
|
|
- type: "ConfigChange"
|
|
|
|
- kind: "DeploymentConfig"
|
|
apiVersion: "v1"
|
|
metadata:
|
|
name: "commercial-${NAME}"
|
|
annotations:
|
|
description: "Defines how to deploy the ${COMMERCIAL_APPLICATION_DOMAIN} domain"
|
|
labels:
|
|
app: "${NAME}"
|
|
spec:
|
|
strategy:
|
|
type: "Rolling"
|
|
triggers:
|
|
- type: "ImageChange"
|
|
imageChangeParams:
|
|
automatic: true
|
|
containerNames:
|
|
- "commercial-${NAME}"
|
|
from:
|
|
kind: "ImageStreamTag"
|
|
name: "final-commercial-${NAME}:latest"
|
|
- type: "ConfigChange"
|
|
replicas: 1
|
|
test: false
|
|
selector:
|
|
name: "commercial-${NAME}"
|
|
template:
|
|
metadata:
|
|
name: "commercial-${NAME}"
|
|
labels:
|
|
name: "commercial-${NAME}"
|
|
app: "${NAME}"
|
|
spec:
|
|
containers:
|
|
- name: "commercial-${NAME}"
|
|
ports:
|
|
- containerPort: 8080
|
|
readinessProbe:
|
|
timeoutSeconds: 5
|
|
initialDelaySeconds: 10
|
|
httpGet:
|
|
path: "/${HEALTHCHECK_PATH}"
|
|
port: 8080
|
|
livenessProbe:
|
|
timeoutSeconds: 5
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 30
|
|
httpGet:
|
|
path: "/${HEALTHCHECK_PATH}"
|
|
port: 8080
|
|
resources:
|
|
requests:
|
|
cpu: "${CPU_REQUEST}"
|
|
memory: "${MEMORY_REQUEST}"
|
|
limits:
|
|
cpu: "${CPU_LIMIT}"
|
|
memory: "${MEMORY_LIMIT}"
|
|
|
|
- kind: "DeploymentConfig"
|
|
apiVersion: "v1"
|
|
metadata:
|
|
name: "community-${NAME}"
|
|
annotations:
|
|
description: "Defines how to deploy the ${COMMUNITY_APPLICATION_DOMAIN} domain"
|
|
labels:
|
|
app: "${NAME}"
|
|
spec:
|
|
strategy:
|
|
type: "Rolling"
|
|
triggers:
|
|
- type: "ImageChange"
|
|
imageChangeParams:
|
|
automatic: true
|
|
containerNames:
|
|
- "community-${NAME}"
|
|
from:
|
|
kind: "ImageStreamTag"
|
|
name: "final-community-${NAME}:latest"
|
|
- type: "ConfigChange"
|
|
replicas: 1
|
|
test: false
|
|
selector:
|
|
name: "community-${NAME}"
|
|
template:
|
|
metadata:
|
|
name: "community-${NAME}"
|
|
labels:
|
|
name: "community-${NAME}"
|
|
app: "${NAME}"
|
|
spec:
|
|
containers:
|
|
- name: "community-${NAME}"
|
|
ports:
|
|
- containerPort: 8080
|
|
readinessProbe:
|
|
timeoutSeconds: 5
|
|
initialDelaySeconds: 10
|
|
httpGet:
|
|
path: "/${HEALTHCHECK_PATH}"
|
|
port: 8080
|
|
livenessProbe:
|
|
timeoutSeconds: 5
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 30
|
|
httpGet:
|
|
path: "/${HEALTHCHECK_PATH}"
|
|
port: 8080
|
|
resources:
|
|
requests:
|
|
cpu: "${CPU_REQUEST}"
|
|
memory: "${MEMORY_REQUEST}"
|
|
limits:
|
|
cpu: "${CPU_LIMIT}"
|
|
memory: "${MEMORY_LIMIT}"
|
|
|
|
- kind: "HorizontalPodAutoscaler"
|
|
apiVersion: "extensions/v1beta1"
|
|
metadata:
|
|
name: "commercial-${NAME}"
|
|
labels:
|
|
app: "${NAME}"
|
|
spec:
|
|
scaleRef:
|
|
kind: DeploymentConfig
|
|
name: "commercial-${NAME}"
|
|
apiVersion: "v1"
|
|
subresource: "scale"
|
|
minReplicas: ${MIN_REPLICAS}
|
|
maxReplicas: ${MAX_REPLICAS}
|
|
cpuUtilization:
|
|
targetPercentage: ${TARGET_PERCENTAGE}
|
|
|
|
- kind: "HorizontalPodAutoscaler"
|
|
apiVersion: "extensions/v1beta1"
|
|
metadata:
|
|
name: "community-${NAME}"
|
|
labels:
|
|
app: "${NAME}"
|
|
spec:
|
|
scaleRef:
|
|
kind: DeploymentConfig
|
|
name: "community-${NAME}"
|
|
apiVersion: "v1"
|
|
subresource: "scale"
|
|
minReplicas: ${MIN_REPLICAS}
|
|
maxReplicas: ${MAX_REPLICAS}
|
|
cpuUtilization:
|
|
targetPercentage: ${TARGET_PERCENTAGE}
|
|
|
|
parameters:
|
|
- name: "NAME"
|
|
displayName: "Application name"
|
|
description: "The name assigned to all of the application components defined in this template."
|
|
required: true
|
|
|
|
- name: "COMMERCIAL_APPLICATION_DOMAIN"
|
|
displayName: "Commercial Application Hostname"
|
|
description: "The exposed hostname that will route to the httpd service for commercial content."
|
|
value: ""
|
|
|
|
- name: "COMMUNITY_APPLICATION_DOMAIN"
|
|
displayName: "Community Application Hostname"
|
|
description: "The exposed hostname that will route to the httpd service for community content."
|
|
value: ""
|
|
|
|
- name: "HEALTHCHECK_PATH"
|
|
displayName: "URI path to a known, working web page."
|
|
description: "The URI path to a known, working web page for testing liveness and readiness probes. Exclude leading '/'"
|
|
required: true
|
|
value: "index.html"
|
|
|
|
- name: "SOURCE_REPOSITORY_URL"
|
|
displayName: "Git Repository URL"
|
|
description: "The URL of the repository with your application source code."
|
|
required: true
|
|
value: "https://github.com/openshift/openshift-docs.git"
|
|
|
|
- name: "SOURCE_REPOSITORY_REF"
|
|
displayName: "Git Reference"
|
|
description: "Set this to a branch name, tag or other ref of your repository if you are not using the default branch."
|
|
|
|
- name: "CONTEXT_DIR"
|
|
displayName: "Context Directory"
|
|
description: "Set this to the relative path to your project if it is not in the root of your repository."
|
|
|
|
- name: "CPU_REQUEST"
|
|
displayName: "CPU Request"
|
|
description: "Requested amount of CPU the httpd container will use."
|
|
required: true
|
|
value: "200m"
|
|
|
|
- name: "CPU_LIMIT"
|
|
displayName: "CPU Limit"
|
|
description: "Maximum amount of CPU the httpd container can use."
|
|
required: true
|
|
value: "2"
|
|
|
|
- name: "MEMORY_REQUEST"
|
|
displayName: "Memory Request"
|
|
description: "Requested amount of memory the httpd container will use."
|
|
required: true
|
|
value: "1Gi"
|
|
|
|
- name: "MEMORY_LIMIT"
|
|
displayName: "Memory Limit"
|
|
description: "Maximum amount of memory the httpd container can use."
|
|
required: true
|
|
value: "2Gi"
|
|
|
|
- name: "MIN_REPLICAS"
|
|
displayName: "Minimum pod replicas"
|
|
description: "The minimum number of replicas to run in autoscaling."
|
|
required: true
|
|
value: "2"
|
|
|
|
- name: "MAX_REPLICAS"
|
|
displayName: "Maximum pod replicas"
|
|
description: "The maximum number of replicas to run in autoscaling."
|
|
required: true
|
|
value: "10"
|
|
|
|
- name: "TARGET_PERCENTAGE"
|
|
displayName: "Autoscaling target CPU percentage (as an integer)."
|
|
description: "The percentage of the requested CPU that each pod should ideally be using."
|
|
required: true
|
|
value: "80"
|
|
|
|
- name: "NAMESPACE"
|
|
displayName: "Namespace"
|
|
description: "The OpenShift Namespace where the Ruby s2i builder ImageStream resides."
|
|
required: true
|
|
value: "openshift"
|
|
|
|
- name: "GITHUB_WEBHOOK_SECRET"
|
|
displayName: "GitHub Webhook Secret"
|
|
description: "A secret string used to configure the GitHub webhook."
|
|
generate: "expression"
|
|
from: "[a-zA-Z0-9]{40}"
|