mirror of
https://github.com/openshift/openshift-docs.git
synced 2026-02-05 12:46:18 +01:00
305 lines
8.5 KiB
YAML
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}"
|