1
0
mirror of https://github.com/openshift/openshift-docs.git synced 2026-02-05 12:46:18 +01:00
Files
openshift-docs/asciibinder-template.yml
2019-09-02 10:56:24 +10:00

305 lines
8.5 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 (https://github.com/redhataccess/ascii_binder/) 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 DeploymentConfig."
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: "${NAME}"
annotations:
description: "Exposes and load balances the frontend application pods for the deployment"
labels:
app: "${NAME}"
spec:
ports:
- name: "https"
port: 8443
targetPort: 8080
selector:
name: "${NAME}"
- kind: "Route"
apiVersion: "v1"
metadata:
annotations:
kubernetes.io/tls-acme: "true"
name: "${NAME}"
labels:
app: "${NAME}"
spec:
host: "${APPLICATION_DOMAIN}"
to:
kind: "Service"
name: "${NAME}"
weight: 1
port:
targetPort: "https"
- 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-${NAME}"
annotations:
description: "Keeps track of changes in the final-${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-${NAME}"
annotations:
description: "Defines how to perform final 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/${DOC_TYPE}_package/${DOC_TYPE}/."
destinationDir: "."
strategy:
type: "Source"
sourceStrategy:
from:
kind: "ImageStreamTag"
name: "httpd-24-rhel7:latest"
output:
to:
kind: "ImageStreamTag"
name: "final-${NAME}:latest"
triggers:
- imageChange:
from:
kind: ImageStreamTag
name: 'stg1-${NAME}:latest'
type: "ImageChange"
- type: "ConfigChange"
- kind: "DeploymentConfig"
apiVersion: "v1"
metadata:
name: "${NAME}"
annotations:
description: "Defines how to deploy the ${APPLICATION_DOMAIN} domain"
labels:
app: "${NAME}"
spec:
strategy:
type: "Rolling"
triggers:
- type: "ImageChange"
imageChangeParams:
automatic: true
containerNames:
- "${NAME}"
from:
kind: "ImageStreamTag"
name: "final-${NAME}:latest"
- type: "ConfigChange"
replicas: 1
test: false
selector:
name: "${NAME}"
template:
metadata:
name: "${NAME}"
labels:
name: "${NAME}"
app: "${NAME}"
spec:
containers:
- name: "${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: "autoscaling/v1"
metadata:
name: "${NAME}"
labels:
app: "${NAME}"
spec:
scaleTargetRef:
kind: DeploymentConfig
name: "${NAME}"
apiVersion: "v1"
minReplicas: 2
maxReplicas: 5
targetCPUUtilizationPercentage: 75
parameters:
- name: "NAME"
displayName: "Application name"
description: "The name assigned to all of the application components defined in this template."
required: true
- name: "DOC_TYPE"
displayName: "Document Type (community|commercial)"
description: "The type of documents to build (commercial vs community)."
required: true
- name: "APPLICATION_DOMAIN"
displayName: "Application Hostname"
description: "The exposed hostname that will route to the httpd service for 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: "50m"
- name: "CPU_LIMIT"
displayName: "CPU Limit"
description: "Maximum amount of CPU the httpd container can use."
required: true
value: "500m"
- name: "MEMORY_REQUEST"
displayName: "Memory Request"
description: "Requested amount of memory the httpd container will use."
required: true
value: "100Mi"
- name: "MEMORY_LIMIT"
displayName: "Memory Limit"
description: "Maximum amount of memory the httpd container can use."
required: true
value: "512Mi"
- 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}"