1
0
mirror of https://github.com/openshift/openshift-docs.git synced 2026-02-05 12:46:18 +01:00

Initial Commit

This commit is contained in:
Vikram Goyal
2018-05-29 11:28:00 +10:00
commit d3e3233ae9
76 changed files with 8353 additions and 0 deletions

15
.gitignore vendored Normal file
View File

@@ -0,0 +1,15 @@
Gemfile.lock
*.swp
.asciidoctor
_package
_preview
drupal-build
architecture/core_concepts/images/docker-diagram.png
architecture/core_concepts/images/docker-diagram.png.cache
dev_guide/builds/images/chained-build.png
dev_guide/builds/images/chained-build.png.cache
.DS_Store
.venv
.gem
bin
commercial_package

71
.s2i/bin/assemble Normal file
View File

@@ -0,0 +1,71 @@
#!/bin/bash -e
# The assemble script builds the application artifacts from source and
# places them into appropriate directories inside the image.
# Required to install `ffi` separately due to an installation issue with ffi v-1.9.21
echo "---> Installing ffi ..."
gem install ffi --version 1.9.18
# `gem install` is required because `bundle install` does not properly place `asciibinder` into $PATH
echo "---> Installing AsciiBinder ..."
gem install ascii_binder
# Move git repository to local working directory
shopt -s dotglob
echo "---> Installing application source ..."
mv /tmp/src/* ./
# Fetch and locally add all remote branches to ensure AsciiBinder is able to build the necessary branches
echo "---> Fetching remote branches"
# Because the s2i builder only makes the remote branch applicable to the specified branch,
# it's necessary to enforce a * ref so that all branches are referenced
sed -i 's%fetch = +refs.*%fetch = +refs/heads/*:refs/remotes/origin/*%' .git/config
git fetch --all --quiet
for remote in $(git branch -r | egrep -v "(>|$(git rev-parse --abbrev-ref HEAD))|master"); do git checkout --force --track $remote; done
git checkout master
# Fixes incompatible character encodings: US-ASCII and UTF-8 error
export LANG="en_US.UTF-8"
echo "---> AsciiBinder packaging commercial content ..."
# AsciiBinder uses git to some extent and requires `user.email` to be properly set
git config user.email "devel@openshift.com"
# Package assets for commercial site only, without Minishift content
asciibinder package --site=commercial
# Move commercial content to its own directory, including commercial specific redirects and 404 page
mkdir commercial_package
mv _package/commercial commercial_package
git checkout master
mkdir commercial_package/commercial/httpd-cfg
mv .s2i/httpd-cfg/01-commercial.conf commercial_package/commercial/httpd-cfg
mv 404-commercial.html commercial_package/commercial/404.html
echo "---> Installing Minishift content ..."
mkdir minishift
cd minishift
if wget http://artifacts.ci.centos.org/minishift/minishift/docs/latest/minishift-adoc.tar ; then
tar -xvf minishift-adoc.tar --strip 1
cat _topic_map.yml >> ../_topic_map.yml
rm minishift-adoc.tar
cd ..
git add .
git commit -am "Minishift build-time commit"
else
echo "WARNING: Could not retrieve minishift-adoc.tar"
cd ..
rmdir minishift
fi
echo "---> AsciiBinder packaging community content ..."
# Package assets for community site only, with Minishift content
asciibinder package --site=community
# Move community content to its own directory, including community specific redirects and 404 page
mkdir community_package
mv _package/community community_package
git checkout master
mkdir community_package/community/httpd-cfg
mv .s2i/httpd-cfg/01-community.conf community_package/community/httpd-cfg
mv 404-community.html community_package/community/404.html
# Fix source directory permissions
echo "---> Fixing permissions ..."
fix-permissions ./

View File

@@ -0,0 +1,283 @@
# ----------------------------------------------------------------------
# Better website experience for IE users
# ----------------------------------------------------------------------
# Force the latest IE version, in various cases when it may fall back to IE7 mode
# github.com/rails/rails/commit/123eb25#commitcomment-118920
# Use ChromeFrame if it's installed for a better experience for the poor IE folk
<IfModule mod_headers.c>
Header set X-UA-Compatible "IE=Edge,chrome=1"
# mod_headers can't match by content-type, but we don't want to send this header on *everything*...
<FilesMatch "\.(js|css|gif|png|jpe?g|pdf|xml|oga|ogg|m4a|ogv|mp4|m4v|webm|svg|svgz|eot|ttf|otf|woff|woff2|ico|webp|appcache|manifest|htc|crx|oex|xpi|safariextz|vcf)$" >
Header unset X-UA-Compatible
</FilesMatch>
</IfModule>
# ----------------------------------------------------------------------
# Proper MIME type for all files
# ----------------------------------------------------------------------
# JavaScript
# Normalize to standard type (it's sniffed in IE anyways)
# tools.ietf.org/html/rfc4329#section-7.2
AddType application/javascript js jsonp
AddType application/json json
# Audio
AddType audio/ogg oga ogg
AddType audio/mp4 m4a f4a f4b
# Video
AddType video/ogg ogv
AddType video/mp4 mp4 m4v f4v f4p
AddType video/webm webm
AddType video/x-flv flv
# SVG
# Required for svg webfonts on iPad
# twitter.com/FontSquirrel/status/14855840545
AddType image/svg+xml svg svgz
AddEncoding gzip svgz
# Webfonts
AddType application/vnd.ms-fontobject eot
AddType application/x-font-ttf ttf ttc
AddType font/opentype otf
AddType application/x-font-woff woff
AddType application/font-woff2 woff2
# Assorted types
AddType image/x-icon ico
AddType image/webp webp
AddType text/cache-manifest appcache manifest
AddType text/x-component htc
AddType application/xml rss atom xml rdf
AddType application/x-chrome-extension crx
AddType application/x-opera-extension oex
AddType application/x-xpinstall xpi
AddType application/octet-stream safariextz
AddType application/x-web-app-manifest+json webapp
AddType text/x-vcard vcf
AddType application/x-shockwave-flash swf
AddType text/vtt vtt
# ----------------------------------------------------------------------
# Gzip compression
# ----------------------------------------------------------------------
<IfModule mod_deflate.c>
# Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
</IfModule>
</IfModule>
# Compress all output labeled with one of the following MIME-types
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE application/atom+xml \
application/javascript \
application/json \
application/rss+xml \
application/vnd.ms-fontobject \
application/x-font-ttf \
application/xhtml+xml \
application/xml \
font/opentype \
image/svg+xml \
image/x-icon \
text/css \
text/html \
text/plain \
text/x-component \
text/xml
</IfModule>
</IfModule>
# ----------------------------------------------------------------------
# Start rewrite engine
# ----------------------------------------------------------------------
# Turning on the rewrite engine is necessary for the following rules and
# features. FollowSymLinks must be enabled for this to work.
# Some cloud hosting services require RewriteBase to be set: goo.gl/HOcPN
# If using the h5bp in a subdirectory, use `RewriteBase /foo` instead where
# 'foo' is your directory.
# If your web host doesn't allow the FollowSymlinks option, you may need to
# comment it out and use `Options +SymLinksOfOwnerMatch`, but be aware of the
# performance impact: http://goo.gl/Mluzd
<IfModule mod_rewrite.c>
<Directory "${HOME}">
Options Indexes FollowSymLinks
AllowOverride All
Order Allow,Deny
Allow from All
RewriteEngine On
RewriteBase /
# Rules have NE added to the end in order to preserve either explicit or implicit # anchor tags
# Redirects for "latest" version
RewriteRule ^(container-platform|enterprise)/?$ /container-platform/latest [R=301]
RewriteRule ^(container-platform|enterprise)/latest/?(.*)$ /container-platform/3.9/$2 [NE,R=301]
RewriteRule ^(dedicated|online)/(3\.0|3\.1|3\.2|3\.3|3\.4|3\.5|3\.6|3\.7|3\.9|latest)/?(.*)$ /$1/$3 [NE,R=301]
# Welcome page redirects
RewriteRule ^(online|dedicated)/?$ /$1/welcome/index.html [L,R=301]
RewriteRule ^enterprise/(3\.0|3\.1|3\.2)/?$ /enterprise/$1/welcome/index.html [L,R=301]
RewriteRule ^enterprise/3\.3/?$ /container-platform/3.3/welcome/index.html [L,R=301]
RewriteRule ^container-platform/(3\.3|3\.4|3\.5|3\.6|3\.7|3\.9)/?$ /container-platform/$1/welcome/index.html [L,R=301]
# Overview page has moved to Index page
RewriteRule ^(.*)/overview\.html(.*)$ /$1/index.html$2 [NE,L,R=301]
# OCP redirects for 3.9
RewriteRule ^container-platform/3\.9/install_config/deploying_cfme\.html(.*)$ container-platform/3.9/install_config/cfme/index.html [L,R=301]
RewriteRule ^container-platform/3\.9/admin_solutions/index\.html(.*)$ container-platform/3.9/day_two_guide/index.html [L,R=301]
RewriteRule ^container-platform/3\.9/admin_solutions/master_node_config\.html(.*)$ container-platform/3.9/install_config/master_node_configuration.html [L,R=301]
RewriteRule ^container-platform/3\.9/admin_solutions/user_role_mgmt\.html(.*)$ container-platform/3.9/admin_guide/manage_users.html [L,R=301]
RewriteRule ^container-platform/3\.9/admin_solutions/authentication\.html(.*)$ container-platform/3.9/install_config/configuring_authentication.html [L,R=301]
RewriteRule ^container-platform/3\.9/admin_solutions/certificate_management\.html(.*)$ container-platform/3.9/day_two_guide/certificate_management.html [L,R=301]
# OCP redirects for 3.7
RewriteRule ^container-platform/3\.7/install_config/deploying_cfme\.html(.*)$ container-platform/3.7/install_config/cfme/index.html [L,R=301]
RewriteRule ^container-platform/3\.7/rest_api/(openshift|kubernetes)_v1\.html(.*)$ /container-platform/3.7/rest_api/index.html [L,R=301]
RewriteRule ^container-platform/3\.7/admin_guide/manage_authorization_policy\.html(.*)$ /container-platform/3.7/admin_guide/manage_rbac.html [L,R=301]
RewriteRule ^container-platform/3\.7/admin_guide/aws_cluster_labeling\.html(.*)$ /container-platform/3.7/install_config/configuring_aws.html#aws-cluster-labeling [NE,L,R=301]
# Online/Dedicated/OCP redirects for 3.6
RewriteRule ^(online|dedicated|container-platform/3\.6)/architecture/additional_concepts/port_forwarding\.html(.*)$ /$1/architecture/networking/port_forwarding.html$2 [NE,L,R=301]
RewriteRule ^(online|dedicated|container-platform/3\.6)/architecture/additional_concepts/remote_commands\.html(.*)$ /$1/architecture/networking/remote_commands.html$2 [NE,L,R=301]
RewriteRule ^(online|dedicated|container-platform/3\.6)/architecture/additional_concepts/sdn\.html(.*)$ /$1/architecture/networking/sdn.html$2 [NE,L,R=301]
RewriteRule ^(online|dedicated|container-platform/3\.6)/architecture/additional_concepts/networking\.html(.*)$ /$1/architecture/networking/networking.html$2 [NE,L,R=301]
RewriteRule ^(online|dedicated|container-platform/3\.6)/architecture/core_concepts/haproxy-router\.html(.*)$ /$1/architecture/networking/haproxy-router.html$2 [NE,L,R=301]
RewriteRule ^(online|dedicated|container-platform/3\.6)/architecture/core_concepts/routes\.html(.*)$ /$1/architecture/networking/routes.html$2 [NE,L,R=301]
# Exempt for dedicated due to redirect later
RewriteRule ^(online|container-platform/3\.6)/architecture/additional_concepts/f5_big_ip\.html(.*)$ /$1/architecture/networking/network_plugins.html#architecture-additional-concepts-f5-big-ip [NE,L,R=301]
RewriteRule ^(online|container-platform/3\.6)/architecture/additional_concepts/flannel\.html(.*)$ /$1/architecture/networking/network_plugins.html#flannel-sdn [NE,L,R=301]
# Online/Dedicated/OCP redirects for 3.7
RewriteRule ^dedicated/admin_guide/manage_authorization_policy\.html(.*)$ /dedicated/admin_guide/manage_rbac.html [L,R=301]
# Developers console redirect
RewriteRule ^online/getting_started/developers/developers_console\.html(.*)$ /online/getting_started/index.html$1 [NE,L,R=301]
RewriteRule ^dedicated/getting_started/developers/developers_console\.html(.*)$ /dedicated/getting_started/developers_console.html$1 [NE,L,R=301]
RewriteRule ^(container-platform|enterprise)/(3\.2|3\.3|3\.4|3\.5|3\.6|3\.7)/getting_started/developers/developers_console\.html(.*)$ $1/$2/getting_started/developers_console.html$3 [NE,L,R=301]
# Deployments redirect
RewriteRule ^(online|dedicated)/dev_guide/deployments\.html(.*)$ /$1/dev_guide/deployments/how_deployments_work.html$2 [NE,L,R=301]
RewriteRule ^container-platform/(3\.3|3\.4|3\.5|3\.6|3\.7)/dev_guide/deployments\.html(.*)$ /container-platform/$1/dev_guide/deployments/how_deployments_work.html$2 [NE,L,R=301]
# New App redirect
RewriteRule ^(online|dedicated)/dev_guide/new_app\.html(.*)$ /$1/dev_guide/application_lifecycle/new_app.html$2 [NE,L,R=301]
RewriteRule ^container-platform/(3\.3|3\.4|3\.5|3\.6|3\.7)/dev_guide/new_app\.html(.*)$ /container-platform/$1/dev_guide/application_lifecycle/new_app.html$2 [NE,L,R=301]
# Builds redirect
RewriteRule ^(online|dedicated)/dev_guide/builds\.html(.*)$ /$1/dev_guide/builds/index.html$2 [NE,L,R=301]
RewriteRule ^(online|dedicated)/dev_guide/builds\.html#build-hooks$ /$1/dev_guide/builds/build_hooks.html$2 [NE,L,R=301]
RewriteRule ^container-platform/(3\.4|3\.5|3\.6|3\.7)/dev_guide/builds\.html(.*)$ /container-platform/$1/dev_guide/builds/index.html$2 [NE,L,R=301]
RewriteRule ^container-platform/(3\.4|3\.5|3\.6|3\.7)/dev_guide/builds\.html#build-hooks$ /container-platform/$1/dev_guide/builds/build_hooks.html$2 [NE,L,R=301]
# XPaaS redirect
RewriteRule ^(online|dedicated)/using_images/xpaas_images/eap\.html(.*)$ https://access.redhat.com/documentation/en/red-hat-xpaas/version-0/red-hat-xpaas-eap-image/ [L,R=301]
# Page currently missing - RewriteRule ^(online|dedicated)/using_images/xpaas_images/a_mq\.html(.*)$ https://access.redhat.com/documentation/en/red-hat-xpaas/version-0/red-hat-xpaas-a-mq-image/ [L,R=301]
RewriteRule ^(online|dedicated)/using_images/xpaas_images/jws\.html(.*)$ https://access.redhat.com/documentation/en/red-hat-xpaas/version-0/red-hat-xpaas-jboss-web-server-image/ [L,R=301]
RewriteRule ^(online|dedicated)/using_images/xpaas_images/fuse\.html(.*)$ https://access.redhat.com/documentation/en/red-hat-xpaas/version-0/red-hat-xpaas-fuse-integration-services-image/ [L,R=301]
RewriteRule ^(online|dedicated)/using_images/xpaas_images/decision_server\.html(.*)$ https://access.redhat.com/documentation/en/red-hat-xpaas/version-0/red-hat-xpaas-decision-server-image/ [L,R=301]
RewriteRule ^(online|dedicated)/using_images/xpaas_images/data_grid\.html(.*)$ https://access.redhat.com/documentation/en/red-hat-xpaas/version-0/red-hat-xpaas-data-grid-image/ [L,R=301]
RewriteRule ^(online|dedicated)/using_images/xpaas_images/sso\.html(.*)$ https://access.redhat.com/documentation/en/red-hat-xpaas/version-0/red-hat-xpaas-sso-image/ [L,R=301]
# Online specific redirects
RewriteRule ^online/creating_images/custom\.html(.*)$ /online/welcome/index.html [L,R=301]
RewriteRule ^online/getting_started/devpreview_faq\.html(.*)$ https://www.openshift.com/pricing/index.html [L,R=301]
RewriteRule ^online/dev_guide/daemonsets\.html(.*)$ /online/welcome/index.html [L,R=301]
RewriteRule ^online/dev_guide/event_notifications\.html(.*)$ /online/dev_guide/notifications.html$1 [NE,L,R=301]
# Dedicated specific redirects
RewriteRule ^dedicated/admin_guide/osd_imagestreams_templates\.html(.*) /dedicated/admin_guide/index.html$1 [NE,L,R=301]
RewriteRule ^dedicated/dev_guide/getting_traffic_into_cluster\.html(.*) /dedicated/welcome/index.html$1 [NE,L,R=301]
RewriteRule ^dedicated/architecture/additional_concepts/f5_big_ip\.html(.*) /dedicated/welcome/index.html$1 [NE,L,R=301]
RewriteRule ^dedicated/architecture/additional_concepts/flannel\.html(.*) /dedicated/welcome/index.html$1 [NE,L,R=301]
# OCP specific redirects
RewriteRule ^(container-platform|enterprise)/(3\.2|3\.3|3\.4|3\.5|3\.6|3\.7)/architecture/additional_concepts/throttling\.html(.*)$ /$1/$2/admin_guide/overcommit.html$3 [NE,L,R=301]
RewriteRule ^(container-platform|enterprise)/(.[^/])/admin_guide/install/(advanced_install|deploy_router|docker_registry|first_steps|overview|prerequisites|quick_install|upgrades)\.html(.*)$ /$1/$2/install_config/install/$3.html$4 [NE,R=301]
RewriteRule ^(container-platform|enterprise)/(.[^/])/admin_guide/upgrades\.html(.*) /$1/$2/install_config/upgrades.html$3 [NE,R=301]
RewriteRule ^(container-platform|enterprise)/(3\.1|3\.2|3\.3|3\.4|3\.5|3\.6|3\.7)/admin_guide/(aggregate_logging|cluster_metrics|configuring_authentication|configuring_aws|configuring_gce|configuring_openstack|http_proxies|master_node_configuration|native_container_routing|routing_from_edge_lb|syncing_groups_with_ldap|web_console_customization)\.html(.*)$ /$1/$2/install_config/$3.html$4 [NE,R=301]
RewriteRule ^(container-platform|enterprise)/(3\.1|3\.2|3\.3|3\.4|3\.5|3\.6|3\.7)/admin_guide/selfprovisioned_projects\.html(.*)$ /$1/$2/admin_guide/managing_projects.html$3 [NE,R=301]
RewriteRule ^(container-platform|enterprise)/(3\.1|3\.2|3\.3|3\.4|3\.5|3\.6)/install_config/upgrades\.html(.*)$ /$1/$2/install_config/upgrading/index.html$3 [NE,R=301]
RewriteRule ^container-platform/(3\.7)/install_config/upgrades\.html(.*)$ /container-platform/$1/upgrading/index.html$2 [NE,R=301]
RewriteRule ^container-platform/(3\.7)/install_config/upgrading/(.*)$ /container-platform/$1/upgrading/$2 [NE,R=301]
RewriteRule ^container-platform/(3\.7)/install_config/downgrade\.html /container-platform/3\.7/upgrading/downgrade.html [NE,R=301]
</Directory>
</IfModule>
# ----------------------------------------------------------------------
# Prevent 404 errors for non-existing redirected folders
# ----------------------------------------------------------------------
# without -MultiViews, Apache will give a 404 for a rewrite if a folder of the
# same name does not exist.
# webmasterworld.com/apache/3808792.htm
Options -MultiViews
# ----------------------------------------------------------------------
# Custom 404 page
# ----------------------------------------------------------------------
# You can add custom pages to handle 500 or 403 pretty easily, if you like.
# If you are hosting your site in subdirectory, adjust this accordingly
# e.g. ErrorDocument 404 /subdir/404.html
ErrorDocument 404 /404.html
# ----------------------------------------------------------------------
# UTF-8 encoding
# ----------------------------------------------------------------------
# Use UTF-8 encoding for anything served text/plain or text/html
AddDefaultCharset utf-8
# Force UTF-8 for a number of file formats
AddCharset utf-8 .atom .css .js .json .rss .vtt .xml
# ----------------------------------------------------------------------
# A little more security
# ----------------------------------------------------------------------
# "-Indexes" will have Apache block users from browsing folders without a
# default document Usually you should leave this activated, because you
# shouldn't allow everybody to surf through every folder on your server (which
# includes rather private places like CMS system folders).
<IfModule mod_autoindex.c>
Options -Indexes
</IfModule>
# Block access to "hidden" directories or files whose names begin with a
# period. This includes directories used by version control systems such as
# Subversion or Git.
<IfModule mod_rewrite.c>
RewriteCond %{SCRIPT_FILENAME} -d [OR]
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule "(^|/)\." - [F]
</IfModule>
# Block access to backup and source files. These files may be left by some
# text/html editors and pose a great security danger, when anyone can access
# them.
<FilesMatch "(\.(bak|config|sql|fla|psd|ini|log|sh|inc|swp|dist)|~)$">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>

View File

@@ -0,0 +1,218 @@
# ----------------------------------------------------------------------
# Better website experience for IE users
# ----------------------------------------------------------------------
# Force the latest IE version, in various cases when it may fall back to IE7 mode
# github.com/rails/rails/commit/123eb25#commitcomment-118920
# Use ChromeFrame if it's installed for a better experience for the poor IE folk
<IfModule mod_headers.c>
Header set X-UA-Compatible "IE=Edge,chrome=1"
# mod_headers can't match by content-type, but we don't want to send this header on *everything*...
<FilesMatch "\.(js|css|gif|png|jpe?g|pdf|xml|oga|ogg|m4a|ogv|mp4|m4v|webm|svg|svgz|eot|ttf|otf|woff|woff2|ico|webp|appcache|manifest|htc|crx|oex|xpi|safariextz|vcf)$" >
Header unset X-UA-Compatible
</FilesMatch>
</IfModule>
# ----------------------------------------------------------------------
# Proper MIME type for all files
# ----------------------------------------------------------------------
# JavaScript
# Normalize to standard type (it's sniffed in IE anyways)
# tools.ietf.org/html/rfc4329#section-7.2
AddType application/javascript js jsonp
AddType application/json json
# Audio
AddType audio/ogg oga ogg
AddType audio/mp4 m4a f4a f4b
# Video
AddType video/ogg ogv
AddType video/mp4 mp4 m4v f4v f4p
AddType video/webm webm
AddType video/x-flv flv
# SVG
# Required for svg webfonts on iPad
# twitter.com/FontSquirrel/status/14855840545
AddType image/svg+xml svg svgz
AddEncoding gzip svgz
# Webfonts
AddType application/vnd.ms-fontobject eot
AddType application/x-font-ttf ttf ttc
AddType font/opentype otf
AddType application/x-font-woff woff
AddType application/font-woff2 woff2
# Assorted types
AddType image/x-icon ico
AddType image/webp webp
AddType text/cache-manifest appcache manifest
AddType text/x-component htc
AddType application/xml rss atom xml rdf
AddType application/x-chrome-extension crx
AddType application/x-opera-extension oex
AddType application/x-xpinstall xpi
AddType application/octet-stream safariextz
AddType application/x-web-app-manifest+json webapp
AddType text/x-vcard vcf
AddType application/x-shockwave-flash swf
AddType text/vtt vtt
# ----------------------------------------------------------------------
# Gzip compression
# ----------------------------------------------------------------------
<IfModule mod_deflate.c>
# Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
</IfModule>
</IfModule>
# Compress all output labeled with one of the following MIME-types
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE application/atom+xml \
application/javascript \
application/json \
application/rss+xml \
application/vnd.ms-fontobject \
application/x-font-ttf \
application/xhtml+xml \
application/xml \
font/opentype \
image/svg+xml \
image/x-icon \
text/css \
text/html \
text/plain \
text/x-component \
text/xml
</IfModule>
</IfModule>
# ----------------------------------------------------------------------
# Start rewrite engine
# ----------------------------------------------------------------------
# Turning on the rewrite engine is necessary for the following rules and
# features. FollowSymLinks must be enabled for this to work.
# Some cloud hosting services require RewriteBase to be set: goo.gl/HOcPN
# If using the h5bp in a subdirectory, use `RewriteBase /foo` instead where
# 'foo' is your directory.
# If your web host doesn't allow the FollowSymlinks option, you may need to
# comment it out and use `Options +SymLinksOfOwnerMatch`, but be aware of the
# performance impact: http://goo.gl/Mluzd
<IfModule mod_rewrite.c>
<Directory "${HOME}">
Options Indexes FollowSymLinks
AllowOverride All
Order Allow,Deny
Allow from All
RewriteEngine On
RewriteBase /
# Rules have NE added to the end in order to preserve either explicit or implicit # anchor tags
# Redirects for "latest" version
RewriteRule ^origin-m4/?$ /latest/ [R=301]
# Welcome page redirects
RewriteRule ^(latest|[0-9.]+)/?$ /$1/welcome/index.html [L,R=301]
# Overview page has moved to Index page
RewriteRule ^(.*)/overview\.html(.*)$ /$1/index.html$2 [NE,L,R=301]
# Developers console redirect
RewriteRule ^(latest|[0-9.]+)/getting_started/developers/developers_console\.html(.*)$ /$1/getting_started/developers_console.html$2 [NE,L,R=301]
# Deployments redirect
RewriteRule ^(latest|[0-9.]+)/dev_guide/deployments\.html(.*)$ /$1/dev_guide/deployments/how_deployments_work.html$2 [NE,L,R=301]
# Builds redirect
RewriteRule ^(latest|[0-9.]+)/dev_guide/builds\.html(.*)$ /$1/dev_guide/builds/index.html$2 [NE,L,R=301]
# Other specific redirects
RewriteRule ^latest/admin_guide/build_defaults_overrides\.html(.*)$ /latest/install_config/build_defaults_overrides.html$1 [NE,L,R=301]
RewriteRule ^latest/admin_guide/install/(advanced_install|deploy_router|docker_registry|first_steps|overview|prerequisites|quick_install|upgrades)\.html(.*)$ /latest/install_config/install/$1.html$2 [NE,R=301]
RewriteRule ^(latest|[0-9.]+)/admin_guide/upgrades\.html(.*) /$1/install_config/upgrades.html$2 [NE,R=301]
RewriteRule ^(latest|[0-9.]+)/admin_guide/(aggregate_logging|cluster_metrics|configuring_authentication|configuring_aws|configuring_gce|configuring_openstack|http_proxies|master_node_configuration|native_container_routing|routing_from_edge_lb|syncing_groups_with_ldap|web_console_customization)\.html(.*)$ /$1/install_config/$2.html$3 [NE,R=301]
RewriteRule ^(latest|[0-9.]+)/admin_guide/persistent_storage/(persistent_storage_aws|persistent_storage_cinder|persistent_storage_gce|persistent_storage_glusterfs|persistent_storage_nfs)\.html(.*)$ /$1/install_config/persistent_storage/$2.html$3 [NE,R=301]
RewriteRule ^latest/admin_guide/selfprovisioned_projects\.html(.*)$ /$1/$2/admin_guide/managing_projects.html$3 [NE,R=301]
RewriteRule ^latest/install_config/upgrades\.html(.*)$ /latest/install_config/upgrading/index.html$1 [NE,R=301]
RewriteRule ^latest/install_config/upgrading/(.*)$ /latest/upgrading/$1 [NE,R=301]
</Directory>
</IfModule>
# ----------------------------------------------------------------------
# Prevent 404 errors for non-existing redirected folders
# ----------------------------------------------------------------------
# without -MultiViews, Apache will give a 404 for a rewrite if a folder of the
# same name does not exist.
# webmasterworld.com/apache/3808792.htm
Options -MultiViews
# ----------------------------------------------------------------------
# Custom 404 page
# ----------------------------------------------------------------------
# You can add custom pages to handle 500 or 403 pretty easily, if you like.
# If you are hosting your site in subdirectory, adjust this accordingly
# e.g. ErrorDocument 404 /subdir/404.html
ErrorDocument 404 /404.html
# ----------------------------------------------------------------------
# UTF-8 encoding
# ----------------------------------------------------------------------
# Use UTF-8 encoding for anything served text/plain or text/html
AddDefaultCharset utf-8
# Force UTF-8 for a number of file formats
AddCharset utf-8 .atom .css .js .json .rss .vtt .xml
# ----------------------------------------------------------------------
# A little more security
# ----------------------------------------------------------------------
# "-Indexes" will have Apache block users from browsing folders without a
# default document Usually you should leave this activated, because you
# shouldn't allow everybody to surf through every folder on your server (which
# includes rather private places like CMS system folders).
<IfModule mod_autoindex.c>
Options -Indexes
</IfModule>
# Block access to "hidden" directories or files whose names begin with a
# period. This includes directories used by version control systems such as
# Subversion or Git.
<IfModule mod_rewrite.c>
RewriteCond %{SCRIPT_FILENAME} -d [OR]
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule "(^|/)\." - [F]
</IfModule>
# Block access to backup and source files. These files may be left by some
# text/html editors and pose a great security danger, when anyone can access
# them.
<FilesMatch "(\.(bak|config|sql|fla|psd|ini|log|sh|inc|swp|dist)|~)$">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>

13
.travis.yml Normal file
View File

@@ -0,0 +1,13 @@
language: ruby
cache: bundler
rvm:
- 2.3.1
gemfile: Gemfile
after_install: gem list
script: bundle exec rake build
notifications:
email:
#recipients:
# - dev@lists.openshift.redhat.com
irc:
- "irc.freenode.org#openshift-dev"

218
404-commercial.html Normal file
View File

@@ -0,0 +1,218 @@
<!DOCTYPE html>
<!--[if IE 8]><html class="ie8"><![endif]-->
<!--[if IE 9]><html class="ie9"><![endif]-->
<!--[if gt IE 9]><!-->
<html>
<!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="google-site-verification" content="MCaLEYfZB8HfZSTyMQYZyBeRMXGoKt46uvrwEp-KN3M">
<title>404 | Red Hat OpenShift Documentation</title>
<link href="https:/docs.openshift.com/" rel="canonical">
<link href="https://assets.openshift.net/content/subdomain/touch-icon-precomposed.png" rel="apple-touch-icon-precomposed" type="image/png">
<link href="https://assets.openshift.net/content/subdomain/favicon32x32.png" rel="shortcut icon" type="image/png">
<link href="https://assets.openshift.net/content/osh-nav-footer.css" rel="stylesheet" type="text/css" media="screen, print" />
<link href="https://assets.openshift.net/content/subdomain.css" rel="stylesheet" media="screen, print">
<link href="_stylesheets/commercial-home.css" rel="stylesheet">
<!--[if IE]><link rel="shortcut icon" href="https://assets.openshift.net/content/subdomain/favicon.ico"><![endif]-->
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://assets.openshift.net/content/html5shiv.js"></script>
<script src="https://assets.openshift.net/content/respond.js"></script>
<![endif]-->
<!-- IE8 requires jQuery and Bootstrap JS to load in head to prevent rendering bugs -->
<!-- IE8 requires jQuery v1.x -->
<script src="https://assets.openshift.net/content/modernizr.js" type="text/javascript"></script>
<script src="https://assets.openshift.net/content/subdomain.js" type="text/javascript"></script>
<script src="https://assets.openshift.net/content/nav-tertiary.js" type="text/javascript"></script>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-PMDVKG');</script>
<!-- End Google Tag Manager -->
<!-- Adobe DTM -->
<script src="https://www.redhat.com/dtm.js" type="text/javascript"></script>
<!-- End Adobe DTM -->
</head>
<body class="docs docs-home">
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-PMDVKG"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<nav id="main">
<div class="container">
<div class="row">
<div class="navbar navbar-default navbar-openshift" role="navigation">
<div class="navbar-header">
<a href="#nav-main" class="dropdown-toggle navbar-menu-toggle hidden visible-xs" data-toggle="collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="navbar-brand" target="_blank" href="https://www.openshift.com"></a>
</div>
<div id="nav-main" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Products <span class="fa fa-angle-down"></span>
</a>
<ul class="dropdown-menu">
<li><a target="_blank" href="https://www.openshift.com/products/">Overview</a></li>
<li><a target="_blank" href="https://www.openshift.com/products/features/">Features</a></li>
<li class="dropdown">
<a class="dropdown-toggle" target="_blank" href="https://www.openshift.com/products/online/">Online</a>
<ul class="dropdown-menu product" style="display: none;">
<a target="_blank" href="https://www.openshift.com/products/online/">
<li>
<p><img src="https://assets.openshift.net/content/subdomain/Logotype_RH_OpenShiftOnline_wLogo_RGB_Gray.svg" alt="" class="img-responsive"></p>
<p>The fastest way for developers to build, host and scale applications in the public cloud</p>
</li>
</a>
</ul>
</li>
<li class="dropdown">
<a class="dropdown-toggle" target="_blank" href="https://www.openshift.com/products/dedicated/">Dedicated</a>
<ul class="dropdown-menu product" style="display: none;">
<a target="_blank" href="https://www.openshift.com/products/dedicated/">
<li>
<p><img src="https://assets.openshift.net/content/subdomain/Logotype_RH_OpenShiftDedicated_wLogo_RGB_Gray.svg" alt="" class="img-responsive"></p>
<p>Single-tenant, high-availability Kubernetes clusters in the public cloud</p>
</li>
</a>
</ul>
</li>
<li class="dropdown">
<a class="dropdown-toggle" target="_blank" href="https://www.openshift.com/products/container-platform/">Container Platform</a>
<ul class="dropdown-menu product" style="display: none;">
<a target="_blank" href="https://www.openshift.com/products/container-platform/">
<li>
<p><img src="https://assets.openshift.net/content/subdomain/Logotype_RH_OpenShiftContainerPlatform_wLogo_RGB_Gray.svg" alt="" class="img-responsive"></p>
<p>Build, deploy and manage your applications across cloud- and on-premise infrastructure</p>
</li>
</a>
</ul>
</li>
<li><a target="_blank" href="https://www.openshift.com/products/quay/">Quay</a></li>
<li><a target="_blank" href="https://www.openshift.com/products/pricing/">Pricing</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Learn <span class="fa fa-angle-down"></span>
</a>
<ul class="dropdown-menu">
<li><a target="_blank" href="https://www.openshift.com/learn/what-is-openshift/">What Is OpenShift</a></li>
<li><a target="_blank" href="https://www.openshift.com/learn/get-started/">Get Started</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Technology Topics <span class="fa fa-angle-right"></span>
</a>
<ul class="dropdown-menu" style="display: none;">
<li><a target="_blank" href="https://www.openshift.com/learn/topics/security/">Security</a></li>
<li><a target="_blank" href="https://www.openshift.com/learn/topics/kubernetes/">Kubernetes</a></li>
</ul>
</li>
<li><a target="_blank" href="https://www.openshift.com/learn/partners/">Partners</a></li>
<li><a target="_blank" href="https://www.openshift.com/learn/success-stories/">Customer success stories</a></li>
<li><a target="_blank" href="https://blog.openshift.com">Blog</a></li>
<li><a target="_blank" href="https://www.openshift.com/learn/resources/">Resources</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Community <span class="fa fa-angle-down"></span>
</a>
<ul class="dropdown-menu">
<li><a target="_blank" href="https://commons.openshift.org">OpenShift Commons</a></li>
<li><a target="_blank" href="https://www.openshift.org">Open Source (Origin)</a></li>
<li><a target="_blank" href="https://www.openshift.com/community/programs/startups/">Startups</a></li>
<li><a target="_blank" href="https://www.openshift.com/community/programs/grants/">Grants</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Support <span class="fa fa-angle-down"></span>
</a>
<ul class="dropdown-menu">
<li><a target="_blank" href="https://help.openshift.com">Help Center</a></li>
<li><a href="https://docs.openshift.com">OpenShift Docs</a></li>
</ul>
</li>
<li><a class="nav-sign-up" target="_blank" href="https://www.openshift.com/trial/">Free Trial</a></li>
<li><a target="_blank" href="https://manage.openshift.com" class="nav-log-in">Sign In <span class="fa fa-angle-right"></span></a></li>
</ul>
</div>
</div>
</div>
</div>
</nav>
<section>
<div class="container">
<h1>Not found</h1>
<p>Sorry, but the page you were trying to view does not exist.</p>
<p>It looks like this was the result of either:</p>
<ul>
<li>a mistyped address</li>
<li>an out-of-date link</li>
</ul>
<p><a role="button" class="btn btn-default" href="/"><i class="fa fa-arrow-circle-o-left"></i> Docs</a></p>
<script>
var GOOG_FIXURL_LANG = (navigator.language || '').slice(0,2),GOOG_FIXURL_SITE = location.host;
</script>
<script src="//linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js"></script>
</div>
</section>
<footer id="rh">
<div class="container">
<div class="row">
<div class="col-sm-2">
<img src="https://assets.openshift.net/content/subdomain/redhat_logo.svg" class="img-fluid" alt="Red Hat" style="height: 40px;">
</div>
<div class="col-sm-3">
<p>Copyright © 2018 <span class="text-nowrap">Red Hat, Inc.</span></p>
</div>
<div class="col-sm-5">
<nav class="nav">
<a href="https://www.redhat.com/en/about/privacy-policy" class="nav-link">Privacy statement</a>
<a href="https://www.openshift.com/legal/terms/" class="nav-link">Terms of use</a>
<a href="https://www.redhat.com/en/about/all-policies-guidelines" class="nav-link">All policies and guidelines</a>
</nav>
</div>
<div class="hidden-sm col-sm-2 powered-by">
<a href="https://www.openshift.com/" title="Powered by OpenShift Online">
<img src="https://www.openshift.com/images/logos/powered_by_openshift_reverse.png" alt="Powered by OpenShift Online">
</a>
</div>
</div>
</div>
</footer>
<!-- Adobe DTM -->
<script type="text/javascript">
if (("undefined" !== typeof _satellite) && ("function" === typeof _satellite.pageBottom)) {
_satellite.pageBottom();
}
</script>
<!-- End Adobe DTM -->
</body>
</html>

69
404-community.html Normal file
View File

@@ -0,0 +1,69 @@
<!DOCTYPE html>
<!--[if IE 8]> <html class="ie8"> <![endif]-->
<!--[if IE 9]> <html class="ie9"> <![endif]-->
<!--[if gt IE 9]><!-->
<html>
<!--<![endif]-->
<head>
<meta charset="utf-8">
<meta content="IE=edge" http-equiv="X-UA-Compatible">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<title>404 | OpenShift Origin Documentation</title>
<link href="https://assets.openshift.net/content/subdomain.css" rel="stylesheet" type="text/css">
<link href="latest/_stylesheets/docs.css" rel="stylesheet" />
<link href="latest/_stylesheets/search.css" rel="stylesheet" />
<link href="https://assets.openshift.net/content/subdomain/touch-icon-precomposed.png" rel="apple-touch-icon-precomposed" type="image/png">
<link href="https://assets.openshift.net/content/subdomain/favicon32x32.png" rel="shortcut icon" type="text/css">
<!--[if IE]><link rel="shortcut icon" href="https://assets.openshift.net/content/subdomain/favicon.ico"><![endif]-->
<!-- or, set /favicon.ico for IE10 win -->
<meta content="OpenShift" name="application-name">
<meta content="#000000" name="msapplication-TileColor">
<meta content="https://assets.openshift.net/content/subdomain/touch-icon-precomposed.png" name="msapplication-TileImage">
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://assets.openshift.net/content/html5shiv.js" type="text/javascript"></script>
<script src="https://assets.openshift.net/content/respond.js" type="text/javascript"></script>
<link href="https://assets.openshift.net/content/vendor/respond-js/respond-proxy.html" id="respond-proxy" rel="respond-proxy">
<link href="latest/_images/respond.proxy.gif" id="respond-redirect" rel="respond-redirect">
<script src="latest/_javascripts/respond.proxy.js" type="text/javascript"></script>
<![endif]-->
<script src="https://assets.openshift.net/content/modernizr.js" type="text/javascript"></script>
<script src="https://assets.openshift.net/content/subdomain.js" type="text/javascript"></script>
<script src="latest/_javascripts/bootstrap-offcanvas.js" type="text/javascript"></script>
<script src="latest/_javascripts/reformat-html.js" type="text/javascript"></script>
<script src="latest/_javascripts/hc-search.js" type="text/javascript"></script>
<script async src="//www.google-analytics.com/analytics.js" type="text/javascript"></script>
<script>
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', 'UA-40375612-1', 'openshift.org');
ga('set', 'forceSSL', true);
ga('send', 'pageview');
</script>
</head>
<body>
<div class="navbar navbar-default navbar-openshift navbar-origin" role="navigation">
<div class="navbar-header">
<a class="navbar-brand origin" href="/"></a>
</div>
</div>
<section>
<div class="container">
<h1>Not found</h1>
<p>Sorry, but the page you were trying to view does not exist.</p>
<p>It looks like this was the result of either:</p>
<ul>
<li>a mistyped address</li>
<li>an out-of-date link</li>
</ul>
<p><a role="button" class="btn btn-default" href="/"><i class="fa fa-arrow-circle-o-left"></i> Docs</a></p>
<script>
var GOOG_FIXURL_LANG = (navigator.language || '').slice(0,2),GOOG_FIXURL_SITE = location.host;
</script>
<script src="//linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js"></script>
</div>
</section>
</body>
</html>

3
Gemfile Normal file
View File

@@ -0,0 +1,3 @@
source "https://rubygems.org"
gem 'ascii_binder', '~>0.1.5'

3
Guardfile Normal file
View File

@@ -0,0 +1,3 @@
require 'ascii_binder'
gem_dir = Gem::Specification.find_by_name("ascii_binder").lib_dirs_glob
instance_eval(File.read(File.join(gem_dir, 'ascii_binder/tasks/guards.rb')))

117
Jenkinsfile vendored Normal file
View File

@@ -0,0 +1,117 @@
#!/usr/bin/env groovy
// Pipeline variables
def isPR=false // true if the branch being tested belongs to a PR
def project="" // project where build and deploy will occur
def projectCreated=false // true if a project was created by this build and needs to be cleaned up
def repoUrl="" // the URL of this project's repository
def appName="openshift-docs" // name of application to create
def approved=false // true if the preview was approved
// uniqueName returns a name with a 16-character random character suffix
def uniqueName = { String prefix ->
sh "cat /dev/urandom | tr -dc 'a-z0-9' | fold -w 16 | head -n 1 > suffix"
suffix = readFile("suffix").trim()
return prefix + suffix
}
// setBuildStatus sets a status item on a GitHub commit
def setBuildStatus = { String url, String context, String message, String state, String backref ->
step([
$class: "GitHubCommitStatusSetter",
reposSource: [$class: "ManuallyEnteredRepositorySource", url: url ],
contextSource: [$class: "ManuallyEnteredCommitContextSource", context: context ],
errorHandlers: [[$class: "ChangingBuildStatusErrorHandler", result: "UNSTABLE"]],
statusBackrefSource: [ $class: "ManuallyEnteredBackrefSource", backref: backref ],
statusResultSource: [ $class: "ConditionalStatusResultSource", results: [
[$class: "AnyBuildResult", message: message, state: state]] ]
]);
}
// getRepoURL retrieves the origin URL of the current source repository
def getRepoURL = {
sh "git config --get remote.origin.url > originurl"
return readFile("originurl").trim()
}
// getRouteHostname retrieves the host name from the given route in an
// OpenShift namespace
def getRouteHostname = { String routeName, String projectName ->
sh "oc get route ${routeName} -n ${projectName} -o jsonpath='{ .spec.host }' > apphost"
return readFile("apphost").trim()
}
// setPreviewStatus sets a status item for each openshift-docs release
def setPreviewStatus = { String url, String message, String state, String host, boolean includeLink ->
setBuildStatus(url, "ci/app-preview/origin", message, state, includeLink ? "http://${host}/openshift-origin/latest/welcome/index.html" : "")
setBuildStatus(url, "ci/app-preview/enterprise", message, state, includeLink ? "http://${host}/openshift-enterprise/master/welcome/index.html" : "")
setBuildStatus(url, "ci/app-preview/online", message, state, includeLink ? "http://${host}/openshift-online/master/welcome/index.html" : "")
setBuildStatus(url, "ci/app-preview/dedicated", message, state, includeLink ? "http://${host}/openshift-dedicated/master/welcome/index.html" : "")
}
try { // Use a try block to perform cleanup in a finally block when the build fails
node {
// Initialize variables in default node context
isPR = env.BRANCH_NAME ? env.BRANCH_NAME.startsWith("PR") : false
baseProject = env.PROJECT_NAME
project = env.PROJECT_NAME
stage ('Checkout') {
checkout scm
repoUrl = getRepoURL()
}
// When testing a PR, create a new project to perform the build
// and deploy artifacts.
if (isPR) {
stage ('Create PR Project') {
setPreviewStatus(repoUrl, "Building application", "PENDING", "", false)
setBuildStatus(repoUrl, "ci/approve", "Aprove after testing", "PENDING", "")
project = uniqueName("${appName}-")
sh "oc new-project ${project}"
projectCreated=true
sh "oc policy add-role-to-group view system:authenticated -n ${project}"
}
}
stage ('Apply object configurations') {
sh "oc process -f _openshift/docs-template.yaml -n ${project} | oc apply -f - -n ${project}"
}
stage ('Build') {
sh "oc start-build ${appName} -n ${project} --from-repo=. --follow"
}
if (isPR) {
stage ('Verify Service') {
openshiftVerifyService serviceName: appName, namespace: project
}
def appHostName = getRouteHostname(appName, project)
setPreviewStatus(repoUrl, "The application is available", "SUCCESS", "${appHostName}", true)
setBuildStatus(repoUrl, "ci/approve", "Approve after testing", "PENDING", "${env.BUILD_URL}input/")
stage ('Manual Test') {
timeout(time:2, unit:'DAYS') {
input "Is everything OK?"
}
}
approved = true
setPreviewStatus(repoUrl, "Application previewed", "SUCCESS", "", false)
setBuildStatus(repoUrl, "ci/approve", "Manually approved", "SUCCESS", "")
}
}
}
finally {
if (projectCreated) {
node {
stage('Delete PR Project') {
if (!approved) {
setPreviewStatus(repoUrl, "Application previewed", "FAILURE", "", false)
setBuildStatus(repoUrl, "ci/approve", "Rejected", "FAILURE", "")
}
sh "oc delete project ${project}"
}
}
}
}

569
LICENSE Normal file
View File

@@ -0,0 +1,569 @@
OpenShift documentation is licensed under the Apache License 2.0 or,
alternatively, under the Creative Commons Attribution-ShareAlike 3.0
Unported license.
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Creative Commons Legal Code
Attribution-ShareAlike 3.0 Unported
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR
DAMAGES RESULTING FROM ITS USE.
License
THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE
TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY
BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS
CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND
CONDITIONS.
1. Definitions
a. "Adaptation" means a work based upon the Work, or upon the Work and
other pre-existing works, such as a translation, adaptation,
derivative work, arrangement of music or other alterations of a
literary or artistic work, or phonogram or performance and includes
cinematographic adaptations or any other form in which the Work may be
recast, transformed, or adapted including in any form recognizably
derived from the original, except that a work that constitutes a
Collection will not be considered an Adaptation for the purpose of
this License. For the avoidance of doubt, where the Work is a musical
work, performance or phonogram, the synchronization of the Work in
timed-relation with a moving image ("synching") will be considered an
Adaptation for the purpose of this License.
b. "Collection" means a collection of literary or artistic works, such as
encyclopedias and anthologies, or performances, phonograms or
broadcasts, or other works or subject matter other than works listed
in Section 1(f) below, which, by reason of the selection and
arrangement of their contents, constitute intellectual creations, in
which the Work is included in its entirety in unmodified form along
with one or more other contributions, each constituting separate and
independent works in themselves, which together are assembled into a
collective whole. A work that constitutes a Collection will not be
considered an Adaptation (as defined below) for the purposes of this
License.
c. "Creative Commons Compatible License" means a license that is listed
at https://creativecommons.org/compatiblelicenses that has been
approved by Creative Commons as being essentially equivalent to this
License, including, at a minimum, because that license: (i) contains
terms that have the same purpose, meaning and effect as the License
Elements of this License; and, (ii) explicitly permits the relicensing
of adaptations of works made available under that license under this
License or a Creative Commons jurisdiction license with the same
License Elements as this License.
d. "Distribute" means to make available to the public the original and
copies of the Work or Adaptation, as appropriate, through sale or
other transfer of ownership.
e. "License Elements" means the following high-level license attributes
as selected by Licensor and indicated in the title of this License:
Attribution, ShareAlike.
f. "Licensor" means the individual, individuals, entity or entities that
offer(s) the Work under the terms of this License.
g. "Original Author" means, in the case of a literary or artistic work,
the individual, individuals, entity or entities who created the Work
or if no individual or entity can be identified, the publisher; and in
addition (i) in the case of a performance the actors, singers,
musicians, dancers, and other persons who act, sing, deliver, declaim,
play in, interpret or otherwise perform literary or artistic works or
expressions of folklore; (ii) in the case of a phonogram the producer
being the person or legal entity who first fixes the sounds of a
performance or other sounds; and, (iii) in the case of broadcasts, the
organization that transmits the broadcast.
h. "Work" means the literary and/or artistic work offered under the terms
of this License including without limitation any production in the
literary, scientific and artistic domain, whatever may be the mode or
form of its expression including digital form, such as a book,
pamphlet and other writing; a lecture, address, sermon or other work
of the same nature; a dramatic or dramatico-musical work; a
choreographic work or entertainment in dumb show; a musical
composition with or without words; a cinematographic work to which are
assimilated works expressed by a process analogous to cinematography;
a work of drawing, painting, architecture, sculpture, engraving or
lithography; a photographic work to which are assimilated works
expressed by a process analogous to photography; a work of applied
art; an illustration, map, plan, sketch or three-dimensional work
relative to geography, topography, architecture or science; a
performance; a broadcast; a phonogram; a compilation of data to the
extent it is protected as a copyrightable work; or a work performed by
a variety or circus performer to the extent it is not otherwise
considered a literary or artistic work.
i. "You" means an individual or entity exercising rights under this
License who has not previously violated the terms of this License with
respect to the Work, or who has received express permission from the
Licensor to exercise rights under this License despite a previous
violation.
j. "Publicly Perform" means to perform public recitations of the Work and
to communicate to the public those public recitations, by any means or
process, including by wire or wireless means or public digital
performances; to make available to the public Works in such a way that
members of the public may access these Works from a place and at a
place individually chosen by them; to perform the Work to the public
by any means or process and the communication to the public of the
performances of the Work, including by public digital performance; to
broadcast and rebroadcast the Work by any means including signs,
sounds or images.
k. "Reproduce" means to make copies of the Work by any means including
without limitation by sound or visual recordings and the right of
fixation and reproducing fixations of the Work, including storage of a
protected performance or phonogram in digital form or other electronic
medium.
2. Fair Dealing Rights. Nothing in this License is intended to reduce,
limit, or restrict any uses free from copyright or rights arising from
limitations or exceptions that are provided for in connection with the
copyright protection under copyright law or other applicable laws.
3. License Grant. Subject to the terms and conditions of this License,
Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
perpetual (for the duration of the applicable copyright) license to
exercise the rights in the Work as stated below:
a. to Reproduce the Work, to incorporate the Work into one or more
Collections, and to Reproduce the Work as incorporated in the
Collections;
b. to create and Reproduce Adaptations provided that any such Adaptation,
including any translation in any medium, takes reasonable steps to
clearly label, demarcate or otherwise identify that changes were made
to the original Work. For example, a translation could be marked "The
original work was translated from English to Spanish," or a
modification could indicate "The original work has been modified.";
c. to Distribute and Publicly Perform the Work including as incorporated
in Collections; and,
d. to Distribute and Publicly Perform Adaptations.
e. For the avoidance of doubt:
i. Non-waivable Compulsory License Schemes. In those jurisdictions in
which the right to collect royalties through any statutory or
compulsory licensing scheme cannot be waived, the Licensor
reserves the exclusive right to collect such royalties for any
exercise by You of the rights granted under this License;
ii. Waivable Compulsory License Schemes. In those jurisdictions in
which the right to collect royalties through any statutory or
compulsory licensing scheme can be waived, the Licensor waives the
exclusive right to collect such royalties for any exercise by You
of the rights granted under this License; and,
iii. Voluntary License Schemes. The Licensor waives the right to
collect royalties, whether individually or, in the event that the
Licensor is a member of a collecting society that administers
voluntary licensing schemes, via that society, from any exercise
by You of the rights granted under this License.
The above rights may be exercised in all media and formats whether now
known or hereafter devised. The above rights include the right to make
such modifications as are technically necessary to exercise the rights in
other media and formats. Subject to Section 8(f), all rights not expressly
granted by Licensor are hereby reserved.
4. Restrictions. The license granted in Section 3 above is expressly made
subject to and limited by the following restrictions:
a. You may Distribute or Publicly Perform the Work only under the terms
of this License. You must include a copy of, or the Uniform Resource
Identifier (URI) for, this License with every copy of the Work You
Distribute or Publicly Perform. You may not offer or impose any terms
on the Work that restrict the terms of this License or the ability of
the recipient of the Work to exercise the rights granted to that
recipient under the terms of the License. You may not sublicense the
Work. You must keep intact all notices that refer to this License and
to the disclaimer of warranties with every copy of the Work You
Distribute or Publicly Perform. When You Distribute or Publicly
Perform the Work, You may not impose any effective technological
measures on the Work that restrict the ability of a recipient of the
Work from You to exercise the rights granted to that recipient under
the terms of the License. This Section 4(a) applies to the Work as
incorporated in a Collection, but this does not require the Collection
apart from the Work itself to be made subject to the terms of this
License. If You create a Collection, upon notice from any Licensor You
must, to the extent practicable, remove from the Collection any credit
as required by Section 4(c), as requested. If You create an
Adaptation, upon notice from any Licensor You must, to the extent
practicable, remove from the Adaptation any credit as required by
Section 4(c), as requested.
b. You may Distribute or Publicly Perform an Adaptation only under the
terms of: (i) this License; (ii) a later version of this License with
the same License Elements as this License; (iii) a Creative Commons
jurisdiction license (either this or a later license version) that
contains the same License Elements as this License (e.g.,
Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible
License. If you license the Adaptation under one of the licenses
mentioned in (iv), you must comply with the terms of that license. If
you license the Adaptation under the terms of any of the licenses
mentioned in (i), (ii) or (iii) (the "Applicable License"), you must
comply with the terms of the Applicable License generally and the
following provisions: (I) You must include a copy of, or the URI for,
the Applicable License with every copy of each Adaptation You
Distribute or Publicly Perform; (II) You may not offer or impose any
terms on the Adaptation that restrict the terms of the Applicable
License or the ability of the recipient of the Adaptation to exercise
the rights granted to that recipient under the terms of the Applicable
License; (III) You must keep intact all notices that refer to the
Applicable License and to the disclaimer of warranties with every copy
of the Work as included in the Adaptation You Distribute or Publicly
Perform; (IV) when You Distribute or Publicly Perform the Adaptation,
You may not impose any effective technological measures on the
Adaptation that restrict the ability of a recipient of the Adaptation
from You to exercise the rights granted to that recipient under the
terms of the Applicable License. This Section 4(b) applies to the
Adaptation as incorporated in a Collection, but this does not require
the Collection apart from the Adaptation itself to be made subject to
the terms of the Applicable License.
c. If You Distribute, or Publicly Perform the Work or any Adaptations or
Collections, You must, unless a request has been made pursuant to
Section 4(a), keep intact all copyright notices for the Work and
provide, reasonable to the medium or means You are utilizing: (i) the
name of the Original Author (or pseudonym, if applicable) if supplied,
and/or if the Original Author and/or Licensor designate another party
or parties (e.g., a sponsor institute, publishing entity, journal) for
attribution ("Attribution Parties") in Licensor's copyright notice,
terms of service or by other reasonable means, the name of such party
or parties; (ii) the title of the Work if supplied; (iii) to the
extent reasonably practicable, the URI, if any, that Licensor
specifies to be associated with the Work, unless such URI does not
refer to the copyright notice or licensing information for the Work;
and (iv) , consistent with Ssection 3(b), in the case of an
Adaptation, a credit identifying the use of the Work in the Adaptation
(e.g., "French translation of the Work by Original Author," or
"Screenplay based on original Work by Original Author"). The credit
required by this Section 4(c) may be implemented in any reasonable
manner; provided, however, that in the case of a Adaptation or
Collection, at a minimum such credit will appear, if a credit for all
contributing authors of the Adaptation or Collection appears, then as
part of these credits and in a manner at least as prominent as the
credits for the other contributing authors. For the avoidance of
doubt, You may only use the credit required by this Section for the
purpose of attribution in the manner set out above and, by exercising
Your rights under this License, You may not implicitly or explicitly
assert or imply any connection with, sponsorship or endorsement by the
Original Author, Licensor and/or Attribution Parties, as appropriate,
of You or Your use of the Work, without the separate, express prior
written permission of the Original Author, Licensor and/or Attribution
Parties.
d. Except as otherwise agreed in writing by the Licensor or as may be
otherwise permitted by applicable law, if You Reproduce, Distribute or
Publicly Perform the Work either by itself or as part of any
Adaptations or Collections, You must not distort, mutilate, modify or
take other derogatory action in relation to the Work which would be
prejudicial to the Original Author's honor or reputation. Licensor
agrees that in those jurisdictions (e.g. Japan), in which any exercise
of the right granted in Section 3(b) of this License (the right to
make Adaptations) would be deemed to be a distortion, mutilation,
modification or other derogatory action prejudicial to the Original
Author's honor and reputation, the Licensor will waive or not assert,
as appropriate, this Section, to the fullest extent permitted by the
applicable national law, to enable You to reasonably exercise Your
right under Section 3(b) of this License (right to make Adaptations)
but not otherwise.
5. Representations, Warranties and Disclaimer
UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR
OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY
KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY,
FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF
LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS,
WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION
OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE
LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR
ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES
ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
7. Termination
a. This License and the rights granted hereunder will terminate
automatically upon any breach by You of the terms of this License.
Individuals or entities who have received Adaptations or Collections
from You under this License, however, will not have their licenses
terminated provided such individuals or entities remain in full
compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will
survive any termination of this License.
b. Subject to the above terms and conditions, the license granted here is
perpetual (for the duration of the applicable copyright in the Work).
Notwithstanding the above, Licensor reserves the right to release the
Work under different license terms or to stop distributing the Work at
any time; provided, however that any such election will not serve to
withdraw this License (or any other license that has been, or is
required to be, granted under the terms of this License), and this
License will continue in full force and effect unless terminated as
stated above.
8. Miscellaneous
a. Each time You Distribute or Publicly Perform the Work or a Collection,
the Licensor offers to the recipient a license to the Work on the same
terms and conditions as the license granted to You under this License.
b. Each time You Distribute or Publicly Perform an Adaptation, Licensor
offers to the recipient a license to the original Work on the same
terms and conditions as the license granted to You under this License.
c. If any provision of this License is invalid or unenforceable under
applicable law, it shall not affect the validity or enforceability of
the remainder of the terms of this License, and without further action
by the parties to this agreement, such provision shall be reformed to
the minimum extent necessary to make such provision valid and
enforceable.
d. No term or provision of this License shall be deemed waived and no
breach consented to unless such waiver or consent shall be in writing
and signed by the party to be charged with such waiver or consent.
e. This License constitutes the entire agreement between the parties with
respect to the Work licensed here. There are no understandings,
agreements or representations with respect to the Work not specified
here. Licensor shall not be bound by any additional provisions that
may appear in any communication from You. This License may not be
modified without the mutual written agreement of the Licensor and You.
f. The rights granted under, and the subject matter referenced, in this
License were drafted utilizing the terminology of the Berne Convention
for the Protection of Literary and Artistic Works (as amended on
September 28, 1979), the Rome Convention of 1961, the WIPO Copyright
Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996
and the Universal Copyright Convention (as revised on July 24, 1971).
These rights and subject matter take effect in the relevant
jurisdiction in which the License terms are sought to be enforced
according to the corresponding provisions of the implementation of
those treaty provisions in the applicable national law. If the
standard suite of rights granted under applicable copyright law
includes additional rights not granted under this License, such
additional rights are deemed to be included in the License; this
License is not intended to restrict the license of any rights under
applicable law.
Creative Commons Notice
Creative Commons is not a party to this License, and makes no warranty
whatsoever in connection with the Work. Creative Commons will not be
liable to You or any party on any legal theory for any damages
whatsoever, including without limitation any general, special,
incidental or consequential damages arising in connection to this
license. Notwithstanding the foregoing two (2) sentences, if Creative
Commons has expressly identified itself as the Licensor hereunder, it
shall have all rights and obligations of Licensor.
Except for the limited purpose of indicating to the public that the
Work is licensed under the CCPL, Creative Commons does not authorize
the use by either party of the trademark "Creative Commons" or any
related trademark or logo of Creative Commons without the prior
written consent of Creative Commons. Any permitted use will be in
compliance with Creative Commons' then-current trademark usage
guidelines, as may be published on its website or otherwise made
available upon request from time to time. For the avoidance of doubt,
this trademark restriction does not form part of the License.
Creative Commons may be contacted at https://creativecommons.org/.

4
Makefile Normal file
View File

@@ -0,0 +1,4 @@
all:
./_update_rest_api.py
.PHONY: all

43
README.adoc Normal file
View File

@@ -0,0 +1,43 @@
= OpenShift Documentation
Welcome to the OpenShift documentation GitHub repository that contains the source files for the technical documentation for the following products:
* http://origin.openshift.com/[OpenShift Origin]
* http://openshift.com/[OpenShift Online]
* http://www.redhat.com/products/cloud-computing/openshift-enterprise/[OpenShift Enterprise]
* https://www.openshift.com/dedicated/index.html[OpenShift Dedicated]
All OpenShift documentation is sourced in http://www.methods.co.nz/asciidoc/[AsciiDoc] and transformed into HTML/CSS and other formats through automation that is based on http://asciidoctor.org/[AsciiDoctor].
The documentation published from these source files can be viewed at http://docs.openshift.com.
== Contributing to OpenShift documentation
If you are interested in contributing to OpenShift technical documentation, you can view all our link:./contributing_to_docs[resources] that will help you get set up and provide more information.
The following table provides quick links to help you get started.
[options="header"]
|===
|Question |Link
|I'm interested, how do I contribute?
|See the link:/contributing_to_docs/contributing.adoc[contributing] topic to learn more about this repository and how you can contribute.
|Are there any basic guidelines to help me?
|The link:/contributing_to_docs/doc_guidelines.adoc[documentation guidelines] topic provides some basic guidelines to help us keep our content consistent, and includes other style information.
|How do I set up my workstation?
|See the link:/contributing_to_docs/tools_and_setup.adoc[tools and setup] topic to set up your workstation.
|How do I edit an existing topic, or create new content?
|See the link:/contributing_to_docs/create_or_edit_content.adoc[create or edit content] topic to get started.
|===
== Contacts
For questions or comments about OpenShift documentation:
* OpenShift team members can be found on the http://webchat.freenode.net/?randomnick=1&channels=openshift&uio=d4[#openshift] and http://webchat.freenode.net/?randomnick=1&channels=openshift-dev&uio=d4[#openshift-dev] channels on http://www.freenode.net/[FreeNode].
* You can also join the http://lists.openshift.redhat.com/openshiftmm/listinfo/users[Users] or http://lists.openshift.redhat.com/openshiftmm/listinfo/dev[Developers] mailing list.
* Send an email to the OpenShift documentation team at openshift-docs@redhat.com.

1
Rakefile Normal file
View File

@@ -0,0 +1 @@
require 'ascii_binder/tasks/tasks'

11
_distro_map.yml Normal file
View File

@@ -0,0 +1,11 @@
--
openshift-enterprise:
name: OpenShift Container Platform
author: OpenShift Documentation Project <dev@lists.openshift.redhat.com>
site: commercial
site_name: Documentation
site_url: https://docs.openshift.com/
branches:
enterprise-3.12:
name: '3.12'
dir: container-platform/3.12

View File

@@ -0,0 +1,102 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="140px"
height="33.444px" viewBox="200.005 47.745 140 33.444" enable-background="new 200.005 47.745 140 33.444" xml:space="preserve">
<g id="Layer_2">
<path fill="#FFFFFF" d="M340.005,79.115c0,1.146-0.929,2.074-2.074,2.074H202.08c-1.146,0-2.074-0.929-2.074-2.074V49.819
c0-1.146,0.928-2.074,2.074-2.074h135.852c1.146,0,2.074,0.928,2.074,2.074V79.115z"/>
</g>
<g id="svg3452" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" sodipodi:docname="asciibinder_web_logo.svg" inkscape:version="0.91 r13725" xmlns:svg="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<sodipodi:namedview id="base" inkscape:window-maximized="1" inkscape:window-y="0" inkscape:window-x="1920" inkscape:window-height="1409" inkscape:window-width="2560" fit-margin-bottom="3" fit-margin-right="4" fit-margin-left="4" fit-margin-top="4" showgrid="false" inkscape:current-layer="layer1" inkscape:document-units="px" inkscape:cy="-21.169069" inkscape:cx="326.39545" inkscape:zoom="1.1545455" inkscape:pageshadow="2" inkscape:pageopacity="0.0" borderopacity="1.0" bordercolor="#666666" pagecolor="#ffffff">
</sodipodi:namedview>
<g id="layer1" transform="translate(-45.651797,-348.92496)" inkscape:groupmode="layer" inkscape:label="Layer 1">
<g id="g4305" transform="matrix(1.1624734,0,0,1.1624734,1406.9902,-264.01854)">
<path id="path4231" inkscape:connector-curvature="0" d="M-958.525,587.977c0.063,0.156,0.22,0.251,0.361,0.251
c0.047,0,0.079-0.016,0.142-0.016c0.188-0.079,0.282-0.314,0.204-0.502l-3.815-10.189c-0.047-0.141-0.204-0.236-0.377-0.236
c-0.157,0-0.314,0.094-0.377,0.236l-3.815,10.189c-0.078,0.188,0.031,0.423,0.22,0.502c0.047,0,0.11,0.016,0.141,0.016
c0.157,0,0.298-0.095,0.361-0.251l0.973-2.591h5.008L-958.525,587.977L-958.525,587.977z M-961.994,578.713l2.213,5.903h-4.443
L-961.994,578.713z"/>
<path id="path4233" inkscape:connector-curvature="0" d="M-956.021,587.128c0.628,0.502,1.602,1.084,2.842,1.1
c0.754,0,1.382-0.22,1.915-0.612c0.518-0.393,0.879-0.911,0.879-1.554c0-0.644-0.361-1.241-0.864-1.57
c-0.534-0.298-1.13-0.518-1.868-0.628h-0.031c-0.707-0.11-1.225-0.298-1.57-0.533c-0.298-0.236-0.44-0.455-0.44-0.77
s0.173-0.628,0.487-0.88c0.33-0.266,0.832-0.439,1.46-0.439c0.754,0,1.319,0.392,1.884,0.77c0.172,0.11,0.408,0.063,0.518-0.11
s0.063-0.408-0.11-0.534c-0.596-0.377-1.303-0.832-2.292-0.832c-0.785,0-1.429,0.204-1.884,0.518
c-0.487,0.361-0.832,0.895-0.832,1.507c0,0.596,0.345,1.099,0.832,1.381c0.44,0.314,1.052,0.472,1.743,0.597l0.031,0.016
c0.754,0.125,1.303,0.313,1.633,0.565c0.392,0.33,0.533,0.581,0.549,0.943c0,0.345-0.204,0.691-0.581,0.942
c-0.346,0.282-0.864,0.471-1.46,0.471c-0.974,0-1.821-0.503-2.355-0.896c-0.173-0.141-0.408-0.11-0.534,0.047
C-956.194,586.783-956.178,586.987-956.021,587.128L-956.021,587.128z"/>
<path id="path4235" inkscape:connector-curvature="0" d="M-944.4,588.228L-944.4,588.228c0.91,0,1.774-0.314,2.417-0.817
c0.189-0.142,0.22-0.377,0.079-0.549c-0.126-0.141-0.345-0.188-0.518-0.063c-0.549,0.423-1.24,0.675-1.978,0.675
c-1.79,0-3.203-1.382-3.203-3.109c0-1.695,1.413-3.093,3.203-3.093c0.738,0,1.429,0.251,1.978,0.691
c0.173,0.125,0.392,0.078,0.518-0.063c0.141-0.173,0.11-0.408-0.047-0.518c-0.675-0.533-1.539-0.848-2.449-0.848
c-2.198,0-3.956,1.696-3.956,3.831C-948.356,586.532-946.598,588.228-944.4,588.228L-944.4,588.228z"/>
<path id="path4237" inkscape:connector-curvature="0" d="M-938.837,587.851c0,0.204,0.172,0.377,0.377,0.377
c0.219,0,0.392-0.173,0.392-0.377v-6.939c0-0.22-0.173-0.377-0.392-0.377c-0.205,0-0.377,0.157-0.377,0.377V587.851z
M-938.837,578.76c0,0.22,0.172,0.408,0.377,0.408c0.219,0,0.392-0.188,0.392-0.408V578.4c0-0.204-0.173-0.377-0.392-0.377
c-0.205,0-0.377,0.173-0.377,0.377V578.76z"/>
<path id="path4239" inkscape:connector-curvature="0" d="M-934.422,587.851c0,0.204,0.173,0.377,0.377,0.377
c0.219,0,0.392-0.173,0.392-0.377v-6.939c0-0.22-0.173-0.377-0.392-0.377c-0.204,0-0.377,0.157-0.377,0.377V587.851z
M-934.422,578.76c0,0.22,0.173,0.408,0.377,0.408c0.219,0,0.392-0.188,0.392-0.408V578.4c0-0.204-0.173-0.377-0.392-0.377
c-0.204,0-0.377,0.173-0.377,0.377V578.76z"/>
<path id="path4241" inkscape:connector-curvature="0" fill="#FF580D" d="M-928.986,588.228c0.016,0,0.016-0.016,0.047-0.016
c0,0,0,0.016,0.016,0.016h2.779c1.852,0,3.359-1.507,3.359-3.375c0-1.194-0.643-2.246-1.585-2.842
c0.376-0.502,0.596-1.115,0.596-1.79c0-1.649-1.334-2.983-2.982-2.983h-2.167c-0.016,0-0.016,0-0.016,0c-0.031,0-0.031,0-0.047,0
c-0.471,0-0.864,0.377-0.864,0.864v9.262C-929.849,587.836-929.457,588.228-928.986,588.228z M-928.106,578.98h1.35
c0.691,0,1.24,0.549,1.24,1.24c0,0.691-0.549,1.271-1.24,1.271h-1.35V578.98L-928.106,578.98z M-928.106,583.235h1.962
c0.895,0.016,1.616,0.722,1.616,1.618c0,0.91-0.722,1.616-1.616,1.632h-1.962V583.235z"/>
<path id="path4243" inkscape:connector-curvature="0" fill="#FF580D" d="M-919.621,580.393c-0.471,0-0.848,0.361-0.848,0.864
v6.122c0,0.471,0.376,0.849,0.848,0.849c0.487,0,0.849-0.377,0.849-0.849v-6.122
C-918.772,580.755-919.133,580.393-919.621,580.393z M-918.772,578.086c0-0.471-0.361-0.848-0.849-0.848
c-0.471,0-0.848,0.377-0.848,0.848v0.329c0,0.471,0.376,0.864,0.848,0.864c0.487,0,0.849-0.392,0.849-0.864V578.086z"/>
<path id="path4245" inkscape:connector-curvature="0" fill="#FF580D" d="M-912.803,580.378c-0.612,0-1.194,0.189-1.664,0.487
c-0.141-0.298-0.44-0.487-0.77-0.487c-0.471,0-0.832,0.377-0.832,0.832v2.433l0,0v3.753c0,0.455,0.36,0.833,0.832,0.833
c0.408,0,0.754-0.298,0.832-0.675c0.032-0.063,0.032-0.11,0.032-0.157v-3.753c0-0.879,0.691-1.585,1.57-1.585
c0.895,0,1.632,0.706,1.632,1.585v3.753c0,0.455,0.392,0.833,0.833,0.833c0.454,0,0.816-0.377,0.816-0.833v-3.753
C-909.522,581.87-910.981,580.378-912.803,580.378L-912.803,580.378z"/>
<path id="path4247" inkscape:connector-curvature="0" fill="#FF580D" d="M-899.635,584.318L-899.635,584.318
c0-0.016,0-0.016,0-0.016v-6.217c0-0.456-0.377-0.848-0.848-0.848c-0.487,0-0.864,0.392-0.864,0.848v2.951
c-0.581-0.408-1.334-0.659-2.104-0.659c-2.12,0-3.815,1.79-3.815,3.941c0,2.12,1.695,3.91,3.815,3.91
c0.785,0,1.539-0.267,2.135-0.675c0.079,0.377,0.408,0.675,0.833,0.675c0.47,0,0.848-0.392,0.848-0.849V584.318z
M-901.974,582.733c0.392,0.392,0.628,0.958,0.628,1.585c0,0.596-0.235,1.162-0.628,1.554c-0.392,0.408-0.895,0.644-1.476,0.644
c-0.565,0-1.083-0.235-1.475-0.644c-0.392-0.392-0.628-0.958-0.628-1.554c0-0.628,0.236-1.193,0.628-1.585
c0.392-0.408,0.91-0.644,1.475-0.644C-902.869,582.089-902.366,582.325-901.974,582.733z"/>
<path id="path4249" inkscape:connector-curvature="0" fill="#FF580D" d="M-893.347,588.228c1.115,0,2.041-0.33,2.81-1.037
c0.361-0.329,0.204-0.801,0-1.021c-0.204-0.25-0.848-0.298-1.178,0.047c-0.392,0.298-1.067,0.439-1.632,0.392
c-0.549-0.047-1.178-0.329-1.507-0.706c-0.283-0.266-0.455-0.675-0.534-1.036h4.993c0.44,0,0.77-0.251,0.817-0.628
c0.016-0.032,0.016-0.11,0.016-0.141l0,0l0,0c0-0.032,0-0.064,0-0.079c-0.125-2.12-1.743-3.643-3.784-3.643
c-2.151,0-3.815,1.79-3.831,3.925C-897.161,586.438-895.497,588.212-893.347,588.228L-893.347,588.228z M-893.347,581.87
c1.366,0.109,2.167,1.036,2.324,1.664h-4.443C-895.341,582.889-894.681,581.932-893.347,581.87z"/>
<path id="path4251" inkscape:connector-curvature="0" fill="#FF580D" d="M-883.395,580.393c-0.785-0.016-1.459,0.267-1.978,0.612
c-0.109,0.079-0.235,0.204-0.329,0.314v-0.11c0-0.455-0.392-0.816-0.864-0.816c-0.455,0-0.832,0.361-0.832,0.816v6.186
c0,0.455,0.376,0.833,0.832,0.833c0.471,0,0.864-0.377,0.864-0.833v-2.983c0.079-0.219,0.267-0.817,0.643-1.319
c0.189-0.298,0.424-0.565,0.722-0.754c0.267-0.204,0.581-0.298,0.942-0.298c0.471,0,0.833-0.392,0.833-0.832
C-882.563,580.755-882.924,580.393-883.395,580.393L-883.395,580.393z"/>
</g>
<path id="path4327" inkscape:connector-curvature="0" fill="#FF580D" d="M255.854,399.778c-3.088,0-5.575,2.486-5.575,5.575v16.08
c0,3.089,2.486,5.575,5.575,5.575h16.08c3.088,0,5.575-2.486,5.575-5.575v-16.08c0-3.088-2.487-5.575-5.575-5.575H255.854z
M258.238,403.025c1.247,0,2.494,0.475,3.442,1.424c0.949,0.948,1.341,2.118,1.487,3.443s0.065,2.822,0.065,4.534
c0,0.19-0.155,0.345-0.345,0.345l0,0c-2.225,0-3.748,0.07-4.978-0.068s-2.179-0.514-3.103-1.358
c-1.995-1.823-1.909-4.997-0.011-6.895C255.745,403.499,256.992,403.025,258.238,403.025L258.238,403.025z M269.549,403.025
c1.247,0,2.493,0.475,3.442,1.424c1.898,1.898,1.983,5.071-0.011,6.895c-0.924,0.845-1.873,1.22-3.103,1.358
s-2.753,0.068-4.978,0.068c-0.191,0-0.345-0.154-0.345-0.345c0-1.712-0.082-3.209,0.065-4.534s0.539-2.495,1.487-3.443
C267.056,403.499,268.303,403.025,269.549,403.025L269.549,403.025z M258.238,403.711c-1.068,0-2.137,0.409-2.955,1.226
c-1.634,1.634-1.704,4.35-0.011,5.897c0.832,0.76,1.576,1.054,2.715,1.182c1.071,0.12,2.533,0.072,4.559,0.066
c0.008-1.578,0.063-2.964-0.064-4.115c-0.137-1.239-0.471-2.212-1.289-3.03C260.376,404.119,259.307,403.711,258.238,403.711
L258.238,403.711z M269.549,403.711c-1.069,0-2.137,0.409-2.955,1.226c-0.818,0.818-1.152,1.792-1.289,3.03
c-0.127,1.151-0.073,2.538-0.064,4.115c2.025,0.006,3.487,0.054,4.559-0.066c1.139-0.128,1.883-0.422,2.715-1.182
c1.693-1.547,1.623-4.263-0.011-5.897C271.686,404.119,270.618,403.711,269.549,403.711L269.549,403.711z M257.881,413.996h5.03
c0.19,0,0.345,0.154,0.345,0.345v4.712c0.004,0.19-0.147,0.348-0.338,0.352c-0.19,0.004-0.348-0.147-0.352-0.338
c0-0.005,0-0.009,0-0.014v-3.92l-7.975,7.975c-0.131,0.139-0.349,0.146-0.488,0.015c-0.138-0.131-0.145-0.349-0.014-0.487
c0.005-0.006,0.009-0.01,0.014-0.015l7.934-7.934h-4.156c-0.191,0.004-0.348-0.147-0.353-0.338
c-0.004-0.19,0.148-0.349,0.338-0.353C257.871,413.996,257.876,413.996,257.881,413.996z M267.761,413.997L267.761,413.997
c0.812,0,1.501,0.017,2.116,0.086c1.23,0.139,2.179,0.514,3.103,1.358c1.995,1.824,1.909,4.996,0.011,6.895s-4.986,1.898-6.885,0
c-0.949-0.948-1.34-2.118-1.487-3.442c-0.146-1.325-0.065-2.822-0.065-4.534c0-0.19,0.154-0.345,0.345-0.345
C266.011,414.015,266.948,413.997,267.761,413.997L267.761,413.997z M267.761,414.689c-0.707,0-1.572,0.011-2.52,0.014
c-0.009,1.577-0.063,2.964,0.064,4.115c0.137,1.238,0.471,2.213,1.289,3.03c1.635,1.635,4.275,1.635,5.909,0
c1.634-1.634,1.703-4.35,0.011-5.896c-0.832-0.761-1.576-1.054-2.715-1.183C269.23,414.705,268.564,414.689,267.761,414.689
L267.761,414.689L267.761,414.689z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 974 KiB

BIN
_images/origin-masthead.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

BIN
_images/origin_logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

98
_images/redhat.svg Normal file
View File

@@ -0,0 +1,98 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="logo" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" width="128px" height="42px" viewBox="122.431 337.623 128 42" xml:space="preserve">
<g id="logo_1_">
<g id="white">
<path fill="#FFFFFF" d="M160.233,369.79c-0.792-0.182-1.632-0.296-2.481-0.296c-1.453,0-2.775,0.251-3.751,0.658
c-0.107,0.053-0.184,0.166-0.184,0.293c0,0.047,0.012,0.094,0.029,0.134c0.115,0.333-0.074,0.696-1.018,0.904
c-1.399,0.307-2.283,1.751-2.788,2.23c-0.594,0.564-2.271,0.91-2.018,0.574c0.197-0.262,0.952-1.082,1.411-1.967
c0.411-0.792,0.776-1.017,1.28-1.772c0.147-0.221,0.72-1,0.887-1.615c0.187-0.601,0.124-1.355,0.196-1.666
c0.103-0.448,0.526-1.419,0.558-1.968c0.019-0.311-1.296,0.443-1.919,0.443s-1.23-0.374-1.788-0.4
c-0.689-0.032-1.132,0.532-1.756,0.433c-0.355-0.057-0.656-0.371-1.278-0.394c-0.886-0.032-1.969,0.493-4.003,0.428
c-2-0.065-3.849-2.529-4.101-2.921c-0.295-0.459-0.657-0.459-1.05-0.098c-0.394,0.36-0.879,0.077-1.018-0.166
c-0.262-0.458-0.963-1.8-2.05-2.082c-1.503-0.39-2.264,0.832-2.165,1.804c0.101,0.986,0.738,1.263,1.034,1.788
c0.295,0.525,0.446,0.862,1.002,1.095c0.394,0.165,0.54,0.407,0.423,0.731c-0.103,0.281-0.513,0.346-0.782,0.359
c-0.572,0.027-0.974-0.128-1.267-0.314c-0.34-0.218-0.617-0.519-0.915-1.03c-0.344-0.564-0.885-0.811-1.516-0.811
c-0.301,0-0.582,0.079-0.832,0.208c-0.989,0.515-2.165,0.819-3.432,0.819l-1.429,0.001c2.74,8.125,10.423,13.977,19.473,13.977
C150.214,379.167,156.572,375.435,160.233,369.79z"/>
</g>
<g id="black">
<g>
<path fill="#FFFFFF" d="M163.322,368.693h0.186l0.28,0.459h0.18l-0.303-0.468c0.157-0.019,0.276-0.101,0.276-0.29
c0-0.21-0.124-0.302-0.374-0.302h-0.404v1.06h0.16V368.693L163.322,368.693z M163.322,368.557v-0.329h0.219
c0.111,0,0.231,0.025,0.231,0.156c0,0.163-0.121,0.173-0.257,0.173H163.322L163.322,368.557z"/>
<path fill="#FFFFFF" d="M164.551,368.624c0,0.572-0.465,1.038-1.038,1.038c-0.573,0-1.039-0.466-1.039-1.038
c0-0.573,0.466-1.039,1.039-1.039C164.086,367.585,164.551,368.051,164.551,368.624z M163.513,367.769
c-0.472,0-0.855,0.383-0.855,0.855c0,0.471,0.383,0.852,0.855,0.852c0.471,0,0.854-0.381,0.854-0.852
C164.366,368.152,163.984,367.769,163.513,367.769z"/>
</g>
<g>
<path d="M160.233,369.792c-0.792-0.183-1.632-0.296-2.481-0.296c-1.453,0-2.775,0.252-3.751,0.657
c-0.107,0.054-0.184,0.166-0.184,0.294c0,0.046,0.012,0.095,0.029,0.133c0.115,0.334-0.074,0.697-1.018,0.904
c-1.399,0.308-2.283,1.751-2.788,2.232c-0.594,0.562-2.271,0.91-2.018,0.574c0.197-0.263,0.952-1.083,1.411-1.968
c0.411-0.791,0.776-1.017,1.28-1.771c0.147-0.222,0.72-1,0.887-1.616c0.187-0.601,0.124-1.355,0.196-1.666
c0.103-0.448,0.526-1.419,0.558-1.968c0.019-0.31-1.296,0.442-1.919,0.442s-1.23-0.373-1.788-0.4
c-0.689-0.033-1.132,0.532-1.756,0.433c-0.355-0.057-0.656-0.37-1.278-0.394c-0.886-0.033-1.969,0.493-4.003,0.427
c-2-0.064-3.849-2.528-4.101-2.919c-0.295-0.46-0.657-0.46-1.05-0.099c-0.394,0.36-0.879,0.077-1.018-0.165
c-0.262-0.459-0.963-1.802-2.05-2.083c-1.503-0.39-2.264,0.832-2.165,1.804c0.101,0.986,0.738,1.263,1.034,1.787
c0.295,0.525,0.446,0.865,1.002,1.097c0.394,0.163,0.54,0.407,0.423,0.73c-0.103,0.282-0.513,0.346-0.782,0.359
c-0.572,0.027-0.974-0.128-1.267-0.316c-0.34-0.216-0.617-0.518-0.915-1.03c-0.344-0.564-0.885-0.81-1.516-0.81
c-0.301,0-0.582,0.08-0.832,0.208c-0.989,0.514-2.165,0.819-3.432,0.819h-1.429c-0.696-2.062-1.072-4.271-1.072-6.568
c0-11.347,9.199-20.545,20.545-20.545c11.347,0,20.545,9.198,20.545,20.545C163.53,362.741,162.319,366.575,160.233,369.792z"/>
</g>
<path fill="#FFFFFF" d="M174.003,359.919c0-1.884-0.039-3.27-0.115-4.523h3.082l0.132,2.673h0.101
c0.692-1.981,2.334-2.992,3.853-2.992c0.348,0,0.55,0.013,0.834,0.077v3.353c-0.333-0.066-0.644-0.102-1.072-0.102
c-1.696,0-2.873,1.079-3.19,2.692c-0.06,0.313-0.092,0.69-0.092,1.074v7.299h-3.562L174.003,359.919z"/>
<path fill="#FFFFFF" d="M186.187,363.392c0.094,2.55,2.068,3.667,4.348,3.667c1.637,0,2.808-0.256,3.884-0.652l0.527,2.449
c-1.204,0.511-2.876,0.893-4.918,0.893c-4.571,0-7.249-2.823-7.249-7.135c0-3.885,2.356-7.561,6.884-7.561
c4.577,0,6.066,3.764,6.066,6.846c0,0.661-0.059,1.192-0.126,1.521L186.187,363.392z M192.377,360.912
c0.016-1.304-0.551-3.43-2.935-3.43c-2.191,0-3.102,1.988-3.262,3.43H192.377z"/>
<path fill="#FFFFFF" d="M207.506,363.368c0,0.373-0.026,0.721-0.108,1.038c-0.358,1.541-1.618,2.533-3.073,2.533
c-2.241,0-3.523-1.889-3.523-4.476c0-2.611,1.271-4.632,3.563-4.632c1.601,0,2.746,1.128,3.061,2.499
c0.061,0.288,0.08,0.644,0.08,0.928V363.368z M211.062,349.976l-3.557-1.003v7.939h-0.059c-0.629-1.04-2.018-1.833-3.944-1.833
c-3.385,0-6.332,2.801-6.311,7.517c0,4.327,2.662,7.193,6.023,7.193c2.031,0,3.729-0.968,4.57-2.544h0.063l0.159,2.229h3.171
c-0.065-0.957-0.117-2.507-0.117-3.948V349.976L211.062,349.976z"/>
<path fill="#FFFFFF" d="M220.474,355.062c-1.072,0-2.032,0.309-2.839,0.807c-0.838,0.491-1.519,1.248-1.925,2.032h-0.056v-6.588
l-1.394-0.412v18.57h1.394v-8.615c0-0.572,0.043-0.97,0.189-1.388c0.602-1.753,2.253-3.19,4.249-3.19
c2.884,0,3.882,2.313,3.882,4.85v8.343h1.392v-8.497C225.367,355.728,221.809,355.062,220.474,355.062z"/>
<path fill="#FFFFFF" d="M237.871,366.125c0,1.114,0.045,2.268,0.206,3.346h-1.283l-0.205-2.019h-0.066
c-0.683,1.085-2.252,2.339-4.491,2.339c-2.834,0-4.153-1.993-4.153-3.872c0-3.251,2.87-5.21,8.601-5.15v-0.376
c0-1.394-0.271-4.173-3.603-4.151c-1.233,0-2.517,0.33-3.536,1.049l-0.443-1.013c1.287-0.872,2.858-1.217,4.132-1.217
c4.065,0,4.843,3.052,4.843,5.569V366.125L237.871,366.125z M236.478,361.942c-3.067-0.088-7.118,0.376-7.118,3.759
c0,2.024,1.336,2.934,2.804,2.934c2.348,0,3.682-1.453,4.168-2.824c0.101-0.301,0.146-0.603,0.146-0.844V361.942L236.478,361.942z
"/>
<path fill="#FFFFFF" d="M243.418,352.28v3.104h4.016v1.13h-4.016v9.156c0,1.791,0.556,2.913,2.07,2.913
c0.726,0,1.239-0.095,1.6-0.221l0.169,1.079c-0.455,0.191-1.094,0.339-1.944,0.339c-1.028,0-1.88-0.324-2.431-1
c-0.638-0.74-0.856-1.922-0.856-3.359v-8.908h-2.378v-1.13h2.378v-2.59L243.418,352.28z"/>
<g>
<path fill="#FFFFFF" d="M249.194,368.722h0.185l0.279,0.458h0.181l-0.302-0.468c0.157-0.019,0.276-0.101,0.276-0.29
c0-0.21-0.125-0.302-0.375-0.302h-0.404v1.06h0.161V368.722L249.194,368.722z M249.194,368.585v-0.329h0.218
c0.11,0,0.231,0.024,0.231,0.155c0,0.163-0.121,0.173-0.258,0.173L249.194,368.585L249.194,368.585z"/>
<path fill="#FFFFFF" d="M250.423,368.651c0,0.573-0.466,1.038-1.039,1.038c-0.572,0-1.038-0.465-1.038-1.038
c0-0.573,0.467-1.038,1.038-1.038C249.958,367.613,250.423,368.078,250.423,368.651z M249.384,367.796
c-0.473,0-0.854,0.383-0.854,0.855c0,0.471,0.381,0.852,0.854,0.852c0.472,0,0.854-0.381,0.854-0.852
C250.238,368.179,249.855,367.796,249.384,367.796z"/>
</g>
<path d="M147.51,367.907c0.105,0.103,0.288,0.451,0.065,0.89c-0.125,0.233-0.259,0.397-0.5,0.589
c-0.289,0.232-0.854,0.499-1.629,0.008c-0.416-0.264-0.441-0.354-1.017-0.279c-0.411,0.054-0.574-0.36-0.427-0.706
c0.148-0.344,0.755-0.623,1.509-0.18c0.34,0.199,0.869,0.621,1.333,0.248c0.192-0.154,0.307-0.256,0.573-0.565
c0.013-0.013,0.029-0.021,0.048-0.021C147.483,367.891,147.499,367.898,147.51,367.907z"/>
</g>
<path id="red" fill="#CC0000" d="M141.386,347.861c-2.373,0.171-2.619,0.428-3.064,0.901c-0.627,0.667-1.453-0.866-1.453-0.866
c-0.495-0.104-1.096-0.903-0.772-1.649c0.319-0.738,0.909-0.516,1.094-0.287c0.225,0.28,0.705,0.737,1.328,0.721
c0.623-0.016,1.342-0.147,2.344-0.147c1.016,0,1.699,0.379,1.737,0.705C142.632,347.517,142.517,347.779,141.386,347.861z
M143.879,343.94c-0.003,0-0.007,0-0.011,0c-0.037,0-0.066-0.028-0.066-0.062c0-0.025,0.015-0.046,0.038-0.057
c0.46-0.243,1.146-0.437,1.932-0.517c0.236-0.024,0.466-0.036,0.688-0.038c0.039,0,0.078,0,0.117,0
c1.317,0.03,2.371,0.553,2.355,1.168c-0.016,0.617-1.095,1.092-2.412,1.062c-0.426-0.01-0.827-0.072-1.171-0.171
c-0.041-0.011-0.07-0.045-0.07-0.086s0.03-0.077,0.071-0.087c0.822-0.19,1.376-0.501,1.337-0.794
c-0.051-0.389-1.126-0.602-2.4-0.473C144.147,343.901,144.011,343.919,143.879,343.94z M154.579,353.157
c-0.204,0.683-0.492,1.555-1.776,2.215c-0.188,0.096-0.259-0.062-0.172-0.209c0.485-0.825,0.572-1.032,0.713-1.357
c0.197-0.477,0.301-1.154-0.092-2.567c-0.773-2.781-2.385-6.498-3.557-7.703c-1.13-1.164-3.179-1.491-5.031-1.016
c-0.683,0.175-2.016,0.869-4.491,0.312c-4.282-0.965-4.917,1.18-5.162,2.113c-0.246,0.935-0.836,3.589-0.836,3.589
c-0.197,1.082-0.454,2.962,6.195,4.229c3.098,0.589,3.255,1.39,3.392,1.966c0.247,1.032,0.639,1.623,1.082,1.918
c0.442,0.296,0,0.54-0.491,0.59c-1.319,0.137-6.195-1.261-9.08-2.9c-2.36-1.442-2.399-2.741-1.859-3.842
c-3.565-0.386-6.241,0.334-6.725,2.021c-0.833,2.896,6.367,7.844,14.566,10.327c8.604,2.605,17.454,0.786,18.438-4.622
C160.139,355.762,158.069,353.944,154.579,353.157z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.8 KiB

BIN
_images/respond.proxy.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 B

6
_javascripts/bootstrap-offcanvas.js vendored Normal file
View File

@@ -0,0 +1,6 @@
$(document).ready(function () {
$('[data-toggle="offcanvas"]').click(function () {
$('.sidebar').show();
$('.row-offcanvas').toggleClass('active');
});
});

51
_javascripts/hc-search.js Normal file
View File

@@ -0,0 +1,51 @@
function hcSearchCategory(label, version) {
// optional version filters search results for a single specific product version
// currently can be used with OCP and Origin only
var modalSearch = document.getElementById("hc-search-modal");
var searchBtn = document.getElementById("hc-search-btn");
var closeModal = document.getElementById("hc-modal-close");
var searchResults = document.getElementById("hc-search-results");
var query = document.getElementById("hc-search-input");
// pressing enter in the input = search btn click
query.addEventListener("keyup", function(event) {
event.preventDefault();
if (event.keyCode == 13) {
searchBtn.click();
}
});
//prepare iframe (without source)
var iframe = document.createElement("iframe");
iframe.frameBorder=0;
iframe.width="100%";
iframe.height=0.7*window.innerHeight;
iframe.id="search-result-iframe";
// open the modal and finalize the iframe on click
searchBtn.onclick = function() {
if (query.value) {
modalSearch.style.display = "block";
// limit search to a signle version, if specified
var urlFilter = (typeof version === "undefined" || version == "Branch Build") ? "" : (" url:*\\/" + version + "\\/*");
var iframeSrc = "https://help.openshift.com/customsearch.html?q=" +
encodeURIComponent(query.value) +
encodeURIComponent(urlFilter) +
"&l=" + encodeURIComponent(label);
iframe.setAttribute("src", iframeSrc);
searchResults.appendChild(iframe);
}
}
// hide search modal
closeModal.onclick = function() {
modalSearch.style.display = "none";
}
window.onclick = function(event) {
if (event.target == modalSearch) {
modalSearch.style.display = "none";
}
}
} // hcSearchCategory(label)

View File

@@ -0,0 +1,6 @@
$(document).ready(function () {
// Reformat all tables as Bootstrap responsive tables
$('table.tableblock').each(function(){
$(this).addClass('table').wrap("<div class='table-responsive'></div>");
});
});

View File

@@ -0,0 +1,129 @@
/*! Respond.js: min/max-width media query polyfill. Remote proxy (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */
(function(win, doc, undefined){
var docElem = doc.documentElement,
proxyURL = doc.getElementById("respond-proxy").href,
redirectURL = (doc.getElementById("respond-redirect") || location).href,
baseElem = doc.getElementsByTagName("base")[0],
urls = [],
refNode;
function encode(url){
return win.encodeURIComponent(url);
}
function fakejax( url, callback ){
var iframe,
AXO;
// All hail Google http://j.mp/iKMI19
// Behold, an iframe proxy without annoying clicky noises.
if ( "ActiveXObject" in win ) {
AXO = new ActiveXObject( "htmlfile" );
AXO.open();
AXO.write( '<iframe id="x"></iframe>' );
AXO.close();
iframe = AXO.getElementById( "x" );
} else {
iframe = doc.createElement( "iframe" );
iframe.style.cssText = "position:absolute;top:-99em";
docElem.insertBefore(iframe, docElem.firstElementChild || docElem.firstChild );
}
iframe.src = checkBaseURL(proxyURL) + "?url=" + encode(redirectURL) + "&css=" + encode(checkBaseURL(url));
function checkFrameName() {
var cssText;
try {
cssText = iframe.contentWindow.name;
}
catch (e) { }
if (cssText) {
// We've got what we need. Stop the iframe from loading further content.
iframe.src = "about:blank";
iframe.parentNode.removeChild(iframe);
iframe = null;
// Per http://j.mp/kn9EPh, not taking any chances. Flushing the ActiveXObject
if (AXO) {
AXO = null;
if (win.CollectGarbage) {
win.CollectGarbage();
}
}
callback(cssText);
}
else{
win.setTimeout(checkFrameName, 100);
}
}
win.setTimeout(checkFrameName, 500);
}
// http://stackoverflow.com/a/472729
function checkBaseURL(href) {
var el = document.createElement('div'),
escapedURL = href.split('&').join('&amp;').
split('<').join('&lt;').
split('"').join('&quot;');
el.innerHTML = '<a href="' + escapedURL + '">x</a>';
return el.firstChild.href;
}
function checkRedirectURL() {
// IE6 & IE7 don't build out absolute urls in <link /> attributes.
// So respond.proxy.gif remains relative instead of http://example.com/respond.proxy.gif.
// This trickery resolves that issue.
if (~ !redirectURL.indexOf(location.host)) {
var fakeLink = doc.createElement("div");
fakeLink.innerHTML = '<a href="' + redirectURL + '"></a>';
docElem.insertBefore(fakeLink, docElem.firstElementChild || docElem.firstChild );
// Grab the parsed URL from that dummy object
redirectURL = fakeLink.firstChild.href;
// Clean up
fakeLink.parentNode.removeChild(fakeLink);
fakeLink = null;
}
}
function buildUrls(){
var links = doc.getElementsByTagName( "link" );
for( var i = 0, linkl = links.length; i < linkl; i++ ){
var thislink = links[i],
href = links[i].href,
extreg = (/^([a-zA-Z:]*\/\/(www\.)?)/).test( href ),
ext = (baseElem && !extreg) || extreg;
//make sure it's an external stylesheet
if( thislink.rel.indexOf( "stylesheet" ) >= 0 && ext ){
(function( link ){
fakejax( href, function( css ){
link.styleSheet.rawCssText = css;
respond.update();
} );
})( thislink );
}
}
}
if( !respond.mediaQueriesSupported ){
checkRedirectURL();
buildUrls();
}
})( window, document );

27
_snippets/glusterfs.adoc Normal file
View File

@@ -0,0 +1,27 @@
////
How to use this file:
* Use `include::_snippets/glusterfs.adoc[]` to enable the variables on a given
page.
* When discussing the storage technology itself, just use "GlusterFS", e.g.
"GlusterFS volumes". It is incorrect to say, for example, "Red Hat Gluster
Storage volumes".
* When discussing the base project or product, use `{gluster}`.
* When discussing configurations of {gluster} that are managed by heketi, use
`{gluster-native}` if {gluster} is containerized and `{gluster-external}` if
it is not containerized.
////
:gluster: GlusterFS
:gluster-native: Containerized GlusterFS
:gluster-external: External GlusterFS
:gluster-install-link: https://docs.gluster.org/en/latest/Install-Guide/Overview/
:gluster-admin-link: https://docs.gluster.org/en/latest/Administrator%20Guide/overview/
:gluster-role-link: https://github.com/openshift/openshift-ansible/tree/master/roles/openshift_storage_glusterfs
ifdef::openshift-enterprise[]
:gluster: Red Hat Gluster Storage
:gluster-native: Container-Native Storage
:gluster-external: Container-Ready Storage
:gluster-install-link: https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.3/html/installation_guide/
:gluster-admin-link: https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.3/html/administration_guide/
:cns-link: https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.3/html/container-native_storage_for_openshift_container_platform/
endif::[]

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,337 @@
.masthead-docs{
background:url(../_images/commercial-masthead.png) repeat-x scroll 50% 0 / cover #60605b;
margin-top: -20px;
padding: 20px 0 80px;
}
.masthead-docs h1{
font-size: 45px; margin-bottom: 60px; color: #333;
}
.footer-openshift .powered-by {
margin-top: -22px;
}
.docs-home h2 {
color: #cc0000;
}
.docs-home .landing h2 {
margin: 25px 0 15px;
}
.docs-home .landing .list-group .list-group-item-heading {
font-size: 18px;
margin-bottom: 0;
}
.docs-home .landing .list-group .list-group-item-text {
font-weight: 300;
margin-bottom: 15px;
font-size: 16px;
line-height: inherit;
}
.masthead-docs .search-container{
float: none;
}
.landing-docs {
background-color: #F0F0EF;
}
.landing-docs .center-block {
float: none;
}
.form-control{
outline: none;
}
@media screen and (max-width: 480px) {
.masthead-docs h1 {
font-size: 37px;
}
}
/* Search Results */
.search-results table {
border: 0px solid #fff;
margin-bottom: 0;
}
.search-results .gsc-control-cse {
background-color: transparent;
border: 0;
font-family: "Open Sans", Helvetica, Arial, sans-serif;
padding: 0
}
.search-results .gsc-control-cse .gsc-tabhActive {
background-color: #e7e7e7;
border: 0;
color: #131313
}
.search-results .gsc-control-cse .gsc-tabhActive:after {
border-color: #e7e7e7 transparent;
border-style: solid;
border-width: 5px 5px 0;
bottom: -9px;
content: "";
display: block;
margin: 0 auto;
position: relative;
vertical-align: middle;
width: 0
}
.search-results .gsc-control-cse .gsc-tabhActive:hover {
text-decoration: none
}
.search-results .gsc-control-cse .gsc-table-result {
font-family: "Open Sans", Helvetica, Arial, sans-serif
}
.search-results .gsc-result-info {
color: #bdbdbd;
padding-left: 0
}
.search-results .gsc-selected-option,
.search-results .gsc-selected-option-container {
font-weight: normal;
line-height: 24px;
width: auto !important
}
.search-results .gsc-tabHeader {
font-size: 14px;
font-weight: normal;
height: auto;
line-height: 1;
margin: 0 30px 12px 0;
padding: 6px 8px 4px
}
.search-results .gsc-tabHeader:active,
.search-results .gsc-tabHeader:focus {
outline: 0
}
.search-results .gsc-tabHeader:hover {
text-decoration: underline
}
.search-results .gsc-tabsArea {
border-color: #e7e7e7;
height: auto;
margin: 24px 0 12px;
padding: 0 0 12px
}
.search-results .gsc-tabsArea>div {
height: auto
}
.search-results .gsc-webResult.gsc-result,
.search-results .gsc-results .gsc-imageResult,
.search-results .gsc-webResult.gsc-result:hover,
.search-results .gsc-imageResult:hover {
border-color: #FFFFFF;
background-color: #FFFFFF
}
.search-results .gs-webResult.gs-result a.gs-title:link,
.search-results .gs-webResult.gs-result a.gs-title:link b,
.search-results .gs-imageResult a.gs-title:link,
.search-results .gs-imageResult a.gs-title:link b {
color: #2275b4;
text-decoration: none
}
.search-results .gs-webResult.gs-result a.gs-title:visited,
.search-results .gs-webResult.gs-result a.gs-title:visited b,
.search-results .gs-imageResult a.gs-title:visited,
.search-results .gs-imageResult a.gs-title:visited b {
color: #2275b4
}
.search-results .gs-webResult.gs-result a.gs-title:hover,
.search-results .gs-webResult.gs-result a.gs-title:hover b,
.search-results .gs-imageResult a.gs-title:hover,
.search-results .gs-imageResult a.gs-title:hover b {
color: #1c6094;
text-decoration: underline
}
.search-results .gs-webResult.gs-result a.gs-title:active,
.search-results .gs-webResult.gs-result a.gs-title:active b,
.search-results .gs-imageResult a.gs-title:active,
.search-results .gs-imageResult a.gs-title:active b {
color: #2275b4
}
.search-results .gsc-cursor-page {
color: #2275b4
}
.search-results a.gsc-trailing-more-results:link {
color: #2275b4
}
.search-results .gs-webResult .gs-snippet,
.search-results .gs-imageResult .gs-snippet,
.search-results .gs-fileFormatType {
color: inherit
}
.search-results .gs-webResult div.gs-visibleUrl,
.search-results .gs-imageResult div.gs-visibleUrl {
color: #929292
}
.search-results .gs-webResult div.gs-visibleUrl-short {
color: #929292
}
.search-results .gs-webResult div.gs-visibleUrl-short {
display: none
}
.search-results .gs-webResult div.gs-visibleUrl-long {
display: block
}
.search-results .gs-promotion div.gs-visibleUrl-short {
display: none
}
.search-results .gs-promotion div.gs-visibleUrl-long {
display: block
}
.search-results .gsc-cursor-box {
border-color: #FFFFFF
}
.search-results .gsc-results .gsc-cursor-box .gsc-cursor-page {
border-color: #FFFFFF;
background-color: #FFFFFF;
color: #2275b4
}
.search-results .gsc-results .gsc-cursor-box .gsc-cursor-current-page {
border-color: #e7e7e7;
background-color: #e7e7e7;
color: #2275b4
}
.search-results .gsc-webResult.gsc-result.gsc-promotion {
border-color: #F6F6F6;
background-color: #F6F6F6
}
.search-results .gsc-completion-title {
color: #2275b4
}
.search-results .gsc-completion-snippet {
color: #333333
}
.search-results .gs-promotion a.gs-title:link,
.search-results .gs-promotion a.gs-title:link *,
.search-results .gs-promotion .gs-snippet a:link {
color: #2275b4
}
.search-results .gs-promotion a.gs-title:visited,
.search-results .gs-promotion a.gs-title:visited *,
.search-results .gs-promotion .gs-snippet a:visited {
color: #2275b4
}
.search-results .gs-promotion a.gs-title:hover,
.search-results .gs-promotion a.gs-title:hover *,
.search-results .gs-promotion .gs-snippet a:hover {
color: #2275b4
}
.search-results .gs-promotion a.gs-title:active,
.search-results .gs-promotion a.gs-title:active *,
.search-results .gs-promotion .gs-snippet a:active {
color: #2275b4
}
.search-results .gs-promotion .gs-snippet,
.search-results .gs-promotion .gs-title .gs-promotion-title-right,
.search-results .gs-promotion .gs-title .gs-promotion-title-right * {
color: #333333
}
.search-results .gs-promotion .gs-visibleUrl,
.search-results .gs-promotion .gs-visibleUrl-short {
color: #929292
}
.search-results .gsc-input input.gsc-input {
background: none repeat scroll 0% 0% white !important
}
.search-results .gsc-control-cse td {
padding: 0
}
.search-results .gsc-control-cse .gsc-above-wrapper-area {
border-bottom: 0;
color: #bdbdbd
}
.search-results .gsc-control-cse .gsc-above-wrapper-area-container td,
.search-results .gsc-control-cse .gsc-resultsHeader td,
.search-results .gsc-control-cse .gsc-table-result td {
border-color: #fff
}
.search-results .gsc-control-cse .gsc-table-result,
.search-results .gsc-control-cse .gsc-thumbnail-inside,
.search-results .gsc-control-cse .gsc-url-top {
padding-left: 0;
padding-right: 0
}
.search-results .gsc-control-cse .gsc-webResult .gsc-result {
padding: 10px 0 10px 0
}
.search-results .gsc-control-cse table.gsc-table-result {
border-collapse: initial
}
.search-results .gsc-control-cse .gs-result a.gs-visibleUrl,
.search-results .gsc-control-cse .gs-result .gs-visibleUrl {
font-size: 12px;
padding-top: 4px
}
.search-results .gsc-control-cse div.gs-title {
height: auto;
overflow: visible;
text-decoration: none
}
.search-results .gsc-control-cse .gs-snippet {
font-size: 13px
}
.search-results .gsc-completion-container span {
font-family: "Open Sans", Helvetica, Arial, sans-serif;
font-size: 18px;
line-height: 2;
padding: 0 16px
}
.search-results .gsc-control-cse .gs-spelling,
.search-results .gsc-control-cse .gs-result .gs-title,
.search-results .gsc-control-cse .gs-result .gs-title * {
font-size: 18px;
font-weight: 300
}
.search-results .gs-per-result-labels {
color: #929292;
font-size: 12px;
margin-top: 4px
}
.search-results .gs-webResult div.gs-per-result-labels a.gs-label {
color: #787878
}
.search-results .gsc-results .gsc-cursor-box {
margin: 30px 0 0
}
.search-results .gsc-results .gsc-cursor-box>.gsc-cursor>.gsc-cursor-page {
position: relative;
float: left;
padding: 6px 12px;
line-height: 1.428571429;
text-decoration: none;
color: #2275b4;
background-color: white;
border: 1px solid #dddddd;
margin: 0 0 0 -1px
}
.search-results .gsc-results .gsc-cursor-box>.gsc-cursor>.gsc-cursor-page:first-child {
margin-left: 0;
border-bottom-left-radius: 4px;
border-top-left-radius: 4px
}
.search-results .gsc-results .gsc-cursor-box>.gsc-cursor>.gsc-cursor-page:hover,
.search-results .gsc-results .gsc-cursor-box>.gsc-cursor>.gsc-cursor-page:focus {
color: #1c6094;
background-color: #e7e7e7;
border-color: #dddddd
}
.search-results .gsc-results .gsc-cursor-box>.gsc-cursor>.gsc-cursor-page:last-child {
border-bottom-right-radius: 4px;
border-top-right-radius: 4px
}
.search-results .gsc-results .gsc-cursor-box>.gsc-cursor>.gsc-cursor-current-page,
.search-results .gsc-results .gsc-cursor-box>.gsc-cursor>.gsc-cursor-current-page:hover,
.search-results .gsc-results .gsc-cursor-box>.gsc-cursor>.gsc-cursor-current-page:focus {
z-index: 2;
color: white;
background-color: #337ab7;
border-color: #337ab7;
cursor: default
}

View File

@@ -0,0 +1,173 @@
/*
* Globals
*/
/* Links */
a,
a:focus,
a:hover {
color: #fff;
}
/* Custom default button */
.btn-default,
.btn-default:hover,
.btn-default:focus {
color: #333;
text-shadow: none; /* Prevent inheritence from `body` */
background-color: #fff;
border: 1px solid #fff;
}
.dropdown-menu {
text-shadow: none; /* Prevent inheritence from `body` */
}
/*
* Base structure
*/
html,
body {
height: 100%;
background-color: #1f3447;
}
body {
color: #fff;
text-align: center;
text-shadow: 0 1px 3px rgba(0,0,0,.5);
margin-bottom: 0px;
}
h1 {
color: #fff;
font-size: 36px;
}
.lead{
color: #fff;
}
/* Extra markup and styles for table-esque vertical and horizontal centering */
.site-wrapper {
display: table;
width: 100%;
height: 100%; /* For at least Firefox */
min-height: 100%;
-webkit-box-shadow: inset 0 0 100px rgba(0,0,0,.5);
box-shadow: inset 0 0 100px rgba(0,0,0,.5);
}
.site-wrapper-inner {
display: table-cell;
vertical-align: top;
}
.cover-container {
margin-right: auto;
margin-left: auto;
}
/* Padding for spacing */
.inner {
padding: 30px;
}
/*
* Header
*/
.masthead-brand {
margin-top: 10px;
margin-bottom: 10px;
}
.masthead-nav > li {
display: inline-block;
}
.masthead-nav > li + li {
margin-left: 20px;
}
.masthead-nav > li > a {
padding-right: 0;
padding-left: 0;
font-size: 16px;
font-weight: bold;
color: #fff; /* IE8 proofing */
border-bottom: 2px solid transparent;
}
.masthead-nav > li > a:hover,
.masthead-nav > li > a:focus {
background-color: transparent;
border-bottom-color: #a9a9a9;
border-bottom-color: rgba(255,255,255,.25);
}
.masthead-nav > .active > a,
.masthead-nav > .active > a:hover,
.masthead-nav > .active > a:focus {
color: #fff;
border-bottom-color: #fff;
}
@media (min-width: 768px) {
.masthead-brand {
float: left;
}
.masthead-nav {
float: right;
}
}
/*
* Cover
*/
.cover {
padding: 0 20px;
}
.cover .btn-lg {
padding: 10px 20px;
font-weight: bold;
}
/*
* Footer
*/
.mastfoot {
color: #999; /* IE8 proofing */
color: rgba(255,255,255,.5);
}
/*
* Affix and center
*/
@media (min-width: 768px) {
/* Pull out the header and footer */
.masthead {
position: fixed;
top: 0;
}
.mastfoot {
position: fixed;
bottom: 0;
}
/* Start the vertical centering */
.site-wrapper-inner {
vertical-align: middle;
}
/* Handle the widths */
.masthead,
.mastfoot,
.cover-container {
width: 100%; /* Must be percentage or pixels for horizontal alignment */
}
}
@media (min-width: 992px) {
.masthead,
.mastfoot,
.cover-container {
width: 700px;
}
}

709
_stylesheets/docs.css Normal file
View File

@@ -0,0 +1,709 @@
nav#main {
margin-bottom: 15px;
}
.navbar.navbar-default.navbar-openshift.navbar-origin {
background:
linear-gradient(
rgba(0, 61, 110, 0.34),
rgba(0, 61, 110, 0.34)
),
url("../_images/origin-masthead.jpg") 20% 25% repeat-x;
background-size: 150rem;
border: 0;
height: 90px;
}
.navbar.navbar-default.navbar-openshift .navbar-brand.origin {
background: url("../_images/origin_logo.png") no-repeat scroll 0% 95%;
background-size: 140px;
margin-left: 20px;
}
/* Tweaks for the Google-generated search widget */
.cse .gsc-control-cse, .gsc-control-cse, table.gsc-search-box td.gsc-input {
padding: 0;
}
td.gsc-clear-button {
display: none;
}
div.gsc-option-menu-container > div.gsc-selected-option-container {
width: auto !important
}
/* ------------------------------------------------------------
Image: "Spin" https://www.flickr.com/photos/eflon/3655695161/
Author: eflon https://www.flickr.com/photos/eflon/
License: https://creativecommons.org/licenses/by/2.0/
---------------------------------------------------------------*/
.attribution {
text-align: center;
position: relative;
bottom: -20px;
}
.attribution .btn {
color: #808080;
color: rgba(175,175,175, .65);
font-size: 11px;
}
.attribution .btn:hover {
text-decoration: none;
color: #aaa;
}
.popover-content {
font-size: 12px;
line-height: 1.3;
font-weight: normal;
}
/* Footer Edits 12/11/2015 */
@media screen and (max-width: 768px) {
.footer-openshift {
height: 190px;
}
}
.footer-openshift a {
top: 0;
margin-left: 0;
}
.footer-origin-docs {
padding: 20px;
color: #ccc;
background-color: #1b2a38;
border: none;
height: auto;
position: absolute;
width: 100%;
bottom: 0;
}
.footer-origin-docs a {
text-decoration: none;
}
#footer_social {
text-align: center;
margin: 10px 0 20px;
}
#footer_social a {
margin: 0 10px;
}
#footer_logo {
margin-left: 0;
}
#powered_by_openshift img {
text-align: center;
}
#built_with_asciibinder img {
width: 140px;
}
@media screen and (min-width: 769px) {
body {
margin-bottom: 200px;
}
}
@media screen and (max-width: 768px) {
body, html {
overflow-x: hidden;
height: 100%;
margin-bottom: 0;
}
.sidebar {
border-right: 1px solid #e7e7e7;
background: #fff;
}
.footer-origin-docs,
.footer-openshift {
display: none; /* hide absolute positioned footer at mobile */
}
.visible-xs-block .footer-origin-docs,
.visible-xs-block .footer-openshift {
/* show alternate footer positioned relative at mobile */
display: block;
position: relative;
margin-top: 50px;
}
footer {
text-align: center;
}
footer img {
margin: 10px 0;
}
footer .text-right {
text-align: center !important;
}
#footer_social > a {
top: 24px;
}
}
/* End footer edits */
.fa-inverse:hover {
color: #ccc;
}
.breadcrumb {
margin: 0;
padding: 3px 0 20px;
}
@media screen and (min-width: 768px) {
.breadcrumb {
border-bottom: 1px solid #e7e7e7;
padding-top: 0;
}
}
.collapse a.active {
background-color: #DEEAF4;
color: #000;
position: relative;
}
.collapse a.active:hover {
text-decoration: none;
}
.collapse a.active:before {
background-color: #A0C3E5;
content: "";
display: inline-block;
height: 100%;
left: 0;
position: absolute;
top: 0;
width: 3px;
}
.main h2, .main .h2 {
border-top: 0px;
padding-top: 10px;
}
.page-header {
height: 100% !important;
}
.page-header h1 {
font-size: 28px;
font-weight: 300;
letter-spacing: inherit;
color: inherit;
margin: 40px 0 10px 0;
padding: 10px 0 0 0;
}
.ulist p,
.olist p {
margin-bottom: 1em;
}
.nav > li > a.hover{
background-color: none;
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
position: relative;
}
h2 > a.anchor, h3 > a.anchor, h4 > a.anchor, h5 > a.anchor, h6 > a.anchor {
display: block;
font-weight: normal;
margin-left: -1.5ex;
position: absolute;
text-align: center;
text-decoration: none !important;
visibility: hidden;
width: 1.5ex;
z-index: 1001;
}
h2 > a.anchor:before, h3 > a.anchor:before, h4 > a.anchor:before, h5 > a.anchor:before, h6 > a.anchor:before {
content: "\f0c1";
display: block;
font-family: FontAwesome;
font-size: 0.7em;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
padding-top: 0.2em;
}
h4 > a.anchor:before, h5 > a.anchor:before, h6 > a.anchor:before {
font-size: 1em;
}
h2:hover > a.anchor,
h2 > a.anchor:hover,
h3:hover > a.anchor,
h3 > a.anchor:hover,
h4:hover > a.anchor,
h4 > a.anchor:hover,
h5:hover > a.anchor,
h5 > a.anchor:hover,
h6:hover > a.anchor,
h6 > a.anchor:hover {
visibility: visible;
}
.main {
border-left: 1px solid #e7e7e7;
margin-left: -1px;
padding-left: 25px;
}
@media (min-width: 768px) {
.main {
padding-left: 30px;
}
}
/*
* Sidebar
*/
.nav-header {
font-size: 16px;
}
.nav-header ul {
font-size: 14px;
}
.nav-header ul li a {
display: block;
padding: 5px 20px 5px 25px;
font-size: 13px;
font-weight: normal;
}
.nav-sidebar .fa {
text-align: center;
top: -1px;
width: 14px;
}
.nav-sidebar li a {
color: inherit;
}
.nav-sidebar li a:hover {
color: #000;
}
.nav-sidebar ul li ul.nav-tertiary li a {
padding-left: 50px;
}
.nav-sidebar > li > a {
padding: 7px 0;
}
.nav-sidebar > li > a:focus, .nav-sidebar > li > a:hover {
background: transparent;
}
.sidebar {
font-weight: 300;
display: none;
padding-top: 13px;
}
@media screen and (max-width: 767px) {
.sidebar {
padding-left: 30px;
padding-right: 0;
}
}
@media screen and (min-width: 768px) {
.sidebar {
border-right: 1px solid #e7e7e7;
display: block;
}
}
/*
* Off Canvas
* --------------------------------------------------
*/
body, html {
overflow-x: hidden; /* Prevent scroll on narrow devices */
}
.toggle-nav {
margin-right: 20px;
}
@media screen and (max-width: 767px) {
.row-offcanvas {
position: relative;
-webkit-transition: all .25s ease-out;
-o-transition: all .25s ease-out;
transition: all .25s ease-out;
}
.row-offcanvas-right {
right: 0;
}
.row-offcanvas-left {
left: 0;
}
.row-offcanvas-right
.sidebar-offcanvas {
right: -75%; /* 8 columns */
}
.row-offcanvas-left
.sidebar-offcanvas {
left: -75%; /* 8 columns */
}
.row-offcanvas-right.active {
right: 75%; /* 8 columns */
}
.row-offcanvas-left.active {
left: 75%; /* 8 columns */
}
.sidebar-offcanvas {
overflow: hidden;
position: absolute;
top: 0;
width: 75%; /* 8 columns */
}
}
p {
margin: 0 0 1.6em;
}
/* for code lines inside tables*/
table > tbody > tr > td> p > code {
white-space: pre-wrap;
word-wrap: break-word;
}
/* for codeblocks inside tables*/
table > tbody > tr > td > div > div > div > pre {
white-space: pre-wrap;
}
/* for column code lines inside tables*/
table > tbody > tr > td > div > div > p > code {
white-space: pre-wrap;
word-wrap: break-word;
}
/* Remnants of Asciidoctor default stylesheet - remove styles as needed */
#map_canvas img, #map_canvas embed, #map_canvas object, .map_canvas img, .map_canvas embed, .map_canvas object { max-width: none !important; }
.left { float: left !important; }
.right { float: right !important; }
.text-left { text-align: left !important; }
.text-right { text-align: right !important; }
.text-center { text-align: center !important; }
.text-justify { text-align: justify !important; }
.hide { display: none; }
.subheader, #content #toctitle, .admonitionblock td.content > .title, .audioblock > .title, .exampleblock > .title, .imageblock > .title, .listingblock > .title, .literalblock > .title, .stemblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, table.tableblock > .title, .verseblock > .title, .videoblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { line-height: 1.4; color: #7a2518; font-weight: 300; margin-top: 0.2em; margin-bottom: 0.5em; }
abbr, acronym { text-transform: uppercase; font-size: 90%; color: #333333; border-bottom: 1px dotted #dddddd; cursor: help; }
abbr { text-transform: none; }
blockquote { margin: 0 0 1.25em; padding: 0.5625em 1.25em 0 1.1875em; border-left: 3px solid #487c58; }
blockquote cite { display: block; font-size: inherit; color: #454545; }
blockquote cite:before { content: "\2014 \0020"; }
blockquote cite a, blockquote cite a:visited { color: #454545; }
blockquote, blockquote p { line-height: 1.6; color: #6e6e6e; }
@media only screen and (min-width: 768px) {
#toctitle, .sidebarblock > .content > .title { line-height: 1.4; }
#toctitle, .sidebarblock > .content > .title { font-size: 1.6875em; }
}
table { background: white; margin-bottom: 1.25em; border: solid 1px #dddddd; font-size: small; }
table thead, table tfoot { background: whitesmoke; font-weight: bold; }
table thead tr th, table thead tr td, table tfoot tr th, table tfoot tr td { padding: 0.5em 0.625em 0.625em; font-size: inherit; color: #333333; text-align: left; }
table tr th, table tr td { padding: 0.5625em 0.625em; font-size: inherit; color: #333333; }
table tr.even, table tr.alt, table tr:nth-of-type(even) { background: #f9f9f9; }
table thead tr th, table tfoot tr th, table tbody tr td, table tr td, table tfoot tr td { display: table-cell; line-height: 1.6; }
.clearfix:before, .clearfix:after, .float-group:before, .float-group:after { content: " "; display: table; }
.clearfix:after, .float-group:after { clear: both; }
*:not(pre) > code { font-size: inherit; padding: 0; white-space: nowrap; background-color: #e7e7e7; border: 0 solid #dddddd; -webkit-border-radius: 0px; border-radius: 0px; text-shadow: none; line-height: 1; }
pre code { text-shadow: none; }
.keyseq { color: #666666; }
kbd:not(.keyseq) { display: inline-block; color: #333333; font-size: 0.75em; line-height: 1.4; background-color: #f7f7f7; border: 1px solid #ccc; -webkit-border-radius: 3px; border-radius: 3px; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; margin: -0.15em 0.15em 0 0.15em; padding: 0.2em 0.6em 0.2em 0.5em; vertical-align: middle; white-space: nowrap; }
.keyseq kbd:first-child { margin-left: 0; }
.keyseq kbd:last-child { margin-right: 0; }
.menuseq, .menu { color: #1a1a1a; }
b.button:before, b.button:after { position: relative; top: -1px; font-weight: normal; }
b.button:before { content: "["; padding: 0 3px 0 2px; }
b.button:after { content: "]"; padding: 0 2px 0 3px; }
p a > code:hover { color: #561309; }
#header, #content, #footnotes, #footer { width: 100%; margin-left: auto; margin-right: auto; margin-top: 0; margin-bottom: 0; max-width: 62.5em; *zoom: 1; position: relative; padding-left: 0.9375em; padding-right: 0.9375em; }
#header:before, #header:after, #content:before, #content:after, #footnotes:before, #footnotes:after, #footer:before, #footer:after { content: " "; display: table; }
#header:after, #content:after, #footnotes:after, #footer:after { clear: both; }
#content:before { content: none; }
#header { margin-bottom: 2.5em; }
#header > h1 { color: black; font-weight: 300; border-bottom: 1px solid #d8d8d8; margin-bottom: -28px; padding-bottom: 32px; }
#header span { color: #6e6e6e; }
#header #revnumber { text-transform: capitalize; }
#header br { display: none; }
#header br + span { padding-left: 3px; }
#header br + span:before { content: "\2013 \0020"; }
#header br + span.author { padding-left: 0; }
#header br + span.author:before { content: ", "; }
#toc { border-bottom: 3px double #e5e5e5; padding-top: 1em; padding-bottom: 1.25em; }
#toc > ul { margin-left: 0.25em; }
#toc ul.sectlevel0 > li > a { font-style: italic; }
#toc ul.sectlevel0 ul.sectlevel1 { margin-left: 0; margin-top: 0.5em; margin-bottom: 0.5em; }
#toc ul { font-family: "Open Sans", "DejaVu Sans", "Sans", sans-serif; list-style-type: none; }
#toc a { text-decoration: none; }
#toc a:active { text-decoration: underline; }
#toctitle { color: #7a2518; }
@media only screen and (min-width: 768px) { body.toc2 { padding-left: 15em; padding-right: 0; }
#toc.toc2 { background-color: #fafaf9; position: fixed; width: 15em; left: 0; top: 0; border-right: 1px solid #e5e5e5; border-bottom: 0; z-index: 1000; padding: 1.25em 1em; height: 100%; overflow: auto; }
#toc.toc2 #toctitle { margin-top: 0; font-size: 1.2em; }
#toc.toc2 > ul { font-size: .90em; margin-bottom: 0; }
#toc.toc2 ul ul { margin-left: 0; padding-left: 1em; }
#toc.toc2 ul.sectlevel0 ul.sectlevel1 { padding-left: 0; margin-top: 0.5em; margin-bottom: 0.5em; }
body.toc2.toc-right { padding-left: 0; padding-right: 15em; }
body.toc2.toc-right #toc.toc2 { border-right: 0; border-left: 1px solid #e5e5e5; left: auto; right: 0; } }
@media only screen and (min-width: 1280px) { body.toc2 { padding-left: 20em; padding-right: 0; }
#toc.toc2 { width: 20em; }
#toc.toc2 #toctitle { font-size: 1.375em; }
#toc.toc2 > ul { font-size: 0.95em; }
#toc.toc2 ul ul { padding-left: 1.25em; }
body.toc2.toc-right { padding-left: 0; padding-right: 20em; } }
#content #toc { border-style: solid; border-width: 1px; border-color: #e3e3dd; margin-bottom: 1.25em; padding: 1.25em; background: #fafaf9; border-width: 0; -webkit-border-radius: 4px; border-radius: 4px; }
#content #toc > :first-child { margin-top: 0; }
#content #toc > :last-child { margin-bottom: 0; }
#content #toctitle { font-size: 1.375em; }
#footer { max-width: 100%; background-color: #333333; padding: 1.25em; }
#footer-text { color: #cccccc; line-height: 1.44; }
.audioblock, .imageblock, .literalblock, .listingblock, .stemblock, .verseblock, .videoblock { margin-bottom: 2.5em; }
.admonitionblock td.content > .title, .audioblock > .title, .exampleblock > .title, .imageblock > .title, .listingblock > .title, .literalblock > .title, .stemblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, table.tableblock > .title, .verseblock > .title, .videoblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { text-rendering: optimizeLegibility; text-align: left; font-family: "Noto Serif", "DejaVu Serif", "Serif", serif; font-weight: normal; font-style: italic; }
table.tableblock > caption.title { white-space: nowrap; overflow: visible; max-width: 0; }
table.tableblock #preamble > .sectionbody > .paragraph:first-of-type p { font-size: inherit; }
.admonitionblock > table { border: 0; background: none; width: 100%; }
.admonitionblock > table td.icon { text-align: center; width: 80px; }
.admonitionblock > table td.icon img { max-width: none; }
.admonitionblock > table td.icon .title { font-weight: 300; text-transform: uppercase; }
.admonitionblock > table td.content { padding-left: 0; padding-right: 1.25em; color: #6e6e6e; }
.admonitionblock > table td.content > :last-child > :last-child { margin-bottom: 0; }
.exampleblock > .content { border-style: solid; border-width: 1px; border-color: #e6e6e6; margin-bottom: 1.25em; padding: 1.25em; background: white; -webkit-border-radius: 4px; border-radius: 4px; }
.exampleblock > .content > :first-child { margin-top: 0; }
.exampleblock > .content > :last-child { margin-bottom: 0; }
.exampleblock > .content h1, .exampleblock > .content h2, .exampleblock > .content h3, .exampleblock > .content #toctitle, .sidebarblock.exampleblock > .content > .title, .exampleblock > .content h4, .exampleblock > .content h5, .exampleblock > .content h6, .exampleblock > .content p { color: #333333; }
.exampleblock > .content h1, .exampleblock > .content h2, .exampleblock > .content h3, .exampleblock > .content #toctitle, .sidebarblock.exampleblock > .content > .title, .exampleblock > .content h4, .exampleblock > .content h5, .exampleblock > .content h6 { line-height: 1; margin-bottom: 0.625em; }
.exampleblock > .content h1.subheader, .exampleblock > .content h2.subheader, .exampleblock > .content h3.subheader, .exampleblock > .content .subheader#toctitle, .sidebarblock.exampleblock > .content > .subheader.title, .exampleblock > .content h4.subheader, .exampleblock > .content h5.subheader, .exampleblock > .content h6.subheader { line-height: 1.4; }
.exampleblock.result > .content { -webkit-box-shadow: 0 1px 8px #e3e3dd; box-shadow: 0 1px 8px #e3e3dd; }
.sidebarblock { border-style: solid; border-width: 1px; border-color: #e3e3dd; margin-top: -1.0em; margin-bottom: 1.6em; padding: .5em; background: #F1F3F5; -webkit-border-radius: 4px; border-radius: 4px; overflow-x: auto; }
.sidebarblock > :first-child { margin-top: 0; }
.sidebarblock > :last-child { margin-bottom: 0; }
.sidebarblock h1, .sidebarblock h2, .sidebarblock h3, .sidebarblock #toctitle, .sidebarblock > .content > .title, .sidebarblock h4, .sidebarblock h5, .sidebarblock h6, .sidebarblock p { color: #333333; }
.sidebarblock h1, .sidebarblock h2, .sidebarblock h3, .sidebarblock #toctitle, .sidebarblock > .content > .title, .sidebarblock h4, .sidebarblock h5, .sidebarblock h6 { line-height: 1; margin-bottom: 0.625em; }
.sidebarblock h1.subheader, .sidebarblock h2.subheader, .sidebarblock h3.subheader, .sidebarblock .subheader#toctitle, .sidebarblock > .content > .subheader.title, .sidebarblock h4.subheader, .sidebarblock h5.subheader, .sidebarblock h6.subheader { line-height: 1.4; }
.sidebarblock > .content > .title { color: #7a2518; margin-top: 0; line-height: 1.6; }
.exampleblock > .content > :last-child > :last-child, .exampleblock > .content .olist > ol > li:last-child > :last-child, .exampleblock > .content .ulist > ul > li:last-child > :last-child, .exampleblock > .content .qlist > ol > li:last-child > :last-child, .sidebarblock > .content > :last-child > :last-child, .sidebarblock > .content .olist > ol > li:last-child > :last-child, .sidebarblock > .content .ulist > ul > li:last-child > :last-child, .sidebarblock > .content .qlist > ol > li:last-child > :last-child { margin-bottom: 0; }
.literalblock pre, .literalblock pre[class], .listingblock pre, .listingblock pre[class] { border: 0px; background-color: #e7e7e7; -webkit-border-radius: 0px; border-radius: 0px; padding: 1.5em 2.5em; word-wrap: break-word; color: #404040; font-family: "Roboto Mono", monospace; }
.literalblock pre.nowrap, .literalblock pre[class].nowrap, .listingblock pre.nowrap, .listingblock pre[class].nowrap { overflow-x: auto; white-space: pre; word-wrap: normal; }
.literalblock pre > code, .literalblock pre[class] > code, .listingblock pre > code, .listingblock pre[class] > code { display: block; }
.listingblock > .content { position: relative; }
.listingblock:hover code[class*=" language-"]:before { text-transform: uppercase; font-size: 0.9em; color: #999; position: absolute; top: 0.375em; right: 0.375em; }
.listingblock:hover code.asciidoc:before { content: "asciidoc"; }
.listingblock:hover code.clojure:before { content: "clojure"; }
.listingblock:hover code.css:before { content: "css"; }
.listingblock:hover code.go:before { content: "go"; }
.listingblock:hover code.groovy:before { content: "groovy"; }
.listingblock:hover code.html:before { content: "html"; }
.listingblock:hover code.java:before { content: "java"; }
.listingblock:hover code.javascript:before { content: "javascript"; }
.listingblock:hover code.python:before { content: "python"; }
.listingblock:hover code.ruby:before { content: "ruby"; }
.listingblock:hover code.sass:before { content: "sass"; }
.listingblock:hover code.scss:before { content: "scss"; }
.listingblock:hover code.xml:before { content: "xml"; }
.listingblock:hover code.yaml:before { content: "yaml"; }
.listingblock.terminal pre .command:before { content: attr(data-prompt); padding-right: 0.5em; color: #999; }
.listingblock.terminal pre .command:not([data-prompt]):before { content: '$'; }
table.pyhltable { border: 0; margin-bottom: 0; }
table.pyhltable td { vertical-align: top; padding-top: 0; padding-bottom: 0; }
table.pyhltable td.code { padding-left: .75em; padding-right: 0; }
.highlight.pygments .lineno, table.pyhltable td:not(.code) { color: #999; padding-left: 0; padding-right: .5em; border-right: 1px solid #d8d8d8; }
.highlight.pygments .lineno { display: inline-block; margin-right: .25em; }
table.pyhltable .linenodiv { background-color: transparent !important; padding-right: 0 !important; }
.quoteblock { margin: 0 0 1.25em 0; padding: 0.5625em 1.25em 0 1.1875em; border-left: 3px solid #487c58; }
.quoteblock blockquote { margin: 0 0 1.25em 0; padding: 0 0 0.625em 0; border: 0; }
.quoteblock blockquote > .paragraph:last-child p { margin-bottom: 0; }
.quoteblock .attribution { margin-top: -0.625em; padding-bottom: 0.625em; font-size: inherit; color: #454545; line-height: 1.6; }
.quoteblock .attribution br { display: none; }
.quoteblock .attribution cite { display: block; }
table.tableblock { max-width: 100%; }
table.tableblock td .paragraph:last-child p > p:last-child, table.tableblock th > p:last-child, table.tableblock td > p:last-child { margin-bottom: 0; }
/*for fixing table width 100%*/
table.spread { table-layout: fixed; }
table.tableblock, th.tableblock, td.tableblock { border: 0 solid #dddddd; }
table.grid-all th.tableblock, table.grid-all td.tableblock { border-width: 0 1px 1px 0; }
table.grid-all tfoot > tr > th.tableblock, table.grid-all tfoot > tr > td.tableblock { border-width: 1px 1px 0 0; }
table.grid-cols th.tableblock, table.grid-cols td.tableblock { border-width: 0 1px 0 0; }
table.grid-all * > tr > .tableblock:last-child, table.grid-cols * > tr > .tableblock:last-child { border-right-width: 0; }
table.grid-rows th.tableblock, table.grid-rows td.tableblock { border-width: 0 0 1px 0; }
table.grid-all tbody > tr:last-child > th.tableblock, table.grid-all tbody > tr:last-child > td.tableblock, table.grid-all thead:last-child > tr > th.tableblock, table.grid-rows tbody > tr:last-child > th.tableblock, table.grid-rows tbody > tr:last-child > td.tableblock, table.grid-rows thead:last-child > tr > th.tableblock { border-bottom-width: 0; }
table.grid-rows tfoot > tr > th.tableblock, table.grid-rows tfoot > tr > td.tableblock { border-width: 1px 0 0 0; }
table.frame-all { border-width: 1px; }
table.frame-sides { border-width: 0 1px; }
table.frame-topbot { border-width: 1px 0; }
table.tableblock th.halign-left, table.tableblock td.halign-left { text-align: left; }
table.tableblock th.halign-right, table.tableblock td.halign-right { text-align: right; }
table.tableblock th.halign-center, table.tableblock td.halign-center { text-align: center; }
table.tableblock th.valign-top, table.tableblock td.valign-top { vertical-align: top; }
table.tableblock th.valign-bottom, table.tableblock td.valign-bottom { vertical-align: bottom; }
table.tableblock th.valign-middle, table.tableblock td.valign-middle { vertical-align: middle; }
table thead th, table tfoot th { font-weight: bold; }
tbody tr th { display: table-cell; line-height: 1.6; background: whitesmoke; }
tbody tr th, tbody tr th p, tfoot tr th, tfoot tr th p { color: #333333; font-weight: bold; }
td > div.verse { white-space: pre; }
ul.unstyled, ol.unnumbered, ul.checklist, ul.none { list-style-type: none; }
ul.unstyled, ol.unnumbered, ul.checklist { margin-left: 0.625em; }
ul.checklist li > p:first-child > .fa-check-square-o:first-child, ul.checklist li > p:first-child > input[type="checkbox"]:first-child { margin-right: 0.25em; }
ul.checklist li > p:first-child > input[type="checkbox"]:first-child { position: relative; top: 1px; }
ul.inline { margin: 0 auto 0.625em auto; margin-left: -1.375em; margin-right: 0; padding: 0; list-style: none; overflow: hidden; }
ul.inline > li { list-style: none; float: left; margin-left: 1.375em; display: block; }
ul.inline > li > * { display: block; }
.unstyled dl dt { font-weight: normal; font-style: normal; }
ol.arabic { list-style-type: decimal; }
ol.decimal { list-style-type: decimal-leading-zero; }
ol.loweralpha { list-style-type: lower-alpha; }
ol.upperalpha { list-style-type: upper-alpha; }
ol.lowerroman { list-style-type: lower-roman; }
ol.upperroman { list-style-type: upper-roman; }
ol.lowergreek { list-style-type: lower-greek; }
.hdlist > table, .colist > table { border: 0; background: none; }
.hdlist > table > tbody > tr, .colist > table > tbody > tr { background: none; }
td.hdlist1 { padding-right: .75em; font-weight: bold; }
td.hdlist1, td.hdlist2 { vertical-align: top; }
.literalblock + .colist, .listingblock + .colist { margin-top: -0.5em; }
.colist > table tr > td:first-of-type { padding: 0 .75em; line-height: 1; vertical-align: top}
.colist > table tr > td:last-of-type { padding: 0 0 1em 0; }
.qanda > ol > li > p > em:only-child { color: #1d4b8f; }
.thumb, .th { line-height: 0; display: inline-block; border: solid 4px white; -webkit-box-shadow: 0 0 0 1px #dddddd; box-shadow: 0 0 0 1px #dddddd; }
.imageblock.left, .imageblock[style*="float: left"] { margin: 0.25em 0.625em 1.25em 0; }
.imageblock.right, .imageblock[style*="float: right"] { margin: 0.25em 0 1.25em 0.625em; }
.imageblock > .title { margin-bottom: 0; }
.imageblock.thumb, .imageblock.th { border-width: 6px; }
.imageblock.thumb > .title, .imageblock.th > .title { padding: 0 0.125em; }
.image.left, .image.right { margin-top: 0.25em; margin-bottom: 0.25em; display: inline-block; line-height: 0; }
.image.left { margin-right: 0.625em; }
.image.right { margin-left: 0.625em; }
a.image { text-decoration: none; }
span.footnote, span.footnoteref { vertical-align: super; font-size: 0.875em; }
span.footnote a, span.footnoteref a { text-decoration: none; }
span.footnote a:active, span.footnoteref a:active { text-decoration: underline; }
#footnotes { padding-top: 0.75em; padding-bottom: 0.75em; margin-bottom: 0.625em; }
#footnotes hr { width: 20%; min-width: 6.25em; margin: -.25em 0 .75em 0; border-width: 1px 0 0 0; }
#footnotes .footnote { padding: 0 0.375em; line-height: 1.3; font-size: 0.875em; margin-left: 1.2em; text-indent: -1.2em; margin-bottom: .2em; }
#footnotes .footnote a:first-of-type { font-weight: bold; text-decoration: none; }
#footnotes .footnote:last-of-type { margin-bottom: 0; }
#content #footnotes { margin-top: -0.625em; margin-bottom: 0; padding: 0.75em 0; }
.gist .file-data > table { border: none; background: #fff; width: 100%; margin-bottom: 0; }
.gist .file-data > table td.line-data { width: 99%; }
div.unbreakable { page-break-inside: avoid; }
code { color: #404040; background-color: #e7e7e7; font-weight: bold; font-family: "Roboto Mono", monospace;}
h5 { color: #404040; }
strong { color: #404040; font-weight: bold; font-family: "Roboto Mono", monospace; }
a strong { color: inherit; }
a code { color: inherit; }
.replaceable { font-style: italic; font-color: inherit; font-family: inherit; }
.parameter { font-style: italic; font-family: monospace; }
.userinput { font-weight: bold; font-family: monospace; }
.envar { font-weight: bold; font-family: monospace; font-size: 90%; }
.sysitem { font-weight: bold; font-size: 90%; }
.package { font-weight: bold; font-size: 90%; }
.filename { font-weight: bold; font-style: italic; font-size: 90%; }
.big { font-size: larger; }
.small { font-size: smaller; }
.underline { text-decoration: underline; }
.overline { text-decoration: overline; }
.line-through { text-decoration: line-through; }
.aqua { color: #00bfbf; }
.aqua-background { background-color: #00fafa; }
.black { color: black; }
.black-background { background-color: black; }
.blue { color: #0000bf; }
.blue-background { background-color: #0000fa; }
.fuchsia { color: #bf00bf; }
.fuchsia-background { background-color: #fa00fa; }
.gray { color: #606060; }
.gray-background { background-color: #7d7d7d; }
.green { color: #006000; }
.green-background { background-color: #007d00; }
.lime { color: #00bf00; }
.lime-background { background-color: #00fa00; }
.maroon { color: #600000; }
.maroon-background { background-color: #7d0000; }
.navy { color: #000060; }
.navy-background { background-color: #00007d; }
.olive { color: #606000; }
.olive-background { background-color: #7d7d00; }
.purple { color: #600060; }
.purple-background { background-color: #7d007d; }
.red { color: #bf0000; }
.red-background { background-color: #fa0000; }
.silver { color: #909090; }
.silver-background { background-color: #bcbcbc; }
.teal { color: #006060; }
.teal-background { background-color: #007d7d; }
.white { color: #bfbfbf; }
.white-background { background-color: #fafafa; }
.yellow { color: #bfbf00; }
.yellow-background { background-color: #fafa00; }
span.icon > .fa { cursor: default; }
.admonitionblock td.icon [class^="fa icon-"] { font-size: 2.5em; cursor: default; }
.admonitionblock td.icon .icon-note:before { content: "\f05a"; color: #4E9FDD; }
.admonitionblock td.icon .icon-tip:before { content: "\f0eb"; color: #2C8596; }
.admonitionblock td.icon .icon-warning:before { content: "\f071"; color: #ec7a08; }
.admonitionblock td.icon .icon-caution:before { content: "\f06d"; color: #ec7a08; }
.admonitionblock td.icon .icon-important:before { content: "\f06a"; color: #c00; }
.conum[data-value] { display: inline-block; color: white !important; background-color: #c00; -webkit-border-radius: 100px; border-radius: 100px; text-align: center; width: 20px; height: 20px; font-size: 12px; line-height: 20px; font-family: "Open Sans", "Sans", sans-serif; font-style: normal; font-weight: bold; text-indent: -1px; }
.conum[data-value] * { color: white !important; }
.conum[data-value] + b { display: none; }
.conum[data-value]:after { content: attr(data-value); }
pre .conum[data-value] { text-shadow: 0 0; position: relative; top: -2px; }
b.conum * { color: inherit !important; }
.conum:not([data-value]):empty { display: none; }
.print-only { display: none !important; }
@media print { @page { margin: 1.25cm 0.75cm; }
* { -webkit-box-shadow: none !important; box-shadow: none !important; text-shadow: none !important; }
a, a:visited { color: inherit !important; text-decoration: underline !important; }
a[href^="http:"]:after, a[href^="https:"]:after { content: " (" attr(href) ")"; }
a[href^="#"], a[href^="#"]:visited, a[href^="mailto:"], a[href^="mailto:"]:visited { text-decoration: none !important; }
abbr[title]:after { content: " (" attr(title) ")"; }
pre, blockquote { page-break-inside: avoid; }
code { color: #191919; }
thead { display: table-header-group; }
tr, img { page-break-inside: avoid; }
img { max-width: 100% !important; }
p { orphans: 3; widows: 3; }
h2, h3, #toctitle, .sidebarblock > .content > .title, #toctitle, .sidebarblock > .content > .title { page-break-after: avoid; }
#toc, .sidebarblock { background: none !important; }
#toc { border-bottom: 1px solid #d8d8d8 !important; padding-bottom: 0 !important; }
.sect1 { padding-bottom: 0 !important; }
.sect1 + .sect1 { border: none !important; }
body.book #header { text-align: center; }
body.book #header > h1 { border: none !important; margin: 2.5em 0 1em 0; padding: 0; }
body.book #header span { line-height: 1.6; }
body.book #header br { display: block; }
body.book #header br + span { padding-left: 0; }
body.book #header br + span:before { content: none !important; }
body.book #toc { border: none !important; text-align: left !important; padding: 0 !important; }
#footer { background: none !important; }
#footer-text { color: #333333 !important; }
.hide-on-print { display: none !important; }
.print-only { display: block !important; }
.hide-for-print { display: none !important; }
.show-for-print { display: inherit !important; } }

4
_stylesheets/font-awesome.min.css vendored Normal file

File diff suppressed because one or more lines are too long

578
_stylesheets/foundation.css vendored Normal file
View File

@@ -0,0 +1,578 @@
@import url(http://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.0/css/font-awesome.css);
/* Adapted for OpenShift Origin from the 'foundation' style sheet at */
/* https://github.com/asciidoctor/asciidoctor-stylesheet-factory/blob/master/sass/foundation.scss */
/* normalize.css v2.1.1 | MIT License | git.io/normalize */
/* ========================================================================== HTML5 display definitions ========================================================================== */
/** Correct `block` display not defined in IE 8/9. */
article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; }
/** Correct `inline-block` display not defined in IE 8/9. */
audio, canvas, video { display: inline-block; }
/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */
audio:not([controls]) { display: none; height: 0; }
/** Address styling not present in IE 8/9. */
[hidden] { display: none; }
/* ========================================================================== Base ========================================================================== */
/** 1. Prevent system color scheme's background color being used in Firefox, IE, and Opera. 2. Prevent system color scheme's text color being used in Firefox, IE, and Opera. 3. Set default font family to sans-serif. 4. Prevent iOS text size adjust after orientation change, without disabling user zoom. */
html { background: #fff; /* 1 */ color: #000; /* 2 */ font-family: sans-serif; /* 3 */ -ms-text-size-adjust: 100%; /* 4 */ -webkit-text-size-adjust: 100%; /* 4 */ }
/** Remove default margin. */
body { margin: 0; }
/* ========================================================================== Links ========================================================================== */
/** Address `outline` inconsistency between Chrome and other browsers. */
a:focus { outline: thin dotted; }
/** Improve readability when focused and also mouse hovered in all browsers. */
a:active, a:hover { outline: 0; }
/* ========================================================================== Typography ========================================================================== */
/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari 5, and Chrome. */
h1 { font-size: 2em; margin: 0.67em 0; }
/** Address styling not present in IE 8/9, Safari 5, and Chrome. */
abbr[title] { border-bottom: 1px dotted; }
/** Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. */
b, strong { font-weight: bold; }
/** Address styling not present in Safari 5 and Chrome. */
dfn { font-style: italic; }
/** Address differences between Firefox and other browsers. */
hr { -moz-box-sizing: content-box; box-sizing: content-box; height: 0; }
/** Address styling not present in IE 8/9. */
mark { background: #ff0; color: #000; }
/** Correct font family set oddly in Safari 5 and Chrome. */
code, kbd, pre, samp { font-family: monospace, serif; font-size: 1em; }
/** Improve readability of pre-formatted text in all browsers. */
pre { white-space: pre-wrap; }
/** Set consistent quote types. */
q { quotes: "\201C" "\201D" "\2018" "\2019"; }
/** Address inconsistent and variable font size in all browsers. */
small { font-size: 80%; }
/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
sup { top: -0.5em; }
sub { bottom: -0.25em; }
/* ========================================================================== Embedded content ========================================================================== */
/** Remove border when inside `a` element in IE 8/9. */
img { border: 0; }
/** Correct overflow displayed oddly in IE 9. */
svg:not(:root) { overflow: hidden; }
/* ========================================================================== Figures ========================================================================== */
/** Address margin not present in IE 8/9 and Safari 5. */
figure { margin: 0; }
/* ========================================================================== Forms ========================================================================== */
/** Define consistent border, margin, and padding. */
fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }
/** 1. Correct `color` not being inherited in IE 8/9. 2. Remove padding so people aren't caught out if they zero out fieldsets. */
legend { border: 0; /* 1 */ padding: 0; /* 2 */ }
/** 1. Correct font family not being inherited in all browsers. 2. Correct font size not being inherited in all browsers. 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. */
button, input, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 2 */ margin: 0; /* 3 */ }
/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */
button, input { line-height: normal; }
/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. Correct `select` style inheritance in Firefox 4+ and Opera. */
button, select { text-transform: none; }
/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */
button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ }
/** Re-set default cursor for disabled elements. */
button[disabled], html input[disabled] { cursor: default; }
/** 1. Address box sizing set to `content-box` in IE 8/9. 2. Remove excess padding in IE 8/9. */
input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ }
/** 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome (include `-moz` to future-proof). */
input[type="search"] { -webkit-appearance: textfield; /* 1 */ -moz-box-sizing: content-box; -webkit-box-sizing: content-box; /* 2 */ box-sizing: content-box; }
/** Remove inner padding and search cancel button in Safari 5 and Chrome on OS X. */
input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
/** Remove inner padding and border in Firefox 4+. */
button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }
/** 1. Remove default vertical scrollbar in IE 8/9. 2. Improve readability and alignment in all browsers. */
textarea { overflow: auto; /* 1 */ vertical-align: top; /* 2 */ }
/* ========================================================================== Tables ========================================================================== */
/** Remove most spacing between table cells. */
table { border-collapse: collapse; border-spacing: 0; }
*, *:before, *:after { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }
html, body { font-size: 100%; }
body { background: white; color: #222222; padding: 0; margin: 0; font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; font-weight: normal; font-style: normal; line-height: 1; position: relative; cursor: auto; }
a:hover { cursor: pointer; }
a:focus { outline: none; }
img, object, embed { max-width: 100%; height: auto; }
object, embed { height: 100%; }
img { -ms-interpolation-mode: bicubic; }
#map_canvas img, #map_canvas embed, #map_canvas object, .map_canvas img, .map_canvas embed, .map_canvas object { max-width: none !important; }
.left { float: left !important; }
.right { float: right !important; }
.text-left { text-align: left !important; }
.text-right { text-align: right !important; }
.text-center { text-align: center !important; }
.text-justify { text-align: justify !important; }
.hide { display: none; }
.antialiased, body { -webkit-font-smoothing: antialiased; }
img { display: inline-block; vertical-align: middle; }
textarea { height: auto; min-height: 50px; }
select { width: 100%; }
p.lead, .paragraph.lead > p, #preamble > .sectionbody > .paragraph:first-of-type p { font-size: 1.21875em; line-height: 1.6; }
.subheader, .admonitionblock td.content > .title, .exampleblock > .title, .imageblock > .title, .listingblock > .title, .literalblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, .sidebarblock > .title, .tableblock > .title, .verseblock > .title, .ulist > .title, .olist > .title, .dlist > .title, .qlist > .title, .tableblock > caption { line-height: 1.4; color: #6f6f6f; font-weight: 300; margin-top: 0.2em; margin-bottom: 0.5em; }
/* Typography resets */
div, dl, dt, dd, ul, ol, li, h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6, pre, form, p, blockquote, th, td { margin: 0; padding: 0; direction: ltr; }
/* Default Link Styles */
a { color: #2ba6cb; text-decoration: none; line-height: inherit; }
a:hover, a:focus { color: #2795b6; }
a img { border: none; }
/* Default paragraph styles */
p { font-family: inherit; font-weight: normal; font-size: 1em; line-height: 1.6; margin-bottom: 1.25em; text-rendering: optimizeLegibility; }
p aside { font-size: 0.875em; line-height: 1.35; font-style: italic; }
/* Default header styles */
h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; font-weight: bold; font-style: normal; color: #222222; text-rendering: optimizeLegibility; margin-top: 1em; margin-bottom: 0.5em; line-height: 1.2125em; }
h1 small, h2 small, h3 small, #toctitle small, .sidebarblock > .content > .title small, h4 small, h5 small, h6 small { font-size: 60%; color: #6f6f6f; line-height: 0; }
h1 { font-size: 2.125em; }
h2 { font-size: 1.6875em; }
h3, #toctitle { font-size: 1.375em; }
h4, .sidebarblock > .content > .title { font-size: 1.125em; }
h5 { font-size: 1.125em; }
h6 { font-size: 1em; }
hr { border: solid #dddddd; border-width: 1px 0 0; clear: both; margin: 1.25em 0 1.1875em; height: 0; }
/* Helpful Typography Defaults */
em, i { font-style: italic; line-height: inherit; }
strong, b { font-weight: bold; line-height: inherit; }
small { font-size: 60%; line-height: inherit; }
code { font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: bold; color: #7f0a0c; }
/* Lists */
ul, ol, dl { font-size: 1em; line-height: 1.6; margin-bottom: 1.25em; list-style-position: outside; font-family: inherit; }
ul, ol { margin-left: 1.5em; }
/* Unordered Lists */
ul li ul, ul li ol { margin-left: 1.25em; margin-bottom: 0; font-size: 1em; /* Override nested font-size change */ }
ul.square li ul, ul.circle li ul, ul.disc li ul { list-style: inherit; }
ul.square { list-style-type: square; }
ul.circle { list-style-type: circle; }
ul.disc { list-style-type: disc; }
ul.no-bullet { list-style: none; }
/* Ordered Lists */
ol li ul, ol li ol { margin-left: 1.25em; margin-bottom: 0; }
/* Definition Lists */
dl dt { margin-bottom: 0.3125em; font-weight: bold; }
dl dd { margin-bottom: 1.25em; }
/* Abbreviations */
abbr, acronym { text-transform: uppercase; font-size: 90%; color: #222222; border-bottom: 1px dotted #dddddd; cursor: help; }
abbr { text-transform: none; }
/* Blockquotes */
blockquote { margin: 0 0 1.25em; padding: 0.5625em 1.25em 0 1.1875em; border-left: 1px solid #dddddd; }
blockquote cite { display: block; font-size: 0.8125em; color: #555555; }
blockquote cite:before { content: "\2014 \0020"; }
blockquote cite a, blockquote cite a:visited { color: #555555; }
blockquote, blockquote p { line-height: 1.6; color: #6f6f6f; }
/* Microformats */
.vcard { display: inline-block; margin: 0 0 1.25em 0; border: 1px solid #dddddd; padding: 0.625em 0.75em; }
.vcard li { margin: 0; display: block; }
.vcard .fn { font-weight: bold; font-size: 0.9375em; }
.vevent .summary { font-weight: bold; }
.vevent abbr { cursor: auto; text-decoration: none; font-weight: bold; border: none; padding: 0 0.0625em; }
@media only screen and (min-width: 768px) { h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { line-height: 1.4; }
h1 { font-size: 2.75em; }
h2 { font-size: 2.3125em; }
h3, #toctitle { font-size: 1.6875em; }
h4, .sidebarblock > .content > .title { font-size: 1.4375em; } }
/* Print styles. Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/ Credit to Paul Irish and HTML5 Boilerplate (html5boilerplate.com)
*/
.print-only { display: none !important; }
@media print { * { background: transparent !important; color: #000 !important; /* Black prints faster: h5bp.com/s */ box-shadow: none !important; text-shadow: none !important; }
a, a:visited { text-decoration: underline; }
a[href]:after { content: " (" attr(href) ")"; }
abbr[title]:after { content: " (" attr(title) ")"; }
.ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; }
pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
thead { display: table-header-group; /* h5bp.com/t */ }
tr, img { page-break-inside: avoid; }
img { max-width: 100% !important; }
@page { margin: 0.5cm; }
p, h2, h3, #toctitle, .sidebarblock > .content > .title { orphans: 3; widows: 3; }
h2, h3, #toctitle, .sidebarblock > .content > .title { page-break-after: avoid; }
.hide-on-print { display: none !important; }
.print-only { display: block !important; }
.hide-for-print { display: none !important; }
.show-for-print { display: inherit !important; } }
/* Tables */
table { background: white; margin-bottom: 1.25em; border: solid 1px #dddddd; }
table thead, table tfoot { background: whitesmoke; font-weight: bold; }
table thead tr th, table thead tr td, table tfoot tr th, table tfoot tr td { padding: 0.5em 0.625em 0.625em; font-size: inherit; color: #222222; text-align: left; }
table tr th, table tr td { padding: 0.5625em 0.625em; font-size: inherit; color: #222222; }
table tr.even, table tr.alt, table tr:nth-of-type(even) { background: #f9f9f9; }
table thead tr th, table tfoot tr th, table tbody tr td, table tr td, table tfoot tr td { display: table-cell; line-height: 1.4; }
code { font-size: inherit; padding: 0; white-space: nowrap; background-color: inherit; border: 0 solid #dddddd; -webkit-border-radius: 0; border-radius: 0; text-shadow: none; }
kbd.keyseq { color: #555555; }
kbd:not(.keyseq) { display: inline-block; color: #222222; font-size: 0.75em; line-height: 1.4; background-color: #F7F7F7; border: 1px solid #ccc; -webkit-border-radius: 3px; border-radius: 3px; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; margin: -0.15em 0.15em 0 0.15em; padding: 0.2em 0.6em 0.2em 0.5em; vertical-align: middle; white-space: nowrap; }
kbd kbd:first-child { margin-left: 0; }
kbd kbd:last-child { margin-right: 0; }
.menuseq, .menu { color: #090909; }
#header, #content, #footnotes, #footer { width: 100%; margin-left: auto; margin-right: auto; margin-top: 0; margin-bottom: 0; max-width: 62.5em; *zoom: 1; position: relative; padding-left: 0.9375em; padding-right: 0.9375em; }
#header:before, #header:after, #content:before, #content:after, #footnotes:before, #footnotes:after, #footer:before, #footer:after { content: " "; display: table; }
#header:after, #content:after, #footnotes:after, #footer:after { clear: both; }
#header { margin-bottom: 2.5em; background-image: url('./_images/origin_logo.png'); background-repeat: no-repeat; background-attachment: scroll; background-position: 100% 50px; }
#header > h1 { color: black; font-weight: bold; border-bottom: 1px solid #dddddd; margin-bottom: -28px; padding-bottom: 32px; margin-top: 150px; }
#header span { color: #6f6f6f; }
#header #revnumber { text-transform: capitalize; }
#header br { display: none; }
#header br + span { padding-left: 3px; }
#header br + span:before { content: "\2013 \0020"; }
#header br + span.author { padding-left: 0; }
#header br + span.author:before { content: ", "; }
#toc { border-bottom: 1px solid #dddddd; padding-bottom: 1.25em; }
#toc > ul, #toc > ol { margin-left: 0.25em; }
#toc ul.sectlevel0 > li > a, #toc ol.sectlevel0 > li > a { font-style: italic; }
#toc ul.sectlevel0 ul.sectlevel1, #toc ol.sectlevel0 ol.sectlevel1 { margin-left: 0; margin-top: 0.5em; margin-bottom: 0.5em; }
#toc ul, #toc ol { list-style-type: none; }
#toctitle { color: #6f6f6f; }
@media only screen and (min-width: 1280px) { body.toc2 { padding-left: 20em; }
#toc.toc2 { position: fixed; width: 20em; left: 0; top: 0; border-right: 1px solid #dddddd; border-bottom: 0; z-index: 1000; padding: 1em; height: 100%; overflow: auto; }
#toc.toc2 #toctitle { margin-top: 0; }
#toc.toc2 > ul, #toc.toc2 > ol { font-size: .95em; }
#toc.toc2 ul ul, #toc.toc2 ol ol { margin-left: 0; padding-left: 1.25em; }
#toc.toc2 ul.sectlevel0 ul.sectlevel1, #toc.toc2 ol.sectlevel0 ol.sectlevel1 { padding-left: 0; margin-top: 0.5em; margin-bottom: 0.5em; } }
#footer { max-width: 100%; background-color: #222222; padding: 1.25em; }
#footer-text { color: #dddddd; line-height: 1.44; }
.sect1 { border-bottom: 1px solid #dddddd; padding-bottom: 1.25em; }
.sect1:last-of-type { border-bottom: 0; }
#content h1 > a.anchor, h2 > a.anchor, h3 > a.anchor, #toctitle > a.anchor, .sidebarblock > .content > .title > a.anchor, h4 > a.anchor, h5 > a.anchor, h6 > a.anchor { position: absolute; width: 1em; margin-left: -1em; display: block; text-decoration: none; visibility: hidden; text-align: center; font-weight: normal; }
#content h1 > a.anchor:before, h2 > a.anchor:before, h3 > a.anchor:before, #toctitle > a.anchor:before, .sidebarblock > .content > .title > a.anchor:before, h4 > a.anchor:before, h5 > a.anchor:before, h6 > a.anchor:before { content: '\00A7'; font-size: .85em; vertical-align: text-top; display: block; margin-top: 0.05em; }
#content h1:hover > a.anchor, #content h1 > a.anchor:hover, h2:hover > a.anchor, h2 > a.anchor:hover, h3:hover > a.anchor, #toctitle:hover > a.anchor, .sidebarblock > .content > .title:hover > a.anchor, h3 > a.anchor:hover, #toctitle > a.anchor:hover, .sidebarblock > .content > .title > a.anchor:hover, h4:hover > a.anchor, h4 > a.anchor:hover, h5:hover > a.anchor, h5 > a.anchor:hover, h6:hover > a.anchor, h6 > a.anchor:hover { visibility: visible; }
#content h1 > a.link, h2 > a.link, h3 > a.link, #toctitle > a.link, .sidebarblock > .content > .title > a.link, h4 > a.link, h5 > a.link, h6 > a.link { color: #222222; text-decoration: none; }
#content h1 > a.link:hover, h2 > a.link:hover, h3 > a.link:hover, #toctitle > a.link:hover, .sidebarblock > .content > .title > a.link:hover, h4 > a.link:hover, h5 > a.link:hover, h6 > a.link:hover { color: #151515; }
.admonitionblock td.content > .title, .exampleblock > .title, .imageblock > .title, .listingblock > .title, .literalblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, .sidebarblock > .title, .tableblock > .title, .verseblock > .title, .ulist > .title, .olist > .title, .dlist > .title, .qlist > .title { text-align: left; font-weight: bold; }
.tableblock > caption { text-align: left; font-weight: bold; white-space: nowrap; overflow: visible; max-width: 0; }
table.tableblock #preamble > .sectionbody > .paragraph:first-of-type p { font-size: inherit; }
.admonitionblock > table { border: 0; background: none; width: 100%; }
.admonitionblock > table td.icon { text-align: center; width: 80px; }
.admonitionblock > table td.icon img { max-width: none; }
.admonitionblock > table td.icon .title { font-weight: bold; text-transform: uppercase; }
.admonitionblock > table td.content { padding-left: 1.125em; padding-right: 1.25em; border-left: 1px solid #dddddd; color: #6f6f6f; }
.admonitionblock > table td.content > .paragraph:last-child > p { margin-bottom: 0; }
.exampleblock > .content { border-style: solid; border-width: 1px; border-color: #e6e6e6; margin-bottom: 1.25em; padding: 1.25em; background: white; -webkit-border-radius: 0; border-radius: 0; }
.exampleblock > .content > :first-child { margin-top: 0; }
.exampleblock > .content > :last-child { margin-bottom: 0; }
.exampleblock > .content h1, .exampleblock > .content h2, .exampleblock > .content h3, .exampleblock > .content #toctitle, .sidebarblock.exampleblock > .content > .title, .exampleblock > .content h4, .exampleblock > .content h5, .exampleblock > .content h6, .exampleblock > .content p { color: #333333; }
.exampleblock > .content h1, .exampleblock > .content h2, .exampleblock > .content h3, .exampleblock > .content #toctitle, .sidebarblock.exampleblock > .content > .title, .exampleblock > .content h4, .exampleblock > .content h5, .exampleblock > .content h6 { line-height: 1; margin-bottom: 0.625em; }
.exampleblock > .content h1.subheader, .exampleblock > .content h2.subheader, .exampleblock > .content h3.subheader, .exampleblock > .content .subheader#toctitle, .sidebarblock.exampleblock > .content > .subheader.title, .exampleblock > .content h4.subheader, .exampleblock > .content h5.subheader, .exampleblock > .content h6.subheader { line-height: 1.4; }
.exampleblock > .content > :last-child > :last-child, .exampleblock > .content .olist > ol > li:last-child > :last-child, .exampleblock > .content .ulist > ul > li:last-child > :last-child, .exampleblock > .content .qlist > ol > li:last-child > :last-child { margin-bottom: 0; }
.exampleblock.result > .content { -webkit-box-shadow: 0 1px 8px #d9d9d9; box-shadow: 0 1px 8px #d9d9d9; }
.sidebarblock { border-style: solid; border-width: 1px; border-color: #d9d9d9; margin-bottom: 1.25em; padding: 1.25em; background: #f2f2f2; -webkit-border-radius: 0; border-radius: 0; }
.sidebarblock > :first-child { margin-top: 0; }
.sidebarblock > :last-child { margin-bottom: 0; }
.sidebarblock h1, .sidebarblock h2, .sidebarblock h3, .sidebarblock #toctitle, .sidebarblock > .content > .title, .sidebarblock h4, .sidebarblock h5, .sidebarblock h6, .sidebarblock p { color: #333333; }
.sidebarblock h1, .sidebarblock h2, .sidebarblock h3, .sidebarblock #toctitle, .sidebarblock > .content > .title, .sidebarblock h4, .sidebarblock h5, .sidebarblock h6 { line-height: 1; margin-bottom: 0.625em; }
.sidebarblock h1.subheader, .sidebarblock h2.subheader, .sidebarblock h3.subheader, .sidebarblock .subheader#toctitle, .sidebarblock > .content > .subheader.title, .sidebarblock h4.subheader, .sidebarblock h5.subheader, .sidebarblock h6.subheader { line-height: 1.4; }
.sidebarblock > .content > .title { color: #6f6f6f; margin-top: 0; line-height: 1.6; }
.sidebarblock > .content > .paragraph:last-child p { margin-bottom: 0; }
pre { color: black; font-family: monospace, serif; overflow-x: auto; line-height: 1.4; }
.verseblock { margin-bottom: 1.25em; }
.literalblock, .listingblock { margin-bottom: 1.25em; }
.literalblock > .content > pre, .listingblock > .content > pre { background: #eeeeee; color: black; font-family: monospace, serif; border-width: 1px; border-style: solid; border-color: #cccccc; -webkit-border-radius: 0; border-radius: 0; padding: 0.8em 0.8em 0.6em 0.8em; word-wrap: break-word; line-height: 1.4; }
.literalblock > .content > pre.nowrap, .listingblock > .content > pre.nowrap { overflow-x: auto; white-space: pre; word-wrap: normal; }
.literalblock > .content > pre > code, .listingblock > .content > pre > code { font-size: 1em; white-space: inherit; color: black; font-family: monospace, serif; padding: 0; background: none; font-weight: normal; border: none; }
@media only screen { .literalblock > .content > pre, .listingblock > .content > pre { font-size: 0.72em; } }
@media only screen and (min-width: 768px) { .literalblock > .content > pre, .listingblock > .content > pre { font-size: 0.81em; } }
@media only screen and (min-width: 1280px) { .literalblock > .content > pre, .listingblock > .content > pre { font-size: 0.9em; } }
.listingblock:hover .xml:before { content: "xml"; text-transform: uppercase; float: right; font-size: 0.9em; color: #999; }
.listingblock:hover .html:before { content: "html"; text-transform: uppercase; float: right; font-size: 0.9em; color: #999; }
.listingblock:hover .ruby:before { content: "ruby"; text-transform: uppercase; float: right; font-size: 0.9em; color: #999; }
.listingblock:hover .asciidoc:before { content: "asciidoc"; text-transform: uppercase; float: right; font-size: 0.9em; color: #999; }
.listingblock:hover .java:before { content: "java"; text-transform: uppercase; float: right; font-size: 0.9em; color: #999; }
.listingblock:hover .javascript:before { content: "javascript"; text-transform: uppercase; float: right; font-size: 0.9em; color: #999; }
.listingblock:hover .css:before { content: "css"; text-transform: uppercase; float: right; font-size: 0.9em; color: #999; }
.listingblock:hover .scss:before { content: "scss"; text-transform: uppercase; float: right; font-size: 0.9em; color: #999; }
.quoteblock { margin: 0 0 1.25em; padding: 0.5625em 1.25em 0 1.1875em; border-left: 1px solid #dddddd; }
.quoteblock blockquote { margin: 0 0 1.25em 0; padding: 0 0 0.5625em 0; border: 0; }
.quoteblock blockquote > .paragraph:last-child p { margin-bottom: 0; }
.quoteblock .attribution { margin-top: -.25em; padding-bottom: 0.5625em; font-size: 0.8125em; color: #555555; }
.quoteblock .attribution br { display: none; }
.quoteblock .attribution cite { display: block; margin-bottom: 0.625em; }
table thead th, table tfoot th { font-weight: bold; }
table.tableblock.grid-all { border-collapse: separate; border-spacing: 1px; -webkit-border-radius: 0; border-radius: 0; border-top: 1px solid #dddddd; border-bottom: 1px solid #dddddd; }
table.tableblock.frame-topbot, table.tableblock.frame-none { border-left: 0; border-right: 0; }
table.tableblock.frame-sides, table.tableblock.frame-none { border-top: 0; border-bottom: 0; }
table.tableblock td .paragraph:last-child p, table.tableblock td > p:last-child { margin-bottom: 0; }
th.tableblock.halign-left, td.tableblock.halign-left { text-align: left; }
th.tableblock.halign-right, td.tableblock.halign-right { text-align: right; }
th.tableblock.halign-center, td.tableblock.halign-center { text-align: center; }
th.tableblock.halign-top, td.tableblock.halign-top { vertical-align: top; }
th.tableblock.halign-bottom, td.tableblock.halign-bottom { vertical-align: bottom; }
th.tableblock.halign-middle, td.tableblock.halign-middle { vertical-align: middle; }
p.tableblock.header { color: #222222; font-weight: bold; }
td > div.verse { white-space: pre; }
ol { margin-left: 1.75em; }
ul li ol { margin-left: 1.5em; }
dl dd { margin-left: 1.125em; }
dl dd:last-child, dl dd:last-child > :last-child { margin-bottom: 0; }
.unstyled dl dt { font-weight: normal; font-style: normal; }
ol > li p, ul > li p, ul dd, ol dd, .olist .olist, .ulist .olist, .olist .ulist { margin-bottom: 0.625em; }
ul.unstyled, ol.unnumbered, ul.checklist { list-style-type: none; margin-left: 0.625em; }
ol.arabic { list-style-type: decimal; }
ol.loweralpha { list-style-type: lower-alpha; }
ol.upperalpha { list-style-type: upper-alpha; }
ol.lowerroman { list-style-type: lower-roman; }
ol.upperroman { list-style-type: upper-roman; }
.hdlist > table, .colist > table { border: 0; background: none; }
.hdlist > table > tbody > tr, .colist > table > tbody > tr { background: none; }
.literalblock + .colist, .listingblock + .colist { margin-top: -0.5em; }
.colist > table tr > td:first-of-type { padding: 0 .8em; line-height: 1; }
.colist > table tr > td:last-of-type { padding: 0.25em 0; }
td.hdlist1 { vertical-align: top; padding-right: .8em; font-weight: bold; }
.qanda > ol > li > p:first-child { color: #2795b6; }
.thumb, .th { line-height: 0; display: inline-block; border: solid 4px white; -webkit-box-shadow: 0 0 0 1px #dddddd; box-shadow: 0 0 0 1px #dddddd; }
.imageblock { margin-bottom: 1.25em; }
.imageblock.left, .imageblock[style*="float: left"] { margin: 0.25em 0.625em 1.25em 0; }
.imageblock.right, .imageblock[style*="float: right"] { margin: 0.25em 0 1.25em 0.625em; }
.imageblock > .title { margin-bottom: 0; }
.imageblock.thumb, .imageblock.th { border-width: 6px; }
.imageblock.thumb > .title, .imageblock.th > .title { padding: 0 0.125em; }
.image.left, .image.right { margin-top: 0.25em; margin-bottom: 0.25em; display: inline-block; line-height: 0; }
.image.left { margin-right: 0.625em; }
.image.right { margin-left: 0.625em; }
span.footnote, span.footnoteref { vertical-align: super; font-size: 0.875em; }
span.footnote a, span.footnoteref a { text-decoration: none; }
#footnotes { padding: 0.75em 0.375em; margin-bottom: 1.25em; #border-top: 1px solid #dddddd; }
#footnotes hr { width: 20%; min-width: 6.25em; margin: -.25em 0 .75em 0; border-width: 1px 0 0 0; }
#footnotes .footnote { line-height: 1.3; font-size: 0.875em; margin-left: 1.2em; text-indent: -1.2em; margin-bottom: .2em; }
#footnotes .footnote a { font-weight: bold; text-decoration: none; }
#footnotes .footnote:last-of-type { margin-bottom: 0; }
.gist .file-data > table { border: none; background: #fff; width: 100%; margin-bottom: 0; }
.gist .file-data > table td.line-data { width: 99%; }
div.unbreakable { page-break-inside: avoid; }
.big { font-size: larger; }
.small { font-size: smaller; }
.underline { text-decoration: underline; }
.overline { text-decoration: overline; }
.line-through { text-decoration: line-through; }
.aqua { color: #00bfbf; }
.aqua-background { background-color: #00fafa; }
.black { color: black; }
.black-background { background-color: black; }
.blue { color: #0000bf; }
.blue-background { background-color: #0000fa; }
.fuchsia { color: #bf00bf; }
.fuchsia-background { background-color: #fa00fa; }
.gray { color: #606060; }
.gray-background { background-color: #7d7d7d; }
.green { color: #006000; }
.green-background { background-color: #007d00; }
.lime { color: #00bf00; }
.lime-background { background-color: #00fa00; }
.maroon { color: #600000; }
.maroon-background { background-color: #7d0000; }
.navy { color: #000060; }
.navy-background { background-color: #00007d; }
.olive { color: #606000; }
.olive-background { background-color: #7d7d00; }
.purple { color: #600060; }
.purple-background { background-color: #7d007d; }
.red { color: #bf0000; }
.red-background { background-color: #fa0000; }
.silver { color: #909090; }
.silver-background { background-color: #bcbcbc; }
.teal { color: #006060; }
.teal-background { background-color: #007d7d; }
.white { color: #bfbfbf; }
.white-background { background-color: #fafafa; }
.yellow { color: #bfbf00; }
.yellow-background { background-color: #fafa00; }
.admonitionblock td.icon [class^="icon-"]:before { font-size: 2.5em; text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); cursor: default; }
.admonitionblock td.icon .icon-note:before { content: "\f05a"; color: #2ba6cb; color: #207c98; }
.admonitionblock td.icon .icon-tip:before { content: "\f0eb"; text-shadow: 1px 1px 2px rgba(155, 155, 0, 0.8); color: #111; }
.admonitionblock td.icon .icon-warning:before { content: "\f071"; color: #bf6900; }
.admonitionblock td.icon .icon-caution:before { content: "\f06d"; color: #bf3400; }
.admonitionblock td.icon .icon-important:before { content: "\f06a"; color: #bf0000; }
.conum { display: inline-block; color: white !important; background-color: #222222; -webkit-border-radius: 100px; border-radius: 100px; text-align: center; width: 20px; height: 20px; font-size: 12px; font-weight: bold; line-height: 20px; font-family: Arial, sans-serif; font-style: normal; position: relative; top: -2px; letter-spacing: -1px; }
.conum * { color: white !important; }
.conum:empty { display: none; }
pre .comment .conum { left: -20px; }
/* Missing alignment styles */
.halign-left { text-align: left }
.halign-center { text-align: center }
.halign-right { text-align: right }
.valign-top { vertical-align: top }
.valign-middle { vertical-align: middle }
.valign-bottom { vertical-align: bottom }

624
_stylesheets/origin.css Normal file
View File

@@ -0,0 +1,624 @@
@import url(http://openshift.redhat.com/app/assets/overpass.css);
@import url(http://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.0/css/font-awesome.css);
/*
Origin theme source file
To build it:
- clone the asciidoctor-stylesheet-factory repo
- copy this theme file to the sass folder inside the repo
- copy the settings file to the sass/settings file inside the repo
- cd to the cloned repo
- bundle install
- compass compile
- compiled stylesheet is in the stylesheets/ directory
*/
/* Generated by Font Squirrel (http://www.fontsquirrel.com) on July 24, 2013 */
@font-face { font-family: 'source_code_pro'; src: url("fonts/sourcecodepro-regular-webfont.eot"); src: url("fonts/sourcecodepro-regular-webfont.eot?#iefix") format("embedded-opentype"), url("fonts/sourcecodepro-regular-webfont.woff") format("woff"), url("fonts/sourcecodepro-regular-webfont.ttf") format("truetype"), url("sourcecodepro-regular-webfont.svg#source_code_proregular") format("svg"); font-weight: normal; font-style: normal; }
/*
Settings and overrides for the Origin theme
*/
/* normalize.css v2.1.1 | MIT License | git.io/normalize */
/* ========================================================================== HTML5 display definitions ========================================================================== */
/** Correct `block` display not defined in IE 8/9. */
article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; }
/** Correct `inline-block` display not defined in IE 8/9. */
audio, canvas, video { display: inline-block; }
/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */
audio:not([controls]) { display: none; height: 0; }
/** Address styling not present in IE 8/9. */
[hidden] { display: none; }
/* ========================================================================== Base ========================================================================== */
/** 1. Prevent system color scheme's background color being used in Firefox, IE, and Opera. 2. Prevent system color scheme's text color being used in Firefox, IE, and Opera. 3. Set default font family to sans-serif. 4. Prevent iOS text size adjust after orientation change, without disabling user zoom. */
html { background: #fff; /* 1 */ color: #000; /* 2 */ font-family: sans-serif; /* 3 */ -ms-text-size-adjust: 100%; /* 4 */ -webkit-text-size-adjust: 100%; /* 4 */ }
/** Remove default margin. */
body { margin: 0; }
/* ========================================================================== Links ========================================================================== */
/** Address `outline` inconsistency between Chrome and other browsers. */
a:focus { outline: thin dotted; }
/** Improve readability when focused and also mouse hovered in all browsers. */
a:active, a:hover { outline: 0; }
/* ========================================================================== Typography ========================================================================== */
/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari 5, and Chrome. */
h1 { font-size: 2em; margin: 0.67em 0; }
/** Address styling not present in IE 8/9, Safari 5, and Chrome. */
abbr[title] { border-bottom: 1px dotted; }
/** Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. */
b, strong { font-weight: bold; }
/** Address styling not present in Safari 5 and Chrome. */
dfn { font-style: italic; }
/** Address differences between Firefox and other browsers. */
hr { -moz-box-sizing: content-box; box-sizing: content-box; height: 0; }
/** Address styling not present in IE 8/9. */
mark { background: #ff0; color: #000; }
/** Correct font family set oddly in Safari 5 and Chrome. */
code, kbd, pre, samp { font-family: monospace, serif; font-size: 1em; }
/** Improve readability of pre-formatted text in all browsers. */
pre { white-space: pre-wrap; }
/** Set consistent quote types. */
q { quotes: "\201C" "\201D" "\2018" "\2019"; }
/** Address inconsistent and variable font size in all browsers. */
small { font-size: 80%; }
/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
sup { top: -0.5em; }
sub { bottom: -0.25em; }
/* ========================================================================== Embedded content ========================================================================== */
/** Remove border when inside `a` element in IE 8/9. */
img { border: 0; }
/** Correct overflow displayed oddly in IE 9. */
svg:not(:root) { overflow: hidden; }
/* ========================================================================== Figures ========================================================================== */
/** Address margin not present in IE 8/9 and Safari 5. */
figure { margin: 0; }
/* ========================================================================== Forms ========================================================================== */
/** Define consistent border, margin, and padding. */
fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }
/** 1. Correct `color` not being inherited in IE 8/9. 2. Remove padding so people aren't caught out if they zero out fieldsets. */
legend { border: 0; /* 1 */ padding: 0; /* 2 */ }
/** 1. Correct font family not being inherited in all browsers. 2. Correct font size not being inherited in all browsers. 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. */
button, input, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 2 */ margin: 0; /* 3 */ }
/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */
button, input { line-height: normal; }
/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. Correct `select` style inheritance in Firefox 4+ and Opera. */
button, select { text-transform: none; }
/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */
button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ }
/** Re-set default cursor for disabled elements. */
button[disabled], html input[disabled] { cursor: default; }
/** 1. Address box sizing set to `content-box` in IE 8/9. 2. Remove excess padding in IE 8/9. */
input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ }
/** 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome (include `-moz` to future-proof). */
input[type="search"] { -webkit-appearance: textfield; /* 1 */ -moz-box-sizing: content-box; -webkit-box-sizing: content-box; /* 2 */ box-sizing: content-box; }
/** Remove inner padding and search cancel button in Safari 5 and Chrome on OS X. */
input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
/** Remove inner padding and border in Firefox 4+. */
button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }
/** 1. Remove default vertical scrollbar in IE 8/9. 2. Improve readability and alignment in all browsers. */
textarea { overflow: auto; /* 1 */ vertical-align: top; /* 2 */ }
/* ========================================================================== Tables ========================================================================== */
/** Remove most spacing between table cells. */
table { border-collapse: collapse; border-spacing: 0; }
*, *:before, *:after { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }
html, body { font-size: 100%; }
body { background: white; color: #222222; padding: 0; margin: 0; font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; font-weight: normal; font-style: normal; line-height: 1; position: relative; cursor: auto; }
a:hover { cursor: pointer; }
a:focus { outline: none; }
img, object, embed { max-width: 100%; height: auto; }
object, embed { height: 100%; }
img { -ms-interpolation-mode: bicubic; }
#map_canvas img, #map_canvas embed, #map_canvas object, .map_canvas img, .map_canvas embed, .map_canvas object { max-width: none !important; }
.left { float: left !important; }
.right { float: right !important; }
.text-left { text-align: left !important; }
.text-right { text-align: right !important; }
.text-center { text-align: center !important; }
.text-justify { text-align: justify !important; }
.hide { display: none; }
.antialiased, body { -webkit-font-smoothing: antialiased; }
img { display: inline-block; vertical-align: middle; }
textarea { height: auto; min-height: 50px; }
select { width: 100%; }
p.lead, .paragraph.lead > p, #preamble > .sectionbody > .paragraph:first-of-type p { font-size: 1.21875em; line-height: 1.6; }
.subheader, .admonitionblock td.content > .title, .exampleblock > .title, .imageblock > .title, .listingblock > .title, .literalblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, .sidebarblock > .title, .tableblock > .title, .verseblock > .title, .ulist > .title, .olist > .title, .dlist > .title, .qlist > .title, .tableblock > caption { line-height: 1.4; color: #6f6f6f; font-weight: 300; margin-top: 0.2em; margin-bottom: 0.5em; }
/* Typography resets */
div, dl, dt, dd, ul, ol, li, h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6, pre, form, p, blockquote, th, td { margin: 0; padding: 0; direction: ltr; }
/* Default Link Styles */
a { color: #006699; text-decoration: none; line-height: inherit; }
a:hover, a:focus { color: #005580; }
a img { border: none; }
/* Default paragraph styles */
p { font-family: inherit; font-weight: normal; font-size: 1em; line-height: 1.6; margin-bottom: 1.25em; text-rendering: optimizeLegibility; }
p aside { font-size: 0.875em; line-height: 1.35; font-style: italic; }
/* Default header styles */
h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { font-family: Overpass, sans-serif; font-weight: bold; font-style: normal; color: #222222; text-rendering: optimizeLegibility; margin-top: 1em; margin-bottom: 0.5em; line-height: 1.2125em; }
h1 small, h2 small, h3 small, #toctitle small, .sidebarblock > .content > .title small, h4 small, h5 small, h6 small { font-size: 60%; color: #6f6f6f; line-height: 0; }
h1 { font-size: 2.125em; }
h2 { font-size: 1.6875em; }
h3, #toctitle, .sidebarblock > .content > .title { font-size: 1.375em; }
h4 { font-size: 1.125em; }
h5 { font-size: 1.125em; }
h6 { font-size: 1em; }
hr { border: solid #dddddd; border-width: 1px 0 0; clear: both; margin: 1.25em 0 1.1875em; height: 0; }
/* Helpful Typography Defaults */
em, i { font-style: italic; line-height: inherit; }
strong, b { font-weight: bold; line-height: inherit; }
small { font-size: 60%; line-height: inherit; }
code { font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: bold; color: #7f0a0c; }
/* Lists */
ul, ol, dl { font-size: 1em; line-height: 1.6; margin-bottom: 1.25em; list-style-position: outside; font-family: inherit; }
ul, ol { margin-left: 1.5em; }
/* Unordered Lists */
ul li ul, ul li ol { margin-left: 1.25em; margin-bottom: 0; font-size: 1em; /* Override nested font-size change */ }
ul.square li ul, ul.circle li ul, ul.disc li ul { list-style: inherit; }
ul.square { list-style-type: square; }
ul.circle { list-style-type: circle; }
ul.disc { list-style-type: disc; }
ul.no-bullet { list-style: none; }
/* Ordered Lists */
ol li ul, ol li ol { margin-left: 1.25em; margin-bottom: 0; }
/* Definition Lists */
dl dt { margin-bottom: 0.3125em; font-weight: bold; }
dl dd { margin-bottom: 1.25em; }
/* Abbreviations */
abbr, acronym { text-transform: uppercase; font-size: 90%; color: #222222; border-bottom: 1px dotted #dddddd; cursor: help; }
abbr { text-transform: none; }
/* Blockquotes */
blockquote { margin: 0 0 1.25em; padding: 0.5625em 1.25em 0 1.1875em; border-left: 1px solid #dddddd; }
blockquote cite { display: block; font-size: 0.8125em; color: #555555; }
blockquote cite:before { content: "\2014 \0020"; }
blockquote cite a, blockquote cite a:visited { color: #555555; }
blockquote, blockquote p { line-height: 1.6; color: #6f6f6f; }
/* Microformats */
.vcard { display: inline-block; margin: 0 0 1.25em 0; border: 1px solid #dddddd; padding: 0.625em 0.75em; }
.vcard li { margin: 0; display: block; }
.vcard .fn { font-weight: bold; font-size: 0.9375em; }
.vevent .summary { font-weight: bold; }
.vevent abbr { cursor: auto; text-decoration: none; font-weight: bold; border: none; padding: 0 0.0625em; }
@media only screen and (min-width: 768px) { h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { line-height: 1.4; }
h1 { font-size: 2.75em; }
h2 { font-size: 2.3125em; }
h3, #toctitle, .sidebarblock > .content > .title { font-size: 1.6875em; }
h4 { font-size: 1.4375em; } }
/* Print styles. Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/ Credit to Paul Irish and HTML5 Boilerplate (html5boilerplate.com)
*/
.print-only { display: none !important; }
@media print { * { background: transparent !important; color: #000 !important; /* Black prints faster: h5bp.com/s */ box-shadow: none !important; text-shadow: none !important; }
a, a:visited { text-decoration: underline; }
a[href]:after { content: " (" attr(href) ")"; }
abbr[title]:after { content: " (" attr(title) ")"; }
.ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; }
pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
thead { display: table-header-group; /* h5bp.com/t */ }
tr, img { page-break-inside: avoid; }
img { max-width: 100% !important; }
@page { margin: 0.5cm; }
p, h2, h3, #toctitle, .sidebarblock > .content > .title { orphans: 3; widows: 3; }
h2, h3, #toctitle, .sidebarblock > .content > .title { page-break-after: avoid; }
.hide-on-print { display: none !important; }
.print-only { display: block !important; }
.hide-for-print { display: none !important; }
.show-for-print { display: inherit !important; } }
/* Tables */
table { background: white; margin-bottom: 1.25em; border: solid 1px #dddddd; }
table thead, table tfoot { background: whitesmoke; font-weight: bold; }
table thead tr th, table thead tr td, table tfoot tr th, table tfoot tr td { padding: 0.5em 0.625em 0.625em; font-size: inherit; color: #222222; text-align: left; }
table tr th, table tr td { padding: 0.5625em 0.625em; font-size: inherit; color: #222222; }
table tr.even, table tr.alt, table tr:nth-of-type(even) { background: #f9f9f9; }
table thead tr th, table tfoot tr th, table tbody tr td, table tr td, table tfoot tr td { display: table-cell; line-height: 1.4; }
/*
.clearfix,
.floatend { zoom: 1; &:before, &:after { content: " "; display: table; } &:after { clear: both; }
}
*/
code { font-size: inherit; padding: 0; white-space: nowrap; background-color: inherit; border: 0 solid #dddddd; -webkit-border-radius: 0; border-radius: 0; text-shadow: none; }
kbd.keyseq { color: #555555; }
kbd:not(.keyseq) { display: inline-block; color: #222222; font-size: 0.75em; line-height: 1.4; background-color: #F7F7F7; border: 1px solid #ccc; -webkit-border-radius: 3px; border-radius: 3px; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; margin: -0.15em 0.15em 0 0.15em; padding: 0.2em 0.6em 0.2em 0.5em; vertical-align: middle; white-space: nowrap; }
kbd kbd:first-child { margin-left: 0; }
kbd kbd:last-child { margin-right: 0; }
.menuseq, .menu { color: #090909; }
#header, #content, #footnotes, #footer { width: 100%; margin-left: auto; margin-right: auto; margin-top: 0; margin-bottom: 0; max-width: 62.5em; *zoom: 1; position: relative; padding-left: 0.9375em; padding-right: 0.9375em; }
#header:before, #header:after, #content:before, #content:after, #footnotes:before, #footnotes:after, #footer:before, #footer:after { content: " "; display: table; }
#header:after, #content:after, #footnotes:after, #footer:after { clear: both; }
#header { margin-bottom: 2.5em; }
#header > h1 { color: #222222; font-weight: bold; border-bottom: 1px solid #dddddd; margin-bottom: -28px; padding-bottom: 32px; }
#header span { color: #6f6f6f; }
#header #revnumber { text-transform: capitalize; }
#header br { display: none; }
#header br + span { padding-left: 3px; }
#header br + span:before { content: "\2013 \0020"; }
#header br + span.author { padding-left: 0; }
#header br + span.author:before { content: ", "; }
#toc { border-bottom: 0 solid #dddddd; padding-bottom: 1.25em; }
#toc > ul, #toc > ol { margin-left: 0.25em; }
#toc ul.sectlevel0 > li > a, #toc ol.sectlevel0 > li > a { font-style: italic; }
#toc ul.sectlevel0 ul.sectlevel1, #toc ol.sectlevel0 ol.sectlevel1 { margin-left: 0; margin-top: 0.5em; margin-bottom: 0.5em; }
#toc ul, #toc ol { list-style-type: none; }
#toctitle { color: #6f6f6f; }
@media only screen and (min-width: 1280px) { body.toc2 { padding-left: 20em; }
#toc.toc2 { position: fixed; width: 20em; left: 0; top: 0; border-right: 1px solid #dddddd; border-bottom: 0; z-index: 1000; padding: 1em; height: 100%; overflow: auto; }
#toc.toc2 #toctitle { margin-top: 0; }
#toc.toc2 > ul, #toc.toc2 > ol { font-size: .95em; }
#toc.toc2 ul ul, #toc.toc2 ol ol { margin-left: 0; padding-left: 1.25em; }
#toc.toc2 ul.sectlevel0 ul.sectlevel1, #toc.toc2 ol.sectlevel0 ol.sectlevel1 { padding-left: 0; margin-top: 0.5em; margin-bottom: 0.5em; }
body.toc2.toc-right { padding-left: 0; padding-right: 20em; }
body.toc2.toc-right #toc.toc2 { border-right: 0; border-left: 1px solid #dddddd; left: auto; right: 0; } }
#footer { max-width: 100%; background-color: #222222; padding: 1.25em; }
#footer-text { color: #dddddd; line-height: 1.44; }
.sect1 { padding-bottom: 1.25em; }
.sect1 + .sect1 { border-top: 0 solid #dddddd; }
#content h1 > a.anchor, h2 > a.anchor, h3 > a.anchor, #toctitle > a.anchor, .sidebarblock > .content > .title > a.anchor, h4 > a.anchor, h5 > a.anchor, h6 > a.anchor { position: absolute; width: 1em; margin-left: -1em; display: block; text-decoration: none; visibility: hidden; text-align: center; font-weight: normal; }
#content h1 > a.anchor:before, h2 > a.anchor:before, h3 > a.anchor:before, #toctitle > a.anchor:before, .sidebarblock > .content > .title > a.anchor:before, h4 > a.anchor:before, h5 > a.anchor:before, h6 > a.anchor:before { content: '\00A7'; font-size: .85em; vertical-align: text-top; display: block; margin-top: 0.05em; }
#content h1:hover > a.anchor, #content h1 > a.anchor:hover, h2:hover > a.anchor, h2 > a.anchor:hover, h3:hover > a.anchor, #toctitle:hover > a.anchor, .sidebarblock > .content > .title:hover > a.anchor, h3 > a.anchor:hover, #toctitle > a.anchor:hover, .sidebarblock > .content > .title > a.anchor:hover, h4:hover > a.anchor, h4 > a.anchor:hover, h5:hover > a.anchor, h5 > a.anchor:hover, h6:hover > a.anchor, h6 > a.anchor:hover { visibility: visible; }
#content h1 > a.link, h2 > a.link, h3 > a.link, #toctitle > a.link, .sidebarblock > .content > .title > a.link, h4 > a.link, h5 > a.link, h6 > a.link { color: #222222; text-decoration: none; }
#content h1 > a.link:hover, h2 > a.link:hover, h3 > a.link:hover, #toctitle > a.link:hover, .sidebarblock > .content > .title > a.link:hover, h4 > a.link:hover, h5 > a.link:hover, h6 > a.link:hover { color: #151515; }
.admonitionblock td.content > .title, .exampleblock > .title, .imageblock > .title, .listingblock > .title, .literalblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, .sidebarblock > .title, .tableblock > .title, .verseblock > .title, .ulist > .title, .olist > .title, .dlist > .title, .qlist > .title { text-align: left; font-weight: bold; }
.tableblock > caption { text-align: left; font-weight: bold; white-space: nowrap; overflow: visible; max-width: 0; }
table.tableblock #preamble > .sectionbody > .paragraph:first-of-type p { font-size: inherit; }
.admonitionblock > table { border: 0; background: none; width: 100%; }
.admonitionblock > table td.icon { text-align: center; width: 80px; }
.admonitionblock > table td.icon img { max-width: none; }
.admonitionblock > table td.icon .title { font-weight: bold; text-transform: uppercase; }
.admonitionblock > table td.content { padding-left: 1.125em; padding-right: 1.25em; border-left: 1px solid #dddddd; color: #6f6f6f; }
.admonitionblock > table td.content > .paragraph:last-child > p { margin-bottom: 0; }
.exampleblock > .content { border-style: solid; border-width: 1px; border-color: #e6e6e6; margin-bottom: 1.25em; padding: 1.25em; background: white; -webkit-border-radius: 0; border-radius: 0; }
.exampleblock > .content > :first-child { margin-top: 0; }
.exampleblock > .content > :last-child { margin-bottom: 0; }
.exampleblock > .content h1, .exampleblock > .content h2, .exampleblock > .content h3, .exampleblock > .content #toctitle, .sidebarblock.exampleblock > .content > .title, .exampleblock > .content h4, .exampleblock > .content h5, .exampleblock > .content h6, .exampleblock > .content p { color: #333333; }
.exampleblock > .content h1, .exampleblock > .content h2, .exampleblock > .content h3, .exampleblock > .content #toctitle, .sidebarblock.exampleblock > .content > .title, .exampleblock > .content h4, .exampleblock > .content h5, .exampleblock > .content h6 { line-height: 1; margin-bottom: 0.625em; }
.exampleblock > .content h1.subheader, .exampleblock > .content h2.subheader, .exampleblock > .content h3.subheader, .exampleblock > .content .subheader#toctitle, .sidebarblock.exampleblock > .content > .subheader.title, .exampleblock > .content h4.subheader, .exampleblock > .content h5.subheader, .exampleblock > .content h6.subheader { line-height: 1.4; }
.exampleblock > .content > :last-child > :last-child, .exampleblock > .content .olist > ol > li:last-child > :last-child, .exampleblock > .content .ulist > ul > li:last-child > :last-child, .exampleblock > .content .qlist > ol > li:last-child > :last-child { margin-bottom: 0; }
.exampleblock.result > .content { -webkit-box-shadow: 0 1px 8px #d9d9d9; box-shadow: 0 1px 8px #d9d9d9; }
.sidebarblock { border-style: solid; border-width: 1px; border-color: #d9d9d9; margin-bottom: 1.25em; padding: 1.25em; background: #f2f2f2; -webkit-border-radius: 0; border-radius: 0; }
.sidebarblock > :first-child { margin-top: 0; }
.sidebarblock > :last-child { margin-bottom: 0; }
.sidebarblock h1, .sidebarblock h2, .sidebarblock h3, .sidebarblock #toctitle, .sidebarblock > .content > .title, .sidebarblock h4, .sidebarblock h5, .sidebarblock h6, .sidebarblock p { color: #333333; }
.sidebarblock h1, .sidebarblock h2, .sidebarblock h3, .sidebarblock #toctitle, .sidebarblock > .content > .title, .sidebarblock h4, .sidebarblock h5, .sidebarblock h6 { line-height: 1; margin-bottom: 0.625em; }
.sidebarblock h1.subheader, .sidebarblock h2.subheader, .sidebarblock h3.subheader, .sidebarblock .subheader#toctitle, .sidebarblock > .content > .subheader.title, .sidebarblock h4.subheader, .sidebarblock h5.subheader, .sidebarblock h6.subheader { line-height: 1.4; }
.sidebarblock > .content > .title { color: #6f6f6f; margin-top: 0; line-height: 1.6; }
.sidebarblock > .content > .paragraph:last-child p { margin-bottom: 0; }
pre { color: black; font-family: source_code_pro, monospace, serif; overflow-x: auto; line-height: 1.4; }
.verseblock { margin-bottom: 1.25em; }
.literalblock, .listingblock { margin-bottom: 1.25em; }
.literalblock > .content > pre, .listingblock > .content > pre { background: #eeeeee; color: black; font-family: source_code_pro, monospace, serif; border-width: 0; padding: 0.8em 0.8em 0.6em 0.8em; word-wrap: break-word; line-height: 1.4; }
.literalblock > .content > pre.nowrap, .listingblock > .content > pre.nowrap { overflow-x: auto; white-space: pre; word-wrap: normal; }
.literalblock > .content > pre > code, .listingblock > .content > pre > code { font-size: 1em; white-space: inherit; color: black; font-family: source_code_pro, monospace, serif; padding: 0; background: none; font-weight: normal; border: none; }
@media only screen { .literalblock > .content > pre, .listingblock > .content > pre { font-size: 0.8em; } }
@media only screen and (min-width: 768px) { .literalblock > .content > pre, .listingblock > .content > pre { font-size: 0.9em; } }
@media only screen and (min-width: 1280px) { .literalblock > .content > pre, .listingblock > .content > pre { font-size: 1em; } }
.listingblock:hover .xml:before { content: "xml"; text-transform: uppercase; float: right; font-size: 0.9em; color: #999; }
.listingblock:hover .html:before { content: "html"; text-transform: uppercase; float: right; font-size: 0.9em; color: #999; }
.listingblock:hover .ruby:before { content: "ruby"; text-transform: uppercase; float: right; font-size: 0.9em; color: #999; }
.listingblock:hover .asciidoc:before { content: "asciidoc"; text-transform: uppercase; float: right; font-size: 0.9em; color: #999; }
.listingblock:hover .java:before { content: "java"; text-transform: uppercase; float: right; font-size: 0.9em; color: #999; }
.listingblock:hover .javascript:before { content: "javascript"; text-transform: uppercase; float: right; font-size: 0.9em; color: #999; }
.listingblock:hover .css:before { content: "css"; text-transform: uppercase; float: right; font-size: 0.9em; color: #999; }
.listingblock:hover .scss:before { content: "scss"; text-transform: uppercase; float: right; font-size: 0.9em; color: #999; }
.quoteblock { margin: 0 0 1.25em; padding: 0.5625em 1.25em 0 1.1875em; border-left: 1px solid #dddddd; }
.quoteblock blockquote { margin: 0 0 1.25em 0; padding: 0 0 0.5625em 0; border: 0; }
.quoteblock blockquote > .paragraph:last-child p { margin-bottom: 0; }
.quoteblock .attribution { margin-top: -.25em; padding-bottom: 0.5625em; font-size: 0.8125em; color: #555555; }
.quoteblock .attribution br { display: none; }
.quoteblock .attribution cite { display: block; margin-bottom: 0.625em; }
table thead th, table tfoot th { font-weight: bold; }
table.tableblock.grid-all { border-collapse: separate; border-spacing: 1px; -webkit-border-radius: 0; border-radius: 0; border-top: 1px solid #dddddd; border-bottom: 1px solid #dddddd; }
table.tableblock.frame-topbot, table.tableblock.frame-none { border-left: 0; border-right: 0; }
table.tableblock.frame-sides, table.tableblock.frame-none { border-top: 0; border-bottom: 0; }
table.tableblock td .paragraph:last-child p, table.tableblock td > p:last-child { margin-bottom: 0; }
th.tableblock.halign-left, td.tableblock.halign-left { text-align: left; }
th.tableblock.halign-right, td.tableblock.halign-right { text-align: right; }
th.tableblock.halign-center, td.tableblock.halign-center { text-align: center; }
th.tableblock.halign-top, td.tableblock.halign-top { vertical-align: top; }
th.tableblock.halign-bottom, td.tableblock.halign-bottom { vertical-align: bottom; }
th.tableblock.halign-middle, td.tableblock.halign-middle { vertical-align: middle; }
p.tableblock.header { color: #222222; font-weight: bold; }
td > div.verse { white-space: pre; }
ol { margin-left: 1.75em; }
ul li ol { margin-left: 1.5em; }
dl dd { margin-left: 1.125em; }
dl dd:last-child, dl dd:last-child > :last-child { margin-bottom: 0; }
.unstyled dl dt { font-weight: normal; font-style: normal; }
ol > li p, ul > li p, ul dd, ol dd, .olist .olist, .ulist .olist, .olist .ulist { margin-bottom: 0.625em; }
ul.unstyled, ol.unnumbered, ul.checklist { list-style-type: none; margin-left: 0.625em; }
ol.arabic { list-style-type: decimal; }
ol.decimal { list-style-type: decimal-leading-zero; }
ol.loweralpha { list-style-type: lower-alpha; }
ol.upperalpha { list-style-type: upper-alpha; }
ol.lowerroman { list-style-type: lower-roman; }
ol.upperroman { list-style-type: upper-roman; }
ol.lowergreek { list-style-type: lower-greek; }
.hdlist > table, .colist > table { border: 0; background: none; }
.hdlist > table > tbody > tr, .colist > table > tbody > tr { background: none; }
.literalblock + .colist, .listingblock + .colist { margin-top: -0.5em; }
.colist > table tr > td:first-of-type { padding: 0 .8em; line-height: 1; }
.colist > table tr > td:last-of-type { padding: 0.25em 0; }
td.hdlist1 { vertical-align: top; padding-right: .8em; font-weight: bold; }
.qanda > ol > li > p:first-child { color: #005580; }
.thumb, .th { line-height: 0; display: inline-block; border: solid 4px white; -webkit-box-shadow: none; box-shadow: none; }
.imageblock { margin-bottom: 1.25em; }
.imageblock.left, .imageblock[style*="float: left"] { margin: 0.25em 0.625em 1.25em 0; }
.imageblock.right, .imageblock[style*="float: right"] { margin: 0.25em 0 1.25em 0.625em; }
.imageblock > .title { margin-bottom: 0; }
.imageblock.thumb, .imageblock.th { border-width: 6px; }
.imageblock.thumb > .title, .imageblock.th > .title { padding: 0 0.125em; }
.image.left, .image.right { margin-top: 0.25em; margin-bottom: 0.25em; display: inline-block; line-height: 0; }
.image.left { margin-right: 0.625em; }
.image.right { margin-left: 0.625em; }
span.footnote, span.footnoteref { vertical-align: super; font-size: 0.875em; }
span.footnote a, span.footnoteref a { text-decoration: none; }
#footnotes { padding: 0.75em 0.375em; margin-bottom: 1.25em; }
#footnotes hr { width: 20%; min-width: 6.25em; margin: -.25em 0 .75em 0; border-width: 1px 0 0 0; }
#footnotes .footnote { line-height: 1.3; font-size: 0.875em; margin-left: 1.2em; text-indent: -1.2em; margin-bottom: .2em; }
#footnotes .footnote a:first-of-type { font-weight: bold; text-decoration: none; }
#footnotes .footnote:last-of-type { margin-bottom: 0; }
#content #footnotes { margin-top: -0.625em; }
.gist .file-data > table { border: none; background: #fff; width: 100%; margin-bottom: 0; }
.gist .file-data > table td.line-data { width: 99%; }
div.unbreakable { page-break-inside: avoid; }
.big { font-size: larger; }
.small { font-size: smaller; }
.underline { text-decoration: underline; }
.overline { text-decoration: overline; }
.line-through { text-decoration: line-through; }
.aqua { color: #00bfbf; }
.aqua-background { background-color: #00fafa; }
.black { color: black; }
.black-background { background-color: black; }
.blue { color: #0000bf; }
.blue-background { background-color: #0000fa; }
.fuchsia { color: #bf00bf; }
.fuchsia-background { background-color: #fa00fa; }
.gray { color: #606060; }
.gray-background { background-color: #7d7d7d; }
.green { color: #006000; }
.green-background { background-color: #007d00; }
.lime { color: #00bf00; }
.lime-background { background-color: #00fa00; }
.maroon { color: #600000; }
.maroon-background { background-color: #7d0000; }
.navy { color: #000060; }
.navy-background { background-color: #00007d; }
.olive { color: #606000; }
.olive-background { background-color: #7d7d00; }
.purple { color: #600060; }
.purple-background { background-color: #7d007d; }
.red { color: #bf0000; }
.red-background { background-color: #fa0000; }
.silver { color: #909090; }
.silver-background { background-color: #bcbcbc; }
.teal { color: #006060; }
.teal-background { background-color: #007d7d; }
.white { color: #bfbfbf; }
.white-background { background-color: #fafafa; }
.yellow { color: #bfbf00; }
.yellow-background { background-color: #fafa00; }
.admonitionblock td.icon [class^="icon-"]:before { font-size: 2.5em; text-shadow: none; cursor: default; }
.admonitionblock td.icon .icon-note:before { content: "\f05a"; color: #006699; color: #004c73; }
.admonitionblock td.icon .icon-tip:before { content: "\f0eb"; text-shadow: 1px 1px 2px rgba(155, 155, 0, 0.8); color: #111; }
.admonitionblock td.icon .icon-warning:before { content: "\f071"; color: #bf6900; }
.admonitionblock td.icon .icon-caution:before { content: "\f06d"; color: #bf3400; }
.admonitionblock td.icon .icon-important:before { content: "\f06a"; color: #bf0000; }
.conum { display: inline-block; color: white !important; background-color: #222222; -webkit-border-radius: 100px; border-radius: 100px; text-align: center; width: 20px; height: 20px; font-size: 12px; font-weight: bold; line-height: 20px; font-family: Arial, sans-serif; font-style: normal; position: relative; top: -2px; letter-spacing: -1px; }
.conum * { color: white !important; }
.conum + b { display: none; }
.conum:after { content: attr(data-value); }
.conum:not([data-value]):empty { display: none; }
nav.global { background: #222; width: 100%; height: 4em; }
nav.global ul { list-style-type: none; margin: 0; }
nav.global li { display: inline-block; }
nav.global a { display: block; padding: .5em 1em; font-family: Overpass; font-size: 1.1em; color: white; }
nav.global a:hover { color: #ef2e32; }
nav.global a img { margin-top: .25em; height: 2.75em; }
#header > h1 { border: none; }
#toc { background: #eee; border-right: none; }
#toc.toc2 { box-shadow: 1px 0 1px rgba(0, 0, 0, 0.3); }
code { font-family: source_code_pro; }
.admonitionblock td.icon .icon-tip:before { color: #cc6; text-shadow: none; }
#footer { background-image: url("_images/panda.png"); background-position: right bottom; background-repeat: no-repeat; }
/* Alignment Styles */
.halign-left { text-align: left }
.halign-center { text-align: center }
.halign-right { text-align: right }
.valign-top { vertical-align: top }
.valign-middle { vertical-align: middle }
.valign-bottom { vertical-align: bottom }

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 B

View File

@@ -0,0 +1,129 @@
/*! Respond.js: min/max-width media query polyfill. Remote proxy (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */
(function(win, doc, undefined){
var docElem = doc.documentElement,
proxyURL = doc.getElementById("respond-proxy").href,
redirectURL = (doc.getElementById("respond-redirect") || location).href,
baseElem = doc.getElementsByTagName("base")[0],
urls = [],
refNode;
function encode(url){
return win.encodeURIComponent(url);
}
function fakejax( url, callback ){
var iframe,
AXO;
// All hail Google http://j.mp/iKMI19
// Behold, an iframe proxy without annoying clicky noises.
if ( "ActiveXObject" in win ) {
AXO = new ActiveXObject( "htmlfile" );
AXO.open();
AXO.write( '<iframe id="x"></iframe>' );
AXO.close();
iframe = AXO.getElementById( "x" );
} else {
iframe = doc.createElement( "iframe" );
iframe.style.cssText = "position:absolute;top:-99em";
docElem.insertBefore(iframe, docElem.firstElementChild || docElem.firstChild );
}
iframe.src = checkBaseURL(proxyURL) + "?url=" + encode(redirectURL) + "&css=" + encode(checkBaseURL(url));
function checkFrameName() {
var cssText;
try {
cssText = iframe.contentWindow.name;
}
catch (e) { }
if (cssText) {
// We've got what we need. Stop the iframe from loading further content.
iframe.src = "about:blank";
iframe.parentNode.removeChild(iframe);
iframe = null;
// Per http://j.mp/kn9EPh, not taking any chances. Flushing the ActiveXObject
if (AXO) {
AXO = null;
if (win.CollectGarbage) {
win.CollectGarbage();
}
}
callback(cssText);
}
else{
win.setTimeout(checkFrameName, 100);
}
}
win.setTimeout(checkFrameName, 500);
}
// http://stackoverflow.com/a/472729
function checkBaseURL(href) {
var el = document.createElement('div'),
escapedURL = href.split('&').join('&amp;').
split('<').join('&lt;').
split('"').join('&quot;');
el.innerHTML = '<a href="' + escapedURL + '">x</a>';
return el.firstChild.href;
}
function checkRedirectURL() {
// IE6 & IE7 don't build out absolute urls in <link /> attributes.
// So respond.proxy.gif remains relative instead of http://example.com/respond.proxy.gif.
// This trickery resolves that issue.
if (~ !redirectURL.indexOf(location.host)) {
var fakeLink = doc.createElement("div");
fakeLink.innerHTML = '<a href="' + redirectURL + '"></a>';
docElem.insertBefore(fakeLink, docElem.firstElementChild || docElem.firstChild );
// Grab the parsed URL from that dummy object
redirectURL = fakeLink.firstChild.href;
// Clean up
fakeLink.parentNode.removeChild(fakeLink);
fakeLink = null;
}
}
function buildUrls(){
var links = doc.getElementsByTagName( "link" );
for( var i = 0, linkl = links.length; i < linkl; i++ ){
var thislink = links[i],
href = links[i].href,
extreg = (/^([a-zA-Z:]*\/\/(www\.)?)/).test( href ),
ext = (baseElem && !extreg) || extreg;
//make sure it's an external stylesheet
if( thislink.rel.indexOf( "stylesheet" ) >= 0 && ext ){
(function( link ){
fakejax( href, function( css ){
link.styleSheet.rawCssText = css;
respond.update();
} );
})( thislink );
}
}
}
if( !respond.mediaQueriesSupported ){
checkRedirectURL();
buildUrls();
}
})( window, document );

View File

@@ -0,0 +1 @@
@import url(http://openshift.redhat.com/app/assets/overpass.css);

View File

@@ -0,0 +1,13 @@
/* Generated by Font Squirrel (http://www.fontsquirrel.com) on July 24, 2013 */
@font-face {
font-family: 'source_code_pro';
src: url('fonts/sourcecodepro-regular-webfont.eot');
src: url('fonts/sourcecodepro-regular-webfont.eot?#iefix') format('embedded-opentype'),
url('fonts/sourcecodepro-regular-webfont.woff') format('woff'),
url('fonts/sourcecodepro-regular-webfont.ttf') format('truetype'),
url('sourcecodepro-regular-webfont.svg#source_code_proregular') format('svg');
font-weight: normal;
font-style: normal;
}

View File

@@ -0,0 +1,81 @@
/*
Origin theme source file
To build it:
- clone the asciidoctor-stylesheet-factory repo
- copy this theme file to the sass folder inside the repo
- copy the settings file to the sass/settings file inside the repo
- cd to the cloned repo
- bundle install
- compass compile
- compiled stylesheet is in the stylesheets/ directory
*/
@import "fonts/overpass";
@import "fonts/sourcecode";
@import "settings/origin";
@import "components/asciidoc";
@import "components/awesome-icons";
nav.global {
background: #222;
width: 100%;
height: 4em;
ul {
list-style-type: none;
margin: 0;
}
li {
display: inline-block;
}
a {
display: block;
padding: .5em 1em;
font-family: Overpass;
font-size: 1.1em;
color: white;
&:hover {
color: #ef2e32;
}
img {
margin-top: .25em;
height: 2.75em;
}
}
}
#header > h1 {
border: none;
}
#toc {
background: #eee;
border-right: none;
&.toc2 {
box-shadow: 1px 0 1px rgba(0,0,0,0.3);
}
}
code {
font-family: source_code_pro;
}
.admonitionblock td.icon .icon-tip:before {
color: #cc6;
text-shadow: $icon-text-shadow;
}
#footer {
background-image: url('_images/panda.png');
background-position: right bottom;
background-repeat: no-repeat;
}

View File

@@ -0,0 +1,68 @@
@import "defaults";
// Body
$em-base: 16px;
$primary-color: #006699;
//$alert-color: lighten(#6d180b, 15%);
$global-radius: 0;
$body-font-family: "Helvetica Neue",Helvetica,"Liberation Sans",Arial,sans-serif;
// Title
$title-font-color: #222;
// Headings
$header-font-family: Overpass, sans-serif;
//$header-font-weight: normal;
$header-font-color: #222;
$header-top-margin: 1em;
//$subheader-font-color: darken($header-font-color, 15%);
$sect-divider-size: 0;
$sect-divider-style: solid;
$sect-divider-color: #ddd;
// Paragraphs
// Inline Code
// Code Blocks
// *Recommended highlight.js themes: foundation
$pre-font-size: 1em;
$pre-font-family: source_code_pro, monospace, serif;
$pre-bg: #eee;
$pre-line-height: 1.4;
$pre-border-size: 0;
$pre-border-color: #ccc;
$pre-border-style: solid;
$pre-font-color: black;
$pre-padding: .8em .8em .6em .8em;
// Links
//$anchor-text-decoration: underline;
// Lists
$list-side-margin: emCalc(24px);
$definition-list-header-margin-bottom: emCalc(5px);
$definition-list-margin-bottom: emCalc(20px);
// FIXME need to account for nested definition list
//$definition-list-content-margin-left: 0;
// Blockquotes
//$blockquote-font-color: lighten($body-font-color, 30%);
//$blockquote-cite-font-size: inherit;
//$blockquote-cite-font-color: darken($blockquote-font-color, 10%);
// Tables
$table-head-font-size: inherit;
$table-row-font-size: inherit;
$table-line-height: 1.4;
//Icons
$icon-text-shadow: none;
//Images
$thumb-box-shadow: none;

48
_stylesheets/search.css Normal file
View File

@@ -0,0 +1,48 @@
#hc-search-input {
font-size: 12px;
height: 25px;
width: 70%;
}
#hc-search-btn {
font-size: 12px;
height: 25px;
width: 25%;
}
#hc-search-modal {
display: none;
position: fixed;
z-index: 1;
padding-top: 5%;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgb(0,0,0);
background-color: rgba(0,0,0,0.4);
}
#hc-modal-content {
background-color: #fefefe;
margin: auto;
padding: 20px;
border: 1px solid #888;
width: 80%;
height: 80vh;
}
#hc-modal-close {
color: #aaaaaa;
float: right;
font-size: 28px;
font-weight: bold;
}
#hc-modal-close:hover,
#hc-modal-close:focus {
color: #000;
text-decoration: none;
cursor: pointer;
}

View File

@@ -0,0 +1 @@
<%= render(distro_key == 'openshift-origin' ? "_templates/_analytics_origin.html" : "_templates/_analytics_other.html") %>

View File

@@ -0,0 +1,7 @@
<script async src="//www.google-analytics.com/analytics.js" type="text/javascript"></script>
<script>
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', 'UA-40375612-1', 'openshift.org');
ga('set', 'forceSSL', true);
ga('send', 'pageview');
</script>

View File

@@ -0,0 +1,11 @@
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-PMDVKG');</script>
<!-- End Google Tag Manager -->
<!-- Adobe DTM -->
<script src="//www.redhat.com/dtm.js" type="text/javascript"></script>
<!-- End Adobe DTM -->

View File

@@ -0,0 +1 @@
<%= render((distro_key == 'openshift-origin' ? "_templates/_footer_origin.html.erb" : "_templates/_footer_other.html.erb"), :images_path => images_path) %>

View File

@@ -0,0 +1,21 @@
<footer>
<hr class='visible-print'>
&copy; 2014&ndash;2016 Project Atomic. Sponsored by Red Hat, Inc.
<div class='edit-this-page pull-right'>
<a href="https://github.com/openshift/openshift-docs#contributing-to-openshift-documentation"><i class="icon fa fa-fw fa-github"></i>Edit this page on GitHub</a>
</div>
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u=(("https:" == document.location.protocol) ? "https" : "http") + "://piwik-osasteam.rhcloud.com/piwik/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 4]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript';
g.defer=true; g.async=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="https://piwik-osasteam.rhcloud.com/piwik/piwik.php?idsite=4" style="border:0;" alt="" /></p></noscript>
</footer>

View File

@@ -0,0 +1,62 @@
<footer class="footer-origin-docs">
<div class="container">
<div class="row">
<div class="col-sm-12">
<div id="footer_social">
<a href="https://twitter.com/openshift" class="first">
<span>
<i class="fa fa-twitter-square fa-2x fa-inverse"></i>
</span>
</a>
<a href="https://github.com/openshift/origin">
<span>
<i class="fa fa-github fa-2x fa-inverse"></i>
</span>
</a>
<a href="https://plus.google.com/communities/114361859072744017486">
<span>
<i class="fa fa-google-plus-square fa-2x fa-inverse"></i>
</span>
</a>
<a href="https://www.facebook.com/openshift">
<span>
<i class="fa fa-facebook-square fa-2x fa-inverse"></i>
</span>
</a>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12 col-sm-4">
<a id="footer_logo" href="https://www.redhat.com/">
<img alt="Red Hat" src="https://assets.openshift.net/app/assets/redhat.svg">
</a>
</div>
<div class="col-xs-12 col-sm-4 text-center">
<a id="powered_by_openshift" title="Powered by OpenShift Online" href="https://www.openshift.com/">
<img src="https://www.openshift.com/sites/default/files/images/powered-transparent-white.png" alt="Powered by OpenShift Online">
</a>
</div>
<div class="col-xs-12 col-sm-4 text-right">
<a id="built_with_asciibinder" title="Built with AsciiBinder docs management system" href="http://asciibinder.org/">
<img src="<%= File.join(images_path, 'asciibinder_web_logo.svg') %>" alt="AsciiBinder">
</a>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<div class="attribution">
<button type="button" class="btn btn-link" data-html="true" data-container="body" data-toggle="popover" data-placement="top" data-content="
'<a target='_blank' href='https://www.flickr.com/photos/eflon/3655695161/'>Spin</a>' by <a target='_blank' href='https://www.flickr.com/photos/eflon/'>eflon</a>,</br> used under <a target='_blank' href='https://creativecommons.org/licenses/by/2.0/'>CC BY 2.0</a> </br>Color tint added to original">
Image attribution
</button>
</div>
</div>
</div>
<script>
$(function () {
$('[data-toggle="popover"]').popover()
})
</script>
</div>
</footer>

View File

@@ -0,0 +1,35 @@
<footer id="rh">
<div class="container">
<div class="row">
<div class="col-sm-2">
<img src="https://assets.openshift.net/content/subdomain/redhat_logo.svg" class="img-fluid" alt="Red Hat" style="height: 40px;">
</div>
<div class="col-sm-3">
<p>Copyright © 2018 <span class="text-nowrap">Red Hat, Inc.</span></p>
</div>
<div class="col-sm-5">
<nav class="nav">
<a href="https://www.redhat.com/en/about/privacy-policy" class="nav-link">Privacy statement</a>
<a href="https://www.openshift.com/legal/terms/" class="nav-link">Terms of use</a>
<a href="https://www.redhat.com/en/about/all-policies-guidelines" class="nav-link">All policies and guidelines</a>
</nav>
</div>
<div class="hidden-sm col-sm-2 powered-by">
<a href="https://www.openshift.com/" title="Powered by OpenShift Online">
<img src="https://www.openshift.com/images/logos/powered_by_openshift_reverse.png" alt="Powered by OpenShift Online">
</a>
</div>
</div>
</div>
</footer>
<!-- Adobe DTM -->
<script type="text/javascript">
if (("undefined" !== typeof _satellite) && ("function" === typeof _satellite.pageBottom)) {
_satellite.pageBottom();
}
</script>
<!-- End Adobe DTM -->

View File

@@ -0,0 +1,28 @@
<ul class='docbrowser nav nav-vertical'>
<%- navigation.each.with_index do |topic_group, groupidx| -%>
<%- current_group = topic_group[:id] == group_id -%>
<li class='disabled'>
<h3><%= topic_group[:name] %></h3>
</li>
<%- topic_group[:topics].each.with_index do |topic, topicidx| -%>
<%- if not topic.has_key?(:topics) -%>
<%- current_topic = current_group && (topic[:id] == topic_id) -%>
<li role="menuitem" class="<%= current_topic ? ' active' : '' %>"><a href="<%= subtopic_shim %><%= topic[:path] %>"><%= topic[:name] %></a></li>
<%- else -%>
<%- current_subgroup = topic[:id] == subgroup_id -%>
<!-- <li role="menuitem"><a><%= topic[:name] %></a></li> -->
<li role="menuitem" class="<%= current_topic ? ' active' : '' %>">
<a class="" href="javascript:void(0);" data-toggle="collapse" data-target="#topicSubGroup-<%= groupidx %>-<%= topicidx %>">
<span id="sgSpan-<%= groupidx %>-<%= topicidx %>" class="fa <%= current_subgroup ? 'fa-caret-down' : 'fa-caret-right' %>"></span>&nbsp;<%= topic[:name] %>
</a>
<ul id="topicSubGroup-<%= groupidx %>-<%= topicidx %>" class="nav-tertiary list-unstyled collapse<%= current_subgroup ? ' in' : '' %>">
<%- topic[:topics].each do |subtopic| -%>
<%- current_subtopic = current_group && current_subgroup && (subtopic[:id] == topic_id) %>
<li class="<%= current_subtopic ? ' active' : '' %>">&nbsp;<a role="menuitem" href="<%= subtopic_shim %><%= subtopic[:path] %>"><%= subtopic[:name] %></strong></a><li>
<%- end -%>
</ul>
</li>
<%- end -%>
<%- end -%>
<%- end -%>
</ul>

View File

@@ -0,0 +1,31 @@
<ul class="nav nav-sidebar">
<%- navigation.each.with_index do |topic_group, groupidx| -%>
<%- current_group = topic_group[:id] == group_id -%>
<li class="nav-header">
<a class="" href="javascript:void(0);" data-toggle="collapse" data-target="#topicGroup<%= groupidx %>">
<span id="tgSpan<%= groupidx %>" class="fa <%= current_group ? 'fa-angle-down' : 'fa-angle-right' %>"></span><%= topic_group[:name] %>
</a>
<ul id="topicGroup<%= groupidx %>" class="collapse <%= current_group ? 'in' : '' %> list-unstyled">
<%- topic_group[:topics].each.with_index do |topic, topicidx| -%>
<%- if not topic.has_key?(:topics) -%>
<%- current_topic = current_group && (topic[:id] == topic_id) -%>
<li><a class="<%= current_topic ? ' active' : '' %>" href="<%= subtopic_shim %><%= topic[:path] %>"><%= topic[:name] %></a></li>
<%- else -%>
<%- current_subgroup = topic[:id] == subgroup_id -%>
<li class="nav-header">
<a class="" href="javascript:void(0);" data-toggle="collapse" data-target="#topicSubGroup-<%= groupidx %>-<%= topicidx %>">
<span id="sgSpan-<%= groupidx %>-<%= topicidx %>" class="fa <%= current_subgroup ? 'fa-caret-down' : 'fa-caret-right' %>"></span>&nbsp;<%= topic[:name] %>
</a>
<ul id="topicSubGroup-<%= groupidx %>-<%= topicidx %>" class="nav-tertiary list-unstyled collapse<%= current_subgroup ? ' in' : '' %>">
<%- topic[:topics].each do |subtopic| -%>
<%- current_subtopic = current_group && current_subgroup && (subtopic[:id] == topic_id) %>
<li><a class="<%= current_subtopic ? ' active' : '' %>" href="<%= subtopic_shim %><%= subtopic[:path] %>"><%= subtopic[:name] %></a></li>
<%- end -%>
</ul>
</li>
<%- end -%>
<%- end -%>
</ul>
</li>
<%- end -%>
</ul>

View File

@@ -0,0 +1,111 @@
<!DOCTYPE html>
<!--[if IE 8]> <html class="ie8"> <![endif]-->
<!--[if IE 9]> <html class="ie9"> <![endif]-->
<!--[if gt IE 9]><!-->
<html>
<!--<![endif]-->
<head>
<meta charset="utf-8">
<meta content="IE=edge" http-equiv="X-UA-Compatible">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<title><%= [topic_title, subgroup_title].compact.join(' - ') %> | <%= group_title %> | <%= distro %> <%= version %></title>
<link href="https://assets.openshift.net/content/subdomain.css" rel="stylesheet" type="text/css">
<link href="<%= File.join(css_path, 'docs.css') %>" rel="stylesheet" />
<link href="<%= File.join(css_path, 'search.css') %>" rel="stylesheet" />
<link href="https://assets.openshift.net/content/subdomain/touch-icon-precomposed.png" rel="apple-touch-icon-precomposed" type="image/png">
<link href="https://assets.openshift.net/content/subdomain/favicon32x32.png" rel="shortcut icon" type="text/css">
<link href="https://assets.openshift.net/content/osh-nav-footer.css" rel="stylesheet" type="text/css" media="screen, print" />
<!--[if IE]><link rel="shortcut icon" href="https://assets.openshift.net/content/subdomain/favicon.ico"><![endif]-->
<!-- or, set /favicon.ico for IE10 win -->
<meta content="OpenShift" name="application-name">
<meta content="#000000" name="msapplication-TileColor">
<meta content="https://assets.openshift.net/content/subdomain/touch-icon-precomposed.png" name="msapplication-TileImage">
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://assets.openshift.net/content/html5shiv.js" type="text/javascript"></script>
<script src="https://assets.openshift.net/content/respond.js" type="text/javascript"></script>
<link href="https://assets.openshift.net/content/vendor/respond-js/respond-proxy.html" id="respond-proxy" rel="respond-proxy">
<link href="<%= File.join(images_path, "respond.proxy.gif") %>" id="respond-redirect" rel="respond-redirect">
<script src="<%= File.join(javascripts_path, "respond.proxy.js") %>" type="text/javascript"></script>
<![endif]-->
<script src="https://assets.openshift.net/content/modernizr.js" type="text/javascript"></script>
<script src="https://assets.openshift.net/content/subdomain.js" type="text/javascript"></script>
<script src="https://assets.openshift.net/content/nav-tertiary.js" type="text/javascript"></script>
<script src="<%= File.join(javascripts_path, "bootstrap-offcanvas.js") %>" type="text/javascript"></script>
<script src="<%= File.join(javascripts_path, "reformat-html.js") %>" type="text/javascript"></script>
<script src="<%= File.join(javascripts_path, "hc-search.js") %>" type="text/javascript"></script>
<%= render("_templates/_analytics.html.erb", :distro_key => distro_key) %>
</head>
<body>
<%= render("_templates/_topnav.html.erb", :distro_key => distro_key) %>
<div class="container">
<p class="toggle-nav visible-xs pull-left">
<button class="btn btn-default btn-sm" type="button" data-toggle="offcanvas">Toggle nav</button>
</p>
<ol class="breadcrumb">
<li class="sitename">
<a href="<%= site_home_path %>"><%= site_name %></a>
</li>
<li class="hidden-xs active">
<%= breadcrumb_root %>
</li>
<li class="hidden-xs active">
<%= breadcrumb_group %>
</li>
<%= breadcrumb_subgroup_block %>
<li class="hidden-xs active">
<%= breadcrumb_topic %>
</li>
<% if (distro_key != "openshift-origin") %>
<span text-align="right" style="float: right !important">
<a href="https://github.com/openshift/openshift-docs/commits/enterprise-<%= (distro_key == "openshift-enterprise") ? version : ((distro_key == "openshift-dedicated") ? "3.7" : "3.7") %>/<%= repo_path %>">
Page history
</a>
/
<a href="https://github.com/openshift/openshift-docs/issues/new?title=<%= (distro_key == "openshift-enterprise") ? "[enterprise-#{version}] Edit suggested in file #{repo_path}" :
((distro_key == "openshift-dedicated") ? "[dedicated] Edit suggested in file #{repo_path}" : "[online] Edit suggested in file #{repo_path}") %>">
Suggest an edit
</a>
</span>
<% end %>
</ol>
<div class="row row-offcanvas row-offcanvas-left">
<div class="col-xs-8 col-sm-3 col-md-3 sidebar sidebar-offcanvas">
<div class="row-fluid">
<%= render("_templates/_search.html.erb", :distro_key => distro_key, :version => version) %>
</div>
<%= render("_templates/_nav_openshift.html.erb", :navigation => navigation, :group_id => group_id, :topic_id => topic_id, :subgroup_id => subgroup_id, :subtopic_shim => subtopic_shim) %>
</div>
<div class="col-xs-12 col-sm-9 col-md-9 main">
<div class="page-header">
<h1><%= article_title %></h1>
</div>
<%= content %>
</div>
</div>
</div>
<script type="text/javascript">
/*<![CDATA[*/
$(document).ready(function() {
$("[id^='topicGroup']").on('show.bs.collapse', function (event) {
if (!($(event.target).attr('id').match(/^topicSubGroup/))) {
$(this).parent().find("[id^='tgSpan']").toggleClass("fa-angle-right fa-angle-down");
}
});
$("[id^='topicGroup']").on('hide.bs.collapse', function (event) {
if (!($(event.target).attr('id').match(/^topicSubGroup/))) {
$(this).parent().find("[id^='tgSpan']").toggleClass("fa-angle-right fa-angle-down");
}
});
$("[id^='topicSubGroup']").on('show.bs.collapse', function () {
$(this).parent().find("[id^='sgSpan']").toggleClass("fa-caret-right fa-caret-down");
});
$("[id^='topicSubGroup']").on('hide.bs.collapse', function () {
$(this).parent().find("[id^='sgSpan']").toggleClass("fa-caret-right fa-caret-down");
});
});
/*]]>*/
</script>
<%= render("_templates/_footer.html.erb", :distro_key => distro_key, :images_path => images_path) %>
</body>
</html>

View File

@@ -0,0 +1,11 @@
<% if distro_key == 'openshift-origin' %>
<%= render("_templates/_search_origin.html.erb", :version => version) %>
<% elsif distro_key == 'openshift-dedicated' %>
<%= render("_templates/_search_dedicated.html.erb") %>
<% elsif distro_key == 'openshift-online' %>
<%= render("_templates/_search_online.html") %>
<% elsif distro_key == 'openshift-enterprise' %>
<%= render("_templates/_search_enterprise.html.erb", :version => version) %>
<% else %>
<%= render("_templates/_search_other.html") %>
<% end %>

View File

@@ -0,0 +1,15 @@
<div id="hc-search">
<input id="hc-search-input" type="text">
<button id="hc-search-btn">Search</button>
</div>
<div id="hc-search-modal">
<div id="hc-modal-content">
<span id="hc-modal-close">&times;</span>
<div id="hc-search-results"></div>
</div>
</div>
<script>
hcSearchCategory("docs_dedicated");
</script>

View File

@@ -0,0 +1,15 @@
<div id="hc-search">
<input id="hc-search-input" type="text">
<button id="hc-search-btn">Search</button>
</div>
<div id="hc-search-modal">
<div id="hc-modal-content">
<span id="hc-modal-close">&times;</span>
<div id="hc-search-results"></div>
</div>
</div>
<script>
hcSearchCategory("docs_cp", "<%= version %>");
</script>

View File

@@ -0,0 +1,15 @@
<div id="hc-search">
<input id="hc-search-input" type="text">
<button id="hc-search-btn">Search</button>
</div>
<div id="hc-search-modal">
<div id="hc-modal-content">
<span id="hc-modal-close">&times;</span>
<div id="hc-search-results"></div>
</div>
</div>
<script>
hcSearchCategory("docs_online");
</script>

View File

@@ -0,0 +1,15 @@
<div id="hc-search">
<input id="hc-search-input" type="text">
<button id="hc-search-btn">Search</button>
</div>
<div id="hc-search-modal">
<div id="hc-modal-content">
<span id="hc-modal-close">&times;</span>
<div id="hc-search-results"></div>
</div>
</div>
<script>
hcSearchCategory("docs_origin", "<%= version %>");
</script>

View File

@@ -0,0 +1,15 @@
<div id="hc-search">
<input id="hc-search-input" type="text">
<button id="hc-search-btn">Search</button>
</div>
<div id="hc-search-modal">
<div id="hc-modal-content">
<span id="hc-modal-close">&times;</span>
<div id="hc-search-results"></div>
</div>
</div>
<script>
hcSearchCategory("docs");
</script>

View File

@@ -0,0 +1 @@
<%= render(distro_key == 'openshift-origin' ? "_templates/_topnav_origin.html" : "_templates/_topnav_other.html") %>

View File

@@ -0,0 +1,34 @@
<div class='row'>
<div class='col-md-3 col-lg-2' id='sidebar'>
<div id='nav-primary'>
<nav class='navbar navbar-default' role='navigation'>
<div class='navbar-header'>
<button class='navbar-toggle' data-target='.navbar-ex1-collapse' data-toggle='collapse'>
<span class='sr-only'>
Toggle navigation
</span>
<span class='icon-bar'></span>
<span class='icon-bar'></span>
<span class='icon-bar'></span>
</button>
<a class='navbar-brand' href='http://www.projectatomic.io/'>
Project Atomic
</a>
</div>
<div class='collapse navbar-collapse navbar-ex1-collapse'>
<ul class='nav navbar-nav'>
<li><a class="get-started" href="http://www.projectatomic.io/download">Get Started</a></li>
<li><a class="documentation" href="http://www.projectatomic.io/docs">Documentation</a></li>
<li><a class="developer-community" href="http://www.projectatomic.io/community">Developer Community</a></li>
<li><a class="on-github" href="https://github.com/projectatomic/">On GitHub</a></li>
<li><a class="ask" href="http://ask.projectatomic.io/">Ask</a></li>
<li><a class="blog" href="http://www.projectatomic.io/blog">Blog</a></li>
<li><a class="twitter" href="http://www.twitter.com/projectatomic">Twitter</a></li>
<li><a class="facebook" href="https://www.facebook.com/projectatomic">Facebook</a></li>
<li><a class="google" href="https://plus.google.com/108727025270662383247/posts">Google+</a></li>
<li><a class="rss" href="http://www.projectatomic.io/blog/feed.xml">RSS</a></li>
</ul>
</div>
</nav>
</div>
</div>

View File

@@ -0,0 +1,5 @@
<div class="navbar navbar-default navbar-openshift navbar-origin" role="navigation">
<div class="navbar-header">
<a class="navbar-brand origin" href="/"></a>
</div>
</div>

View File

@@ -0,0 +1,121 @@
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-PMDVKG"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<nav id="main">
<div class="container">
<div class="row">
<div class="navbar navbar-default navbar-openshift" role="navigation">
<div class="navbar-header">
<a href="#nav-main" class="dropdown-toggle navbar-menu-toggle hidden visible-xs" data-toggle="collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="navbar-brand" target="_blank" href="https://www.openshift.com"></a>
</div>
<div id="nav-main" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Products <span class="fa fa-angle-down"></span>
</a>
<ul class="dropdown-menu">
<li><a target="_blank" href="https://www.openshift.com/products/">Overview</a></li>
<li><a target="_blank" href="https://www.openshift.com/products/features/">Features</a></li>
<li class="dropdown">
<a class="dropdown-toggle" target="_blank" href="https://www.openshift.com/products/online/">Online</a>
<ul class="dropdown-menu product" style="display: none;">
<a target="_blank" href="https://www.openshift.com/products/online/">
<li>
<p><img src="https://assets.openshift.net/content/subdomain/Logotype_RH_OpenShiftOnline_wLogo_RGB_Gray.svg" alt="" class="img-responsive"></p>
<p>The fastest way for developers to build, host and scale applications in the public cloud</p>
</li>
</a>
</ul>
</li>
<li class="dropdown">
<a class="dropdown-toggle" target="_blank" href="https://www.openshift.com/products/dedicated/">Dedicated</a>
<ul class="dropdown-menu product" style="display: none;">
<a target="_blank" href="https://www.openshift.com/products/dedicated/">
<li>
<p><img src="https://assets.openshift.net/content/subdomain/Logotype_RH_OpenShiftDedicated_wLogo_RGB_Gray.svg" alt="" class="img-responsive"></p>
<p>Single-tenant, high-availability Kubernetes clusters in the public cloud</p>
</li>
</a>
</ul>
</li>
<li class="dropdown">
<a class="dropdown-toggle" target="_blank" href="https://www.openshift.com/products/container-platform/">Container Platform</a>
<ul class="dropdown-menu product" style="display: none;">
<a target="_blank" href="https://www.openshift.com/products/container-platform/">
<li>
<p><img src="https://assets.openshift.net/content/subdomain/Logotype_RH_OpenShiftContainerPlatform_wLogo_RGB_Gray.svg" alt="" class="img-responsive"></p>
<p>Build, deploy and manage your applications across cloud- and on-premise infrastructure</p>
</li>
</a>
</ul>
</li>
<li><a target="_blank" href="https://www.openshift.com/products/quay/">Quay</a></li>
<li><a target="_blank" href="https://www.openshift.com/products/pricing/">Pricing</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Learn <span class="fa fa-angle-down"></span>
</a>
<ul class="dropdown-menu">
<li><a target="_blank" href="https://www.openshift.com/learn/what-is-openshift/">What Is OpenShift</a></li>
<li><a target="_blank" href="https://www.openshift.com/learn/get-started/">Get Started</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Technology Topics <span class="fa fa-angle-right"></span>
</a>
<ul class="dropdown-menu" style="display: none;">
<li><a target="_blank" href="https://www.openshift.com/learn/topics/security/">Security</a></li>
<li><a target="_blank" href="https://www.openshift.com/learn/topics/kubernetes/">Kubernetes</a></li>
</ul>
</li>
<li><a target="_blank" href="https://www.openshift.com/learn/partners/">Partners</a></li>
<li><a target="_blank" href="https://www.openshift.com/learn/success-stories/">Customer success stories</a></li>
<li><a target="_blank" href="https://blog.openshift.com">Blog</a></li>
<li><a target="_blank" href="https://www.openshift.com/learn/resources/">Resources</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Community <span class="fa fa-angle-down"></span>
</a>
<ul class="dropdown-menu">
<li><a target="_blank" href="https://commons.openshift.org">OpenShift Commons</a></li>
<li><a target="_blank" href="https://www.openshift.org">Open Source (Origin)</a></li>
<li><a target="_blank" href="https://www.openshift.com/community/programs/startups/">Startups</a></li>
<li><a target="_blank" href="https://www.openshift.com/community/programs/grants/">Grants</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Support <span class="fa fa-angle-down"></span>
</a>
<ul class="dropdown-menu">
<li><a target="_blank" href="https://help.openshift.com">Help Center</a></li>
<li><a href="https://docs.openshift.com">OpenShift Docs</a></li>
</ul>
</li>
<li><a class="nav-sign-up" target="_blank" href="https://www.openshift.com/trial/">Free Trial</a></li>
<li><a target="_blank" href="https://manage.openshift.com" class="nav-log-in">Sign In <span class="fa fa-angle-right"></span></a></li>
</ul>
</div>
</div>
</div>
</div>
</nav>

25
_templates/page.html.erb Normal file
View File

@@ -0,0 +1,25 @@
<%= render((distro_key['atomic'] ? "_templates/_page_atomic.html.erb" : "_templates/_page_openshift.html.erb"),
:distro_key => distro_key,
:distro => distro,
:version => version,
:site_name => site_name,
:group_id => group_id,
:group_title => group_title,
:subgroup_id => subgroup_id,
:subgroup_title => subgroup_title,
:topic_id => topic_id,
:topic_title => topic_title,
:article_title => article_title,
:content => content,
:navigation => navigation,
:css_path => css_path,
:javascripts_path => javascripts_path,
:images_path => images_path,
:template_path => template_path,
:site_home_path => site_home_path,
:breadcrumb_group => breadcrumb_group,
:breadcrumb_root => breadcrumb_root,
:breadcrumb_subgroup_block => breadcrumb_subgroup_block,
:breadcrumb_topic => breadcrumb_topic,
:subtopic_shim => subtopic_shim,
:repo_path => repo_path) %>

29
_topic_map.yml Normal file
View File

@@ -0,0 +1,29 @@
# This configuration file dictates the organization of the topic groups and
# topics on the main page of the doc site for this branch. Each record
# consists of the following:
#
# --- <= Record delimiter
# Name: Origin of the Species <= Display name of topic group
# Dir: origin_of_the_species <= Directory name of topic group
# Topics:
# - Name: The Majestic Marmoset <= Topic name
# File: the_majestic_marmoset <= Topic file under group dir +/- .adoc
# - Name: The Curious Crocodile <= Topic 2 name
# File: the_curious_crocodile <= Topic 2 file
# - Name: The Numerous Nematodes <= Sub-topic group name
# Dir: the_numerous_nematodes <= Sub-topic group dir
# Topics:
# - Name: The Wily Worm <= Sub-topic name
# File: the_wily_worm <= Sub-topic file under <group dir>/<subtopic dir>
# - Name: The Acrobatic Ascarid <= Sub-topic 2 name
# File: the_acrobatic_ascarid <= Sub-topic 2 file under <group dir>/<subtopic dir>
#
# The ordering of the records in this document determines the ordering of the
# topic groups and topics on the main page.
---
Name: Mod Docs Guide
Dir: mod_docs_guide
Distros: openshift-*
Topics:
- Name: Welcome
File: index

70
_update_rest_api.py Executable file
View File

@@ -0,0 +1,70 @@
#!/usr/bin/env python2
import collections
import os
import shutil
import yaml
import yaml.dumper
# maintain order of yaml dictionaries
def dict_representer(dumper, data):
return dumper.represent_dict(data.iteritems())
def dict_constructor(loader, node):
return collections.OrderedDict(loader.construct_pairs(node))
yaml.add_representer(collections.OrderedDict, dict_representer)
yaml.add_constructor(yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG,
dict_constructor)
def main():
origin = os.environ.get("ORIGIN_REPO", "../origin")
# clear out all subdirectories under rest_api
for f in os.listdir("rest_api"):
f = os.path.join("rest_api", f)
if os.path.isdir(f):
shutil.rmtree(f)
# copy in subdirectories under rest_api from origin
for f in os.listdir(os.path.join(origin, "api/docs")):
srcp = os.path.join(origin, "api/docs", f)
dstp = os.path.join("rest_api", f)
if os.path.isdir(srcp):
shutil.copytree(srcp, dstp)
# read rest_api topics snippet from origin
with open(os.path.join(origin, "api/docs/_topic_map.yml")) as f:
topics = yaml.load(f)
# read in existing _topic_map.yml
preamble = ""
with open("_topic_map.yml") as f:
while True:
line = f.readline()
preamble += line
if line == "" or line.strip() == "---":
break
docs = list(yaml.load_all(f))
for doc in docs:
if doc["Dir"] == "rest_api":
# remove existing topics referencing subdirectories of rest_api
doc["Topics"] = [t for t in doc["Topics"] if "Dir" not in t]
# add rest_api topics snippet from origin
doc["Topics"].extend(topics)
# write out modified _topic_map.yml
with open("_topic_map.yml", "w") as f:
f.write(preamble)
yaml.dump_all(docs, f, default_flow_style=False)
if __name__ == "__main__":
main()

479
asciibinder-template.yml Normal file
View File

@@ -0,0 +1,479 @@
---
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}"

View File

@@ -0,0 +1,212 @@
[[contributing-to-docs-contributing]]
= Contribute to OpenShift documentation
:icons:
:toc: macro
:toc-title:
:toclevels: 1
:description: Basic information about the OpenShift GitHub repository
toc::[]
== Different ways to contribute
There are a few different ways you can contribute to OpenShift documentation:
* Submit comments at the bottom of each topic (still awaiting implementation)
* Email the OpenShift documentation team openshift-docs@redhat.com
* https://github.com/openshift/openshift-docs/issues/new[Create an issue in
GitHub]
* If you would like to do the work yourself, or if it is a substantial change,
then you you should clone the repository, make your changes, and submit a PR.
Each PR should have closely-related changes.
In particular, it is a good idea to use separate PRs
for bugfix changes (for an old or current release)
vs enhancement changes (for an upcoming new release).
*What happens when you submit a PR?*
If you make a substantial change and submit a PR in GitHub, your PR will be
reviewed by our
https://github.com/orgs/openshift/teams/team-documentation[documentation team].
If there are any further changes, updates, or corrections required, we will
inform you in the PR. When the PR has been reviewed and all changes have been
accepted by our documentation team, your PR will be merged.
== Repository organization
Each top directory in the OpenShift documentation repository can include a
collection of top level topics, and/or subdirectories that further contain a
second level of topics. The exceptions to this rule are directories whose names
start with an underscore (like `_builder_lib` and `_javascripts`), which contain
the assets used to generate the finished documentation.
Each top level `<topic>` directory contains the topics as AsciiDoc files, any
`<subtopic>` subdirectories, and an `images` directory where all images for that
topic are stored.
----
/
/topic_dir1
/subtopic_dir1
/subtopic_dirN
/topic_dir/topic1.adoc
/topic_dir/topicN.adoc
/topic_dir/subtopic_dir1/topic1.adoc
/topic_dir/subtopic_dirN/topicN.adoc
/topic_dir/images
/topic_dir/images/img1.png
/topic_dir/images/imgN.png
...
/topic_dir2
----
== Version management
Most of the content applies to all four OpenShift products: Origin, Online, Dedicated and
Enterprise (some versions of Enterprise), so approximately 80% of the content is reused. In many cases, this
means that individual topics may need to include or exclude individual
paragraphs with respect to a specific OpenShift product. While it is _possible_
to accomplish this solely with Git branches to maintain slightly different
versions of a given topic, doing so would make the task of maintaining internal
consistency extremely difficult for content contributors.
Git branching is still extremely valuable, and serves the important role of
tracking the release versions of documentation for the various OpenShift
products.
=== Conditional text between products
OpenShift documentation uses AsciiDoc's `ifdef/endif` macro to conditionalize
and reuse content across the different OpenShift products, down to the
single-line level.
The supported distribution attributes used with the OpenShift build mechanism
are:
* _openshift-origin_
* _openshift-online_
* _openshift-enterprise_
* _openshift-dedicated_
These attributes can be used by themselves, or in conjunction to conditionalize
text within a topic document.
Here is an example of this concept in use:
----
This first line is unconditionalized, and will appear for all versions.
\ifdef::openshift-online[]
This line will only appear for OpenShift Online.
endif::[]
\ifdef::openshift-enterprise[]
This line will only appear for OpenShift Enterprise.
endif::[]
\ifdef::openshift-origin,openshift-enterprise[]
This line will appear for OpenShift Origin and Enterprise, but not for OpenShift Online or OpenShift Dedicated.
endif::[]
----
Note that the following limitations exist when conditionalizing text:
1. The `ifdef/endif` blocks have no size limit, however they should not be used
to conditionalize an entire topic. If an entire topic file is specific to a
given OpenShift distribution, see the xref:how-it-all-comes-together[How it all
comes together] section for information on how to conditionalize whole topics
with the metadata `yaml` file.
2. Avoid using `ifndef/endif`. As of writing, it's use is broken and buggy.
== Release branches
With the combination of conditionalizing content within topics with
`ifdef/endif` and conditionalizing whole topics with the
xref:how-it-all-comes-together[metadata `yaml` file], the `master` branch of
this repository always contains a complete set of documentation for all three
OpenShift products. However, when and as new versions of an OpenShift product
are released, the `master` branch is merged down to new or existing release
branches. Here is the general naming scheme used in the branches:
* `master` - OpenShift Origin latest code; essentially, this is our *working*
branch
* `enterprise-N.N` - OpenShift Enterprise support releases
* The `dedicated` and `online` branches are built using the enterprise version that they correspond to.
On a 6 hourly basis, the documentation web sites are rebuilt for each of these
branches. This way the published content for each released version of an
OpenShift product will remain the same while development continues on the
`master` branch. Additionally, any corrections or additions that are
"cherry-picked" into the release branches will show up in the published
documentation after 6 hours.
[NOTE]
====
All OpenShift content development occurs on the `master`, or *working* branch.
Therefore, when submitting your work the PR must be created against the `master`
branch. Once it is reviewed that content will then migrate to the corresponding
release branches.
====
[[how-it-all-comes-together]]
== How it all comes together
The documentation build system reads the `&#95;distro&#95;map.yml` to figure out which branches to build and then the `&#95;topic&#95;map.yml` metadata file for each of the branches
to construct the content from the source files and publish to the relevant
product site at https://docs.openshift.com. The build system _only_ reads this
file to determine which topic files to include. Therefore, all new topics that
are created must be included in the `&#95;topic&#95;map.yml` metadata file in
order to be processed by the build system.
=== Metadata file format
The format of this file is as indicated:
----
--- //<1>
Name: Origin of the Species <2>
Dir: origin_of_the_species <3>
Distros: all <4>
Topics:
- Name: The Majestic Marmoset <5>
File: the_majestic_marmoset <6>
Distros: all
- Name: The Curious Crocodile
File: the_curious_crocodile
Distros: openshift-online,openshift-enterprise <7>
- Name: The Numerous Nematodes
Dir: the_numerous_nematodes <8>
Topics:
- Name: The Wily Worm <9>
File: the_wily_worm
- Name: The Acrobatic Ascarid <= Sub-topic 2 name
File: the_acrobatic_ascarid <= Sub-topic 2 file under <group dir>/<subtopic dir>
----
<1> Record separator at the top of each topic group
<2> Display name of topic group
<3> Directory name of topic group
<4> Which OpenShift versions this topic group is part of
<5> Topic name
<6> Topic file under the topic group dir without `.adoc`
<7> Which OpenShift versions this topic is part of
<8> This topic is actually a subtopic group. Instead of a `File` path it has a
`Dir` path and `Topics`, just like a top-level topic group.
<9> Topics belonging to a subtopic group are listed just like regular topics
with a `Name` and `File`.
****
Notes on *Distros* metadata attribute
* The *Distros* setting is optional for topic groups and topic items. By
default, if the *Distros* setting is not used, it is process as if it was set
to *Distros: all* for that particular topic or topic group. This means that
topic or topic group will appear in all three product documentation.
* The *all* value for *Distros* is a synonym for
_openshift-origin,openshift-enterprise,openshift-online,openshift-dedicated_.
* The *all* value overrides other values, so _openshift-online,all_ is processed
as *all*.
****
== Next steps
* First, you should link:tools_and_setup.adoc[Install and set up the tools and
software] on your workstation so that you can contribute.
* Next, we recommend that you link:doc_guidelines.adoc[review the documentation
guidelines] to understand some basic guidelines to keep things consistent
across our content.
* If you are ready to create new content, or want to edit existing content, the
link:create_or_edit_content.adoc[create or edit content] topic describes how
you can do this by creating a working branch.

View File

@@ -0,0 +1,235 @@
[[contributing-to-docs-create-or-edit-content]]
= Create new content or edit existing content
:icons:
:toc: macro
:toc-title:
:toclevels: 1
:description: Create working branch to contribute new content or updates
toc::[]
== Before you begin
Before you proceed, we recommend that you have completed the following:
* Read and reviewed the link:contributing.adoc[Contribute to OpenShift
documentation] topic to understand some basics
* link:tools_and_setup.adoc[Installed and set up the tools and software]
required to contribute
* Read and reviewed the link:doc_guidelines.adoc[Documentation guidelines] topic
to understand the basic guidelines for consistency
== Ensure your local repository is in sync with the remote
Before you create a local working branch, it is good practice to ensure that
your local `master` branch is in sync with the remote and that you have all the
latest changes. You must also ensure that your forked repository is also in sync
with the remote repository.
1. From your local repository, make sure you have the `master` branch checked
out:
+
----
$ git checkout master
----
2. Fetch the current state of the OpenShift documentation repository:
+
----
$ git fetch upstream
----
3. Incorporate the commits from the remote repository, in this case
`openshift/openshift-docs`, into your local repository:
+
----
$ git rebase upstream/master
----
4. Push the latest updates to your forked repository so that it is also in sync
with the remote:
+
----
$ git push origin master
----
== Add new topics or update existing content on local branch
With your local and forked repositories in sync with the remote, you can now
create a local working branch where you will make all your updates, or create
any new content.
*Step 1:* Create local branch
The following command creates a new local branch from the branch that you are currently on, and checks it out
automatically. Be sure to replace `<working_branch>` with a suitable name.
Also, be sure that the changes made on this branch are closely related and
do indeed reflect that name.
In particular, it is a good idea to use separate PRs
for bugfix changes (for an old or current release)
vs enhancement changes (for an upcoming new release).
----
$ git checkout -b <working_branch>
----
[NOTE]
====
This command creates a new specified branch and also checks it out, so you will
automatically switch to the new branch.
====
*Step 2:* Create new content or update existing content as required
With the local branch created and checked out, you can now edit any content, or
start adding new content.
If you are creating a new topic, it is best to use the topic templates so that
all of the required metadata is included:
* For an Overview topic, use the
https://github.com/openshift/openshift-docs/blob/master/contributing_to_docs/templates/overview_topic_template.adoc[Overview
topic template].
* For all other topics, use the
https://github.com/openshift/openshift-docs/blob/master/contributing_to_docs/templates/topic_template.adoc[normal
topic template].
Otherwise, ensure that any new topic contains the required metadata as described
in the link:doc_guidelines.adoc[documentation guidelines] topic, including
naming and title conventions.
*Step 3:* Add all of your changes to a pending commit
When you are finished making all of your changes, and have tested the updated or
new content, the following command adds those changes to a pending commit:
----
$ git add .
----
*Step 4:* Commit your changes
After adding your changes to a pending commit, the following command commits
those changes locally:
----
$ git commit -am "Detailed comments about what changes were made; for example, fixed typo"
----
*Step 5:* Rebase updates from `master` into your working branch
If you fetched the latest changes from `master` before you created your local
branch, this step may not be necessary. However, it is good practice to fetch
the latest changes from `master` and rebase those onto your working branch.
Remember, that you should rebase against the branch that you created this working branch from. In most cases, it will be the master branch.
----
$ git rebase upstream/master
----
[NOTE]
====
If you find any conflicts you must fix those, and repeat steps 3 and 4.
====
*Step 6:* Push all changes to your GitHub account
After you have rebased, fixed any conflicts, and committed your changes, you can
push them to your GitHub account. This command adds your local working branch to
your GitHub repository:
----
$ git push origin <working_branch>
----
== Submit PR to merge your work
When you have pushed your changes to your GitHub account, you can submit a PR to
have your work from your GitHub fork to the `master` branch of the OpenShift
documentation repository. The documentation team will review the work, advise of
any further changes that may or may not be required, and finally merge your
work.
1. Go to your forked GitHub repository on the GitHub website, and you should see
your local branch that includes all of your work.
2. Click on *Pull Request* to submit the PR against the `master` branch of the
`openshift-docs` repository.
3. Attach labels to your *Pull Request* to indicate to the DOCS team which branches your PR might apply to. Some requests may only apply to the origin distro (origin-only), and some may only apply to a specific version of the enterprise (branch/enterprise-3.4, branch/enterprise-3.5, branch/enterprise-3.6) or dedicated (branch/dedicated) or online (branch/online) docs. If a request applies to multiple versions of a distro, then specify the minimum version (branch/enterprise-3.5 and above, for example). The docs team maintains these branches for all active and future distros and your PR will be applied to one or more these.
4. Tag the documentation team with @openshift/team-documentation.
*If you don't have permissions to apply labels, make sure to leave that information as a comment.*
== Confirm your changes have been merged
When your PR has been merged into the `master` branch, you should confirm and
then sync your local and GitHub repositories with the `master` branch.
1. On your workstation, switch to the `master` branch:
+
----
$ git checkout master
----
2. Pull the latest changes from `master`:
+
----
$ git fetch upstream
----
3. Incorporate the commits from the remote repository, in this case
`openshift/openshift-docs`, into your local repository:
+
----
$ git rebase upstream/master
----
4. After confirming in your rebased local repository that your changes have been
merged, push the latest changes, including your work, to your GitHub account:
+
----
$ git push origin master
----
== Add changes to an existing PR, if required
In some cases you might have to make changes to a PR that you have already
submitted. A PR can contain multiple commits, and we strive to preserve the
review history and all discussions that occur around those commits. The
following instructions describe how to make changes to an existing PR you have
already submitted.
1. Commit whatever updates you have made to the working branch by creating a new
commit:
+
----
$ git commit -am "Detailed message as noted earlier"
----
2. To keep the Git history clean, you may be asked to rebase your PR and squash
multiple commits into one commit. Before you push your changes in the next step,
follow the instructions here to rebase:
https://github.com/edx/edx-platform/wiki/How-to-Rebase-a-Pull-Request
3. After you have rebased, push the latest updates to the local working branch
to your GitHub account.
+
----
$ git push origin <working_branch> --force
----
The `--force` flag ignores whatever is on the remote server and replaces
everything with the local copy. You should now see the new commits in the
existing PR. Sometimes a refresh of your browser may be required.
== Delete the local working branch
When you have confirmed that all of your changes have been accepted and merged,
and you have pulled the latest changes on `master` and pushed them to your
GitHub account, you can delete the local working branch. Ensure you are in your
local repository before proceeding.
1. Delete the local working branch from your workstation.
+
----
$ git branch -D <working_branch>
----
2. Delete the working branch from your GitHub account:
+
----
$ git push origin :<working_branch>
----

View File

@@ -0,0 +1,726 @@
[[contributing-to-docs-doc-guidelines]]
= Documentation Guidelines
:icons:
:toc: macro
:toc-title:
:toclevels: 1
:description: These are basic guidelines for creating technical documentation for OpenShift.
toc::[]
== Topic Metadata
Every topic file should contain the following metadata at the top, with no line spacing in between, except where noted:
----
= Document/Topic Title <1>
:data-uri: <2>
:icons: <3>
:toc: macro <4>
:toc-title: <5>
-----------intentional blank line--------------
toc::[] <6>
----
<1> Human readable title of document/topic title line (notice the '=' top-level header)
<2> AsciiDoctor attribute to embed all images directly in the HTML
<3> AsciiDoctor attribute for icons used in admonitions and such (TIP, NOTE, WARNING, etc.)
<4> Adds a table of contents (TOC) with manual placement.
<5> Overrides the default title of TOC and removes the title.
<6> Placement of the TOC.
After the heading block and a single whitespace line, you can include any content for the topic.
[NOTE]
====
The topic title, which is the first line of the document, is the only level 1 ( = ) title. Section headers within the topic must be level 2 ( == ) or lower.
====
*All titles must have a unique (within the OpenShift docs suite) section anchor*, and this anchor must be all lowercase letters, with no line spaces between the anchor and the section title:
----
[[section-anchor-name]]
=== Section Title
----
== Topic File Names
Try to shorten the topic file name as much as possible _without_ abbreviating
important terms that may cause confusion. For example, the
`managing_authorization_policies.adoc` file name would be appropriate for a
topic titled "Managing Authorization Policies".
== Topic Titles and Section Headings
Use sentence case in all topic titles and section headings. See http://www.titlecase.com/ or
https://convertcase.net/ for a conversion tool.
Try to be as descriptive as possible with the topic title or section headings
without making them unnecessarily too long. Use a verb form in headings. Some
suggestions:
* Creating
* Managing
* Using
* Understanding
Use "Overview" as a heading sparingly. Choose a more descriptive heading
instead.
=== Unique IDs
The content in this repo is used to build docs that publish to multiple
locations (e.g., docs.openshift.com, docs.openshift.org, and the Red Hat
Customer Portal). While heading IDs will be created automatically from any
section titles (e.g., "Managing Authorization Policies" would generate an ID of
`managing-authorization-policies`, which would act as an anchor reference), we
should not rely on this automatic generation because the IDs need to be unique
across all topics in the repo. This is mainly to avoid build failures for the
Customer Portal docs, due to ID collision.
Therefore, always add a unique ID manually, and check the repo to make sure that
it is unique and not already in use (for example, check with `CTRL+F` to search
the repo if using Atom).
Manual IDs use the following syntax:
----
[[managing-authorization-policies]]
== Managing Authorization Policies
----
=== Discrete Headings
If you have a section heading that you do not want to appear in the TOC (like if you think that some section is not worth showing up or if there are already too many nested levels), you can use a discrete (or floating) heading:
http://asciidoctor.org/docs/user-manual/#discrete-or-floating-section-titles
A discrete heading also will not get a section number in the Customer Portal
build of hte doc. Previously, we would use plain bold mark-up around a heading
like this, but discrete headings also allow you to ignore section nesting rules
(like jumping from a `==` section level to a `====` level if you wanted for some
style reason).
To use a discrete heading, just add `[discrete]` to the line before your unique
ID. For example:
----
[discrete]
[[managing-authorization-policies]]
== Managing Authorization Policies
----
== Product Name & Version Attributes
When possible, generalize references to the product name and/or version using
the `{product-title}` and/or `{product-version}` attributes. These attributes
are pulled from distro mapping definitions in the
https://github.com/openshift/openshift-docs/blob/master/_distro_map.yml[distro_map.yml]
file.
The `{product-title}` comes from the first `name:` field in a distro mapping,
while the associated `{product-version}` comes from the `name:` fields on any
`branches:` defined.
How these attributes render is dependent on which distro and branch build you
are viewing. The following table shows the current slate of distros and the
possible values for `{product-title}` and `{product-version}`.
[options="header"]
|===
|Distro |`{product-title}` |`{product-version}`
|`openshift-origin`
|OpenShift Origin
|Latest
|`openshift-enterprise`
|OpenShift Enterprise
|3.1, 3.0
|`openshift-dedicated`
|OpenShift Dedicated
|3.1, 3.0
|`openshift-online`
|OpenShift Online
|Latest
|===
For example:
----
You can deploy applications on {product-title}.
----
This is a safe statement that could appear in probably any of the builds, so an
https://github.com/openshift/openshift-docs/blob/master/contributing_to_docs/contributing.adoc#conditional-text-between-products[ifdef/endif
statement] is not necessary. For example, if you were viewing a build for the
`openshift-enterprise` distro (for any of the distro-defined branches), this
would render as:
"You can deploy applications on OpenShift Enterprise."
And for the `openshift-origin` distro:
"You can deploy applications on OpenShift Origin."
Considering that we use distinct branches to keep content for product versions
separated, global use of `{product-version}` across all branches is probably
less useful, but it is available if you come across a need for it. Just consider
how it will render across any branches that the content appears in.
Do not use markup in headings.
== Links, Hyperlinks, and Cross References
Links can be used to cross-reference internal topics, or send customers to external information resources for further reading.
In OpenShift docs:
* all links to internal topics are created using `xref` and **must have an anchor ID**.
* all links to external websites are created using `link`.
[IMPORTANT]
====
Do not split link paths across lines when wrapping text. This will cause issues with the doc builds.
====
=== Example URLs
To provide an example URL path that you do not want to render as a hyperlink, use this format:
....
`\https://www.example.com`
....
=== Internal Cross-References
Whenever possible the link to another topic should be part of the actual sentence. Avoid creating links as a separate sentence that begins with "See [this topic] for more information on x".
[NOTE]
====
Use the relative file path (from the file you are editing, to the file you are linking to), even if you are linking to the same directory that you are writing in. This makes search and replace operations to fix broken links much easier.
For example, if you are writing in *_architecture/core_concepts/deployments.adoc_* and you want to link to *_architecture/core_concepts/routes.adoc_* then you would need to include the path back to the first level of the topic directory:
----
xref:../../architecture/networking/routes.adoc#architecture-core-concepts-routes
----
====
.Markup example of cross-referencing to internal topics
----
Rollbacks revert part of an application back to a previous deployment. Rollbacks can be performed using the REST API or
the xref:../cli_reference/get_started_cli.adoc#installing-the-cli[OpenShift CLI].
Before you can create a domain, you must first xref:../dev_guide/application_lifecycle/new_app.adoc#dev-guide-new-app[create an application].
----
.Rendered output of cross-referencing to internal topics:
====
Rollbacks revert part of an application back to a previous deployment. Rollbacks can be performed using the REST API or the xref:../cli_reference/get_started_cli.adoc#installing-the-cli[OpenShift CLI].
Before you can create a domain, you must first xref:../dev_guide/application_lifecycle/new_app.adoc#dev-guide-new-app[create an application].
====
=== Links to External Websites
If you want to link to a different website, use:
----
link:http://othersite.com/otherpath[friendly reference text]
----
IMPORTANT: You must use `link:` before the start of the URL.
TIP: If you want to build a link from a URL _without_ changing the text from the actual URL, just print the URL without adding a `[friendly text]` block at the end; it will automatically be rendered as a link.
=== Links to Internal Topics
There probably are three scenarios for linking to other content:
1. Link to another topic file that exists in the same topic group, or directory.
2. Link to another topic file that exists in a separate topic group, or directory.
The following examples use the example directory structure shown here:
....
/
/foo
/foo/bar.adoc
/baz
/baz/zig.adoc
/baz/zag.adoc
....
*Link to topic in same topic group directory*
----
xref:<filename>#anchor-id[friendly title]
----
You must use the `.adoc` file extension. The document processor will correctly link this to the resulting HTML file.
For example, using the above syntax, if you are working on `zig.adoc` and want to link to `zag.adoc`, do it this way:
----
xref:../zag.adoc#baz-zag[comment]
----
where `baz-zag` is the anchor ID at the top of the file `zag.adoc`.
*Link to topic in different topic group directory*
----
xref:../dir/<filename>.adoc[friendly title]
----
For example, if you are working on `bar.adoc` and you want to link to `zig.adoc`, do it this way:
----
xref:../baz/zig.adoc#baz-zig[see the ZIG manual for more]
----
[NOTE]
====
You must use the .adoc extension in order for the link to work correctly and you must specify an anchor ID.
====
*Link to a subtopic within a topic file*
To link to a subtopic within a topic file, use the following syntax:
----
xref:../baz/zig/#subtopic
----
*Link to a subtopic within the same topic file*
To link to a subtopic within the same topic file, use the following syntax:
----
xref:subtopic
----
Note: There is no `#` used when linking to a subtopic within the same topic.
== Sharing Content Between Files
If you want to share content from one topic so that it appears in another topic,
you can use the `include` directive. See the Asciidoctor documentation for
details:
http://asciidoctor.org/docs/user-manual/#include-partial
If you find that you need to include content from one topic multiple times into
another topic, see the following usage:
http://asciidoctor.org/docs/user-manual/#include-multiple
== Writing Concepts
A _concept_ is a topic (full .adoc file) or section (individual heading within a
topic) that supports the things that users want to do and should not include
task information like commands or numbered steps. Consider topic/section titles
with a verb like "Understanding <concept>" if it is solely concept-based.
== Writing Tasks
A _task_ is a topic (full .adoc file) or section (individual heading within a
topic) that supports the things that users want to do and includes procedural
information like commands and numbered steps. Write tasks in the following
format.
*Task Title*: Use a verb in the task title (for example, Create or Creating).
Include a paragraph explaining why the user must perform this task. This should be 1-2 sentences maximum.
If applicable, include any gotchas (things that could trip up the user or cause the task to fail).
*Before You Begin*
* A bulleted list of pre-requisites that MUST be performed before the user can complete this task. Skip if there isn't any related information.
*Procedure*
. Step 1 - One command per step.
. Step 2 - One command per step.
. Step N
*After You Finish*
You can explain any other tasks that MUST be completed after this task. You can skip this if there are none.
*Related Information*
* A bulleted list of links to related information about this task. Skip if there isn't any related information.
== Images
If you want to link to an image:
1. Put it in `<topic_dir>/images`
2. In the topic document, use this format to link to an image:
----
image::<name_of_image>[image]
----
You only need to specify `<name_of_image>`. The build mechanism automatically specifies the file path.
=== AsciiDoctor Diagram Extension
AsciiDoctor provides a set of http://asciidoctor.org/docs/asciidoctor-diagram/[extensions to embed diagrams] written using http://plantuml.sourceforge.net/[PlantUML], http://www.graphviz.org/[Graphviz], http://ditaa.sourceforge.net/[ditaa], or https://github.com/christiangoltz/shaape[Shaape] syntax inside your AsciiDoc documents. The diagram extension generates an SVG, PNG, or TXT file from the source text. The image file that's generated then gets inserted into the rendered document.
[IMPORTANT]
====
The AsciiDoctor diagram extension serves a starting point for creating images in OpenShift documentation. In most cases these images will be professionally enhanced to meet our internal standards and guidelines.
====
See the http://asciidoctor.org/docs/asciidoctor-diagram/[AsciiDoctor diagram extension] documentation for instructions on how to install and use it.
We will mostly use the `ditaa` block in OpenShift documentation. The `png` file from the `ditaa` block is generated in the same directory as the source file with a checksum as the filename. However, you can specify the path of the generated `png` file with the second attribute in the `ditaa` block.
For example, in our case we would want our images in the *topic_dir/_images_* folder of the main topic directory:
----
....
[ditaa, "images/name_of_image"]
....
----
== Formatting
For all of the system blocks including table delimiters, use four characters. For example:
....
|=== for tables
---- for code blocks
....
=== Code Blocks
Code blocks are used to show examples of command screen outputs, or
configuration files. When using command blocks, always use the actual values for
any items that a user would normally replace. Code blocks should represent
exactly what a customer would see on their screen. If you need to expand or
provide information on what some of the contents of a screen output or
configuration file represent, then use callouts to provide that information.
Follow these general guidelines when using code blocks:
* Do NOT use any markup in code blocks; code blocks generally do not accept any markup.
* For all code blocks, you must include an empty line above a code block.
+
Acceptable:
+
....
Lorem ipsum
----
$ lorem.sh
----
....
+
Not acceptable:
+
....
Lorem ipsum
----
$ lorem.sh
----
....
+
Without the line spaces, the content is likely to be not parsed correctly.
* It is recommended to include source tags for the programming language used in the code block to enable syntax highlighting. For example, use the source tags
`[source, bash]`, `[source, yaml]`, `[source, javascript]`.
+
....
Lorem ipsum
[source, bash]
----
$ lorem.sh
----
....
* Try to use callouts to provide information on what the output represents when required.
+
Use this format when embedding callouts into the code block:
+
[subs=-callouts]
....
[source, bash]
----
code example 1 <1>
code example 2 <2>
----
<1> A note about the first example value.
<2> A note about the second example value.
....
* For long lines of code that you want to break up among multiple lines, use a
backslash to show the line break. For example:
+
[source, bash]
----
$ oc get endpoints --all-namespaces --template \
'{{ range .items }}{{ .metadata.namespace }}:{{ .metadata.name }} \
{{ range .subsets }}{{ range .addresses }}{{ .ip }} \
{{ end }}{{ end }}{{ "\n" }}{{ end }}' | awk '/ 172\.30\./ { print $1 }'
----
* If the user must run a command as root, use a number sign, `#`, at the start of the command instead of a dollar sign, `$`. For example:
+
[source, bash]
----
# sudo ./openshift start
----
=== Inline Code or Commands
Do NOT show full commands or command syntax inline within a sentence. The next section covers how to show commands and command syntax.
Only use case for inline commands would be general commands and operations, without replaceables and command options. In this case an inline command is marked up using the back ticks:
....
Use the `GET` operation to do x.
....
This renders as:
Use the `GET` operation to do x.
=== Command Syntax and Examples
The main distinction between showing command syntax and example is that a command syntax should just show customers how to use the command without real values. An example on the other hand should show the command with actual values with an example output of that command, where applicable.
==== Command Syntax
To markup command syntax, use the code block and wrap the replaceables in <> with the required command parameters, as shown in the following example. Do NOT use commands or command syntax inline with sentences.
....
The following command returns a list of objects for the specified object type:
[source, bash]
----
$ oc get <object_type> <object_id>
----
....
This would render as follows:
The following command returns a list of objects for the specified object type:
[source, bash]
----
$ oc get <object_type> <object_id>
----
==== Examples
As mentioned an example of a command should use actual values and also show an output of the command, as shown in the following example. In some a heading may not be required.
....
In the following example the `oc get` operation returns a complete list of services that are currently defined.
.Example Title
[source, bash]
----
$ oc get se
NAME LABELS SELECTOR IP PORT
kubernetes component=apiserver,provider=kubernetes <none> 172.30.17.96 443
kubernetes-ro component=apiserver,provider=kubernetes <none> 172.30.17.77 80
docker-registry <none> name=registrypod 172.30.17.158 5001
----
....
This would render as shown:
In the following example the `oc get` operation returns a complete list of services that are currently defined.
.Example Title
[source, bash]
----
$ oc get se
NAME LABELS SELECTOR IP PORT
kubernetes component=apiserver,provider=kubernetes <none> 172.30.17.96 443
kubernetes-ro component=apiserver,provider=kubernetes <none> 172.30.17.77 80
docker-registry <none> name=registrypod 172.30.17.158 5001
----
=== Lists
Lists are created as shown in this example:
....
. Item 1 (2 spaces between the period and the first character)
. Item 2
. Item 3
....
This will render as such:
. Item 1
. Item 2
. Item 3
If you need to add any text, admonitions, or code blocks you need to add the continuous +, as shown in the example:
....
. Item 1
+
----
some code block
----
. Item 2
. Item 3
....
This renders as shown:
. Item 1
+
----
some code block
----
. Item 2
. Item 3
==== Quick Reference
.User accounts and info
[option="header"]
|===
|Markup in command syntax |Description |Substitute value in Example block
|<username>
|Name of user account
|user@example.com
|<password>
|User password
|password
|===
.Projects and applications
[option="header"]
|===
|Markup in command syntax |Description |Substitute value in Example block
|<project>
|Name of project
|myproject
|<app>
|Name of an application
|myapp
|===
== Admonitions
Admonitions such as notes and warnings are formatted as shown:
....
[ADMONITION]
====
Text for admonition
====
....
== Quick Markup Reference
|===
|Convention |Markup |Example rendered output
|Code blocks
a|....
Use the following syntax for the `oc` command:
----
$ oc <action> <object_type> <object_name_or_id>
----
....
a|Use the following syntax for the `oc` command:
----
$ oc <action> <object_type> <object_name_or_id>
----
|Inline commands, operations, literal values, variables, parameters, settings,
flags, environment variables, and user input.
In general (when inline within sentences), something that either operates or
acts on something else, or when referencing some item from a file or code block /
example.
a|$$`oc get`$$
$$`GET`$$
$$Set the `upgrade` variable to `true`.$$
$$Answer by typing `Yes` or `No` when prompted.$$
$$Use the `--amend` flag.$$
a|Use the `oc get` command to get a list of services that are currently defined.
The `GET` operation can be used to do something.
Set the `upgrade` variable to `true`.
Answer by typing `Yes` or `No` when prompted.
Use the `--amend` flag.
|System or software variable to be replaced by the user
a|$$`<project>`$$
$$`<deployment>`$$
a|
Use the following command to roll back a deployment, specifying the deployment name:
`oc rollback <deployment>`
|System term/item, user names, unique or example names for individual API objects/resources (e.g., a pod named "mypod"), GUI menu items and buttons, daemon, service, or software package.
In general (when inline within sentences), something that can be operated or
acted upon, or unique or example names for system terms/items in general.
a|$$*system item*$$
$$*daemon*$$
$$*service*$$
$$*software package*$$
a|*cluster-admin* user
*atomic-openshift-master-api* service
*HTTPD*
*NetworkManager*
*RubyGems*
|Filenames or directory paths
a|$$*_filename_*$$
$$*_directory_*$$
a|Edit the *_kubeconfig_* file as required and save your changes.
The *_express.conf_* configuration file is located in the *_/usr/share_* directory.
|Emphasis for a term
|only emphasize $$_first_$$ time
|only emphasize _first_ time
|Footnotes
|A footnote is created with the footnote macro. If you plan to reference a footnote more than once, use the ID footnoteref macro. The customer portal does not support spaces in the footnoteref. For example, "dynamic PV" should be "dynamicPV".
|See link:http://asciidoctor.org/docs/user-manual/#user-footnotes[Footnotes] for the footnote and footnoteref syntax.
|===

View File

@@ -0,0 +1,32 @@
[[contributing-to-docs-templates-overview-topic-template]]
= Overview
{product-author}
{product-version}
:icons: font
:experimental:
Start with a clear introduction to the topic directory/category of topics and what information customers can expect to find in the included topics
////
////
== Quick Links
////
This section is a way to provide quick links to popular topics that we think will be of most interest to our customers. The example below would be in the Overview topic of the Administration Guide, and shows links to the Managing Nodes topic in that topic category. Note that this is just one example to show how we can help customers to find the information they need. This section may or may not be required. Use the table below as a template and remove this text.
////
[option="header"]
|===
|How do I? |Links to relevant topics
.^|Add, view, or delete nodes in my OpenShift environment
a|link:../admin_guide/manage_nodes.html#adding-nodes[Add a node]
link:../admin_guide/manage_nodes.html#viewing-nodes[View a node]
link:../admin_guide/manage_nodes.html#deleting-nodes[Delete a node]
|Do something else as an admin
|Link to topic(s)

View File

@@ -0,0 +1,48 @@
[[contributing-to-docs-templates-rev-history-guide-dirname]]
= Revision History: Full Guide Name
{product-author}
{product-version}
:data-uri:
:icons:
:experimental:
// Woe be to the human who edits the following line! --the do-release script
// do-release: revhist-tables
== Fri Jan 01 2016
OpenShift Enterprise X.Y.Z release (if publishing timed with a product release).
// tag::<guide_dirname>_fri_jan_01_2016[]
[cols="1,3",options="header"]
|===
|Affected Topic |Description of Change
|link:../path/to/topic1.html[Full Topic Title]
|Added
link:../path/to/topic1.html#section-anchor[Full Section Title] section to
(include, discuss, detail, etc.) <relevant_reason>.
|link:../path/to/topic2.html.html[Full Topic Title]
|New topic to (include, discuss, detail, etc.) <relevant_reason>.
|===
// end::<guide_dirname>_fri_jan_01_2016[]
== Mon Jan 11 2016
// tag::<guide_dirname>_mon_jan_11_2016[]
[cols="1,3",options="header"]
|===
|Affected Topic |Description of Change
|link:../path/to/topic3.html[Full Topic Title]
|https://bugzilla.redhat.com/show_bug.cgi?id=#####[*BZ #####*]: Updated
link:../path/to/topic3.html#section-anchor[Full Section Title] section to
(fix, add, remove, etc.) <relevant_reason>.
|link:../path/to/subcategory/topic4.html[Subcategory Name -> Full Topic Title]
|Clarify details about
link:../path/to/subcategory/topic4.html#link-to-relevant-section[this or that].
|===
// end::<guide_dirname>_mon_jan_11_2016[]

View File

@@ -0,0 +1,24 @@
[[contributing-to-docs-templates-topic-template]]
= Replace with topic title
:data-uri:
:icons:
:experimental:
:toc: macro
:toc-title:
:prewrap!:
toc::[]
== Overview
All topics should include an Overview section that introduces the topic. Remove this and add a brief introduction here.
== Section Title
Another section in the topic.
== Suggested Next Steps
[Link to suggested topic]
[Link to suggested topic]
////
This would be the last section of a topic that serves as a suggestion to what topics customers can go read next. It may or may not be required.
////

View File

@@ -0,0 +1,286 @@
[[contributing-to-docs-term-glossary]]
= OpenShift Glossary of Terms
{product-author}
{product-version}
:data-uri:
:icons:
:experimental:
:toc: macro
:toc-title:
toc::[]
This topic provides guidelines for referring to the various components of
OpenShift and objects of a running OpenShift system in our documentation. The
goal is to standardize terminology across OpenShift content and be consistent in
the usage of our terminology when referring to OpenShift components or
architecture.
[NOTE]
====
If you want to add terms or other content to this document, or if anything needs
to be fixed, send an email to openshift-docs@redhat.com or submit a PR
on GitHub.
====
== Usage of OpenShift Terms
=== action
Usage: action
An action consists of _project_, _verb_, and _resource_:
* *Project* is the project containing the resource that is to be acted upon.
* *Verb* is a get, list, create, or update operation.
* *Resource* is the API endpoint being accessed. This is distinct from the
referenced resource itself, which can be a pod, deployment config, build, etc.
''''
=== apiserver
Usage: apiserver(s) as appropriate
A REST API endpoint for interacting with the system. New deployments and
configurations can be created with this endpoint, and the state of the system
can be interrogated through this endpoint as well.
''''
=== application
Usage: _application(s)_ as appropriate; italicized
Although the term _application_ is no longer an official noun in OpenShift,
customers still create and host applications on OpenShift, and using the term
within certain contexts is acceptable. For example, the term _application_ may
refer to some combination of an image, a Git repository, or a replication
controller, and this _application_ may be running PHP, MySQL, Ruby, JBoss, or
something else.
Do *NOT* use the term _application_ in a topic or section heading.
*Examples of correct usage*
====
_OpenShift runs your applications_.
_The new-app command creates a new application from the components you specify._
_My application has two Ruby web services connected to a database backend and a
RabbitMQ message queue, as well as a python worker framework._
_You can check the health of your application by adding probes to the various
parts._
_You can host a WordPress application on OpenShift._
====
''''
=== authorization
Usage: authorization
An authorization determines whether an _identity_ is allowed to perform any
action. It consists of _identity_ and _action_.
''''
=== build
Usage: build(s) as appropriate
''''
=== cluster
Usage: cluster
The collection of controllers, pods, and services and related DNS and networking
routing configuration that are defined on the system.
''''
=== container
Usage: container(s) as appropriate
''''
=== container group
Usage: container group
''''
=== deployment
Usage: deployment
A deployment is a statement of intent by a user to roll out a new version of a
config. A replication controller can be used for that and other purposes. All
deployments are replication controllers, but all replication controllers are not
deployments.
To avoid confusion, do not refer to an overall OpenShift installation / instance /
cluster as an "OpenShift deployment".
''''
=== deployment controller
Usage: deployment controller(s) as appropriate
Kubernetes object that creates a replication controller from a given pod
template. If that pod template is modified, the deployment controller creates
a new replication controller based on the modified pod template and replaces the
old replication controller with this new one.
''''
=== Dockerfile
Usage: Dockerfile; wrapped with [filename] markup. See
link:doc_guidelines.html[Documentation Guidelines] for markup information.
Docker can build images automatically by reading the instructions from a
Dockerfile. A Dockerfile is a text document that contains all the commands you
would normally execute manually in order to build a Docker image.
Source: https://docs.docker.com/reference/builder/
.Examples of correct usage
====
Open the [filename]#Dockerfile# and make the following changes.
Create a [filename]#Dockerfile# at the root of your repository.
====
''''
=== identity
Usage: identity or identities as appropriate
Both the username and list of groups the user belongs to.
''''
=== image
Usage: image(s)
''''
=== Kubelet
Usage: Kubelet(s) as appropriate
The agent that controls a Kubernetes node. Each node runs a Kubelet, which
handles starting and stopping containers on a node, based on the desired state
defined by the master.
''''
=== Kubernetes master
Usage: Kubernetes master(s) as appropriate
The Kubernetes-native equivalent to the link:#project[OpenShift master].
An OpenShift system runs OpenShift masters, not Kubernetes masters, and
an OpenShift master provides a superset of the functionality of a Kubernetes
master, so it is generally preferred to use the term OpenShift master.
''''
=== minion
Usage: Deprecated. Use link:#node[node] instead.
''''
=== node
Usage: node(s) as appropriate
A
http://docs.openshift.org/latest/architecture/infrastructure_components/kubernetes_infrastructure.html#node[node]
provides the runtime environments for containers.
''''
=== namespace
Usage: namespace
Typically synonymous with link:#project[project] in OpenShift parlance, which is
preferred.
''''
=== OpenShift CLI
Usage: OpenShift CLI
This is the command line interface of OpenShift v3, previously referred to as
the client tools in OpenShift v2.
''''
=== OpenShift master
Usage: OpenShift master(s) as appropriate
Provides a REST endpoint for interacting with the system and manages the state
of the system, ensuring that all containers expected to be running are actually
running and that other requests such as builds and deployments are serviced.
New deployments and configurations are created with the REST API, and the state
of the system can be interrogated through this endpoint as well. An OpenShift
master comprises the apiserver, scheduler, and SkyDNS.
''''
=== pod
Usage: pod(s) as appropriate
Kubernetes object that groups related Docker containers that need to share
network, filesystem, or memory together for placement on a node. Multiple
instances of a Pod can run to provide scaling and redundancy.
''''
=== project
Usage: project(s) as appropriate
A http://docs.openshift.org/latest/dev_guide/projects.html[project] allows a
community of users to organize and manage their content in isolation from other
communities.
''''
=== replication controller
Usage: replication controller(s) as appropriate
Kubernetes object that ensures N (as specified by the user) instances of a given
Pod are running at all times.
''''
=== scheduler
Usage: scheduler(s) as appropriate
Component of the Kubernetes master or OpenShift master that manages the state of
the system, places pods on nodes, and ensures that all containers that are
expected to be running are actually running.
''''
=== SkyDNS
Usage: SkyDNS
Component of the Kubernetes master or OpenShift master that provides
cluster-wide DNS resolution of internal hostnames for services and pods.
''''
=== Source-to-Image (S2I)
Usage: Source-to-Image for the first time reference; S2I thereafter.
Deprecated abbreviation (do not use): STI
''''

View File

@@ -0,0 +1,197 @@
[[contributing-to-docs-tools-and-setup]]
= Install and set up the tools and software
:icons:
:toc: macro
:toc-title:
:toclevels: 1
:linkattrs:
:description: How to set up and install the tools to contribute
toc::[]
== Create a GitHub account
Before you can contribute to OpenShift documentation, you must
https://www.github.com/join[sign up for a GitHub account].
== Set up authentication
When you have your account set up, follow the instructions to
https://help.github.com/articles/generating-ssh-keys/[generate and set up SSH
keys on GitHub] for proper authentication between your workstation and GitHub.
Confirm authentication is working correctly with the following command:
----
$ ssh -T git@github.com
----
== Fork and clone the OpenShift documentation repository
You must fork and set up the OpenShift documentation repository on your
workstation so that you can create PRs and contribute. These steps only need to
be performed during initial setup.
1. Fork the https://github.com/openshift/openshift-docs repository into your
GitHub account from the GitHub UI. You can do this by clicking on *Fork* in the
upper right-hand corner.
2. On your workstation, clone the forked repository on your workstation with the
following command. Be sure to change into the directory where you want to clone,
and replace _<user_name>_ with your actual GitHub username.
+
----
$ git clone git@github.com:user_name/openshift-docs.git
----
3. From your local repository you just cloned, add an upstream pointer back to
the OpenShift's remote repository, in this case _openshift-docs_.
+
----
$ git remote add upstream git@github.com:openshift/openshift-docs.git
----
This ensures that you are tracking the remote repository to keep your local
repository in sync with it.
== Install AsciiBinder and dependencies
When you have the documentation repository cloned and set up, you are ready to
install the software and tools you will use to create the content. All OpenShift
documentation is created in AsciiDoc, and is processed with http://asciibinder.org[AsciiBinder],
which is an http://asciidoctor.org/[AsciiDoctor]-based docs management system.
You can work on a topic file in an editing environment that automatically
processes and updates the rendered HTML.
=== What you need
The following are minimum requirements to set up a live editing environment:
* A bash shell environment (Linux and OS X include a bash shell environment out
of the box, but if you are on Windows you can use http://cygwin.com/[Cygwin])
* https://www.ruby-lang.org/en/[Ruby]
* http://www.git-scm.com/[Git]
* A web browser (Firefox, Chrome, or Safari) with the
http://livereload.com/[LiveReload] extension installed
=== Install the required software dependencies on a Linux system
The following instructions describe how to install all the required tools to do
live content editing on a Fedora Linux system.
1. Install the _RubyGems_ package with `yum install rubygems`
2. Install _Ruby_ development packages with `yum install ruby-devel`
3. Install _gcc_ with `yum install gcc-c++`
4. Install _redhat-rpm-config_ with `yum install redhat-rpm-config`
5. Install _make_ with `yum install make`
6. Install the _ascii_binder_ gem with `gem install ascii_binder`
NOTE: If you already have AsciiBinder installed, you may be due for an update. These directions assume that you are using AsciiBinder 0.0.8 or newer. To check and update if necessary, simply run `gem update ascii_binder`. Note that you may need root permissions.
=== Initial setup
After you have confirmed that you meet the minimum system requirements, or if
you are on a Linux system you have installed the
link:#install-the-required-software-dependencies-on-a-linux-system[required
software dependencies], you can perform the initial setup.
[NOTE]
.ditaa Support
====
https://github.com/stathissideris/ditaa[ditaa] requires $JAVA_HOME be set, which requires a JDK
installed (try e.g. `yum install java-1.8.0-openjdk-devel` and `export
JAVA_HOME=/usr/lib/jvm/java-1.8.0`).
====
=== How to use LiveReload
With the initial setup complete, you are ready to use LiveReload to edit your
content.
1. From the `openshift-docs` directory, run an initial build:
+
----
$ cd openshift-docs
$ asciibinder build
----
2. Open the generated HTML file in your web browser. This will be located in the
`openshift-docs/_preview/<distro>/<branch>` directory, with the same path and
filename as the original `.adoc` file you edited, only it will be with the
`.html` extension.
3. Run the `watch` utility:
+
----
$ asciibinder watch
----
+
[TIP]
This utility will run in the terminal where you started it, so you should leave
it running and open new terminal windows for other tasks.
4. In your browser, enable the LiveReload plug-in in the same tab where the
preview file is open; the icon should change color once activated. The following
message will also display in your terminal window:
+
----
[1] guard(main)> 17:29:22 - INFO - Browser connected.
----
With this setup, a rebuild is automatically generated each time you make a change
to the source `.adoc` file, and is immediately viewable in the corresponding
`.html` file.
=== Clean up
The `.gitignore` file is set up to prevent anything under the `_preview` and
`_package` directories from being committed. However, you can reset the
environment manually by running:
----
$ asciibinder clean
----
== Next steps
With the repository and tools set up on your workstation, you can now either
edit existing content or create new topics.
* link:doc_guidelines.adoc[Review the documentation guidelines] to understand
some basic guidelines to keep things consistent across our content.
* link:create_or_edit_content.adoc[Create a local working branch] on your
workstation to edit existing topics or create new topics.
=== How to deploy to OpenShift
You can deploy to OpenShift for development. This process will use your github repo to launch the website,
and therefore your github repo must have all of the upstream branches. `master` is used for site changes,
so assuming all your work is in `master`, you can remove all remote branches and then push the upstream branches.
Removing remote branches and updating with upstream branches (this assumes remote repos called `origin` and `upstream`)
[WARNING]
====
This is a destructive process, make sure that this is purely a development repo, as all local and remote branches will be deleted
by performing the below commands.
====
----
$ git fetch --all
$ for branch in $(git branch -r | grep -v "master" | grep "^ origin"); do git push origin --delete $(echo $branch | cut -d '/' -f 2); done
$ git branch -D $(git branch | grep -v 'master' | xargs)
$ for branch in $(git branch -r | grep -v "master" | grep "^ upstream"); do git branch --track $(echo $branch | cut -d '/' -f 2) $(echo $branch | tr -d '[:space:]'); done
$ for branch in $(git branch | grep -v "master"); do git push origin $(echo $branch | tr -d '[:space:]'); done
----
Deploying the docs site to an OpenShift cluster
----
$ oc process -f asciibinder-template.yml -p NAME=docs \
-p SOURCE_REPOSITORY_URL=$(git remote get-url origin) \
-p SOURCE_REPOSITORY_REF=$(git rev-parse --abbrev-ref HEAD) \
-p MEMORY_LIMIT=512Mi -p MEMORY_REQUEST=256Mi \
| oc create -f -
----
[NOTE]
====
If the build fails with "Fetch source failed" status, you can
delete all the created objects and re-run above with an HTTP uri
as the `SOURCE_REPOSITORY_URL`, or you can
link:https://docs.openshift.org/latest/dev_guide/builds/build_inputs.html#source-secrets-combinations[create a source secret]
and add it to the stg1 build, `oc set build-secret --source bc/stg1-docs <secret name>`.
====
You can delete all created objects by running
----
$ oc delete all -l app=docs
----

277
index-commercial.html Normal file
View File

@@ -0,0 +1,277 @@
<!DOCTYPE html>
<!--[if IE 8]><html class="ie8"><![endif]-->
<!--[if IE 9]><html class="ie9"><![endif]-->
<!--[if gt IE 9]><!-->
<html>
<!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="google-site-verification" content="MCaLEYfZB8HfZSTyMQYZyBeRMXGoKt46uvrwEp-KN3M">
<title>Home | Red Hat OpenShift Documentation</title>
<link href="https:/docs.openshift.com/" rel="canonical">
<link href="https://assets.openshift.net/content/subdomain/touch-icon-precomposed.png" rel="apple-touch-icon-precomposed" type="image/png">
<link href="https://assets.openshift.net/content/subdomain/favicon32x32.png" rel="shortcut icon" type="image/png">
<link href="https://assets.openshift.net/content/osh-nav-footer.css" rel="stylesheet" type="text/css" media="screen, print" />
<link href="https://assets.openshift.net/content/subdomain.css" rel="stylesheet" media="screen, print">
<link href="_stylesheets/commercial-home.css" rel="stylesheet">
<!--[if IE]><link rel="shortcut icon" href="https://assets.openshift.net/content/subdomain/favicon.ico"><![endif]-->
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://assets.openshift.net/content/html5shiv.js"></script>
<script src="https://assets.openshift.net/content/respond.js"></script>
<![endif]-->
<!-- IE8 requires jQuery and Bootstrap JS to load in head to prevent rendering bugs -->
<!-- IE8 requires jQuery v1.x -->
<script src="https://assets.openshift.net/content/modernizr.js" type="text/javascript"></script>
<script src="https://assets.openshift.net/content/subdomain.js" type="text/javascript"></script>
<script src="https://assets.openshift.net/content/nav-tertiary.js" type="text/javascript"></script>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-PMDVKG');</script>
<!-- End Google Tag Manager -->
<!-- Adobe DTM -->
<script src="https://www.redhat.com/dtm.js" type="text/javascript"></script>
<!-- End Adobe DTM -->
</head>
<body class="docs docs-home">
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-PMDVKG"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<nav id="main">
<div class="container">
<div class="row">
<div class="navbar navbar-default navbar-openshift" role="navigation">
<div class="navbar-header">
<a href="#nav-main" class="dropdown-toggle navbar-menu-toggle hidden visible-xs" data-toggle="collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="navbar-brand" target="_blank" href="https://www.openshift.com"></a>
</div>
<div id="nav-main" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Products <span class="fa fa-angle-down"></span>
</a>
<ul class="dropdown-menu">
<li><a target="_blank" href="https://www.openshift.com/products/">Overview</a></li>
<li><a target="_blank" href="https://www.openshift.com/products/features/">Features</a></li>
<li class="dropdown">
<a class="dropdown-toggle" target="_blank" href="https://www.openshift.com/products/online/">Online</a>
<ul class="dropdown-menu product" style="display: none;">
<a target="_blank" href="https://www.openshift.com/products/online/">
<li>
<p><img src="https://assets.openshift.net/content/subdomain/Logotype_RH_OpenShiftOnline_wLogo_RGB_Gray.svg" alt="" class="img-responsive"></p>
<p>The fastest way for developers to build, host and scale applications in the public cloud</p>
</li>
</a>
</ul>
</li>
<li class="dropdown">
<a class="dropdown-toggle" target="_blank" href="https://www.openshift.com/products/dedicated/">Dedicated</a>
<ul class="dropdown-menu product" style="display: none;">
<a target="_blank" href="https://www.openshift.com/products/dedicated/">
<li>
<p><img src="https://assets.openshift.net/content/subdomain/Logotype_RH_OpenShiftDedicated_wLogo_RGB_Gray.svg" alt="" class="img-responsive"></p>
<p>Single-tenant, high-availability Kubernetes clusters in the public cloud</p>
</li>
</a>
</ul>
</li>
<li class="dropdown">
<a class="dropdown-toggle" target="_blank" href="https://www.openshift.com/products/container-platform/">Container Platform</a>
<ul class="dropdown-menu product" style="display: none;">
<a target="_blank" href="https://www.openshift.com/products/container-platform/">
<li>
<p><img src="https://assets.openshift.net/content/subdomain/Logotype_RH_OpenShiftContainerPlatform_wLogo_RGB_Gray.svg" alt="" class="img-responsive"></p>
<p>Build, deploy and manage your applications across cloud- and on-premise infrastructure</p>
</li>
</a>
</ul>
</li>
<li><a target="_blank" href="https://www.openshift.com/products/quay/">Quay</a></li>
<li><a target="_blank" href="https://www.openshift.com/products/pricing/">Pricing</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Learn <span class="fa fa-angle-down"></span>
</a>
<ul class="dropdown-menu">
<li><a target="_blank" href="https://www.openshift.com/learn/what-is-openshift/">What Is OpenShift</a></li>
<li><a target="_blank" href="https://www.openshift.com/learn/get-started/">Get Started</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Technology Topics <span class="fa fa-angle-right"></span>
</a>
<ul class="dropdown-menu" style="display: none;">
<li><a target="_blank" href="https://www.openshift.com/learn/topics/security/">Security</a></li>
<li><a target="_blank" href="https://www.openshift.com/learn/topics/kubernetes/">Kubernetes</a></li>
</ul>
</li>
<li><a target="_blank" href="https://www.openshift.com/learn/partners/">Partners</a></li>
<li><a target="_blank" href="https://www.openshift.com/learn/success-stories/">Customer success stories</a></li>
<li><a target="_blank" href="https://blog.openshift.com">Blog</a></li>
<li><a target="_blank" href="https://www.openshift.com/learn/resources/">Resources</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Community <span class="fa fa-angle-down"></span>
</a>
<ul class="dropdown-menu">
<li><a target="_blank" href="https://commons.openshift.org">OpenShift Commons</a></li>
<li><a target="_blank" href="https://www.openshift.org">Open Source (Origin)</a></li>
<li><a target="_blank" href="https://www.openshift.com/community/programs/startups/">Startups</a></li>
<li><a target="_blank" href="https://www.openshift.com/community/programs/grants/">Grants</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Support <span class="fa fa-angle-down"></span>
</a>
<ul class="dropdown-menu">
<li><a target="_blank" href="https://help.openshift.com">Help Center</a></li>
<li><a href="https://docs.openshift.com">OpenShift Docs</a></li>
</ul>
</li>
<li><a class="nav-sign-up" target="_blank" href="https://www.openshift.com/trial/">Free Trial</a></li>
<li><a target="_blank" href="https://manage.openshift.com" class="nav-log-in">Sign In <span class="fa fa-angle-right"></span></a></li>
</ul>
</div>
</div>
</div>
</div>
</nav>
<header class="masthead masthead-docs text-center">
<div class="container">
<div class="title-inner">
<h1>OpenShift Documentation</h1>
<div class="row">
<div class="col-md-7 col-sm-8 col-xs-8 center-block search-container">
<div class="search-form">
<form action="https://docs.openshift.com/search.html" class="search has-button" id="cse-search-form-body" method="get" role="form">
<div class="form-group">
<div class="search-pf-input-group">
<input autocomplete="off" class="form-control" dir="ltr" id="cse-search-input-body" name="query" placeholder="Search Documentation" spellcheck="false" type="search" autofocus="autofocus">
</div>
</div>
<div class="form-group">
<button class="btn btn-default" type="button">
<span class="fa fa-search"></span>
</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</header>
<div class="landing">
<div class="container">
<div class="row">
<div class="col-md-10 col-centered">
<div class="row">
<div class="col-sm-3 text-center">
<h2>OpenShift Online</h2>
<div class="list-group">
<p class="list-group-item-text">Red Hat's public cloud application deployment and hosting platform.</p>
<p><a role="button" class="btn btn-primary" href="online/"><i class="fa fa-arrow-circle-o-right"></i> Online</a></p>
</div>
</div>
<div class="col-sm-3 text-center">
<h2>OpenShift Container Platform</h2>
<div class="list-group">
<p class="list-group-item-text">Red Hat's private, on-premise cloud application deployment and hosting platform.</p>
<div class="btn-group">
<button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">Select Version<span class="caret"></span></button>
<ul class="dropdown-menu" role="menu">
<li><a href="container-platform/3.9/"><i class="fa fa-arrow-circle-o-right"></i> Container Platform 3.9</a></li>
<li><a href="container-platform/3.7/"><i class="fa fa-arrow-circle-o-right"></i> Container Platform 3.7</a></li>
<li><a href="container-platform/3.6/"><i class="fa fa-arrow-circle-o-right"></i> Container Platform 3.6</a></li>
<li><a href="container-platform/3.5/"><i class="fa fa-arrow-circle-o-right"></i> Container Platform 3.5</a></li>
<li><a href="container-platform/3.4/"><i class="fa fa-arrow-circle-o-right"></i> Container Platform 3.4</a></li>
<li><a href="container-platform/3.3/"><i class="fa fa-arrow-circle-o-right"></i> Container Platform 3.3</a></li>
<li><a href="enterprise/3.2/"><i class="fa fa-arrow-circle-o-right"></i> Enterprise 3.2</a></li>
<li><a href="enterprise/3.1/"><i class="fa fa-arrow-circle-o-right"></i> Enterprise 3.1</a></li>
<li><a href="enterprise/3.0/"><i class="fa fa-arrow-circle-o-right"></i> Enterprise 3.0</a></li>
</ul>
</div>
</div>
</div>
<div class="col-sm-3 text-center">
<h2>OpenShift Dedicated</h2>
<div class="list-group">
<p class="list-group-item-text">Red Hat's managed public cloud application deployment and hosting service.</p>
<p><a role="button" class="btn btn-primary" href="dedicated/"><i class="fa fa-arrow-circle-o-right"></i> Dedicated</a></p>
</div>
</div>
<div class="col-sm-3 text-center">
<h2>OpenShift Origin</h2>
<div class="list-group">
<p class="list-group-item-text">OpenShift's open source, upstream project.</p>
<p><a role="button" class="btn btn-default" href="https://docs.openshift.org/" target="_blank"><i class="fa fa-external-link"></i> Origin Documentation</a></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<footer id="rh">
<div class="container">
<div class="row">
<div class="col-sm-2">
<img src="https://assets.openshift.net/content/subdomain/redhat_logo.svg" class="img-fluid" alt="Red Hat" style="height: 40px;">
</div>
<div class="col-sm-3">
<p>Copyright © 2018 <span class="text-nowrap">Red Hat, Inc.</span></p>
</div>
<div class="col-sm-5">
<nav class="nav">
<a href="https://www.redhat.com/en/about/privacy-policy" class="nav-link">Privacy statement</a>
<a href="https://www.openshift.com/legal/terms/" class="nav-link">Terms of use</a>
<a href="https://www.redhat.com/en/about/all-policies-guidelines" class="nav-link">All policies and guidelines</a>
</nav>
</div>
<div class="hidden-sm col-sm-2 powered-by">
<a href="https://www.openshift.com/" title="Powered by OpenShift Online">
<img src="https://www.openshift.com/images/logos/powered_by_openshift_reverse.png" alt="Powered by OpenShift Online">
</a>
</div>
</div>
</div>
</footer>
<!-- Adobe DTM -->
<script type="text/javascript">
if (("undefined" !== typeof _satellite) && ("function" === typeof _satellite.pageBottom)) {
_satellite.pageBottom();
}
</script>
<!-- End Adobe DTM -->
</body>
</html>

91
index-community.html Normal file
View File

@@ -0,0 +1,91 @@
<!DOCTYPE html>
<!--[if IE 8]><html class="ie8"><![endif]-->
<!--[if IE 9]><html class="ie9"><![endif]-->
<!--[if gt IE 9]><!-->
<html>
<!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="google-site-verification" content="9jyGvNki3NSELTYJ7t_XbF-YQZ8jjfm7LqQQGNq4SSg">
<title>Home | OpenShift Origin Documentation</title>
<link href="https://docs.openshift.org/" rel="canonical">
<link href="https://assets.openshift.net/content/subdomain/touch-icon-precomposed.png" rel="apple-touch-icon-precomposed" type="image/png">
<link href="https://assets.openshift.net/content/subdomain/favicon32x32.png" rel="shortcut icon" type="image/png">
<!--[if IE]><link rel="shortcut icon" href="https://assets.openshift.net/content/subdomain/favicon.ico"><![endif]-->
<link href="https://assets.openshift.net/content/subdomain.css" rel="stylesheet" media="screen, print">
<link href="_stylesheets/community-home.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://assets.openshift.net/content/html5shiv.js"></script>
<script src="https://assets.openshift.net/content/respond.js"></script>
<![endif]-->
<!-- IE8 requires jQuery and Bootstrap JS to load in head to prevent rendering bugs -->
<!-- IE8 requires jQuery v1.x -->
<script src="https://assets.openshift.net/content/subdomain.js"></script>
<script async src="//www.google-analytics.com/analytics.js" type="text/javascript"></script>
<script>
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', 'UA-40375612-1', 'openshift.org');
ga('set', 'forceSSL', true);
ga('send', 'pageview');
</script>
</head>
<body class="hub hub-home">
<div class="site-wrapper">
<div class="site-wrapper-inner">
<div class="cover-container">
<div class="masthead clearfix">
<div class="inner">
<a href="http://www.openshift.org"><img class="masthead-brand" src="_images/origin_logo.png" alt="OpenShift Logo" /></a>
<nav>
<ul class="nav masthead-nav">
<li><a href="https://www.openshift.org">Origin Home</a></li>
<li><a href="https://www.openshift.org/#contribute">Contribute</a></li>
</ul>
</nav>
</div>
</div>
<div class="inner cover">
<h1 class="cover-heading">Documentation</h1>
<p class="lead"><strong>OpenShift Origin</strong> is an application platform where developers and teams can build, test, deploy, and run their applications. OpenShift Origin also serves as the upstream code base upon which <a href="http://www.openshift.com">OpenShift Online</a> and <a href="https://www.openshift.com/container-platform/">OpenShift Container Platform</a> are built.</p>
<div class="btn-group">
<button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">Select Version<span class="caret"></span></button>
<ul class="dropdown-menu" role="menu">
<li><a href="latest/"><i class="fa fa-arrow-circle-o-right"></i> Origin Latest</a></li>
<li><a href="3.9/"><i class="fa fa-arrow-circle-o-right"></i> Origin 3.9</a></li>
<li><a href="3.7/"><i class="fa fa-arrow-circle-o-right"></i> Origin 3.7</a></li>
<li><a href="3.6/"><i class="fa fa-arrow-circle-o-right"></i> Origin 3.6</a></li>
<li><a href="1.5/"><i class="fa fa-arrow-circle-o-right"></i> Origin 1.5</a></li>
<li><a href="1.4/"><i class="fa fa-arrow-circle-o-right"></i> Origin 1.4</a></li>
<li><a href="1.3/"><i class="fa fa-arrow-circle-o-right"></i> Origin 1.3</a></li>
<li><a href="1.2/"><i class="fa fa-arrow-circle-o-right"></i> Origin 1.2</a></li>
</ul>
</div>
</div>
<div class="mastfoot">
<div class="inner">
<p>
<a href="https://www.redhat.com/">
<img src="https://assets.openshift.net/app/assets/redhat.svg" alt="Red Hat">
</a>
<a href="https://www.openshift.com/" title="Powered by OpenShift Online">
<img src="https://www.openshift.com/sites/default/files/images/powered-transparent-white.png" alt="Powered by OpenShift Online">
</a>
</p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

10
issue_template.md Normal file
View File

@@ -0,0 +1,10 @@
<!--
Please submit only documentation-related issues with this form, or follow the
Contribute to OpenShift guidelines (https://github.com/openshift/openshift-docs/blob/master/contributing_to_docs/contributing.adoc) to submit a PR.
-->
### Which section(s) is the issue in?
### What needs fixing?

234
search-commercial.html Normal file
View File

@@ -0,0 +1,234 @@
<!DOCTYPE html>
<!--[if IE 8]><html class="ie8"><![endif]-->
<!--[if IE 9]><html class="ie9"><![endif]-->
<!--[if gt IE 9]><!-->
<html>
<!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="google-site-verification" content="MCaLEYfZB8HfZSTyMQYZyBeRMXGoKt46uvrwEp-KN3M">
<title>Search Results | Red Hat OpenShift Documentation</title>
<link href="https:/docs.openshift.com/search.html" rel="canonical">
<link href="https://assets.openshift.net/content/subdomain/touch-icon-precomposed.png" rel="apple-touch-icon-precomposed" type="image/png">
<link href="https://assets.openshift.net/content/subdomain/favicon32x32.png" rel="shortcut icon" type="image/png">
<!--[if IE]><link rel="shortcut icon" href="https://assets.openshift.net/content/subdomain/favicon.ico"><![endif]-->
<link href="https://assets.openshift.net/content/subdomain.css" rel="stylesheet" media="screen, print">
<link href="_stylesheets/commercial-home.css" rel="stylesheet">
<link href="https://assets.openshift.net/content/osh-nav-footer.css" rel="stylesheet" type="text/css" media="screen, print" />
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://assets.openshift.net/content/html5shiv.js"></script>
<script src="https://assets.openshift.net/content/respond.js"></script>
<![endif]-->
<!-- IE8 requires jQuery and Bootstrap JS to load in head to prevent rendering bugs -->
<!-- IE8 requires jQuery v1.x -->
<script src="https://assets.openshift.net/content/modernizr.js" type="text/javascript"></script>
<script src="https://assets.openshift.net/content/subdomain.js" type="text/javascript"></script>
<script src="https://assets.openshift.net/content/nav-tertiary.js" type="text/javascript"></script>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-PMDVKG');</script>
<!-- End Google Tag Manager -->
<!-- Adobe DTM -->
<script src="//www.redhat.com/dtm.js" type="text/javascript"></script>
<!-- End Adobe DTM -->
</head>
<body class="docs docs-search">
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-PMDVKG"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<nav id="main">
<div class="container">
<div class="row">
<div class="navbar navbar-default navbar-openshift" role="navigation">
<div class="navbar-header">
<a href="#nav-main" class="dropdown-toggle navbar-menu-toggle hidden visible-xs" data-toggle="collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="navbar-brand" target="_blank" href="https://www.openshift.com"></a>
</div>
<div id="nav-main" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Products <span class="fa fa-angle-down"></span>
</a>
<ul class="dropdown-menu">
<li><a target="_blank" href="https://www.openshift.com/products/">Overview</a></li>
<li><a target="_blank" href="https://www.openshift.com/products/features/">Features</a></li>
<li class="dropdown">
<a class="dropdown-toggle" target="_blank" href="https://www.openshift.com/products/online/">Online</a>
<ul class="dropdown-menu product" style="display: none;">
<a target="_blank" href="https://www.openshift.com/products/online/">
<li>
<p><img src="https://assets.openshift.net/content/subdomain/Logotype_RH_OpenShiftOnline_wLogo_RGB_Gray.svg" alt="" class="img-responsive"></p>
<p>The fastest way for developers to build, host and scale applications in the public cloud</p>
</li>
</a>
</ul>
</li>
<li class="dropdown">
<a class="dropdown-toggle" target="_blank" href="https://www.openshift.com/products/dedicated/">Dedicated</a>
<ul class="dropdown-menu product" style="display: none;">
<a target="_blank" href="https://www.openshift.com/products/dedicated/">
<li>
<p><img src="https://assets.openshift.net/content/subdomain/Logotype_RH_OpenShiftDedicated_wLogo_RGB_Gray.svg" alt="" class="img-responsive"></p>
<p>Single-tenant, high-availability Kubernetes clusters in the public cloud</p>
</li>
</a>
</ul>
</li>
<li class="dropdown">
<a class="dropdown-toggle" target="_blank" href="https://www.openshift.com/products/container-platform/">Container Platform</a>
<ul class="dropdown-menu product" style="display: none;">
<a target="_blank" href="https://www.openshift.com/products/container-platform/">
<li>
<p><img src="https://assets.openshift.net/content/subdomain/Logotype_RH_OpenShiftContainerPlatform_wLogo_RGB_Gray.svg" alt="" class="img-responsive"></p>
<p>Build, deploy and manage your applications across cloud- and on-premise infrastructure</p>
</li>
</a>
</ul>
</li>
<li><a target="_blank" href="https://www.openshift.com/products/quay/">Quay</a></li>
<li><a target="_blank" href="https://www.openshift.com/products/pricing/">Pricing</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Learn <span class="fa fa-angle-down"></span>
</a>
<ul class="dropdown-menu">
<li><a target="_blank" href="https://www.openshift.com/learn/what-is-openshift/">What Is OpenShift</a></li>
<li><a target="_blank" href="https://www.openshift.com/learn/get-started/">Get Started</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Technology Topics <span class="fa fa-angle-right"></span>
</a>
<ul class="dropdown-menu" style="display: none;">
<li><a target="_blank" href="https://www.openshift.com/learn/topics/security/">Security</a></li>
<li><a target="_blank" href="https://www.openshift.com/learn/topics/kubernetes/">Kubernetes</a></li>
</ul>
</li>
<li><a target="_blank" href="https://www.openshift.com/learn/partners/">Partners</a></li>
<li><a target="_blank" href="https://www.openshift.com/learn/success-stories/">Customer success stories</a></li>
<li><a target="_blank" href="https://blog.openshift.com">Blog</a></li>
<li><a target="_blank" href="https://www.openshift.com/learn/resources/">Resources</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Community <span class="fa fa-angle-down"></span>
</a>
<ul class="dropdown-menu">
<li><a target="_blank" href="https://commons.openshift.org">OpenShift Commons</a></li>
<li><a target="_blank" href="https://www.openshift.org">Open Source (Origin)</a></li>
<li><a target="_blank" href="https://www.openshift.com/community/programs/startups/">Startups</a></li>
<li><a target="_blank" href="https://www.openshift.com/community/programs/grants/">Grants</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Support <span class="fa fa-angle-down"></span>
</a>
<ul class="dropdown-menu">
<li><a target="_blank" href="https://help.openshift.com">Help Center</a></li>
<li><a href="https://docs.openshift.com">OpenShift Docs</a></li>
</ul>
</li>
<li><a class="nav-sign-up" target="_blank" href="https://www.openshift.com/trial/">Free Trial</a></li>
<li><a target="_blank" href="https://manage.openshift.com" class="nav-log-in">Sign In <span class="fa fa-angle-right"></span></a></li>
</ul>
</div>
</div>
</div>
</div>
</nav>
<section>
<div class="container">
<h1>Search Results</h1>
<div id="hc-search-results" class="search-results clearfix"></div>
</div>
</section>
<footer id="rh">
<div class="container">
<div class="row">
<div class="col-sm-2">
<img src="https://assets.openshift.net/content/subdomain/redhat_logo.svg" class="img-fluid" alt="Red Hat" style="height: 40px;">
</div>
<div class="col-sm-3">
<p>Copyright © 2018 <span class="text-nowrap">Red Hat, Inc.</span></p>
</div>
<div class="col-sm-5">
<nav class="nav">
<a href="https://www.redhat.com/en/about/privacy-policy" class="nav-link">Privacy statement</a>
<a href="https://www.openshift.com/legal/terms/" class="nav-link">Terms of use</a>
<a href="https://www.redhat.com/en/about/all-policies-guidelines" class="nav-link">All policies and guidelines</a>
</nav>
</div>
<div class="hidden-sm col-sm-2 powered-by">
<a href="https://www.openshift.com/" title="Powered by OpenShift Online">
<img src="https://www.openshift.com/images/logos/powered_by_openshift_reverse.png" alt="Powered by OpenShift Online">
</a>
</div>
</div>
</div>
</footer>
<script type="text/javascript">
// custom help.openshift.com search
function parseParamsFromUrl() {
var params = {};
var parts = window.location.search.substr(1).split('&');
for (var i = 0; i < parts.length; i++) {
var keyValuePair = parts[i].split('=');
var key = keyValuePair[0];
params[key] = keyValuePair[1];
}
return params;
}
var urlParams = parseParamsFromUrl();
var queryParamName = 'query';
var searchLabel = 'docs';
if (urlParams[queryParamName]) {
hciframe = document.createElement('iframe');
hciframe.width = '100%';
hciframe.height = 0.7 * window.innerHeight;
hciframe.frameBorder = '0';
hciframe.src = 'https://help.openshift.com/customsearch.html?q=' + urlParams[queryParamName] + '&l=' + searchLabel;
document.getElementById('hc-search-results').appendChild(hciframe);
}
</script>
<!-- Adobe DTM -->
<script type="text/javascript">
if (("undefined" !== typeof _satellite) && ("function" === typeof _satellite.pageBottom)) {
_satellite.pageBottom();
}
</script>
<!-- End Adobe DTM -->
</body>
</html>