Merge pull request #151 from upbound/master
Migrate crossplane.io to Hugo
|
|
@ -1,2 +0,0 @@
|
|||
---
|
||||
BUNDLE_PATH: "vendor"
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
name: Deploy to GitHub Pages
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master # Set a branch to deploy
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Hugo
|
||||
uses: peaceiris/actions-hugo@v2
|
||||
with:
|
||||
hugo-version: '0.101.0'
|
||||
|
||||
- name: Build
|
||||
run: hugo --minify
|
||||
|
||||
- name: Deploy
|
||||
uses: JamesIves/github-pages-deploy-action@4
|
||||
with:
|
||||
folder: ./public
|
||||
|
|
@ -1,5 +1,66 @@
|
|||
# Compiled source #
|
||||
###################
|
||||
*.com
|
||||
*.class
|
||||
*.dll
|
||||
*.exe
|
||||
*.o
|
||||
*.so
|
||||
|
||||
# Packages #
|
||||
############
|
||||
# it's better to unpack these files and commit the raw source
|
||||
# git has its own built in compression methods
|
||||
*.7z
|
||||
*.dmg
|
||||
*.gz
|
||||
*.iso
|
||||
*.jar
|
||||
*.rar
|
||||
*.tar
|
||||
*.zip
|
||||
|
||||
# Logs and databases #
|
||||
######################
|
||||
*.log
|
||||
*.sql
|
||||
*.sqlite
|
||||
|
||||
# OS generated files #
|
||||
######################
|
||||
.DS_Store
|
||||
.DS_Store?
|
||||
._*
|
||||
.Spotlight-V100
|
||||
.Trashes
|
||||
ehthumbs.db
|
||||
Thumbs.db
|
||||
desktop.ini
|
||||
|
||||
# VSCode #
|
||||
######################
|
||||
.vscode/*
|
||||
|
||||
# Common Python Venv #
|
||||
######################
|
||||
venv/*
|
||||
|
||||
# Hugo generated files #
|
||||
######################
|
||||
resources/*
|
||||
resources/_gen/assets/*
|
||||
public/*
|
||||
hugo
|
||||
.hugo_build.lock
|
||||
|
||||
# From original Upbound Crossplane .gitignore #
|
||||
######################
|
||||
/_site
|
||||
/vendor
|
||||
/node_modules
|
||||
.DS_Store
|
||||
docs/.DS_Store
|
||||
docs/.DS_Store
|
||||
|
||||
# jekyll_files
|
||||
######################
|
||||
jekyll_files/*
|
||||
39
404.html
|
|
@ -1,39 +0,0 @@
|
|||
---
|
||||
layout: default
|
||||
permalink: /404.html
|
||||
stylesheet: 404
|
||||
---
|
||||
|
||||
<div id="holder">
|
||||
<h2>404 - Not Found</h2>
|
||||
<h3>The page you are looking for could not be found.</h3>
|
||||
<p id="redirect"></p>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var docsPath = {{ "/docs" | relative_url | jsonify }};
|
||||
var pagePath = window.location.pathname;
|
||||
|
||||
|
||||
if (pagePath == docsPath || pagePath.startsWith(docsPath + '/')) {
|
||||
var remainder = pagePath.slice(docsPath.length+1).split('/').filter(function(p) { return p; });
|
||||
var version = remainder[0];
|
||||
var timeout = 5000;
|
||||
var target = docsPath + '/latest';
|
||||
|
||||
if (remainder.length == 0) {
|
||||
// Redirect immediately to latest for /docs
|
||||
window.location = target;
|
||||
} else {
|
||||
if (remainder.length == 1) {
|
||||
// Redirect to latest if they went to a version that does not exist
|
||||
document.getElementById('redirect').innerHTML = 'In just a moment we\'ll redirect you to the <a href="'+target+'">latest docs</a>.';
|
||||
} else {
|
||||
// Redirect to current version root
|
||||
target = docsPath + '/' + version;
|
||||
document.getElementById('redirect').innerHTML = 'In just a moment we\'ll redirect you to the main page for the <a href="'+target+'">'+version+' docs</a>.';
|
||||
}
|
||||
setTimeout(function () { window.location = target; }, timeout);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
2
Gemfile
|
|
@ -1,2 +0,0 @@
|
|||
source 'https://rubygems.org'
|
||||
gem 'github-pages', group: :jekyll_plugins
|
||||
283
Gemfile.lock
|
|
@ -1,283 +0,0 @@
|
|||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
activesupport (6.0.4.7)
|
||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||
i18n (>= 0.7, < 2)
|
||||
minitest (~> 5.1)
|
||||
tzinfo (~> 1.1)
|
||||
zeitwerk (~> 2.2, >= 2.2.2)
|
||||
addressable (2.8.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
coffee-script (2.4.1)
|
||||
coffee-script-source
|
||||
execjs
|
||||
coffee-script-source (1.11.1)
|
||||
colorator (1.1.0)
|
||||
commonmarker (0.23.4)
|
||||
concurrent-ruby (1.1.10)
|
||||
dnsruby (1.61.9)
|
||||
simpleidn (~> 0.1)
|
||||
em-websocket (0.5.3)
|
||||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0)
|
||||
ethon (0.15.0)
|
||||
ffi (>= 1.15.0)
|
||||
eventmachine (1.2.7)
|
||||
execjs (2.8.1)
|
||||
faraday (1.10.0)
|
||||
faraday-em_http (~> 1.0)
|
||||
faraday-em_synchrony (~> 1.0)
|
||||
faraday-excon (~> 1.1)
|
||||
faraday-httpclient (~> 1.0)
|
||||
faraday-multipart (~> 1.0)
|
||||
faraday-net_http (~> 1.0)
|
||||
faraday-net_http_persistent (~> 1.0)
|
||||
faraday-patron (~> 1.0)
|
||||
faraday-rack (~> 1.0)
|
||||
faraday-retry (~> 1.0)
|
||||
ruby2_keywords (>= 0.0.4)
|
||||
faraday-em_http (1.0.0)
|
||||
faraday-em_synchrony (1.0.0)
|
||||
faraday-excon (1.1.0)
|
||||
faraday-httpclient (1.0.1)
|
||||
faraday-multipart (1.0.3)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
faraday-net_http (1.0.1)
|
||||
faraday-net_http_persistent (1.2.0)
|
||||
faraday-patron (1.0.0)
|
||||
faraday-rack (1.0.0)
|
||||
faraday-retry (1.0.3)
|
||||
ffi (1.15.5)
|
||||
forwardable-extended (2.6.0)
|
||||
gemoji (3.0.1)
|
||||
github-pages (225)
|
||||
github-pages-health-check (= 1.17.9)
|
||||
jekyll (= 3.9.0)
|
||||
jekyll-avatar (= 0.7.0)
|
||||
jekyll-coffeescript (= 1.1.1)
|
||||
jekyll-commonmark-ghpages (= 0.2.0)
|
||||
jekyll-default-layout (= 0.1.4)
|
||||
jekyll-feed (= 0.15.1)
|
||||
jekyll-gist (= 1.5.0)
|
||||
jekyll-github-metadata (= 2.13.0)
|
||||
jekyll-include-cache (= 0.2.1)
|
||||
jekyll-mentions (= 1.6.0)
|
||||
jekyll-optional-front-matter (= 0.3.2)
|
||||
jekyll-paginate (= 1.1.0)
|
||||
jekyll-readme-index (= 0.3.0)
|
||||
jekyll-redirect-from (= 0.16.0)
|
||||
jekyll-relative-links (= 0.6.1)
|
||||
jekyll-remote-theme (= 0.4.3)
|
||||
jekyll-sass-converter (= 1.5.2)
|
||||
jekyll-seo-tag (= 2.8.0)
|
||||
jekyll-sitemap (= 1.4.0)
|
||||
jekyll-swiss (= 1.0.0)
|
||||
jekyll-theme-architect (= 0.2.0)
|
||||
jekyll-theme-cayman (= 0.2.0)
|
||||
jekyll-theme-dinky (= 0.2.0)
|
||||
jekyll-theme-hacker (= 0.2.0)
|
||||
jekyll-theme-leap-day (= 0.2.0)
|
||||
jekyll-theme-merlot (= 0.2.0)
|
||||
jekyll-theme-midnight (= 0.2.0)
|
||||
jekyll-theme-minimal (= 0.2.0)
|
||||
jekyll-theme-modernist (= 0.2.0)
|
||||
jekyll-theme-primer (= 0.6.0)
|
||||
jekyll-theme-slate (= 0.2.0)
|
||||
jekyll-theme-tactile (= 0.2.0)
|
||||
jekyll-theme-time-machine (= 0.2.0)
|
||||
jekyll-titles-from-headings (= 0.5.3)
|
||||
jemoji (= 0.12.0)
|
||||
kramdown (= 2.3.1)
|
||||
kramdown-parser-gfm (= 1.1.0)
|
||||
liquid (= 4.0.3)
|
||||
mercenary (~> 0.3)
|
||||
minima (= 2.5.1)
|
||||
nokogiri (>= 1.12.5, < 2.0)
|
||||
rouge (= 3.26.0)
|
||||
terminal-table (~> 1.4)
|
||||
github-pages-health-check (1.17.9)
|
||||
addressable (~> 2.3)
|
||||
dnsruby (~> 1.60)
|
||||
octokit (~> 4.0)
|
||||
public_suffix (>= 3.0, < 5.0)
|
||||
typhoeus (~> 1.3)
|
||||
html-pipeline (2.14.1)
|
||||
activesupport (>= 2)
|
||||
nokogiri (>= 1.4)
|
||||
http_parser.rb (0.8.0)
|
||||
i18n (0.9.5)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (3.9.0)
|
||||
addressable (~> 2.4)
|
||||
colorator (~> 1.0)
|
||||
em-websocket (~> 0.5)
|
||||
i18n (~> 0.7)
|
||||
jekyll-sass-converter (~> 1.0)
|
||||
jekyll-watch (~> 2.0)
|
||||
kramdown (>= 1.17, < 3)
|
||||
liquid (~> 4.0)
|
||||
mercenary (~> 0.3.3)
|
||||
pathutil (~> 0.9)
|
||||
rouge (>= 1.7, < 4)
|
||||
safe_yaml (~> 1.0)
|
||||
jekyll-avatar (0.7.0)
|
||||
jekyll (>= 3.0, < 5.0)
|
||||
jekyll-coffeescript (1.1.1)
|
||||
coffee-script (~> 2.2)
|
||||
coffee-script-source (~> 1.11.1)
|
||||
jekyll-commonmark (1.4.0)
|
||||
commonmarker (~> 0.22)
|
||||
jekyll-commonmark-ghpages (0.2.0)
|
||||
commonmarker (~> 0.23.4)
|
||||
jekyll (~> 3.9.0)
|
||||
jekyll-commonmark (~> 1.4.0)
|
||||
rouge (>= 2.0, < 4.0)
|
||||
jekyll-default-layout (0.1.4)
|
||||
jekyll (~> 3.0)
|
||||
jekyll-feed (0.15.1)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-gist (1.5.0)
|
||||
octokit (~> 4.2)
|
||||
jekyll-github-metadata (2.13.0)
|
||||
jekyll (>= 3.4, < 5.0)
|
||||
octokit (~> 4.0, != 4.4.0)
|
||||
jekyll-include-cache (0.2.1)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-mentions (1.6.0)
|
||||
html-pipeline (~> 2.3)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-optional-front-matter (0.3.2)
|
||||
jekyll (>= 3.0, < 5.0)
|
||||
jekyll-paginate (1.1.0)
|
||||
jekyll-readme-index (0.3.0)
|
||||
jekyll (>= 3.0, < 5.0)
|
||||
jekyll-redirect-from (0.16.0)
|
||||
jekyll (>= 3.3, < 5.0)
|
||||
jekyll-relative-links (0.6.1)
|
||||
jekyll (>= 3.3, < 5.0)
|
||||
jekyll-remote-theme (0.4.3)
|
||||
addressable (~> 2.0)
|
||||
jekyll (>= 3.5, < 5.0)
|
||||
jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0)
|
||||
rubyzip (>= 1.3.0, < 3.0)
|
||||
jekyll-sass-converter (1.5.2)
|
||||
sass (~> 3.4)
|
||||
jekyll-seo-tag (2.8.0)
|
||||
jekyll (>= 3.8, < 5.0)
|
||||
jekyll-sitemap (1.4.0)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-swiss (1.0.0)
|
||||
jekyll-theme-architect (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-cayman (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-dinky (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-hacker (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-leap-day (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-merlot (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-midnight (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-minimal (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-modernist (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-primer (0.6.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-github-metadata (~> 2.9)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-slate (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-tactile (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-theme-time-machine (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-titles-from-headings (0.5.3)
|
||||
jekyll (>= 3.3, < 5.0)
|
||||
jekyll-watch (2.2.1)
|
||||
listen (~> 3.0)
|
||||
jemoji (0.12.0)
|
||||
gemoji (~> 3.0)
|
||||
html-pipeline (~> 2.2)
|
||||
jekyll (>= 3.0, < 5.0)
|
||||
kramdown (2.3.1)
|
||||
rexml
|
||||
kramdown-parser-gfm (1.1.0)
|
||||
kramdown (~> 2.0)
|
||||
liquid (4.0.3)
|
||||
listen (3.7.1)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
mercenary (0.3.6)
|
||||
mini_portile2 (2.8.0)
|
||||
minima (2.5.1)
|
||||
jekyll (>= 3.5, < 5.0)
|
||||
jekyll-feed (~> 0.9)
|
||||
jekyll-seo-tag (~> 2.1)
|
||||
minitest (5.15.0)
|
||||
multipart-post (2.1.1)
|
||||
nokogiri (1.13.4)
|
||||
mini_portile2 (~> 2.8.0)
|
||||
racc (~> 1.4)
|
||||
octokit (4.22.0)
|
||||
faraday (>= 0.9)
|
||||
sawyer (~> 0.8.0, >= 0.5.3)
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
public_suffix (4.0.7)
|
||||
racc (1.6.0)
|
||||
rb-fsevent (0.11.1)
|
||||
rb-inotify (0.10.1)
|
||||
ffi (~> 1.0)
|
||||
rexml (3.2.5)
|
||||
rouge (3.26.0)
|
||||
ruby2_keywords (0.0.5)
|
||||
rubyzip (2.3.2)
|
||||
safe_yaml (1.0.5)
|
||||
sass (3.7.4)
|
||||
sass-listen (~> 4.0.0)
|
||||
sass-listen (4.0.0)
|
||||
rb-fsevent (~> 0.9, >= 0.9.4)
|
||||
rb-inotify (~> 0.9, >= 0.9.7)
|
||||
sawyer (0.8.2)
|
||||
addressable (>= 2.3.5)
|
||||
faraday (> 0.8, < 2.0)
|
||||
simpleidn (0.2.1)
|
||||
unf (~> 0.1.4)
|
||||
terminal-table (1.8.0)
|
||||
unicode-display_width (~> 1.1, >= 1.1.1)
|
||||
thread_safe (0.3.6)
|
||||
typhoeus (1.4.0)
|
||||
ethon (>= 0.9.0)
|
||||
tzinfo (1.2.9)
|
||||
thread_safe (~> 0.1)
|
||||
unf (0.1.4)
|
||||
unf_ext
|
||||
unf_ext (0.0.8.1)
|
||||
unicode-display_width (1.8.0)
|
||||
zeitwerk (2.5.4)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
github-pages
|
||||
|
||||
BUNDLED WITH
|
||||
2.3.11
|
||||
201
LICENSE
|
|
@ -1,201 +0,0 @@
|
|||
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 2016 The Crossplane Authors. All rights reserved.
|
||||
|
||||
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.
|
||||
317
LICENSE-DOCS
|
|
@ -1,317 +0,0 @@
|
|||
Creative Commons Attribution 4.0 International Public License
|
||||
|
||||
By exercising the Licensed Rights (defined below), You accept and agree
|
||||
to be bound by the terms and conditions of this Creative Commons
|
||||
Attribution 4.0 International Public License ("Public License"). To the
|
||||
extent this Public License may be interpreted as a contract, You are
|
||||
granted the Licensed Rights in consideration of Your acceptance of
|
||||
these terms and conditions, and the Licensor grants You such rights in
|
||||
consideration of benefits the Licensor receives from making the
|
||||
Licensed Material available under these terms and conditions.
|
||||
|
||||
|
||||
Section 1 -- Definitions.
|
||||
|
||||
a. Adapted Material means material subject to Copyright and Similar
|
||||
Rights that is derived from or based upon the Licensed Material
|
||||
and in which the Licensed Material is translated, altered,
|
||||
arranged, transformed, or otherwise modified in a manner requiring
|
||||
permission under the Copyright and Similar Rights held by the
|
||||
Licensor. For purposes of this Public License, where the Licensed
|
||||
Material is a musical work, performance, or sound recording,
|
||||
Adapted Material is always produced where the Licensed Material is
|
||||
synched in timed relation with a moving image.
|
||||
|
||||
b. Adapter's License means the license You apply to Your Copyright
|
||||
and Similar Rights in Your contributions to Adapted Material in
|
||||
accordance with the terms and conditions of this Public License.
|
||||
|
||||
c. Copyright and Similar Rights means copyright and/or similar rights
|
||||
closely related to copyright including, without limitation,
|
||||
performance, broadcast, sound recording, and Sui Generis Database
|
||||
Rights, without regard to how the rights are labeled or
|
||||
categorized. For purposes of this Public License, the rights
|
||||
specified in Section 2(b)(1)-(2) are not Copyright and Similar
|
||||
Rights.
|
||||
|
||||
d. Effective Technological Measures means those measures that, in the
|
||||
absence of proper authority, may not be circumvented under laws
|
||||
fulfilling obligations under Article 11 of the WIPO Copyright
|
||||
Treaty adopted on December 20, 1996, and/or similar international
|
||||
agreements.
|
||||
|
||||
e. Exceptions and Limitations means fair use, fair dealing, and/or
|
||||
any other exception or limitation to Copyright and Similar Rights
|
||||
that applies to Your use of the Licensed Material.
|
||||
|
||||
f. Licensed Material means the artistic or literary work, database,
|
||||
or other material to which the Licensor applied this Public
|
||||
License.
|
||||
|
||||
g. Licensed Rights means the rights granted to You subject to the
|
||||
terms and conditions of this Public License, which are limited to
|
||||
all Copyright and Similar Rights that apply to Your use of the
|
||||
Licensed Material and that the Licensor has authority to license.
|
||||
|
||||
h. Licensor means the individual(s) or entity(ies) granting rights
|
||||
under this Public License.
|
||||
|
||||
i. Share means to provide material to the public by any means or
|
||||
process that requires permission under the Licensed Rights, such
|
||||
as reproduction, public display, public performance, distribution,
|
||||
dissemination, communication, or importation, and to make material
|
||||
available to the public including in ways that members of the
|
||||
public may access the material from a place and at a time
|
||||
individually chosen by them.
|
||||
|
||||
j. Sui Generis Database Rights means rights other than copyright
|
||||
resulting from Directive 96/9/EC of the European Parliament and of
|
||||
the Council of 11 March 1996 on the legal protection of databases,
|
||||
as amended and/or succeeded, as well as other essentially
|
||||
equivalent rights anywhere in the world.
|
||||
|
||||
k. You means the individual or entity exercising the Licensed Rights
|
||||
under this Public License. Your has a corresponding meaning.
|
||||
|
||||
|
||||
Section 2 -- Scope.
|
||||
|
||||
a. License grant.
|
||||
|
||||
1. Subject to the terms and conditions of this Public License,
|
||||
the Licensor hereby grants You a worldwide, royalty-free,
|
||||
non-sublicensable, non-exclusive, irrevocable license to
|
||||
exercise the Licensed Rights in the Licensed Material to:
|
||||
|
||||
a. reproduce and Share the Licensed Material, in whole or
|
||||
in part; and
|
||||
|
||||
b. produce, reproduce, and Share Adapted Material.
|
||||
|
||||
2. Exceptions and Limitations. For the avoidance of doubt, where
|
||||
Exceptions and Limitations apply to Your use, this Public
|
||||
License does not apply, and You do not need to comply with
|
||||
its terms and conditions.
|
||||
|
||||
3. Term. The term of this Public License is specified in Section
|
||||
6(a).
|
||||
|
||||
4. Media and formats; technical modifications allowed. The
|
||||
Licensor authorizes You to exercise the Licensed Rights in
|
||||
all media and formats whether now known or hereafter created,
|
||||
and to make technical modifications necessary to do so. The
|
||||
Licensor waives and/or agrees not to assert any right or
|
||||
authority to forbid You from making technical modifications
|
||||
necessary to exercise the Licensed Rights, including
|
||||
technical modifications necessary to circumvent Effective
|
||||
Technological Measures. For purposes of this Public License,
|
||||
simply making modifications authorized by this Section 2(a)
|
||||
(4) never produces Adapted Material.
|
||||
|
||||
5. Downstream recipients.
|
||||
|
||||
a. Offer from the Licensor -- Licensed Material. Every
|
||||
recipient of the Licensed Material automatically
|
||||
receives an offer from the Licensor to exercise the
|
||||
Licensed Rights under the terms and conditions of this
|
||||
Public License.
|
||||
|
||||
b. No downstream restrictions. You may not offer or impose
|
||||
any additional or different terms or conditions on, or
|
||||
apply any Effective Technological Measures to, the
|
||||
Licensed Material if doing so restricts exercise of the
|
||||
Licensed Rights by any recipient of the Licensed
|
||||
Material.
|
||||
|
||||
6. No endorsement. Nothing in this Public License constitutes or
|
||||
may be construed as permission to assert or imply that You
|
||||
are, or that Your use of the Licensed Material is, connected
|
||||
with, or sponsored, endorsed, or granted official status by,
|
||||
the Licensor or others designated to receive attribution as
|
||||
provided in Section 3(a)(1)(A)(i).
|
||||
|
||||
b. Other rights.
|
||||
|
||||
1. Moral rights, such as the right of integrity, are not
|
||||
licensed under this Public License, nor are publicity,
|
||||
privacy, and/or other similar personality rights; however, to
|
||||
the extent possible, the Licensor waives and/or agrees not to
|
||||
assert any such rights held by the Licensor to the limited
|
||||
extent necessary to allow You to exercise the Licensed
|
||||
Rights, but not otherwise.
|
||||
|
||||
2. Patent and trademark rights are not licensed under this
|
||||
Public License.
|
||||
|
||||
3. To the extent possible, the Licensor waives any right to
|
||||
collect royalties from You for the exercise of the Licensed
|
||||
Rights, whether directly or through a collecting society
|
||||
under any voluntary or waivable statutory or compulsory
|
||||
licensing scheme. In all other cases the Licensor expressly
|
||||
reserves any right to collect such royalties.
|
||||
|
||||
|
||||
Section 3 -- License Conditions.
|
||||
|
||||
Your exercise of the Licensed Rights is expressly made subject to the
|
||||
following conditions.
|
||||
|
||||
a. Attribution.
|
||||
|
||||
1. If You Share the Licensed Material (including in modified
|
||||
form), You must:
|
||||
|
||||
a. retain the following if it is supplied by the Licensor
|
||||
with the Licensed Material:
|
||||
|
||||
i. identification of the creator(s) of the Licensed
|
||||
Material and any others designated to receive
|
||||
attribution, in any reasonable manner requested by
|
||||
the Licensor (including by pseudonym if
|
||||
designated);
|
||||
|
||||
ii. a copyright notice;
|
||||
|
||||
iii. a notice that refers to this Public License;
|
||||
|
||||
iv. a notice that refers to the disclaimer of
|
||||
warranties;
|
||||
|
||||
v. a URI or hyperlink to the Licensed Material to the
|
||||
extent reasonably practicable;
|
||||
|
||||
b. indicate if You modified the Licensed Material and
|
||||
retain an indication of any previous modifications; and
|
||||
|
||||
c. indicate the Licensed Material is licensed under this
|
||||
Public License, and include the text of, or the URI or
|
||||
hyperlink to, this Public License.
|
||||
|
||||
2. You may satisfy the conditions in Section 3(a)(1) in any
|
||||
reasonable manner based on the medium, means, and context in
|
||||
which You Share the Licensed Material. For example, it may be
|
||||
reasonable to satisfy the conditions by providing a URI or
|
||||
hyperlink to a resource that includes the required
|
||||
information.
|
||||
|
||||
3. If requested by the Licensor, You must remove any of the
|
||||
information required by Section 3(a)(1)(A) to the extent
|
||||
reasonably practicable.
|
||||
|
||||
4. If You Share Adapted Material You produce, the Adapter's
|
||||
License You apply must not prevent recipients of the Adapted
|
||||
Material from complying with this Public License.
|
||||
|
||||
|
||||
Section 4 -- Sui Generis Database Rights.
|
||||
|
||||
Where the Licensed Rights include Sui Generis Database Rights that
|
||||
apply to Your use of the Licensed Material:
|
||||
|
||||
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
|
||||
to extract, reuse, reproduce, and Share all or a substantial
|
||||
portion of the contents of the database;
|
||||
|
||||
b. if You include all or a substantial portion of the database
|
||||
contents in a database in which You have Sui Generis Database
|
||||
Rights, then the database in which You have Sui Generis Database
|
||||
Rights (but not its individual contents) is Adapted Material; and
|
||||
|
||||
c. You must comply with the conditions in Section 3(a) if You Share
|
||||
all or a substantial portion of the contents of the database.
|
||||
|
||||
For the avoidance of doubt, this Section 4 supplements and does not
|
||||
replace Your obligations under this Public License where the Licensed
|
||||
Rights include other Copyright and Similar Rights.
|
||||
|
||||
|
||||
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
|
||||
|
||||
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
|
||||
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
|
||||
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
|
||||
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
|
||||
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
|
||||
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
||||
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
|
||||
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
|
||||
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
|
||||
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
|
||||
|
||||
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
|
||||
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
|
||||
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
|
||||
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
|
||||
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
|
||||
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
|
||||
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
|
||||
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
|
||||
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
|
||||
|
||||
c. The disclaimer of warranties and limitation of liability provided
|
||||
above shall be interpreted in a manner that, to the extent
|
||||
possible, most closely approximates an absolute disclaimer and
|
||||
waiver of all liability.
|
||||
|
||||
|
||||
Section 6 -- Term and Termination.
|
||||
|
||||
a. This Public License applies for the term of the Copyright and
|
||||
Similar Rights licensed here. However, if You fail to comply with
|
||||
this Public License, then Your rights under this Public License
|
||||
terminate automatically.
|
||||
|
||||
b. Where Your right to use the Licensed Material has terminated under
|
||||
Section 6(a), it reinstates:
|
||||
|
||||
1. automatically as of the date the violation is cured, provided
|
||||
it is cured within 30 days of Your discovery of the
|
||||
violation; or
|
||||
|
||||
2. upon express reinstatement by the Licensor.
|
||||
|
||||
For the avoidance of doubt, this Section 6(b) does not affect any
|
||||
right the Licensor may have to seek remedies for Your violations
|
||||
of this Public License.
|
||||
|
||||
c. For the avoidance of doubt, the Licensor may also offer the
|
||||
Licensed Material under separate terms or conditions or stop
|
||||
distributing the Licensed Material at any time; however, doing so
|
||||
will not terminate this Public License.
|
||||
|
||||
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
|
||||
License.
|
||||
|
||||
|
||||
Section 7 -- Other Terms and Conditions.
|
||||
|
||||
a. The Licensor shall not be bound by any additional or different
|
||||
terms or conditions communicated by You unless expressly agreed.
|
||||
|
||||
b. Any arrangements, understandings, or agreements regarding the
|
||||
Licensed Material not stated herein are separate from and
|
||||
independent of the terms and conditions of this Public License.
|
||||
|
||||
|
||||
Section 8 -- Interpretation.
|
||||
|
||||
a. For the avoidance of doubt, this Public License does not, and
|
||||
shall not be interpreted to, reduce, limit, restrict, or impose
|
||||
conditions on any use of the Licensed Material that could lawfully
|
||||
be made without permission under this Public License.
|
||||
|
||||
b. To the extent possible, if any provision of this Public License is
|
||||
deemed unenforceable, it shall be automatically reformed to the
|
||||
minimum extent necessary to make it enforceable. If the provision
|
||||
cannot be reformed, it shall be severed from this Public License
|
||||
without affecting the enforceability of the remaining terms and
|
||||
conditions.
|
||||
|
||||
c. No term or condition of this Public License will be waived and no
|
||||
failure to comply consented to unless expressly agreed to by the
|
||||
Licensor.
|
||||
|
||||
d. Nothing in this Public License constitutes or may be interpreted
|
||||
as a limitation upon, or waiver of, any privileges and immunities
|
||||
that apply to the Licensor or You, including from the legal
|
||||
processes of any jurisdiction or authority.
|
||||
|
|
@ -0,0 +1,157 @@
|
|||
# Creative Commons Attribution 4.0 International
|
||||
|
||||
Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible.
|
||||
|
||||
**Using Creative Commons Public Licenses**
|
||||
|
||||
Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses.
|
||||
|
||||
* __Considerations for licensors:__ Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. [More considerations for licensors](http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensors).
|
||||
|
||||
* __Considerations for the public:__ By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor’s permission is not necessary for any reason–for example, because of any applicable exception or limitation to copyright–then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. Although not required by our licenses, you are encouraged to respect those requests where reasonable. [More considerations for the public](http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensees).
|
||||
|
||||
## Creative Commons Attribution 4.0 International Public License
|
||||
|
||||
By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions.
|
||||
|
||||
### Section 1 – Definitions.
|
||||
|
||||
a. __Adapted Material__ means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image.
|
||||
|
||||
b. __Adapter's License__ means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License.
|
||||
|
||||
c. __Copyright and Similar Rights__ means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
|
||||
|
||||
d. __Effective Technological Measures__ means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements.
|
||||
|
||||
e. __Exceptions and Limitations__ means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material.
|
||||
|
||||
f. __Licensed Material__ means the artistic or literary work, database, or other material to which the Licensor applied this Public License.
|
||||
|
||||
g. __Licensed Rights__ means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license.
|
||||
|
||||
h. __Licensor__ means the individual(s) or entity(ies) granting rights under this Public License.
|
||||
|
||||
i. __Share__ means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them.
|
||||
|
||||
j. __Sui Generis Database Rights__ means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world.
|
||||
|
||||
k. __You__ means the individual or entity exercising the Licensed Rights under this Public License. __Your__ has a corresponding meaning.
|
||||
|
||||
### Section 2 – Scope.
|
||||
|
||||
a. ___License grant.___
|
||||
|
||||
1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to:
|
||||
|
||||
A. reproduce and Share the Licensed Material, in whole or in part; and
|
||||
|
||||
B. produce, reproduce, and Share Adapted Material.
|
||||
|
||||
2. __Exceptions and Limitations.__ For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions.
|
||||
|
||||
3. __Term.__ The term of this Public License is specified in Section 6(a).
|
||||
|
||||
4. __Media and formats; technical modifications allowed.__ The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material.
|
||||
|
||||
5. __Downstream recipients.__
|
||||
|
||||
A. __Offer from the Licensor – Licensed Material.__ Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License.
|
||||
|
||||
B. __No downstream restrictions.__ You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material.
|
||||
|
||||
6. __No endorsement.__ Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i).
|
||||
|
||||
b. ___Other rights.___
|
||||
|
||||
1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise.
|
||||
|
||||
2. Patent and trademark rights are not licensed under this Public License.
|
||||
|
||||
3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties.
|
||||
|
||||
### Section 3 – License Conditions.
|
||||
|
||||
Your exercise of the Licensed Rights is expressly made subject to the following conditions.
|
||||
|
||||
a. ___Attribution.___
|
||||
|
||||
1. If You Share the Licensed Material (including in modified form), You must:
|
||||
|
||||
A. retain the following if it is supplied by the Licensor with the Licensed Material:
|
||||
|
||||
i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated);
|
||||
|
||||
ii. a copyright notice;
|
||||
|
||||
iii. a notice that refers to this Public License;
|
||||
|
||||
iv. a notice that refers to the disclaimer of warranties;
|
||||
|
||||
v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
|
||||
|
||||
B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and
|
||||
|
||||
C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License.
|
||||
|
||||
2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information.
|
||||
|
||||
3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable.
|
||||
|
||||
4. If You Share Adapted Material You produce, the Adapter's License You apply must not prevent recipients of the Adapted Material from complying with this Public License.
|
||||
|
||||
### Section 4 – Sui Generis Database Rights.
|
||||
|
||||
Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material:
|
||||
|
||||
a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database;
|
||||
|
||||
b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and
|
||||
|
||||
c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database.
|
||||
|
||||
For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights.
|
||||
|
||||
### Section 5 – Disclaimer of Warranties and Limitation of Liability.
|
||||
|
||||
a. __Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You.__
|
||||
|
||||
b. __To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You.__
|
||||
|
||||
c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability.
|
||||
|
||||
### Section 6 – Term and Termination.
|
||||
|
||||
a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically.
|
||||
|
||||
b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates:
|
||||
|
||||
1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or
|
||||
|
||||
2. upon express reinstatement by the Licensor.
|
||||
|
||||
For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License.
|
||||
|
||||
c. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License.
|
||||
|
||||
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
|
||||
|
||||
### Section 7 – Other Terms and Conditions.
|
||||
|
||||
a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed.
|
||||
|
||||
b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License.
|
||||
|
||||
### Section 8 – Interpretation.
|
||||
|
||||
a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License.
|
||||
|
||||
b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions.
|
||||
|
||||
c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor.
|
||||
|
||||
d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority.
|
||||
|
||||
> Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at [creativecommons.org/policies](http://creativecommons.org/policies), Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses.
|
||||
>
|
||||
> Creative Commons may be contacted at creativecommons.org
|
||||
76
Makefile
|
|
@ -1,76 +0,0 @@
|
|||
# Run jekyll in development mode
|
||||
|
||||
LOCAL_DOCS_DIR := docs/local
|
||||
|
||||
run: _data/versions.json
|
||||
docker run --rm -it \
|
||||
-p 4000:4000 -p 4001:4001 \
|
||||
-v="$(PWD)/vendor/bundle:/usr/local/bundle" \
|
||||
-v "$(PWD):/srv/jekyll" \
|
||||
jekyll/jekyll:3 -- \
|
||||
jekyll serve --livereload --livereload-port 4001
|
||||
|
||||
run_docs_local: local_docs_dir _data/versions.json
|
||||
docker run --rm -it \
|
||||
-p 4000:4000 -p 4001:4001 \
|
||||
-v="$(PWD)/vendor/bundle:/usr/local/bundle" \
|
||||
-v "$(PWD):/srv/jekyll" \
|
||||
-v "$(GOPATH)/src/github.com/crossplane/crossplane/docs:/srv/jekyll/$(LOCAL_DOCS_DIR)" \
|
||||
jekyll/jekyll:3 -- \
|
||||
jekyll serve --livereload --livereload-port 4001
|
||||
rm -d $(LOCAL_DOCS_DIR)
|
||||
|
||||
run_docs_local_incremental: local_docs_dir _data/versions.json
|
||||
docker run --rm -it \
|
||||
-p 4000:4000 -p 4001:4001 \
|
||||
-v="$(PWD)/vendor/bundle:/usr/local/bundle" \
|
||||
-v "$(PWD):/srv/jekyll" \
|
||||
-v "$(GOPATH)/src/github.com/crossplane/crossplane/docs:/srv/jekyll/$(LOCAL_DOCS_DIR)" \
|
||||
jekyll/jekyll:3 -- \
|
||||
jekyll serve --incremental --livereload --livereload-port 4001
|
||||
rm -d $(LOCAL_DOCS_DIR)
|
||||
|
||||
# Build (output is in _site)
|
||||
build: _data/versions.json
|
||||
docker run --rm -it \
|
||||
-v="$(PWD)/vendor/bundle:/usr/local/bundle" \
|
||||
-v "$(PWD):/srv/jekyll" \
|
||||
jekyll/jekyll:3 -- \
|
||||
jekyll build
|
||||
|
||||
# Build (output is in _site)
|
||||
bundle_update: _data/versions.json
|
||||
docker run --rm -it \
|
||||
-v="$(PWD)/vendor/bundle:/usr/local/bundle" \
|
||||
-v "$(PWD):/srv/jekyll" \
|
||||
jekyll/jekyll:3 -- \
|
||||
bundle update
|
||||
|
||||
# Push new changes to the live site
|
||||
publish: _data/versions.json
|
||||
$(eval ROOT_DIR = $(shell pwd -P))
|
||||
git -C "$(ROOT_DIR)" add -A
|
||||
@if git -C "$(ROOT_DIR)" diff-index --cached --quiet HEAD --; then\
|
||||
echo "no changes detected";\
|
||||
else \
|
||||
echo "committing changes...";\
|
||||
git -C "$(ROOT_DIR)" -c user.email="info@crossplane.io" -c user.name="Crossplane" commit --message="docs snapshot for crossplane version \`$(DOCS_VERSION)\`"; \
|
||||
echo "pushing changes..."; \
|
||||
git -C "$(ROOT_DIR)" push; \
|
||||
echo "crossplane.github.io changes published"; \
|
||||
fi
|
||||
|
||||
# Generate versions.json
|
||||
_data/versions.json: node_modules docs
|
||||
node preprocess.js
|
||||
@touch _data/versions.json
|
||||
|
||||
# Install node_modules
|
||||
node_modules: package.json package-lock.json
|
||||
npm install
|
||||
@touch node_modules
|
||||
|
||||
# Create the local docs dir needed before _data/versions.json in some cases
|
||||
local_docs_dir:
|
||||
mkdir -p $(LOCAL_DOCS_DIR)
|
||||
|
||||
61
README.md
|
|
@ -1,61 +1,10 @@
|
|||
# Crossplane Site
|
||||
# crossplane.io
|
||||
|
||||
This is the the source for http://crossplane.io. It is rendered using [Jekyll](https://jekyllrb.com/) by [GitHub Pages](https://pages.github.com/). Docs from the main crossplane repo are published here automatically during the main repo CI publish.
|
||||
This is the repository for [crossplane.io](crossplane.io) including the [Crossplane documentation](https://crossplane.io/docs).
|
||||
|
||||
## To preview and share changes from your fork
|
||||
Crossplane.io is built using [Hugo](https://gohugo.io/).
|
||||
|
||||
It is possible to live preview changes from your fork of this repo, for instance to share your
|
||||
changes for review by others.
|
||||
|
||||
After pushing your changes to your fork, make sure that a publishing source is set within the
|
||||
settings of your fork:
|
||||
|
||||
* Navigate to `Settings` tab, then the `Options` tab
|
||||
* Scroll down to `GitHub Pages` section
|
||||
* Select a `Branch` (e.g. the branch of your fork you just pushed to) for the `Source` section
|
||||
* Click `Save`
|
||||
|
||||
Within a small amount of time, after your site has been built and published, you'll be able to see
|
||||
and share a live preview with others. The URL will be similar to the following, but with your
|
||||
GitHub user name:
|
||||
|
||||
* https://jbw976.github.io/crossplane.github.io/
|
||||
|
||||
Full instructions can be found in the [GitHub Pages
|
||||
docs](https://docs.github.com/en/free-pro-team@latest/github/working-with-github-pages/creating-a-github-pages-site#creating-your-site).
|
||||
|
||||
## To develop locally
|
||||
|
||||
This runs locally watching for changes and live reloading.
|
||||
|
||||
```
|
||||
brew install npm
|
||||
|
||||
make run
|
||||
```
|
||||
|
||||
Open http://localhost:4000 in your browser.
|
||||
|
||||
## To run locally with local crossplane docs
|
||||
Ensure `$(GOPATH)/src/github.com/crossplane/crossplane/docs` is present.
|
||||
|
||||
```
|
||||
brew install npm
|
||||
|
||||
make run_docs_local
|
||||
```
|
||||
|
||||
To run with --incremental for faster editing:
|
||||
```
|
||||
make run_docs_local_incremental
|
||||
```
|
||||
Note: `--incremental` is experimental, and sometimes gets stuck:
|
||||
https://jekyllrb.com/docs/configuration/incremental-regeneration/
|
||||
|
||||
Open http://localhost:4000 in your browser.
|
||||
For detailed information about contributing to documentation read the [Docs Contributing Guide](https://crossplane.io/master/contributing/docs/).
|
||||
|
||||
## License
|
||||
|
||||
The source code in this repository is licensed under the [Apache 2.0](LICENSE) license.
|
||||
|
||||
The documentation is distributed under [CC-BY-4.0](LICENSE-DOCS).
|
||||
The Crossplane documentation is under the [Creative Commons Attribution](https://creativecommons.org/licenses/by/4.0/) license. CC-BY allows reuse, remixing and republishing of Crossplane documentation with attribution to the Crossplane organization.
|
||||
|
|
|
|||
35
_config.yml
|
|
@ -1,35 +0,0 @@
|
|||
# Site settings
|
||||
title: Crossplane
|
||||
url: "http://crossplane.io" # the base hostname & protocol for your site, e.g. http://example.com
|
||||
|
||||
# Build settings
|
||||
markdown: kramdown
|
||||
|
||||
# plugins
|
||||
# NOTE: github pages ignores custom plugins and any other plugin which is not whitelisted
|
||||
# SEE: https://pages.github.com/versions/
|
||||
plugins:
|
||||
- jekyll-relative-links
|
||||
- jekyll-babel
|
||||
- jekyll-readme-index
|
||||
- jekyll-redirect-from
|
||||
|
||||
exclude:
|
||||
- Gemfile
|
||||
- Gemfile.lock
|
||||
- vendor
|
||||
- build
|
||||
|
||||
defaults:
|
||||
- scope:
|
||||
path: ""
|
||||
values:
|
||||
layout: default
|
||||
- scope:
|
||||
path: "docs"
|
||||
values:
|
||||
layout: "docs"
|
||||
github: "https://github.com/crossplane/crossplane/tree"
|
||||
|
||||
sass:
|
||||
sass_dir: ./_scss
|
||||
|
|
@ -1 +0,0 @@
|
|||
[{"version":"v1.9","path":"/docs/v1.9"},{"version":"v1.8","path":"/docs/v1.8"},{"version":"v1.7","path":"/docs/v1.7"},{"version":"master","path":"/docs/master"}]
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
<link rel="icon" href="{{ "/favicon.ico" | relative_url }}" />
|
||||
<link rel="icon" type="image/png" href="{{ "/images/favicon_16x16.png" | relative_url }}" sizes="16x16" />
|
||||
<link rel="icon" type="image/png" href="{{ "/images/favicon_32x32.png" | relative_url }}" sizes="32x32" />
|
||||
<link rel="icon" type="image/png" href="{{ "/images/favicon_192x192.png" | relative_url }}" sizes="192x192" />
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
<div id="footer">
|
||||
<div class="footer-main">
|
||||
<div class="main">
|
||||
<div class="logo"><img src="{{ "/images/logo.svg" | relative_url }}" alt="Crossplane Logo" /></div>
|
||||
</div>
|
||||
<div class="links sm-hidden">
|
||||
<a href="{{twitterLink}}">Twitter</a>
|
||||
<a href="{{latestDocs}}">Documentation</a>
|
||||
<a href="{{githubLink}}">GitHub</a>
|
||||
<a href="{{slackLink}}">Slack Channel</a>
|
||||
<a href="{{youtubeLink}}">YouTube</a>
|
||||
<a href="{{forumLink}}">Forum</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="lf-copyright">
|
||||
<p>
|
||||
© Crossplane Authors {{ site.time | date: '%Y' }}. Documentation distributed under
|
||||
<a href="https://creativecommons.org/licenses/by/4.0">CC-BY-4.0</a>.
|
||||
</p>
|
||||
<p>
|
||||
© {{ site.time | date: '%Y' }} The Linux Foundation. All rights reserved. The Linux Foundation has
|
||||
registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our
|
||||
<a href="https://www.linuxfoundation.org/trademark-usage/">Trademark Usage</a> page.
|
||||
</p>
|
||||
</div>
|
||||
<script src="{{ "/js/slack-popup.js" | relative_url }}"></script>
|
||||
{% if page.layout == 'docs' %}
|
||||
<script src="{{ "/js/anchor.js" | relative_url }}"></script>
|
||||
<script>
|
||||
anchors.options = {
|
||||
placement: 'right',
|
||||
icon: '#',
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function(event) {
|
||||
anchors.add('.docs-content h1, .docs-content h2, .docs-content h3, .docs-content h4, .docs-content h5, .docs-content h6');
|
||||
});
|
||||
</script>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
<!-- Start of HubSpot Embed Code -->
|
||||
<script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/5557732.js"></script>
|
||||
<!-- End of HubSpot Embed Code -->
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
{% comment %}
|
||||
This allows for making of a new liquid template hash object as described here:
|
||||
http://mcra.t8o.org/2016/04/24/jekyll-make-new-hash.html
|
||||
{% endcomment %}
|
||||
|
||||
{% assign h = include %}
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
{% assign upboundLink = "https://upbound.io/" %}
|
||||
{% assign slackLink = "https://slack.crossplane.io/" %}
|
||||
{% assign githubLink = "https://github.com/crossplane/crossplane" %}
|
||||
{% assign twitterLink = "https://twitter.com/crossplane_io" %}
|
||||
{% assign forumLink = "https://groups.google.com/forum/#!forum/crossplane-dev" %}
|
||||
{% assign youtubeLink = "https://www.youtube.com/channel/UC19FgzMBMqBro361HbE46Fw" %}
|
||||
{% assign podcastLink = "https://www.youtube.com/playlist?list=PL510POnNVaaYFuK-B_SIUrpIonCtLVOzT" %}
|
||||
{% assign blogLink = "https://blog.crossplane.io/" %}
|
||||
{% assign communityMeetingLink = "https://github.com/crossplane/crossplane/#get-involved" %}
|
||||
{% assign latestDocs = "/docs/v1.9" | append: '/' | relative_url %}
|
||||
{% assign cncfLink = "https://www.cncf.io/" %}
|
||||
{% assign prodFormLink = "https://docs.google.com/forms/d/e/1FAIpQLSev-5clADSdkwi_wiFqBCAECeIoAQDE91chBbeWbvyTjRCeYg/viewform" %}
|
||||
{% assign infoMailToLink = "mailto:info@crossplane.io" %}
|
||||
{% assign upboundGithubLink = "https://github.com/upbound" %}
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
{% include values.inc %}
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="description"
|
||||
content="Crossplane is a framework for building cloud native control planes without needing to write code. It has a highly extensible backend that enables you to build a control plane that can orchestrate applications and infrastructure no matter where they run, and a highly configurable frontend that puts you in control of the schema of the declarative API it offers.">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
|
||||
|
||||
<title>Crossplane</title>
|
||||
|
||||
<!-- Twitter Cards -->
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:site" content="https://crossplane.io" />
|
||||
<meta name="twitter:title" content="Crossplane" />
|
||||
<meta name="twitter:description" content="The cloud-native control plane framework" />
|
||||
<meta name="twitter:image:src" content="https://crossplane.io/images/twitter-card_400x400.jpg" />
|
||||
|
||||
{% include favicon.html %}
|
||||
|
||||
<link rel="stylesheet" href="{{ "/css/main.css" | relative_url }}" />
|
||||
{% if page.stylesheet %}
|
||||
<link rel="stylesheet" href="{{ "/css/" | append: page.stylesheet | append: ".css" | relative_url }}" />
|
||||
{% endif %}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{% include header.html %}
|
||||
<div id="content">{{ content }}</div>
|
||||
{% include footer.html %}
|
||||
{% include google-analytics.html %}
|
||||
{% include hubspot.html %}
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,206 +0,0 @@
|
|||
{% include values.inc %}
|
||||
|
||||
{% assign url = page.url | split: '/' %}
|
||||
{% assign currentVersion = url[2] %}
|
||||
{% assign currentVersionBranch = currentVersion | replace: 'v', 'release-' %}
|
||||
{% assign currentVersionPath = '/docs/' | append: currentVersion | append: '/' %}
|
||||
{% assign latestVersion = "v1.9" %}
|
||||
{% assign filepath = page.url | replace: currentVersionPath %}
|
||||
{% assign repopath = 'docs/' | append: filepath | remove: '.html' | append: '.md' %}
|
||||
{% if repopath == 'docs/.md' %}{% assign repopath = 'docs/README.md' %}{% endif %}
|
||||
|
||||
{% include mkhash.inc title = 'Welcome' url = currentVersionPath %}
|
||||
{% assign documents = site.pages | where_exp: 'page', 'page.url contains currentVersionPath' | where: "toc", "true" | sort: 'weight' | unshift: h %}
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<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" />
|
||||
|
||||
<title>Crossplane Docs</title>
|
||||
|
||||
<!-- Twitter Cards -->
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:site" content="https://crossplane.io" />
|
||||
<meta name="twitter:title" content="Crossplane" />
|
||||
<meta name="twitter:description" content="Compose cloud infrastructure and services into custom platform APIs" />
|
||||
<meta name="twitter:image:src" content="https://crossplane.io/images/twitter-card_400x400.jpg" />
|
||||
|
||||
{% if currentVersion != latestVersion %}
|
||||
<!-- Do not index old documentation -->
|
||||
<meta name="robots" content="noindex">
|
||||
{% endif %}
|
||||
|
||||
{% include favicon.html %}
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
|
||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
|
||||
<link rel="stylesheet" href="{{ "/css/main.css" | relative_url }}" />
|
||||
<link rel="stylesheet" href="{{ "/css/docs.css" | relative_url }}" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{% include header.html %}
|
||||
<div id="docs-header">
|
||||
<div>
|
||||
<h1>Documentation</h1>
|
||||
<div class="versions{% if currentVersion == latestVersion %} latest{% endif %}">
|
||||
<div><div><select onchange='window.location.href = this.value + {{ filepath | jsonify }}''>
|
||||
{% for ver in site.data.versions %}
|
||||
<option {% if ver.version == currentVersion %}selected{% endif %} value="{{ver.path | append: '/' | relative_url }}">Crossplane {{ ver.version }}</option>
|
||||
{% endfor %}
|
||||
</select></div></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="page">
|
||||
<div class="docs-menu">
|
||||
<ul id="docs-ul"></ul>
|
||||
</div>
|
||||
|
||||
<div class="docs-content">
|
||||
|
||||
<div class="docs-actions">
|
||||
|
||||
<a id="edit" href="{{ page.github }}/{{ currentVersionBranch }}/{{ repopath }}"><img src="{{ "/images/github-teal.svg" | relative_url }}" />Edit on GitHub</a>
|
||||
|
||||
</div>
|
||||
|
||||
{% if currentVersion == "master" %}
|
||||
<div class="alert master">
|
||||
<p>
|
||||
<b>PLEASE NOTE</b>: This document applies to an <b>unreleased</b> version of Crossplane. It is strongly recommended that you only use official releases of Crossplane, as unreleased versions are subject to changes and incompatibilities that will not be supported in the official releases.
|
||||
</p>
|
||||
<p>
|
||||
If you are using an official release version of Crossplane, you should refer to the documentation for your specific version.
|
||||
</p>
|
||||
<strong>
|
||||
Documentation for other releases can be found by using the version selector in the top right of any doc page.
|
||||
</strong>
|
||||
</div>
|
||||
{% else %}
|
||||
{% if currentVersion != latestVersion %}
|
||||
<div class="alert old">
|
||||
<p>
|
||||
<b>PLEASE NOTE</b>: This document applies to {{ currentVersion }} version and not to the latest release {{ latestVersion }}
|
||||
</p>
|
||||
<strong>
|
||||
Documentation for other releases can be found by using the version selector in the top right of any doc page.
|
||||
</strong>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{{ content }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{% include footer.html %}
|
||||
|
||||
<script>
|
||||
var menu = [];
|
||||
|
||||
function add(name, url, isChild, current) {
|
||||
var item = { name: name, url: url, current: current };
|
||||
var container = menu;
|
||||
if (isChild && menu.length > 0) {
|
||||
menu[menu.length-1].children = menu[menu.length-1].children || [];
|
||||
container = menu[menu.length-1].children;
|
||||
if (current) {
|
||||
menu[menu.length-1].childCurrent = true;
|
||||
}
|
||||
}
|
||||
container.push(item);
|
||||
}
|
||||
|
||||
{% for document in documents %}
|
||||
add({{ document.title | jsonify }}, {{document.url | relative_url | jsonify }}, {% if document.indent == true %}true{% else %}false{% endif %}, {% if document.url == page.url %}true{% else %}false{% endif %});
|
||||
{% endfor %}
|
||||
|
||||
function getEntry(item) {
|
||||
var itemDom = document.createElement('li');
|
||||
|
||||
if (item.current) {
|
||||
itemDom.innerHTML = item.name;
|
||||
itemDom.classList.add('current');
|
||||
} else {
|
||||
itemDom.innerHTML = '<a href="' + item.url + '">' + item.name + '</a>';
|
||||
}
|
||||
|
||||
return itemDom;
|
||||
}
|
||||
|
||||
// Flush css changes as explained in: https://stackoverflow.com/a/34726346
|
||||
// and more completely: https://stackoverflow.com/a/6956049
|
||||
function flushCss(element) {
|
||||
element.offsetHeight;
|
||||
}
|
||||
|
||||
function addArrow(itemDom) {
|
||||
var arrowDom = document.createElement('a');
|
||||
arrowDom.classList.add('arrow');
|
||||
arrowDom.innerHTML = '<div />';
|
||||
arrowDom.onclick = function(itemDom) {
|
||||
return function () {
|
||||
var MAIN_ITEM_HEIGHT = 59;
|
||||
var BOTTOM_PADDING = 16;
|
||||
|
||||
// Calculated full height of the opened list
|
||||
var fullHeight = MAIN_ITEM_HEIGHT + BOTTOM_PADDING + itemDom.lastChild.clientHeight + 'px';
|
||||
|
||||
itemDom.classList.toggle('open');
|
||||
|
||||
if (itemDom.classList.contains('open')) {
|
||||
itemDom.style.height = fullHeight;
|
||||
} else {
|
||||
// If the list height is auto we have to set it to fullHeight
|
||||
// without tranistion before we shrink it to collapsed height
|
||||
if (itemDom.style.height === 'auto') {
|
||||
itemDom.style.transition = 'none';
|
||||
itemDom.style.height = fullHeight;
|
||||
flushCss(itemDom);
|
||||
itemDom.style.transition = '';
|
||||
}
|
||||
itemDom.style.height = '59px';
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
}(itemDom);
|
||||
itemDom.appendChild(arrowDom);
|
||||
|
||||
if ((item.current && item.children) || item.childCurrent) {
|
||||
itemDom.classList.add('open');
|
||||
itemDom.style.height = 'auto';
|
||||
} else {
|
||||
itemDom.style.height = '59px';
|
||||
}
|
||||
}
|
||||
|
||||
var menuDom = document.getElementById('docs-ul');
|
||||
for (var i = 0; i < menu.length; i++) {
|
||||
var item = menu[i];
|
||||
var itemDom = getEntry(item);
|
||||
|
||||
if (item.childCurrent) {
|
||||
itemDom.classList.add('childCurrent');
|
||||
}
|
||||
|
||||
if (item.children) {
|
||||
addArrow(itemDom);
|
||||
itemDom.classList.add('children');
|
||||
var children = document.createElement('ul');
|
||||
for (var j = 0; j < item.children.length; j++) {
|
||||
children.appendChild(getEntry(item.children[j]));
|
||||
}
|
||||
itemDom.appendChild(children);
|
||||
}
|
||||
menuDom.appendChild(itemDom);
|
||||
}
|
||||
</script>
|
||||
{% include google-analytics.html %}
|
||||
{% include hubspot.html %}
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,181 +0,0 @@
|
|||
//************************
|
||||
// CLASSES
|
||||
//************************
|
||||
// GRID
|
||||
[#{$gl-attributeName}~="#{$gl-gridName}"],
|
||||
[#{$gl-attributeName}*="#{$gl-gridName}-"],
|
||||
[#{$gl-attributeName}*="#{$gl-gridName}_"]{
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
margin: 0 (-$gl-gutter/2);
|
||||
}
|
||||
// COLS
|
||||
[#{$gl-attributeName}~="#{$gl-colName}"],
|
||||
[#{$gl-attributeName}*="#{$gl-colName}-"],
|
||||
[#{$gl-attributeName}*="#{$gl-colName}_"]{
|
||||
box-sizing: border-box;
|
||||
padding: 0 ($gl-gutter/2) $gl-gutter-vertical;
|
||||
max-width: 100%;
|
||||
}
|
||||
// JUST "COL" & "COL_"
|
||||
[#{$gl-attributeName}~="#{$gl-colName}"],
|
||||
[#{$gl-attributeName}*="#{$gl-colName}_"]{
|
||||
flex: 1 1 0%;
|
||||
}
|
||||
// JUST "COL-"
|
||||
[#{$gl-attributeName}*="#{$gl-colName}-"]{
|
||||
flex: none;
|
||||
}
|
||||
|
||||
// COL & GRID
|
||||
[#{$gl-attributeName}~="#{$gl-gridName}"][#{$gl-attributeName}~="#{$gl-colName}"],
|
||||
[#{$gl-attributeName}~="#{$gl-gridName}"][#{$gl-attributeName}*="#{$gl-colName}-"],
|
||||
[#{$gl-attributeName}~="#{$gl-gridName}"][#{$gl-attributeName}*="#{$gl-colName}_"],
|
||||
[#{$gl-attributeName}*="#{$gl-gridName}-"][#{$gl-attributeName}~="#{$gl-colName}"],
|
||||
[#{$gl-attributeName}*="#{$gl-gridName}-"][#{$gl-attributeName}*="#{$gl-colName}-"],
|
||||
[#{$gl-attributeName}*="#{$gl-gridName}-"][#{$gl-attributeName}*="#{$gl-colName}_"],
|
||||
[#{$gl-attributeName}*="#{$gl-gridName}_"][#{$gl-attributeName}~="#{$gl-colName}"],
|
||||
[#{$gl-attributeName}*="#{$gl-gridName}_"][#{$gl-attributeName}*="#{$gl-colName}-"],
|
||||
[#{$gl-attributeName}*="#{$gl-gridName}_"][#{$gl-attributeName}*="#{$gl-colName}_"]{
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/************************
|
||||
HELPERS SUFFIXES
|
||||
*************************/
|
||||
// FOR GRID
|
||||
[#{$gl-attributeName}*="#{$gl-gridName}-"]{
|
||||
// No spacing between cols : noGutter
|
||||
&[#{$gl-attributeName}*="-noGutter"]{
|
||||
margin: 0;
|
||||
> [#{$gl-attributeName}~="#{$gl-colName}"],
|
||||
> [#{$gl-attributeName}*="#{$gl-colName}-"]{
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// No Wrapping
|
||||
&[#{$gl-attributeName}*="-noWrap"]{
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
// Horizontal alignment on center
|
||||
&[#{$gl-attributeName}*="-center"]{
|
||||
justify-content: center;
|
||||
}
|
||||
// Horizontal alignment on right
|
||||
&[#{$gl-attributeName}*="-right"]{
|
||||
justify-content: flex-end;
|
||||
align-self: flex-end;
|
||||
margin-left: auto;
|
||||
}
|
||||
// Vertical alignment on top
|
||||
&[#{$gl-attributeName}*="-top"]{
|
||||
align-items: flex-start;
|
||||
}
|
||||
// Vertical alignment on middle
|
||||
&[#{$gl-attributeName}*="-middle"]{
|
||||
align-items: center;
|
||||
}
|
||||
// Vertical alignment on bottom
|
||||
&[#{$gl-attributeName}*="-bottom"]{
|
||||
align-items: flex-end;
|
||||
}
|
||||
|
||||
// Orders
|
||||
&[#{$gl-attributeName}*="-reverse"]{
|
||||
flex-direction: row-reverse;
|
||||
}
|
||||
&[#{$gl-attributeName}*="-column"] {
|
||||
flex-direction: column;
|
||||
> [#{$gl-attributeName}*="#{$gl-colName}-"] {
|
||||
flex-basis: auto;
|
||||
}
|
||||
}
|
||||
&[#{$gl-attributeName}*="-column-reverse"]{
|
||||
flex-direction: column-reverse;
|
||||
}
|
||||
|
||||
// Spaces between and around cols
|
||||
&[#{$gl-attributeName}*="-spaceBetween"]{
|
||||
justify-content: space-between;
|
||||
}
|
||||
&[#{$gl-attributeName}*="-spaceAround"]{
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
// Equal heights columns
|
||||
&[#{$gl-attributeName}*="-equalHeight"] > [#{$gl-attributeName}~="#{$gl-colName}"],
|
||||
&[#{$gl-attributeName}*="-equalHeight"] > [#{$gl-attributeName}*="#{$gl-colName}-"],
|
||||
&[#{$gl-attributeName}*="-equalHeight"] > [#{$gl-attributeName}*="#{$gl-colName}_"]{
|
||||
align-self: stretch;
|
||||
> *{
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
// Removes the padding-bottom
|
||||
&[#{$gl-attributeName}*="-noBottom"] > [#{$gl-attributeName}~="#{$gl-colName}"],
|
||||
&[#{$gl-attributeName}*="-noBottom"] > [#{$gl-attributeName}*="#{$gl-colName}-"],
|
||||
&[#{$gl-attributeName}*="-noBottom"] > [#{$gl-attributeName}*="#{$gl-colName}_"]{
|
||||
padding-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// FOR COL
|
||||
[#{$gl-attributeName}*="#{$gl-colName}-"]{
|
||||
&[#{$gl-attributeName}*="-top"]{
|
||||
align-self: flex-start;
|
||||
}
|
||||
&[#{$gl-attributeName}*="-middle"]{
|
||||
align-self: center;
|
||||
}
|
||||
&[#{$gl-attributeName}*="-bottom"]{
|
||||
align-self: flex-end;
|
||||
}
|
||||
// Commented out because this breaks ordering on col-*
|
||||
// &[#{$gl-attributeName}*="-first"]{
|
||||
// order: -1;
|
||||
// }
|
||||
// &[#{$gl-attributeName}*="-last"]{
|
||||
// order: 1;
|
||||
// }
|
||||
}
|
||||
/************************
|
||||
GRID BY NUMBER
|
||||
*************************/
|
||||
@include makeGridByNumber(#{$gl-gridName});
|
||||
@each $mq-key, $mq-value in $gl-mq-list {
|
||||
@include bp(#{$mq-key}) {
|
||||
//@media #{$mq-value} {
|
||||
@include makeGridByNumber(_#{$mq-key});
|
||||
}
|
||||
}
|
||||
|
||||
/************************
|
||||
COLS SIZES
|
||||
*************************/
|
||||
@include makeCol(#{$gl-colName});
|
||||
@include makeOff(off);
|
||||
|
||||
|
||||
@each $mq-key, $mq-value in $gl-mq-list {
|
||||
@include bp(#{$mq-key}) {
|
||||
@include makeCol(_#{$mq-key});
|
||||
@include makeOff(_#{$mq-key});
|
||||
@include makeFirstLast(_#{$mq-key});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/************************
|
||||
HIDING COLS
|
||||
*************************/
|
||||
@each $mq-key, $mq-value in $gl-mq-list {
|
||||
@include bp(#{$mq-key}) {
|
||||
[#{$gl-attributeName}*="#{$mq-key}-hidden"] {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,72 +0,0 @@
|
|||
// Make the breakpoints
|
||||
@mixin bp($breakpoint) {
|
||||
$query: map-get($gl-mq-list, $breakpoint);
|
||||
@if $query != null {
|
||||
@media ($gl-mq-width: #{nth($query, 1)}) {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Function to generate the grid by number
|
||||
@mixin makeGridByNumber($grid)
|
||||
{
|
||||
@for $i from 1 through $gl-colCount {
|
||||
[#{$gl-attributeName}*="#{$grid}-#{$i}"] > [#{$gl-attributeName}~="#{$gl-colName}"],
|
||||
[#{$gl-attributeName}*="#{$grid}-#{$i}"] > [#{$gl-attributeName}*="#{$gl-colName}-"],
|
||||
[#{$gl-attributeName}*="#{$grid}-#{$i}"] > [#{$gl-attributeName}*="#{$gl-colName}_"] {
|
||||
$fraction: 1 / $i;
|
||||
|
||||
flex-basis: map-get($gl-colFractions, $fraction);
|
||||
max-width: map-get($gl-colFractions, $fraction);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Function to generate the grid by columns
|
||||
@mixin makeCol($col)
|
||||
{
|
||||
[#{$gl-attributeName}~="#{$gl-gridName}"],
|
||||
[#{$gl-attributeName}*="#{$gl-gridName}-"],
|
||||
[#{$gl-attributeName}*="#{$gl-gridName}_"] {
|
||||
|
||||
@for $i from 1 through $gl-colCount {
|
||||
> [#{$gl-attributeName}*="#{$col}-#{$i}"]{ flex-basis: map-get($gl-colPortions, $i); max-width: map-get($gl-colPortions, $i); }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Function to generate the -first & -last base on mq keys (as _lg-first)
|
||||
@mixin makeFirstLast($mq)
|
||||
{
|
||||
[#{$gl-attributeName}~="#{$gl-gridName}"],
|
||||
[#{$gl-attributeName}*="#{$gl-gridName}-"],
|
||||
[#{$gl-attributeName}*="#{$gl-gridName}_"] {
|
||||
[#{$gl-attributeName}*="#{$mq}-first"]{
|
||||
order: -1;
|
||||
}
|
||||
[#{$gl-attributeName}*="#{$mq}-last"]{
|
||||
order: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Function to generate the offset
|
||||
@mixin makeOff($off)
|
||||
{
|
||||
[#{$gl-attributeName}~="#{$gl-gridName}"],
|
||||
[#{$gl-attributeName}*="#{$gl-gridName}-"],
|
||||
[#{$gl-attributeName}*="#{$gl-gridName}_"] {
|
||||
@for $i from 0 through $gl-colCount - 1 {
|
||||
> [data-push-left*="#{$off}-#{$i}"]{ margin-left: map-get($gl-colPortions, $i); }
|
||||
}
|
||||
}
|
||||
|
||||
[#{$gl-attributeName}~="#{$gl-gridName}"],
|
||||
[#{$gl-attributeName}*="#{$gl-gridName}-"],
|
||||
[#{$gl-attributeName}*="#{$gl-gridName}_"] {
|
||||
@for $i from 0 through $gl-colCount - 1 {
|
||||
> [data-push-right*="#{$off}-#{$i}"]{ margin-right: map-get($gl-colPortions, $i); }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
// calculate width of one col in %
|
||||
$gl-colUnit: (100%/$gl-colCount);
|
||||
|
||||
// calculate and store nth portions for grid by columns
|
||||
$gl-colPortions: (
|
||||
0: 0
|
||||
);
|
||||
@for $i from 1 through $gl-colCount {
|
||||
$gl-colPortions: map-merge($gl-colPortions, ($i: ($gl-colUnit*$i)));
|
||||
}
|
||||
|
||||
// calculate and store nth fractions for grid by number
|
||||
$gl-colFractions: (
|
||||
0: 0 // Avoid division by zero if $i would start at 0
|
||||
);
|
||||
@for $i from 1 through $gl-colCount {
|
||||
$fraction: 1 / $i;
|
||||
$gl-colFractions: map-merge($gl-colFractions, ($fraction: $fraction * 100%));
|
||||
}
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
//************************
|
||||
// VARIABLES
|
||||
//************************
|
||||
$gl-colCount: 12 !default;
|
||||
$gl-gridName: grid !default;
|
||||
$gl-colName: col !default;
|
||||
$gl-attributeName: class !default;
|
||||
$gl-gutter: 1rem !default; // Total left + right
|
||||
$gl-gutter-vertical: 1rem !default;
|
||||
$gl-mq-width: 'max-width' !default;
|
||||
$gl-mq-list: (
|
||||
lg: 80em,
|
||||
md: 64em,
|
||||
sm: 48em,
|
||||
xs: 36em
|
||||
) !default;
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
/* ==========================================================================
|
||||
GRIDLEX
|
||||
Just a Flexbox Grid System - v. 2.7.1
|
||||
========================================================================== */
|
||||
@import "gridlex-vars";
|
||||
@import "gridlex-preprocessing";
|
||||
@import "gridlex-mixins";
|
||||
@import "gridlex-classes";
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
@charset "utf-8";
|
||||
|
||||
// Define defaults for each variable.
|
||||
|
||||
$base-font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !default;
|
||||
$base-font-size: 16px !default;
|
||||
$base-font-weight: 400 !default;
|
||||
$small-font-size: $base-font-size * 0.875 !default;
|
||||
$base-line-height: 1.5 !default;
|
||||
|
||||
$spacing-unit: 30px !default;
|
||||
|
||||
$text-color: #111 !default;
|
||||
$background-color: #fdfdfd !default;
|
||||
$brand-color: #2a7ae2 !default;
|
||||
|
||||
$grey-color: #828282 !default;
|
||||
$grey-color-light: lighten($grey-color, 40%) !default;
|
||||
$grey-color-dark: darken($grey-color, 25%) !default;
|
||||
|
||||
// Width of the content area
|
||||
$content-width: 800px !default;
|
||||
|
||||
$on-palm: 600px !default;
|
||||
$on-laptop: 800px !default;
|
||||
|
||||
// Use media queries like this:
|
||||
// @include media-query($on-palm) {
|
||||
// .wrapper {
|
||||
// padding-right: $spacing-unit / 2;
|
||||
// padding-left: $spacing-unit / 2;
|
||||
// }
|
||||
// }
|
||||
@mixin media-query($device) {
|
||||
@media screen and (max-width: $device) {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin relative-font-size($ratio) {
|
||||
font-size: $base-font-size * $ratio;
|
||||
}
|
||||
|
||||
// Import partials.
|
||||
@import "minima/base",
|
||||
// "minima/layout",
|
||||
"minima/syntax-highlighting";
|
||||
|
|
@ -1,215 +0,0 @@
|
|||
/**
|
||||
* Reset some basic elements
|
||||
*/
|
||||
body, h1, h2, h3, h4, h5, h6,
|
||||
p, blockquote, pre, hr,
|
||||
dl, dd, ol, ul, figure {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Basic styling
|
||||
*/
|
||||
body {
|
||||
font: $base-font-weight #{$base-font-size}/#{$base-line-height} $base-font-family;
|
||||
color: $text-color;
|
||||
background-color: $background-color;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-webkit-font-feature-settings: "kern" 1;
|
||||
-moz-font-feature-settings: "kern" 1;
|
||||
-o-font-feature-settings: "kern" 1;
|
||||
font-feature-settings: "kern" 1;
|
||||
font-kerning: normal;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Set `margin-bottom` to maintain vertical rhythm
|
||||
*/
|
||||
h1, h2, h3, h4, h5, h6,
|
||||
p, blockquote, pre,
|
||||
ul, ol, dl, figure,
|
||||
%vertical-rhythm {
|
||||
margin-bottom: $spacing-unit / 2;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Images
|
||||
*/
|
||||
img {
|
||||
max-width: 100%;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Figures
|
||||
*/
|
||||
figure > img {
|
||||
display: block;
|
||||
}
|
||||
|
||||
figcaption {
|
||||
font-size: $small-font-size;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Lists
|
||||
*/
|
||||
ul, ol {
|
||||
margin-left: $spacing-unit;
|
||||
}
|
||||
|
||||
li {
|
||||
> ul,
|
||||
> ol {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Headings
|
||||
*/
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-weight: $base-font-weight;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Links
|
||||
*/
|
||||
a {
|
||||
color: $brand-color;
|
||||
text-decoration: none;
|
||||
|
||||
&:visited {
|
||||
color: darken($brand-color, 15%);
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: $text-color;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.social-media-list &:hover {
|
||||
text-decoration: none;
|
||||
|
||||
.username {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Blockquotes
|
||||
*/
|
||||
blockquote {
|
||||
color: $grey-color;
|
||||
border-left: 4px solid $grey-color-light;
|
||||
padding-left: $spacing-unit / 2;
|
||||
@include relative-font-size(1.125);
|
||||
letter-spacing: -1px;
|
||||
font-style: italic;
|
||||
|
||||
> :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Code formatting
|
||||
*/
|
||||
pre,
|
||||
code {
|
||||
@include relative-font-size(0.9375);
|
||||
border: 1px solid $grey-color-light;
|
||||
border-radius: 3px;
|
||||
background-color: #eef;
|
||||
}
|
||||
|
||||
code {
|
||||
padding: 1px 5px;
|
||||
}
|
||||
|
||||
pre {
|
||||
padding: 8px 12px;
|
||||
overflow-x: auto;
|
||||
|
||||
> code {
|
||||
border: 0;
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Wrapper
|
||||
*/
|
||||
.wrapper {
|
||||
max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit} * 2));
|
||||
max-width: calc(#{$content-width} - (#{$spacing-unit} * 2));
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
padding-right: $spacing-unit;
|
||||
padding-left: $spacing-unit;
|
||||
@extend %clearfix;
|
||||
|
||||
@include media-query($on-laptop) {
|
||||
max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit}));
|
||||
max-width: calc(#{$content-width} - (#{$spacing-unit}));
|
||||
padding-right: $spacing-unit / 2;
|
||||
padding-left: $spacing-unit / 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Clearfix
|
||||
*/
|
||||
%clearfix:after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Icons
|
||||
*/
|
||||
.icon > svg {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
|
||||
path {
|
||||
fill: $grey-color;
|
||||
}
|
||||
}
|
||||
|
||||
.social-media-list {
|
||||
.icon {
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
li + li {
|
||||
padding-top: 5px;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,250 +0,0 @@
|
|||
/**
|
||||
* Site header
|
||||
*/
|
||||
.site-header {
|
||||
border-top: 5px solid $grey-color-dark;
|
||||
border-bottom: 1px solid $grey-color-light;
|
||||
min-height: $spacing-unit * 1.865;
|
||||
|
||||
// Positioning context for the mobile navigation icon
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.site-title {
|
||||
@include relative-font-size(1.625);
|
||||
font-weight: 300;
|
||||
line-height: $base-line-height * $base-font-size * 2.25;
|
||||
letter-spacing: -1px;
|
||||
margin-bottom: 0;
|
||||
float: left;
|
||||
|
||||
&,
|
||||
&:visited {
|
||||
color: $grey-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
.site-nav {
|
||||
float: right;
|
||||
line-height: $base-line-height * $base-font-size * 2.25;
|
||||
|
||||
.nav-trigger {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.menu-icon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.page-link {
|
||||
color: $text-color;
|
||||
line-height: $base-line-height;
|
||||
|
||||
// Gaps between nav items, but not on the last one
|
||||
&:not(:last-child) {
|
||||
margin-right: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
@include media-query($on-palm) {
|
||||
position: absolute;
|
||||
top: 9px;
|
||||
right: $spacing-unit / 2;
|
||||
background-color: $background-color;
|
||||
border: 1px solid $grey-color-light;
|
||||
border-radius: 5px;
|
||||
text-align: right;
|
||||
|
||||
label[for="nav-trigger"] {
|
||||
display: block;
|
||||
float: right;
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
z-index: 2;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.menu-icon {
|
||||
display: block;
|
||||
float: right;
|
||||
width: 36px;
|
||||
height: 26px;
|
||||
line-height: 0;
|
||||
padding-top: 10px;
|
||||
text-align: center;
|
||||
|
||||
> svg path {
|
||||
fill: $grey-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
input ~ .trigger {
|
||||
clear: both;
|
||||
display: none;
|
||||
}
|
||||
|
||||
input:checked ~ .trigger {
|
||||
display: block;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
.page-link {
|
||||
display: block;
|
||||
padding: 5px 10px;
|
||||
|
||||
&:not(:last-child) {
|
||||
margin-right: 0;
|
||||
}
|
||||
margin-left: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Site footer
|
||||
*/
|
||||
.site-footer {
|
||||
border-top: 1px solid $grey-color-light;
|
||||
padding: $spacing-unit 0;
|
||||
}
|
||||
|
||||
.footer-heading {
|
||||
@include relative-font-size(1.125);
|
||||
margin-bottom: $spacing-unit / 2;
|
||||
}
|
||||
|
||||
.contact-list,
|
||||
.social-media-list {
|
||||
list-style: none;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.footer-col-wrapper {
|
||||
@include relative-font-size(0.9375);
|
||||
color: $grey-color;
|
||||
margin-left: -$spacing-unit / 2;
|
||||
@extend %clearfix;
|
||||
}
|
||||
|
||||
.footer-col {
|
||||
float: left;
|
||||
margin-bottom: $spacing-unit / 2;
|
||||
padding-left: $spacing-unit / 2;
|
||||
}
|
||||
|
||||
.footer-col-1 {
|
||||
width: -webkit-calc(35% - (#{$spacing-unit} / 2));
|
||||
width: calc(35% - (#{$spacing-unit} / 2));
|
||||
}
|
||||
|
||||
.footer-col-2 {
|
||||
width: -webkit-calc(20% - (#{$spacing-unit} / 2));
|
||||
width: calc(20% - (#{$spacing-unit} / 2));
|
||||
}
|
||||
|
||||
.footer-col-3 {
|
||||
width: -webkit-calc(45% - (#{$spacing-unit} / 2));
|
||||
width: calc(45% - (#{$spacing-unit} / 2));
|
||||
}
|
||||
|
||||
@include media-query($on-laptop) {
|
||||
.footer-col-1,
|
||||
.footer-col-2 {
|
||||
width: -webkit-calc(50% - (#{$spacing-unit} / 2));
|
||||
width: calc(50% - (#{$spacing-unit} / 2));
|
||||
}
|
||||
|
||||
.footer-col-3 {
|
||||
width: -webkit-calc(100% - (#{$spacing-unit} / 2));
|
||||
width: calc(100% - (#{$spacing-unit} / 2));
|
||||
}
|
||||
}
|
||||
|
||||
@include media-query($on-palm) {
|
||||
.footer-col {
|
||||
float: none;
|
||||
width: -webkit-calc(100% - (#{$spacing-unit} / 2));
|
||||
width: calc(100% - (#{$spacing-unit} / 2));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Page content
|
||||
*/
|
||||
.page-content {
|
||||
padding: $spacing-unit 0;
|
||||
}
|
||||
|
||||
.page-heading {
|
||||
@include relative-font-size(1.25);
|
||||
}
|
||||
|
||||
.post-list {
|
||||
margin-left: 0;
|
||||
list-style: none;
|
||||
|
||||
> li {
|
||||
margin-bottom: $spacing-unit;
|
||||
}
|
||||
}
|
||||
|
||||
.post-meta {
|
||||
font-size: $small-font-size;
|
||||
color: $grey-color;
|
||||
}
|
||||
|
||||
.post-link {
|
||||
display: block;
|
||||
@include relative-font-size(1.5);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Posts
|
||||
*/
|
||||
.post-header {
|
||||
margin-bottom: $spacing-unit;
|
||||
}
|
||||
|
||||
.post-title {
|
||||
@include relative-font-size(2.625);
|
||||
letter-spacing: -1px;
|
||||
line-height: 1;
|
||||
|
||||
@include media-query($on-laptop) {
|
||||
@include relative-font-size(2.25);
|
||||
}
|
||||
}
|
||||
|
||||
.post-content {
|
||||
margin-bottom: $spacing-unit;
|
||||
|
||||
h2 {
|
||||
@include relative-font-size(2);
|
||||
|
||||
@include media-query($on-laptop) {
|
||||
@include relative-font-size(1.75);
|
||||
}
|
||||
}
|
||||
|
||||
h3 {
|
||||
@include relative-font-size(1.625);
|
||||
|
||||
@include media-query($on-laptop) {
|
||||
@include relative-font-size(1.375);
|
||||
}
|
||||
}
|
||||
|
||||
h4 {
|
||||
@include relative-font-size(1.25);
|
||||
|
||||
@include media-query($on-laptop) {
|
||||
@include relative-font-size(1.125);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
/**
|
||||
* Syntax highlighting styles
|
||||
*/
|
||||
.highlight {
|
||||
background: #fff;
|
||||
@extend %vertical-rhythm;
|
||||
|
||||
.highlighter-rouge & {
|
||||
background: #eef;
|
||||
}
|
||||
|
||||
.c { color: #998; font-style: italic } // Comment
|
||||
.err { color: #a61717; background-color: #e3d2d2 } // Error
|
||||
.k { font-weight: bold } // Keyword
|
||||
.o { font-weight: bold } // Operator
|
||||
.cm { color: #998; font-style: italic } // Comment.Multiline
|
||||
.cp { color: #999; font-weight: bold } // Comment.Preproc
|
||||
.c1 { color: #998; font-style: italic } // Comment.Single
|
||||
.cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special
|
||||
.gd { color: #000; background-color: #fdd } // Generic.Deleted
|
||||
.gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific
|
||||
.ge { font-style: italic } // Generic.Emph
|
||||
.gr { color: #a00 } // Generic.Error
|
||||
.gh { color: #999 } // Generic.Heading
|
||||
.gi { color: #000; background-color: #dfd } // Generic.Inserted
|
||||
.gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific
|
||||
.go { color: #888 } // Generic.Output
|
||||
.gp { color: #555 } // Generic.Prompt
|
||||
.gs { font-weight: bold } // Generic.Strong
|
||||
.gu { color: #aaa } // Generic.Subheading
|
||||
.gt { color: #a00 } // Generic.Traceback
|
||||
.kc { font-weight: bold } // Keyword.Constant
|
||||
.kd { font-weight: bold } // Keyword.Declaration
|
||||
.kp { font-weight: bold } // Keyword.Pseudo
|
||||
.kr { font-weight: bold } // Keyword.Reserved
|
||||
.kt { color: #458; font-weight: bold } // Keyword.Type
|
||||
.m { color: #099 } // Literal.Number
|
||||
.s { color: #d14 } // Literal.String
|
||||
.na { color: #008080 } // Name.Attribute
|
||||
.nb { color: #0086B3 } // Name.Builtin
|
||||
.nc { color: #458; font-weight: bold } // Name.Class
|
||||
.no { color: #008080 } // Name.Constant
|
||||
.ni { color: #800080 } // Name.Entity
|
||||
.ne { color: #900; font-weight: bold } // Name.Exception
|
||||
.nf { color: #900; font-weight: bold } // Name.Function
|
||||
.nn { color: #555 } // Name.Namespace
|
||||
.nt { color: #000080 } // Name.Tag
|
||||
.nv { color: #008080 } // Name.Variable
|
||||
.ow { font-weight: bold } // Operator.Word
|
||||
.w { color: #bbb } // Text.Whitespace
|
||||
.mf { color: #099 } // Literal.Number.Float
|
||||
.mh { color: #099 } // Literal.Number.Hex
|
||||
.mi { color: #099 } // Literal.Number.Integer
|
||||
.mo { color: #099 } // Literal.Number.Oct
|
||||
.sb { color: #d14 } // Literal.String.Backtick
|
||||
.sc { color: #d14 } // Literal.String.Char
|
||||
.sd { color: #d14 } // Literal.String.Doc
|
||||
.s2 { color: #d14 } // Literal.String.Double
|
||||
.se { color: #d14 } // Literal.String.Escape
|
||||
.sh { color: #d14 } // Literal.String.Heredoc
|
||||
.si { color: #d14 } // Literal.String.Interpol
|
||||
.sx { color: #d14 } // Literal.String.Other
|
||||
.sr { color: #009926 } // Literal.String.Regex
|
||||
.s1 { color: #d14 } // Literal.String.Single
|
||||
.ss { color: #990073 } // Literal.String.Symbol
|
||||
.bp { color: #999 } // Name.Builtin.Pseudo
|
||||
.vc { color: #008080 } // Name.Variable.Class
|
||||
.vg { color: #008080 } // Name.Variable.Global
|
||||
.vi { color: #008080 } // Name.Variable.Instance
|
||||
.il { color: #099 } // Literal.Number.Integer.Long
|
||||
}
|
||||
|
|
@ -1,341 +0,0 @@
|
|||
/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
|
||||
|
||||
/* Document
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* 1. Correct the line height in all browsers.
|
||||
* 2. Prevent adjustments of font size after orientation changes in iOS.
|
||||
*/
|
||||
|
||||
html {
|
||||
line-height: 1.15; /* 1 */
|
||||
-webkit-text-size-adjust: 100%; /* 2 */
|
||||
}
|
||||
|
||||
/* Sections
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Remove the margin in all browsers.
|
||||
*/
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct the font size and margin on `h1` elements within `section` and
|
||||
* `article` contexts in Chrome, Firefox, and Safari.
|
||||
*/
|
||||
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
margin: 0.67em 0;
|
||||
}
|
||||
|
||||
/* Grouping content
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* 1. Add the correct box sizing in Firefox.
|
||||
* 2. Show the overflow in Edge and IE.
|
||||
*/
|
||||
|
||||
hr {
|
||||
box-sizing: content-box; /* 1 */
|
||||
height: 0; /* 1 */
|
||||
overflow: visible; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the inheritance and scaling of font size in all browsers.
|
||||
* 2. Correct the odd `em` font sizing in all browsers.
|
||||
*/
|
||||
|
||||
pre {
|
||||
font-family: monospace, monospace; /* 1 */
|
||||
font-size: 1em; /* 2 */
|
||||
}
|
||||
|
||||
/* Text-level semantics
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Remove the gray background on active links in IE 10.
|
||||
*/
|
||||
|
||||
a {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Remove the bottom border in Chrome 57-
|
||||
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
|
||||
*/
|
||||
|
||||
abbr[title] {
|
||||
border-bottom: none; /* 1 */
|
||||
text-decoration: underline; /* 2 */
|
||||
text-decoration: underline dotted; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the correct font weight in Chrome, Edge, and Safari.
|
||||
*/
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the inheritance and scaling of font size in all browsers.
|
||||
* 2. Correct the odd `em` font sizing in all browsers.
|
||||
*/
|
||||
|
||||
code,
|
||||
kbd,
|
||||
samp {
|
||||
font-family: monospace, monospace; /* 1 */
|
||||
font-size: 1em; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the correct font size in all browsers.
|
||||
*/
|
||||
|
||||
small {
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prevent `sub` and `sup` elements from affecting the line height in
|
||||
* all browsers.
|
||||
*/
|
||||
|
||||
sub,
|
||||
sup {
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
position: relative;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
|
||||
sup {
|
||||
top: -0.5em;
|
||||
}
|
||||
|
||||
/* Embedded content
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Remove the border on images inside links in IE 10.
|
||||
*/
|
||||
|
||||
img {
|
||||
border-style: none;
|
||||
}
|
||||
|
||||
/* Forms
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* 1. Change the font styles in all browsers.
|
||||
* 2. Remove the margin in Firefox and Safari.
|
||||
*/
|
||||
|
||||
button,
|
||||
input,
|
||||
optgroup,
|
||||
select,
|
||||
textarea {
|
||||
font-family: inherit; /* 1 */
|
||||
font-size: 100%; /* 1 */
|
||||
line-height: 1.15; /* 1 */
|
||||
margin: 0; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the overflow in IE.
|
||||
* 1. Show the overflow in Edge.
|
||||
*/
|
||||
|
||||
button,
|
||||
input { /* 1 */
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the inheritance of text transform in Edge, Firefox, and IE.
|
||||
* 1. Remove the inheritance of text transform in Firefox.
|
||||
*/
|
||||
|
||||
button,
|
||||
select { /* 1 */
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct the inability to style clickable types in iOS and Safari.
|
||||
*/
|
||||
|
||||
button,
|
||||
[type="button"],
|
||||
[type="reset"],
|
||||
[type="submit"] {
|
||||
-webkit-appearance: button;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the inner border and padding in Firefox.
|
||||
*/
|
||||
|
||||
button::-moz-focus-inner,
|
||||
[type="button"]::-moz-focus-inner,
|
||||
[type="reset"]::-moz-focus-inner,
|
||||
[type="submit"]::-moz-focus-inner {
|
||||
border-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Restore the focus styles unset by the previous rule.
|
||||
*/
|
||||
|
||||
button:-moz-focusring,
|
||||
[type="button"]:-moz-focusring,
|
||||
[type="reset"]:-moz-focusring,
|
||||
[type="submit"]:-moz-focusring {
|
||||
outline: 1px dotted ButtonText;
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct the padding in Firefox.
|
||||
*/
|
||||
|
||||
fieldset {
|
||||
padding: 0.35em 0.75em 0.625em;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the text wrapping in Edge and IE.
|
||||
* 2. Correct the color inheritance from `fieldset` elements in IE.
|
||||
* 3. Remove the padding so developers are not caught out when they zero out
|
||||
* `fieldset` elements in all browsers.
|
||||
*/
|
||||
|
||||
legend {
|
||||
box-sizing: border-box; /* 1 */
|
||||
color: inherit; /* 2 */
|
||||
display: table; /* 1 */
|
||||
max-width: 100%; /* 1 */
|
||||
padding: 0; /* 3 */
|
||||
white-space: normal; /* 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
|
||||
*/
|
||||
|
||||
progress {
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the default vertical scrollbar in IE 10+.
|
||||
*/
|
||||
|
||||
textarea {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Add the correct box sizing in IE 10.
|
||||
* 2. Remove the padding in IE 10.
|
||||
*/
|
||||
|
||||
[type="checkbox"],
|
||||
[type="radio"] {
|
||||
box-sizing: border-box; /* 1 */
|
||||
padding: 0; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct the cursor style of increment and decrement buttons in Chrome.
|
||||
*/
|
||||
|
||||
[type="number"]::-webkit-inner-spin-button,
|
||||
[type="number"]::-webkit-outer-spin-button {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the odd appearance in Chrome and Safari.
|
||||
* 2. Correct the outline style in Safari.
|
||||
*/
|
||||
|
||||
[type="search"] {
|
||||
-webkit-appearance: textfield; /* 1 */
|
||||
outline-offset: -2px; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the inner padding in Chrome and Safari on macOS.
|
||||
*/
|
||||
|
||||
[type="search"]::-webkit-search-decoration {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the inability to style clickable types in iOS and Safari.
|
||||
* 2. Change font properties to `inherit` in Safari.
|
||||
*/
|
||||
|
||||
::-webkit-file-upload-button {
|
||||
-webkit-appearance: button; /* 1 */
|
||||
font: inherit; /* 2 */
|
||||
}
|
||||
|
||||
/* Interactive
|
||||
========================================================================== */
|
||||
|
||||
/*
|
||||
* Add the correct display in Edge, IE 10+, and Firefox.
|
||||
*/
|
||||
|
||||
details {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/*
|
||||
* Add the correct display in all browsers.
|
||||
*/
|
||||
|
||||
summary {
|
||||
display: list-item;
|
||||
}
|
||||
|
||||
/* Misc
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Add the correct display in IE 10+.
|
||||
*/
|
||||
|
||||
template {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the correct display in IE 10.
|
||||
*/
|
||||
|
||||
[hidden] {
|
||||
display: none;
|
||||
}
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
@import "gridlex-vars";
|
||||
|
||||
$lg-width: map-get($gl-mq-list, "lg");
|
||||
$md-width: map-get($gl-mq-list, "md");
|
||||
$sm-width: map-get($gl-mq-list, "sm");
|
||||
$xs-width: map-get($gl-mq-list, "xs");
|
||||
|
||||
$page-width: 1280px;
|
||||
$page-padding: 60px;
|
||||
$page-padding-small: 30px;
|
||||
$dark-background-color: #183d54;
|
||||
$darkish-background-color: #f4f5f7;
|
||||
$light-background-color: #f3f5fa;
|
||||
$red: #f3807b;
|
||||
$blue: #96ffe0;
|
||||
$dark-blue: #35d0ba;
|
||||
$orange: #f3c47b;
|
||||
$brown: #d8ae64;
|
||||
$white: #FFFFFF;
|
||||
|
||||
$dark-text: #505a72;
|
||||
$muted-text: #c7ced3;
|
||||
$dark-blue-text: #183d54;
|
||||
|
||||
$header-font: "Avenir";
|
||||
$body-font: "Avenir-Roman";
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
baseURL: "/"
|
||||
enableRobotsTXT: True
|
||||
languageCode: "en-us"
|
||||
title: "Crossplane"
|
||||
theme: "crossplane"
|
||||
disableKinds:
|
||||
- taxonomy
|
||||
- term
|
||||
- RSS
|
||||
|
||||
|
||||
markup:
|
||||
goldmark:
|
||||
renderer:
|
||||
unsafe: true
|
||||
highlight:
|
||||
CodeFences: true
|
||||
|
||||
|
||||
|
||||
params:
|
||||
upboundLink: "https://www.upbound.io/"
|
||||
slackLink: "https://slack.crossplane.io/"
|
||||
githubLink: "https://github.com/crossplane/crossplane"
|
||||
twitterLink: "https://twitter.com/crossplane_io"
|
||||
forumLink: "https://groups.google.com/forum/#!forum/crossplane-dev"
|
||||
youtubeLink: "https://www.youtube.com/channel/UC19FgzMBMqBro361HbE46Fw"
|
||||
podcastLink: "https://www.youtube.com/playlist?list=PL510POnNVaaYFuK-B_SIUrpIonCtLVOzT"
|
||||
blogLink: "https://blog.crossplane.io/"
|
||||
communityMeetingLink: "https://github.com/crossplane/crossplane/#get-involved"
|
||||
cncfLink: "https://www.cncf.io/"
|
||||
prodFormLink: "https://docs.google.com/forms/d/e/1FAIpQLSev-5clADSdkwi_wiFqBCAECeIoAQDE91chBbeWbvyTjRCeYg/viewform"
|
||||
infoMailToLink: "mailto:info@crossplane.io"
|
||||
upboundGithubLink: "https://github.com/upbound"
|
||||
latest: 1.9
|
||||
repoLink: "https://github.com/crossplane/crossplane"
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
layout: 404
|
||||
---
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
layout: community
|
||||
---
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
---
|
||||
title: "Overview"
|
||||
weight: -1
|
||||
toc_include: false
|
||||
cascade:
|
||||
version: master
|
||||
---
|
||||
|
||||

|
||||
|
||||
Crossplane is an open source Kubernetes add-on that transforms your cluster into
|
||||
a **universal control plane**. Crossplane enables platform teams to assemble
|
||||
infrastructure from multiple vendors, and expose higher level self-service APIs
|
||||
for application teams to consume, without having to write any code.
|
||||
|
||||
Crossplane extends your Kubernetes cluster to support orchestrating any
|
||||
infrastructure or managed service. Compose Crossplane's granular resources into
|
||||
higher level abstractions that can be versioned, managed, deployed and consumed
|
||||
using your favorite tools and existing processes. [Install Crossplane]({{<ref "getting-started/install-configure" >}}) into any
|
||||
Kubernetes cluster to get started.
|
||||
|
||||
Crossplane is a [Cloud Native Compute Foundation][cncf] project.
|
||||
|
||||
<!-- Named Links -->
|
||||
|
||||
|
||||
[cncf]: https://www.cncf.io/
|
||||
|
|
@ -1,11 +1,8 @@
|
|||
---
|
||||
title: API Documentation
|
||||
toc: true
|
||||
weight: 400
|
||||
---
|
||||
|
||||
# API Documentation
|
||||
|
||||
The Crossplane ecosystem contains many CRDs that map to API types represented by
|
||||
external infrastructure providers. The documentation for these CRDs are
|
||||
auto-generated on [doc.crds.dev]. To find the CRDs available for providers
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Crossplane
|
||||
layout: redirect
|
||||
to: "https://crossplane.io/docs/v1.9/api-docs/crossplane.html"
|
||||
---
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: provider-alibaba
|
||||
to: https://doc.crds.dev/github.com/crossplane/provider-alibaba
|
||||
layout: redirect
|
||||
---
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: provider-aws
|
||||
layout: redirect
|
||||
to: https://doc.crds.dev/github.com/crossplane/provider-aws
|
||||
---
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: provider-azure
|
||||
layout: redirect
|
||||
to: https://doc.crds.dev/github.com/crossplane/provider-azure
|
||||
---
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: provider-gcp
|
||||
layout: redirect
|
||||
to: https://doc.crds.dev/github.com/crossplane/provider-gcp
|
||||
---
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: provider-helm
|
||||
layout: redirect
|
||||
to: https://doc.crds.dev/github.com/crossplane-contrib/provider-helm
|
||||
---
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: provider-rook
|
||||
layout: redirect
|
||||
to: https://doc.crds.dev/github.com/crossplane/provider-rook
|
||||
---
|
||||
|
|
@ -129,7 +129,7 @@ all AWS resources.
|
|||
|
||||
[`aws` command line tool]: https://aws.amazon.com/cli/
|
||||
[AWS SDK for GO]: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/setting-up.html
|
||||
[installed]: https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html
|
||||
[installed]: https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
|
||||
[configured]: https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html
|
||||
[AWS security credentials]: https://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html
|
||||
[secret]:https://kubernetes.io/docs/concepts/configuration/secret/
|
||||
|
|
@ -138,7 +138,7 @@ all AWS resources.
|
|||
[Access Key]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html
|
||||
[AWS security credentials]: https://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html
|
||||
[aws command line tool]: https://aws.amazon.com/cli/
|
||||
[install-aws]: https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html
|
||||
[install-aws]: https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
|
||||
[aws-cli-configure]: https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html
|
||||
[kubernetes secret]: https://kubernetes.io/docs/concepts/configuration/secret/
|
||||
[AWS named profile]: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html
|
||||
|
|
@ -1,11 +1,8 @@
|
|||
---
|
||||
title: Concepts
|
||||
toc: true
|
||||
weight: 100
|
||||
---
|
||||
|
||||
# Overview
|
||||
|
||||
Crossplane introduces multiple building blocks that enable you to provision,
|
||||
compose, and consume infrastructure using the Kubernetes API. These individual
|
||||
concepts work together to allow for powerful separation of concern between
|
||||
|
|
@ -49,10 +46,10 @@ learn more about all of these concepts in the [composition documentation].
|
|||
|
||||
<!-- Named Links -->
|
||||
|
||||
[Packages]: packages.md
|
||||
[Packages]: {{<ref "packages" >}}
|
||||
[CRDs]: https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/
|
||||
[controllers]: https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/#custom-controllers
|
||||
[providers documentation]: providers.md
|
||||
[providers documentation]: {{<ref "providers" >}}
|
||||
[doc.crds.dev]: https://doc.crds.dev
|
||||
[managed resources documentation]: managed-resources.md
|
||||
[composition documentation]: composition.md
|
||||
[managed resources documentation]: {{<ref "managed-resources" >}}
|
||||
[composition documentation]: {{<ref "composition" >}}
|
||||
|
|
@ -1,14 +1,8 @@
|
|||
---
|
||||
title: Composite Resources
|
||||
toc: true
|
||||
weight: 103
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Composite Resources
|
||||
|
||||
## Overview
|
||||
|
||||
Crossplane Composite Resources are opinionated Kubernetes Custom Resources that
|
||||
are _composed_ of [Managed Resources][managed-resources]. We often call them XRs
|
||||
for short.
|
||||
|
|
@ -246,11 +240,11 @@ scenarios, including:
|
|||
instantly claim infrastructure like database instances that would otherwise
|
||||
take minutes to provision on-demand.
|
||||
|
||||
[managed-resources]: managed-resources.md
|
||||
[xrs-and-mrs]: ../media/composition-xrs-and-mrs.svg
|
||||
[xr-ref]: ../reference/composition.md
|
||||
[how-it-works]: ../media/composition-how-it-works.svg
|
||||
[managed-resources]: {{<ref "managed-resources" >}}
|
||||
[xrs-and-mrs]: ../../media/composition-xrs-and-mrs.svg
|
||||
[xr-ref]: {{<ref "../reference/composition" >}}
|
||||
[how-it-works]: ../../media/composition-how-it-works.svg
|
||||
[crd-docs]: https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/
|
||||
[provider-kubernetes]: https://github.com/crossplane-contrib/provider-kubernetes
|
||||
[provider-helm]: https://github.com/crossplane-contrib/provider-helm
|
||||
[claims-and-xrs]: ../media/composition-claims-and-xrs.svg
|
||||
[claims-and-xrs]: ../../media/composition-claims-and-xrs.svg
|
||||
|
|
@ -1,14 +1,8 @@
|
|||
---
|
||||
title: Managed Resources
|
||||
toc: true
|
||||
weight: 102
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Managed Resources
|
||||
|
||||
## Overview
|
||||
|
||||
A Managed Resource (MR) is Crossplane's representation of a resource in an
|
||||
external system - most commonly a cloud provider. Managed Resources are
|
||||
opinionated, Crossplane Resource Model ([XRM][term-xrm]) compliant Kubernetes
|
||||
|
|
@ -457,14 +451,14 @@ fields are there and those are enough to import a resource. The tool you're
|
|||
using needs to store `annotations` and `spec` fields, which most tools do
|
||||
including Velero.
|
||||
|
||||
[term-xrm]: terminology.md#crossplane-resource-model
|
||||
[term-xrm]: {{<ref "terminology" >}}#crossplane-resource-model
|
||||
[rds]: https://aws.amazon.com/rds/
|
||||
[cloudsql]: https://cloud.google.com/sql
|
||||
[composition]: composition.md
|
||||
[api-versioning]: https://kubernetes.io/docs/reference/using-api/api-overview/#api-versioning
|
||||
[composition]: {{<ref "composition" >}}
|
||||
[api-versioning]: https://kubernetes.io/docs/reference/using-api/#api-versioning#api-versioning
|
||||
[velero]: https://velero.io/
|
||||
[api-reference]: ../api-docs/overview.md
|
||||
[provider]: providers.md
|
||||
[api-reference]: {{<ref "../api-docs" >}}
|
||||
[provider]: {{<ref "providers" >}}
|
||||
[issue-727]: https://github.com/crossplane/crossplane/issues/727
|
||||
[issue-1143]: https://github.com/crossplane/crossplane/issues/1143
|
||||
[managed-api-patterns]: https://github.com/crossplane/crossplane/blob/master/design/one-pager-managed-resource-api-design.md
|
||||
|
|
@ -1,12 +1,8 @@
|
|||
---
|
||||
title: Packages
|
||||
toc: true
|
||||
title: Crossplane Packages
|
||||
weight: 104
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Crossplane Packages
|
||||
|
||||
Crossplane packages are opinionated [OCI images] that contain a stream of YAML
|
||||
that can be parsed by the Crossplane package manager. Crossplane packages come
|
||||
in two varieties: [Providers] and Configurations. Ultimately, the primary
|
||||
|
|
@ -31,11 +27,20 @@ purposes of Crossplane packages are as follows:
|
|||
|
||||
The following packaging operations are covered in detail below:
|
||||
|
||||
- [Table of Contents](#table-of-contents)
|
||||
- [Building a Package](#building-a-package)
|
||||
- [Provider Packages](#provider-packages)
|
||||
- [Configuration Packages](#configuration-packages)
|
||||
- [Pushing a Package](#pushing-a-package)
|
||||
- [Installing a Package](#installing-a-package)
|
||||
- [spec.package](#specpackage)
|
||||
- [spec.packagePullPolicy](#specpackagepullpolicy)
|
||||
- [spec.revisionActivationPolicy](#specrevisionactivationpolicy)
|
||||
- [spec.revisionHistoryLimit](#specrevisionhistorylimit)
|
||||
- [spec.packagePullSecrets](#specpackagepullsecrets)
|
||||
- [spec.skipDependencyResolution](#specskipdependencyresolution)
|
||||
- [spec.ignoreCrossplaneConstraints](#specignorecrossplaneconstraints)
|
||||
- [spec.controllerConfigRef](#speccontrollerconfigref)
|
||||
- [Upgrading a Package](#upgrading-a-package)
|
||||
- [Package Upgrade Issues](#package-upgrade-issues)
|
||||
- [The Package Cache](#the-package-cache)
|
||||
|
|
@ -482,13 +487,13 @@ by [pre-pulling images] onto nodes in the cluster.
|
|||
<!-- Named Links -->
|
||||
|
||||
[OCI images]: https://github.com/opencontainers/image-spec
|
||||
[Providers]: providers.md
|
||||
[Providers]: {{<ref "providers" >}}
|
||||
[provider-docs]: https://doc.crds.dev/github.com/crossplane/crossplane/meta.pkg.crossplane.io/Provider/v1
|
||||
[configuration-docs]: https://doc.crds.dev/github.com/crossplane/crossplane/meta.pkg.crossplane.io/Configuration/v1
|
||||
[lock-api]: https://doc.crds.dev/github.com/crossplane/crossplane/pkg.crossplane.io/Lock/v1beta1
|
||||
[getting-started-with-gcp]: https://github.com/crossplane/crossplane/tree/master/docs/snippets/package/gcp
|
||||
[specification]: https://github.com/Masterminds/semver#basic-comparisons
|
||||
[composition]: composition.md
|
||||
[composition]: {{<ref "composition" >}}
|
||||
[IAM Roles for Service Accounts]: https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html
|
||||
[controller-config-docs]: https://doc.crds.dev/github.com/crossplane/crossplane/pkg.crossplane.io/ControllerConfig/v1alpha1
|
||||
[package format]: https://github.com/crossplane/crossplane/blob/1aa83092172bdf0d2ed64754d33517c612ff7368/design/one-pager-package-format-v2.md
|
||||
|
|
@ -1,12 +1,8 @@
|
|||
---
|
||||
title: Providers
|
||||
toc: true
|
||||
weight: 101
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Providers
|
||||
|
||||
Providers are Crossplane packages that bundle a set of [Managed
|
||||
Resources][managed-resources] and their respective controllers to allow
|
||||
Crossplane to provision the respective infrastructure resource.
|
||||
|
|
@ -121,12 +117,12 @@ will attempt to use a `ProviderConfig` named `default`.
|
|||
|
||||
<!-- Named Links -->
|
||||
|
||||
[getting-started]: ../getting-started/install-configure.md
|
||||
[Google Cloud Platform (GCP) Service Account]: ../cloud-providers/gcp/gcp-provider.md
|
||||
[Microsoft Azure Service Principal]: ../cloud-providers/azure/azure-provider.md
|
||||
[Amazon Web Services (AWS) IAM User]: ../cloud-providers/aws/aws-provider.md
|
||||
[managed-resources]: managed-resources.md
|
||||
[provider-aws]: https://github.com/crossplane/provider-aws
|
||||
[getting-started]: {{<ref "../getting-started/install-configure" >}}
|
||||
[Google Cloud Platform (GCP) Service Account]: {{<ref "../cloud-providers/gcp/gcp-provider" >}}
|
||||
[Microsoft Azure Service Principal]: {{<ref "../cloud-providers/azure/azure-provider" >}}
|
||||
[Amazon Web Services (AWS) IAM User]: {{<ref "../cloud-providers/aws/aws-provider" >}}
|
||||
[managed-resources]: {{<ref "managed-resources" >}}
|
||||
[provider-aws]: https://github.com/crossplane-contrib/provider-aws
|
||||
[provider-aws-api]: https://doc.crds.dev/github.com/crossplane/provider-aws
|
||||
[provider-jet-aws]: https://github.com/crossplane-contrib/provider-jet-aws
|
||||
[provider-jet-aws-api]: https://doc.crds.dev/github.com/crossplane-contrib/provider-jet-aws
|
||||
|
|
@ -1,12 +1,7 @@
|
|||
---
|
||||
title: Terminology
|
||||
toc: true
|
||||
weight: 110
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Terminology
|
||||
|
||||
## A Note on Style
|
||||
|
||||
Each type of Kubernetes resource has a ‘Pascal case’ name - i.e. a title case
|
||||
|
|
@ -1,11 +1,8 @@
|
|||
---
|
||||
title: Contributing
|
||||
toc: true
|
||||
weight: 1000
|
||||
---
|
||||
|
||||
# Contributing
|
||||
|
||||
The best place to start if you're thinking about contributing to Crossplane is
|
||||
our [`CONTRIBUTING.md`] file. The following documents supplement that guide.
|
||||
|
||||
|
|
@ -14,6 +11,6 @@ our [`CONTRIBUTING.md`] file. The following documents supplement that guide.
|
|||
3. [Release Process]
|
||||
|
||||
[`CONTRIBUTING.md`]: https://github.com/crossplane/crossplane/blob/master/CONTRIBUTING.md
|
||||
[Provider Development Guide]: provider_development_guide.md
|
||||
[Observability Developer Guide]: observability_developer_guide.md
|
||||
[Release Process]: release-process.md
|
||||
[Provider Development Guide]: {{<ref "provider_development_guide" >}}
|
||||
[Observability Developer Guide]: {{<ref "observability_developer_guide" >}}
|
||||
[Release Process]: {{<ref "release-process" >}}
|
||||
|
|
@ -1,12 +1,8 @@
|
|||
---
|
||||
title: Adding Secret Store Support
|
||||
toc: true
|
||||
weight: 1004
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Adding External Secret Store Support to an Existing Provider
|
||||
|
||||
To add support for [External Secret Stores] in a provider, we need the following
|
||||
changes at a high level:
|
||||
|
||||
|
|
@ -134,6 +130,6 @@ example.
|
|||
[External Secret Stores]: https://github.com/crossplane/crossplane/blob/master/design/design-doc-external-secret-stores.md
|
||||
[this PR as a complete example]: https://github.com/crossplane/provider-gcp/pull/421
|
||||
[this PR instead]: https://github.com/crossplane-contrib/provider-jet-template/pull/23/commits
|
||||
[this commit as an example on how to add the type]: https://github.com/crossplane/provider-aws/pull/1242/commits/d8a2df323fa2489d82bf1843d2fe338de033c61d
|
||||
[this commit as an example on how to add the type]: https://github.com/crossplane-contrib/provider-aws/pull/1242/commits/d8a2df323fa2489d82bf1843d2fe338de033c61d
|
||||
[this commit as an example for adding the feature flag]: https://github.com/crossplane/provider-gcp/pull/421/commits/b5898c62dc6668d9918496de8aa9bc365c371f82
|
||||
[this commit as an example for changes in Setup functions]: https://github.com/crossplane/provider-gcp/pull/421/commits/9700d0c4fdb7e1fba8805afa309c1b1c7aa167a6
|
||||
|
|
@ -0,0 +1,187 @@
|
|||
---
|
||||
title: "Crossplane Documentation"
|
||||
weight: 2000
|
||||
---
|
||||
|
||||
- [Code of Conduct](#code-of-conduct)
|
||||
- [Reporting](#reporting)
|
||||
- [Licensing](#licensing)
|
||||
- [Directory structure](#directory-structure)
|
||||
- [Run Hugo](#run-hugo)
|
||||
- [Documentation issues and feature requests](#documentation-issues-and-feature-requests)
|
||||
- [Contributing](#contributing)
|
||||
- [Front matter](#front-matter)
|
||||
- [New Crossplane versions](#new-crossplane-versions)
|
||||
- [Excluding pages from the Table of Contents](#excluding-pages-from-the-table-of-contents)
|
||||
- [Links](#links)
|
||||
- [Linking between docs pages](#linking-between-docs-pages)
|
||||
- [Linking to external sites](#linking-to-external-sites)
|
||||
- [Tabs](#tabs)
|
||||
|
||||
## Code of Conduct
|
||||
We follow the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md).
|
||||
|
||||
Taken directly from the CNCF CoC:
|
||||
>As contributors and maintainers in the CNCF community, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
|
||||
>
|
||||
>We are committed to making participation in the CNCF community a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality.
|
||||
|
||||
### Reporting
|
||||
To report violations contact the Crossplane maintainers at `info@crossplane.io` or the CNCF at `conduct@cncf.io`.
|
||||
|
||||
## Licensing
|
||||
The Crossplane documentation is under the [Creative Commons Attribution](https://creativecommons.org/licenses/by/4.0/) license. CC-BY allows reuse, remixing and republishing of Crossplane documentation with attribution to the Crossplane organization.
|
||||
|
||||
|
||||
### Directory structure
|
||||
The relevant directories of the docs repository are:
|
||||
| Directory | Purpose |
|
||||
| ----- | ---- |
|
||||
| `content` | Markdown files for all individual pages. |
|
||||
| `static/images` | Location for all image files. |
|
||||
| `themes` | HTML templates and Hugo tooling. |
|
||||
|
||||
All markdown content exists within the `/content` directory.
|
||||
All image files exist within `static/images`.
|
||||
|
||||
### Run Hugo
|
||||
* Follow the [Hugo documentation](https://gohugo.io/getting-started/installing/) to install Hugo.
|
||||
* Run `hugo server`
|
||||
* Go to [http://localhost:1313](http://localhost:1313)
|
||||
|
||||
Crossplane documentation uses [Hugo v0.101.0](https://github.com/gohugoio/hugo/releases/tag/v0.101.0), but newer versions are compatible.
|
||||
|
||||
### Documentation issues and feature requests
|
||||
Use [GitHub Issues](https://github.com/crossplane/crossplane.github.io/issues) to report a problem or request documentation content.
|
||||
|
||||
## Contributing
|
||||
|
||||
The `/content` directory contains all documentation pages.
|
||||
Each version of Crossplane software maintains a unique directory within `content`.
|
||||
|
||||
### Front matter
|
||||
Each page contains metadata called [front matter](https://gohugo.io/content-management/front-matter/). Each page requires front matter to render.
|
||||
|
||||
```yaml
|
||||
---
|
||||
title: "Troubleshooting Crossplane"
|
||||
weight: 610
|
||||
---
|
||||
```
|
||||
|
||||
`title` defines the name of the page.
|
||||
`weight` determines the ordering of the page in the table of contents. Lower weight pages come before higher weights in the table of contents. The value of `weight` is otherwise arbitrary.
|
||||
|
||||
The `weight` of a directory's `_index.md` page moves the entire section of content in the table of contents.
|
||||
|
||||
#### New Crossplane versions
|
||||
To create documentation for a new version of Crossplane copy the current `master` folder and rename it to the desired version.
|
||||
The naming convention follows `v<major>.<minor>`. Maintenance release and individual builds do not have unique documentation.
|
||||
|
||||
After creating a new directory edit the `/content/<version>/_index.md` file to set the version for all sub-pages define `verison:` as a child element under `cascade:`.
|
||||
For example, set the version to `v8.6`:
|
||||
```
|
||||
---
|
||||
title: "Overview"
|
||||
weight: 1
|
||||
toc_include: false
|
||||
cascade:
|
||||
version: 8.6
|
||||
---
|
||||
```
|
||||
|
||||
You **must** set the version number as a valid float to generate the version drop down menus within the docs.
|
||||
|
||||
The version set in the front matter is independent from the directory name.
|
||||
|
||||
#### Excluding pages from the Table of Contents
|
||||
Pages can be hidden from the left-side table of contents with front matter settings.
|
||||
|
||||
To exclude a page from the table of contents set
|
||||
|
||||
`toc_include: false`
|
||||
|
||||
in the page front matter.
|
||||
|
||||
For example,
|
||||
|
||||
```
|
||||
---
|
||||
title: "Overview"
|
||||
weight: 1
|
||||
toc_include: false
|
||||
---
|
||||
```
|
||||
|
||||
The `/content/<version>/_index.md` page must have this set.
|
||||
|
||||
### Links
|
||||
#### Linking between docs pages
|
||||
Link between pages or sections within the documentation using standard [markdown link syntax](https://www.markdownguide.org/basic-syntax/#links). Use the [Hugo ref shortcode](https://gohugo.io/content-management/shortcodes/#ref-and-relref) with the path of the file relative to `/content` for the link location.
|
||||
|
||||
For example, to link to the "Official Providers" page create a markdown link like this:
|
||||
|
||||
```markdown
|
||||
[a link to the Official Providers page]({{</* ref "providers/_index.md" */>}})
|
||||
```
|
||||
|
||||
The `ref` value is of the markdown file, including `.md` extension. Don't link to a web address.
|
||||
|
||||
If the `ref` value points to a page that doesn't exist, Hugo fails to start.
|
||||
|
||||
For example, providing `index.md` instead of `_index.md` would cause an error like the this:
|
||||
```shell
|
||||
Start building sites …
|
||||
hugo v0.101.0-466fa43c16709b4483689930a4f9ac8add5c9f66 darwin/arm64 BuildDate=2022-06-16T07:09:16Z VendorInfo=gohugoio
|
||||
ERROR 2022/09/13 13:53:46 [en] REF_NOT_FOUND: Ref "contributing/index.md": "/home/user/crossplane.github.io/content/contributing.md:64:41": page not found
|
||||
Error: Error building site: logged 1 error
|
||||
```
|
||||
|
||||
Using `ref` ensures links render in the staging environment and prevents broken links.
|
||||
|
||||
#### Linking to external sites
|
||||
Minimize linking to external sites. When linking to any page outside of `crossplane.io` use standard [markdown link syntax](https://www.markdownguide.org/basic-syntax/#links) without using the `ref` shortcode.
|
||||
|
||||
For example,
|
||||
```markdown
|
||||
[Go to Upbound](http://upbound.io)
|
||||
```
|
||||
|
||||
### Tabs
|
||||
Use tabs to present information about a single topic with multiple exclusive options. For example, creating a resource via command-line or GUI.
|
||||
|
||||
To create a tab set, first create a `tabs` shortcode and use multiple `tab` shortcodes inside for each tab.
|
||||
|
||||
Each `tabs` shortcode requires a name that's unique to the page it's on. Each `tab` name is the title of the tab on the webpage.
|
||||
|
||||
For example
|
||||
```
|
||||
{{</* tabs "my-unique-name" */>}}
|
||||
|
||||
{{</* tab "Command-line" */>}}
|
||||
An example tab. Place anything inside a tab.
|
||||
{{</* /tab */>}}
|
||||
|
||||
{{</* tab "GUI" */>}}
|
||||
A second example tab.
|
||||
{{</* /tab */>}}
|
||||
|
||||
{{</* /tabs */>}}
|
||||
```
|
||||
|
||||
This code block renders the following tabs
|
||||
{{< tabs "my-unique-name" >}}
|
||||
|
||||
{{< tab "Command-line" >}}
|
||||
An example tab. Place anything inside a tab.
|
||||
{{< /tab >}}
|
||||
|
||||
{{< tab "GUI" >}}
|
||||
A second example tab.
|
||||
{{< /tab >}}
|
||||
|
||||
{{< /tabs >}}
|
||||
|
||||
|
||||
Both `tab` and `tabs` require opening and closing tags. Unclosed tags causes Hugo to fail.
|
||||
|
||||
|
|
@ -1,12 +1,8 @@
|
|||
---
|
||||
title: Observability Developer Guide
|
||||
toc: true
|
||||
weight: 1002
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Observability Developer Guide
|
||||
|
||||
## Introduction
|
||||
|
||||
Observability is crucial to Crossplane users; both those operating Crossplane
|
||||
|
|
@ -1,12 +1,8 @@
|
|||
---
|
||||
title: Provider Development Guide
|
||||
toc: true
|
||||
weight: 1001
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Provider Development Guide
|
||||
|
||||
Crossplane allows you to manage infrastructure directly from Kubernetes. Each
|
||||
infrastructure API resource that Crossplane orchestrates is known as a "managed
|
||||
resource". This guide will walk through the process of adding support for a new
|
||||
|
|
@ -622,7 +618,7 @@ feedback you may have about the development process!
|
|||
[crossplane-runtime v0.9.0]: https://github.com/crossplane/crossplane-runtime/releases/tag/v0.9.0
|
||||
[TBS Episode 18]: https://www.youtube.com/watch?v=rvQ8N0u3rkE&t=7s
|
||||
[What Makes a Crossplane Infrastructure Resource]: #what-makes-a-crossplane-infrastructure-resource
|
||||
[managed resource]: ../concepts/managed-resources.md
|
||||
[managed resource]: {{<ref "../concepts/managed-resources" >}}
|
||||
[`CloudMemorystoreInstance`]: https://github.com/crossplane/provider-gcp/blob/85a6ed3c669a021f1d61be51b2cbe2714b0bc70b/apis/cache/v1beta1/cloudmemorystore_instance_types.go#L184
|
||||
[`ProviderConfig`]: https://github.com/crossplane/provider-gcp/blob/be5aaf6/apis/v1beta1/providerconfig_types.go#L39
|
||||
[watching the API server]: https://kubernetes.io/docs/reference/using-api/api-concepts/#efficient-detection-of-changes
|
||||
|
|
@ -652,10 +648,10 @@ feedback you may have about the development process!
|
|||
[reach out]: https://github.com/crossplane/crossplane#get-involved
|
||||
[crossplane org]: https://github.com/crossplane
|
||||
[`angryjet`]: https://github.com/crossplane/crossplane-tools
|
||||
[Managed Resource API Patterns]: ../design/one-pager-managed-resource-api-design.md
|
||||
[Managed Resource API Patterns]: https://github.com/crossplane/crossplane/blob/master/design/one-pager-managed-resource-api-design.md
|
||||
[Crossplane CLI]: https://github.com/crossplane/crossplane-cli#quick-start-stacks
|
||||
[`angryjet` documentation]: https://github.com/crossplane/crossplane-tools/blob/master/README.md
|
||||
[code generation guide]: https://github.com/crossplane/provider-aws/blob/master/CODE_GENERATION.md
|
||||
[code generation guide]: https://github.com/crossplane-contrib/provider-aws/blob/master/CODE_GENERATION.md
|
||||
[Terrajet]: https://github.com/crossplane/terrajet
|
||||
[Generating a Crossplane Provider guide]: https://github.com/crossplane/terrajet/blob/main/docs/generating-a-provider.md
|
||||
[provider-template]: https://github.com/crossplane/provider-template
|
||||
|
|
@ -1,12 +1,8 @@
|
|||
---
|
||||
title: Release Process
|
||||
toc: true
|
||||
weight: 1003
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Release Process
|
||||
|
||||
This document is meant to be a complete end-to-end guide for how to release new
|
||||
versions of software for Crossplane and its related projects.
|
||||
|
||||
|
|
@ -172,7 +168,7 @@ For all repos with Helm charts:
|
|||
|
||||
For crossplane/crossplane:
|
||||
* [Docs website](https://crossplane.io/docs/latest)
|
||||
* [Configuration Packages](https://cloud.upbound.io/browse)
|
||||
* [Configuration Packages](https://marketplace.upbound.io)
|
||||
|
||||
### Tag Next Pre-release
|
||||
|
||||
|
|
@ -1,11 +1,8 @@
|
|||
---
|
||||
title: FAQ
|
||||
toc: true
|
||||
weight: 1200
|
||||
---
|
||||
|
||||
# Frequently Asked Questions (FAQs)
|
||||
|
||||
### Where did the name Crossplane come from?
|
||||
|
||||
Crossplane is the fusing of cross-cloud control plane. We wanted to use a noun
|
||||
|
|
@ -20,4 +17,4 @@ We believe in a multi-flavor cloud.
|
|||
### Related Projects
|
||||
See [Related Projects].
|
||||
|
||||
[Related Projects]: related_projects.md
|
||||
[Related Projects]: {{<ref "related_projects" >}}
|
||||
|
|
@ -1,12 +1,8 @@
|
|||
---
|
||||
title: Related Projects
|
||||
toc: true
|
||||
weight: 1201
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Related Projects
|
||||
|
||||
While there are many projects that address similar issues, none of them
|
||||
encapsulate the full use case that Crossplane addresses. This list is not
|
||||
exhaustive and is not meant to provide a deep analysis of the following
|
||||
|
|
@ -1,6 +1,9 @@
|
|||
# Overview
|
||||
---
|
||||
title: Getting Started
|
||||
weight: 4
|
||||
---
|
||||
|
||||

|
||||

|
||||
|
||||
Crossplane is an open source Kubernetes add-on that transforms your cluster into
|
||||
a **universal control plane**. Crossplane enables platform teams to assemble
|
||||
|
|
@ -10,12 +13,12 @@ for application teams to consume, without having to write any code.
|
|||
Crossplane extends your Kubernetes cluster to support orchestrating any
|
||||
infrastructure or managed service. Compose Crossplane's granular resources into
|
||||
higher level abstractions that can be versioned, managed, deployed and consumed
|
||||
using your favorite tools and existing processes. [Install Crossplane] into any
|
||||
using your favorite tools and existing processes. [Install Crossplane]({{<ref "install-configure" >}}) into any
|
||||
Kubernetes cluster to get started.
|
||||
|
||||
Crossplane is a [Cloud Native Compute Foundation][cncf] project.
|
||||
|
||||
<!-- Named Links -->
|
||||
|
||||
[Install Crossplane]: getting-started/install-configure.md
|
||||
[cncf]: https://www.cncf.io/
|
||||
|
||||
[cncf]: https://www.cncf.io/
|
||||
|
|
@ -1,12 +1,8 @@
|
|||
---
|
||||
title: Create a Configuration
|
||||
toc: true
|
||||
weight: 4
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Create a Configuration
|
||||
|
||||
In the [previous section] we were able to create a PostgreSQL database because
|
||||
we had installed a configuration package that defined the `PostgreSQLInstance`
|
||||
type and a `Composition` of managed resources that mapped to it. Crossplane
|
||||
|
|
@ -733,9 +729,9 @@ rm -rf crossplane-config
|
|||
|
||||
<!-- Named Links -->
|
||||
|
||||
[previous section]: provision-infrastructure.md
|
||||
[composed]: ../concepts/composition.md
|
||||
[composition]: ../concepts/composition.md
|
||||
[previous section]: {{<ref "provision-infrastructure" >}}
|
||||
[composed]: {{<ref "../concepts/composition" >}}
|
||||
[composition]: {{<ref "../concepts/composition" >}}
|
||||
[Docker Hub]: https://hub.docker.com/
|
||||
[packages]: ../concepts/packages.md
|
||||
[concepts]: ../concepts/overview.md
|
||||
[packages]: {{<ref "../concepts/packages" >}}
|
||||
[concepts]: {{<ref "../concepts" >}}
|
||||
|
|
@ -1,11 +1,8 @@
|
|||
---
|
||||
title: Install & Configure
|
||||
toc: true
|
||||
weight: 2
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Choosing Your Crossplane Distribution
|
||||
## Choosing Your Crossplane Distribution
|
||||
|
||||
Users looking to use Crossplane for the first time have two options available to
|
||||
them today. The first way is to use the version of Crossplane which is
|
||||
|
|
@ -16,15 +13,9 @@ distributions are [certified by the CNCF] to be conformant with Crossplane, but
|
|||
may include additional features or tooling around it that makes it easier to use
|
||||
in production environments.
|
||||
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#using-upstream-crossplane" data-toggle="tab">Crossplane (upstream)</a></li>
|
||||
<li><a href="#using-a-downstream-distro" data-toggle="tab">Downstream Distributions</a></li>
|
||||
</ul>
|
||||
<br>
|
||||
<!-- Begin Distro Tabs -->
|
||||
<div class="tab-content">
|
||||
<!-- Begin Upstream Tab -->
|
||||
<div class="tab-pane fade in active" id="using-upstream-crossplane" markdown="1">
|
||||
{{% tabs "Crossplane Distros" %}}
|
||||
|
||||
{{% tab "Crossplane (upstream)" %}}
|
||||
|
||||
## Start with Upstream Crossplane
|
||||
|
||||
|
|
@ -32,91 +23,74 @@ Installing Crossplane into an existing Kubernetes cluster will require a bit
|
|||
more setup, but can provide more flexibility for users who need it.
|
||||
|
||||
### Get a Kubernetes Cluster
|
||||
<!-- inside Crossplane (upstream) -->
|
||||
{{% tabs "Kubernetes Clusters" %}}
|
||||
|
||||
{{% tab "macOS via Homebrew" %}}
|
||||
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#setup-mac-brew" data-toggle="tab">macOS via Homebrew</a></li>
|
||||
<li><a href="#setup-mac-linux" data-toggle="tab">macOS / Linux</a></li>
|
||||
<li><a href="#setup-windows" data-toggle="tab">Windows</a></li>
|
||||
</ul>
|
||||
<br>
|
||||
<!-- Begin Get Cluster Tabs -->
|
||||
<div class="tab-content">
|
||||
<!-- Begin MacOS Tab -->
|
||||
<div class="tab-pane fade in active" id="setup-mac-brew" markdown="1">
|
||||
For macOS via Homebrew use the following:
|
||||
|
||||
```console
|
||||
```bash
|
||||
brew upgrade
|
||||
brew install kind
|
||||
brew install kubectl
|
||||
brew install helm
|
||||
|
||||
kind create cluster --image kindest/node:v1.23.0 --wait 5m
|
||||
```
|
||||
</div>
|
||||
<!-- End MacOS Tab -->
|
||||
<!-- close "macOS via Homebrew" -->
|
||||
{{% /tab %}}
|
||||
|
||||
{{% tab "macOS / Linux" %}}
|
||||
|
||||
<!-- Begin Linux Tab -->
|
||||
<div class="tab-pane fade" id="setup-mac-linux" markdown="1">
|
||||
For macOS / Linux use the following:
|
||||
|
||||
* [Kubernetes cluster]
|
||||
* [Kind]
|
||||
* [Minikube], minimum version `v0.28+`
|
||||
* etc.
|
||||
* [Kubernetes cluster](https://kubernetes.io/docs/setup/)
|
||||
* [Kind](https://kind.sigs.k8s.io/docs/user/quick-start/)
|
||||
* [Minikube](https://minikube.sigs.k8s.io/docs/start/), minimum version `v0.28+`
|
||||
* etc.
|
||||
* [Helm](https://helm.sh/docs/intro/using_helm/), minimum version `v3.0.0+`.
|
||||
|
||||
* [Helm], minimum version `v3.0.0+`.
|
||||
<!-- close "macOS / Linux" -->
|
||||
{{% /tab %}}
|
||||
|
||||
</div>
|
||||
<!-- End Linux Tab -->
|
||||
|
||||
<!-- Begin Windows Tab -->
|
||||
<div class="tab-pane fade" id="setup-windows" markdown="1">
|
||||
{{% tab "Windows" %}}
|
||||
For Windows use the following:
|
||||
|
||||
* [Kubernetes cluster]
|
||||
* [Kind]
|
||||
* [Minikube], minimum version `v0.28+`
|
||||
* etc.
|
||||
* [Kubernetes cluster](https://kubernetes.io/docs/setup/)
|
||||
* [Kind](https://kind.sigs.k8s.io/docs/user/quick-start/)
|
||||
* [Minikube](https://minikube.sigs.k8s.io/docs/start/), minimum version `v0.28+`
|
||||
* etc.
|
||||
* [Helm](https://helm.sh/docs/intro/using_helm/), minimum version `v3.0.0+`.
|
||||
|
||||
* [Helm], minimum version `v3.0.0+`.
|
||||
<!-- close "Windows" -->
|
||||
{{% /tab %}}
|
||||
|
||||
</div>
|
||||
<!-- End Windows Tab -->
|
||||
</div>
|
||||
<!-- End Get Cluster Tabs -->
|
||||
<!-- close "Kubernetes Clusters" -->
|
||||
{{% /tabs %}}
|
||||
|
||||
### Install Crossplane
|
||||
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#install-tab-helm3" data-toggle="tab">Helm 3 (stable)</a></li>
|
||||
<li><a href="#install-tab-helm3-latest" data-toggle="tab">Helm 3 (latest)</a></li>
|
||||
</ul>
|
||||
<br>
|
||||
<!-- Begin Helm Tabs -->
|
||||
<div class="tab-content">
|
||||
{{% tabs "install with helm" %}}
|
||||
|
||||
<!-- Begin Stable Tab -->
|
||||
<div class="tab-pane fade in active" id="install-tab-helm3" markdown="1">
|
||||
{{% tab "Helm 3 (stable)" %}}
|
||||
Use Helm 3 to install the latest official `stable` release of Crossplane, suitable for community use and testing:
|
||||
|
||||
```console
|
||||
```bash
|
||||
kubectl create namespace crossplane-system
|
||||
|
||||
helm repo add crossplane-stable https://charts.crossplane.io/stable
|
||||
helm repo update
|
||||
|
||||
helm install crossplane --namespace crossplane-system crossplane-stable/crossplane
|
||||
```
|
||||
|
||||
</div>
|
||||
<!-- End Stable Tab -->
|
||||
<!-- close "Helm 3 (stable)" -->
|
||||
{{% /tab %}}
|
||||
|
||||
<!-- Begin Latest Tab -->
|
||||
<div class="tab-pane fade" id="install-tab-helm3-latest" markdown="1">
|
||||
{{% tab "Helm 3 (latest)" %}}
|
||||
<!-- fold start -->
|
||||
Use Helm 3 to install the latest pre-release version of Crossplane:
|
||||
|
||||
```console
|
||||
```bash
|
||||
kubectl create namespace crossplane-system
|
||||
|
||||
helm repo add crossplane-master https://charts.crossplane.io/master/
|
||||
|
|
@ -129,20 +103,18 @@ helm install crossplane --namespace crossplane-system crossplane-master/crosspla
|
|||
|
||||
For example:
|
||||
|
||||
```console
|
||||
```bash
|
||||
helm install crossplane --namespace crossplane-system crossplane-master/crossplane \
|
||||
--version 0.11.0-rc.100.gbc5d311 --devel
|
||||
```
|
||||
|
||||
</div>
|
||||
<!-- End Latest Tab -->
|
||||
|
||||
</div>
|
||||
<!-- End Helm Tabs -->
|
||||
<!-- close "Helm 3 (latest)" -->
|
||||
{{% /tab %}}
|
||||
<!-- close "install with helm" -->
|
||||
{{% /tabs %}}
|
||||
|
||||
### Check Crossplane Status
|
||||
|
||||
```console
|
||||
```bash
|
||||
helm list -n crossplane-system
|
||||
|
||||
kubectl get all -n crossplane-system
|
||||
|
|
@ -153,29 +125,18 @@ kubectl get all -n crossplane-system
|
|||
The Crossplane CLI extends `kubectl` with functionality to build, push, and
|
||||
install [Crossplane packages]:
|
||||
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#install-tab-cli" data-toggle="tab">Stable</a></li>
|
||||
<li><a href="#install-tab-cli-latest" data-toggle="tab">Latest</a></li>
|
||||
</ul>
|
||||
<br>
|
||||
{{% tabs "crossplane CLI" %}}
|
||||
|
||||
<!-- Begin CLI Tabs -->
|
||||
<div class="tab-content">
|
||||
|
||||
<!-- Begin CLI Stable Tab -->
|
||||
<div class="tab-pane fade in active" id="install-tab-cli" markdown="1">
|
||||
|
||||
```console
|
||||
{{% tab "Stable" %}}
|
||||
```bash
|
||||
curl -sL https://raw.githubusercontent.com/crossplane/crossplane/master/install.sh | sh
|
||||
```
|
||||
<!-- close "Stable" -->
|
||||
{{% /tab %}}
|
||||
|
||||
</div>
|
||||
<!-- End CLI Stable Tab -->
|
||||
{{% tab "Latest" %}}
|
||||
|
||||
<!-- Begin CLI Latest Tab -->
|
||||
<div class="tab-pane fade" id="install-tab-cli-latest" markdown="1">
|
||||
|
||||
```console
|
||||
```bash
|
||||
curl -sL https://raw.githubusercontent.com/crossplane/crossplane/master/install.sh | CHANNEL=master sh
|
||||
```
|
||||
|
||||
|
|
@ -183,15 +144,14 @@ You may also specify `VERSION` for download if you would like to select a
|
|||
specific version from the given release channel. If a version is not specified
|
||||
the latest version from the release channel will be used.
|
||||
|
||||
```console
|
||||
```bash
|
||||
curl -sL https://raw.githubusercontent.com/crossplane/crossplane/master/install.sh | CHANNEL=master VERSION=v1.0.0-rc.0.130.g94f34fd3 sh
|
||||
```
|
||||
<!-- close "Latest" -->
|
||||
{{% /tab %}}
|
||||
|
||||
</div>
|
||||
<!-- End CLI Latest Tab -->
|
||||
|
||||
</div>
|
||||
<!-- End CLI tabs -->
|
||||
<!-- close "crossplane CLI" -->
|
||||
{{% /tabs %}}
|
||||
|
||||
## Select a Getting Started Configuration
|
||||
|
||||
|
|
@ -222,32 +182,21 @@ single `storageGB` parameter, and creates a connection `Secret` with keys for
|
|||
`username`, `password`, and `endpoint`. A `Configuration` exists for each
|
||||
provider that can satisfy a `PostgreSQLInstance`. Let's get started!
|
||||
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#aws-tab-1" data-toggle="tab">AWS (Default VPC)</a></li>
|
||||
<li><a href="#aws-new-tab-1" data-toggle="tab">AWS (New VPC)</a></li>
|
||||
<li><a href="#gcp-tab-1" data-toggle="tab">GCP</a></li>
|
||||
<li><a href="#azure-tab-1" data-toggle="tab">Azure</a></li>
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
<!-- Begin Cloud Provider Tabs -->
|
||||
<div class="tab-content">
|
||||
|
||||
<!-- Begin AWS Default VPC Tab -->
|
||||
<div class="tab-pane fade in active" id="aws-tab-1" markdown="1">
|
||||
{{% tabs "getting started" %}}
|
||||
|
||||
{{% tab "AWS (Default VPC)" %}}
|
||||
### Install Configuration Package
|
||||
|
||||
> If you prefer to see the contents of this configuration package and how it is
|
||||
> constructed prior to install, skip ahead to the [create a configuration]
|
||||
> section.
|
||||
|
||||
```console
|
||||
```bash
|
||||
kubectl crossplane install configuration registry.upbound.io/xp/getting-started-with-aws:latest
|
||||
```
|
||||
|
||||
Wait until all packages become healthy:
|
||||
```
|
||||
```bash
|
||||
watch kubectl get pkg
|
||||
```
|
||||
|
||||
|
|
@ -255,13 +204,13 @@ watch kubectl get pkg
|
|||
|
||||
Using an AWS account with permissions to manage RDS databases:
|
||||
|
||||
```console
|
||||
```bash
|
||||
AWS_PROFILE=default && echo -e "[default]\naws_access_key_id = $(aws configure get aws_access_key_id --profile $AWS_PROFILE)\naws_secret_access_key = $(aws configure get aws_secret_access_key --profile $AWS_PROFILE)" > creds.conf
|
||||
```
|
||||
|
||||
### Create a Provider Secret
|
||||
|
||||
```console
|
||||
```bash
|
||||
kubectl create secret generic aws-creds -n crossplane-system --from-file=creds=./creds.conf
|
||||
```
|
||||
|
||||
|
|
@ -283,28 +232,25 @@ spec:
|
|||
name: aws-creds
|
||||
key: creds
|
||||
```
|
||||
```console
|
||||
```bash
|
||||
kubectl apply -f https://raw.githubusercontent.com/crossplane/crossplane/master/docs/snippets/configure/aws/providerconfig.yaml
|
||||
```
|
||||
<!-- close "AWS (Default VPC)" -->
|
||||
{{% /tab %}}
|
||||
|
||||
</div>
|
||||
<!-- End AWS Default VPC Tab -->
|
||||
|
||||
<!-- Begin AWS New VPC Tab -->
|
||||
<div class="tab-pane fade" id="aws-new-tab-1" markdown="1">
|
||||
|
||||
{{% tab "AWS (New VPC)" %}}
|
||||
### Install Configuration Package
|
||||
|
||||
> If you prefer to see the contents of this configuration package and how it is
|
||||
> constructed prior to install, skip ahead to the [create a configuration]
|
||||
> section.
|
||||
|
||||
```console
|
||||
```bash
|
||||
kubectl crossplane install configuration registry.upbound.io/xp/getting-started-with-aws-with-vpc:latest
|
||||
```
|
||||
|
||||
Wait until all packages become healthy:
|
||||
```
|
||||
```bash
|
||||
watch kubectl get pkg
|
||||
```
|
||||
|
||||
|
|
@ -312,13 +258,13 @@ watch kubectl get pkg
|
|||
|
||||
Using an AWS account with permissions to manage RDS databases:
|
||||
|
||||
```console
|
||||
```bash
|
||||
AWS_PROFILE=default && echo -e "[default]\naws_access_key_id = $(aws configure get aws_access_key_id --profile $AWS_PROFILE)\naws_secret_access_key = $(aws configure get aws_secret_access_key --profile $AWS_PROFILE)" > creds.conf
|
||||
```
|
||||
|
||||
### Create a Provider Secret
|
||||
|
||||
```console
|
||||
```bash
|
||||
kubectl create secret generic aws-creds -n crossplane-system --from-file=creds=./creds.conf
|
||||
```
|
||||
|
||||
|
|
@ -340,15 +286,14 @@ spec:
|
|||
name: aws-creds
|
||||
key: creds
|
||||
```
|
||||
```console
|
||||
|
||||
```bash
|
||||
kubectl apply -f https://raw.githubusercontent.com/crossplane/crossplane/master/docs/snippets/configure/aws/providerconfig.yaml
|
||||
```
|
||||
<!-- close "AWS (New VPC)" -->
|
||||
{{% /tab %}}
|
||||
|
||||
</div>
|
||||
<!-- End AWS New VPC Tab -->
|
||||
|
||||
<!-- Begin GCP Tab -->
|
||||
<div class="tab-pane fade" id="gcp-tab-1" markdown="1">
|
||||
{{% tab "GCP" %}}
|
||||
|
||||
### Install Configuration Package
|
||||
|
||||
|
|
@ -356,7 +301,7 @@ kubectl apply -f https://raw.githubusercontent.com/crossplane/crossplane/master/
|
|||
> constructed prior to install, skip ahead to the [create a configuration]
|
||||
> section.
|
||||
|
||||
```console
|
||||
```bash
|
||||
kubectl crossplane install configuration registry.upbound.io/xp/getting-started-with-gcp:latest
|
||||
```
|
||||
|
||||
|
|
@ -367,7 +312,7 @@ watch kubectl get pkg
|
|||
|
||||
### Get GCP Account Keyfile
|
||||
|
||||
```console
|
||||
```bash
|
||||
# replace this with your own gcp project id and the name of the service account
|
||||
# that will be created.
|
||||
PROJECT_ID=my-project
|
||||
|
|
@ -391,7 +336,7 @@ gcloud iam service-accounts keys create creds.json --project $PROJECT_ID --iam-a
|
|||
|
||||
### Create a Provider Secret
|
||||
|
||||
```console
|
||||
```bash
|
||||
kubectl create secret generic gcp-creds -n crossplane-system --from-file=creds=./creds.json
|
||||
```
|
||||
|
||||
|
|
@ -400,7 +345,7 @@ kubectl create secret generic gcp-creds -n crossplane-system --from-file=creds=.
|
|||
We will create the following `ProviderConfig` object to configure credentials
|
||||
for GCP Provider:
|
||||
|
||||
```console
|
||||
```bash
|
||||
# replace this with your own gcp project id
|
||||
PROJECT_ID=my-project
|
||||
echo "apiVersion: gcp.crossplane.io/v1beta1
|
||||
|
|
@ -416,12 +361,10 @@ spec:
|
|||
name: gcp-creds
|
||||
key: creds" | kubectl apply -f -
|
||||
```
|
||||
<!-- close "GCP" -->
|
||||
{{% /tab %}}
|
||||
|
||||
</div>
|
||||
<!-- End GCP Tab -->
|
||||
|
||||
<!-- Begin Azure Tab -->
|
||||
<div class="tab-pane fade" id="azure-tab-1" markdown="1">
|
||||
{{% tab "Azure" %}}
|
||||
|
||||
### Install Configuration Package
|
||||
|
||||
|
|
@ -429,7 +372,7 @@ spec:
|
|||
> constructed prior to install, skip ahead to the [create a configuration]
|
||||
> section.
|
||||
|
||||
```console
|
||||
```bash
|
||||
kubectl crossplane install configuration registry.upbound.io/xp/getting-started-with-azure:latest
|
||||
```
|
||||
|
||||
|
|
@ -440,14 +383,14 @@ watch kubectl get pkg
|
|||
|
||||
### Get Azure Principal Keyfile
|
||||
|
||||
```console
|
||||
```bash
|
||||
# create service principal with Owner role
|
||||
az ad sp create-for-rbac --role Contributor --scopes /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx > "creds.json"
|
||||
```
|
||||
|
||||
### Create a Provider Secret
|
||||
|
||||
```console
|
||||
```bash
|
||||
kubectl create secret generic azure-creds -n crossplane-system --from-file=creds=./creds.json
|
||||
```
|
||||
|
||||
|
|
@ -470,27 +413,22 @@ spec:
|
|||
key: creds
|
||||
```
|
||||
|
||||
```console
|
||||
```bash
|
||||
kubectl apply -f https://raw.githubusercontent.com/crossplane/crossplane/master/docs/snippets/configure/azure/providerconfig.yaml
|
||||
```
|
||||
<!-- close "Azure" -->
|
||||
{{% /tab %}}
|
||||
|
||||
</div>
|
||||
<!-- End Azure Tab -->
|
||||
|
||||
</div>
|
||||
<!-- End Cloud Provider Tabs -->
|
||||
{{% /tabs %}}
|
||||
|
||||
## Next Steps
|
||||
|
||||
Now that you have configured Crossplane with support for `PostgreSQLInstance`,
|
||||
you can [provision infrastructure].
|
||||
<!-- close "Crossplane (upstream)" -->
|
||||
{{% /tab %}}
|
||||
|
||||
</div>
|
||||
<!-- End Upstream Tab -->
|
||||
|
||||
<!-- Begin Downstream Tab -->
|
||||
<div class="tab-pane fade" id="using-a-downstream-distro" markdown="1">
|
||||
|
||||
{{% tab "Downstream Distribution" %}}
|
||||
## Start with a Downstream Distribution
|
||||
|
||||
Upbound, the founders of Crossplane, maintains a free and open source downstream
|
||||
|
|
@ -504,11 +442,11 @@ and Configuration packages.
|
|||
<i>Want see another hosted Crossplane service listed? Please [reach out on
|
||||
Slack][Slack] and our community will highlight it here!</i>
|
||||
|
||||
</div>
|
||||
<!-- End Downstream Tab -->
|
||||
<!-- close "Downstream Distribution" -->
|
||||
{{% /tab %}}
|
||||
|
||||
</div>
|
||||
<!-- End Distro Tabs -->
|
||||
<!-- close "Crossplane Distros" -->
|
||||
{{% /tabs %}}
|
||||
|
||||
## More Info
|
||||
|
||||
|
|
@ -523,22 +461,22 @@ Slack][Slack] and our community will highlight it here!</i>
|
|||
|
||||
<!-- Named Links -->
|
||||
|
||||
[package]: ../concepts/packages.md
|
||||
[provision infrastructure]: provision-infrastructure.md
|
||||
[create a configuration]: create-configuration.md
|
||||
[Install]: ../reference/install.md
|
||||
[Configure]: ../reference/configure.md
|
||||
[Uninstall]: ../reference/uninstall.md
|
||||
[package]: {{<ref "../concepts/packages" >}}
|
||||
[provision infrastructure]: {{<ref "provision-infrastructure" >}}
|
||||
[create a configuration]: {{<ref "create-configuration" >}}
|
||||
[Install]: {{<ref "../reference/install" >}}
|
||||
[Configure]: {{<ref "../reference/configure" >}}
|
||||
[Uninstall]: {{<ref "../reference/uninstall" >}}
|
||||
[Kubernetes cluster]: https://kubernetes.io/docs/setup/
|
||||
[Minikube]: https://kubernetes.io/docs/tasks/tools/install-minikube/
|
||||
[Helm]:https://docs.helm.sh/using_helm/
|
||||
[Minikube]: https://minikube.sigs.k8s.io/docs/start/
|
||||
[Helm]:https://helm.sh/docs/intro/using_helm/
|
||||
[Kind]: https://kind.sigs.k8s.io/docs/user/quick-start/
|
||||
[Crossplane packages]: ../concepts/packages.md
|
||||
[Crossplane packages]: {{<ref "../concepts/packages" >}}
|
||||
[Slack]: http://slack.crossplane.io/
|
||||
[up]: https://github.com/upbound/up
|
||||
[Upbound documentation]: https://cloud.upbound.io/docs
|
||||
[Providers]: ../concepts/providers.md
|
||||
[Universal Crossplane]: https://cloud.upbound.io/docs/uxp
|
||||
[Get started with Universal Crossplane]: https://cloud.upbound.io/docs/uxp/install
|
||||
[Upbound documentation]: https://https://docs.upbound.io//docs
|
||||
[Providers]: {{<ref "../concepts/providers" >}}
|
||||
[Universal Crossplane]: https://https://docs.upbound.io/uxp/
|
||||
[Get started with Universal Crossplane]: https://docs.upbound.io/uxp/install
|
||||
[certified by the CNCF]: https://github.com/cncf/crossplane-conformance
|
||||
[Crossplane GitHub]: https://github.com/crossplane/crossplane
|
||||
|
|
@ -1,12 +1,8 @@
|
|||
---
|
||||
title: Provision Infrastructure
|
||||
toc: true
|
||||
weight: 3
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Provision Infrastructure
|
||||
|
||||
Composite resources (XRs) are always cluster scoped - they exist outside of any
|
||||
namespace. This allows an XR to represent infrastructure that might be consumed
|
||||
from several different namespaces. This is often true for VPC networks - an
|
||||
|
|
@ -278,6 +274,6 @@ own infrastructure APIs.
|
|||
<!-- Named Links -->
|
||||
|
||||
[Persistent Volumes (PV) and Persistent Volume Claims (PVC)]: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
|
||||
[composition]: ../concepts/composition.md
|
||||
[setup]: install-configure.md
|
||||
[next section]: create-configuration.md
|
||||
[composition]: {{<ref "../concepts/composition" >}}
|
||||
[setup]: {{<ref "install-configure" >}}
|
||||
[next section]: {{<ref "create-configuration" >}}
|
||||
|
|
@ -1,11 +1,8 @@
|
|||
---
|
||||
title: Guides
|
||||
toc: true
|
||||
weight: 200
|
||||
---
|
||||
|
||||
# Guides
|
||||
|
||||
This section contains guides for using Crossplane in specific scenarios or
|
||||
alongside other technologies. If you are interested in writing and
|
||||
maintaining a guide for your own use-case please feel free to [open an issue] to
|
||||
|
|
@ -16,14 +13,15 @@ show off [demos] integrating with the projects they work on.
|
|||
- [Upgrading to v0.14]
|
||||
- [Upgrading to v1.x]
|
||||
- [Vault Provider Credential Injection]
|
||||
- [Using Managed Resources Directly]
|
||||
-
|
||||
|
||||
<!-- Named Links -->
|
||||
|
||||
[open an issue]: https://github.com/crossplane/crossplane/issues/new
|
||||
[The Binding Status]: https://youtube.com/playlist?list=PL510POnNVaaYFuK-B_SIUrpIonCtLVOzT
|
||||
[demos]: https://github.com/crossplane/tbs
|
||||
[Upgrading to v0.14]: upgrading-to-v0.14.md
|
||||
[Upgrading to v1.x]: upgrading-to-v1.x.md
|
||||
[Vault Provider Credential Injection]: vault-injection.md
|
||||
[Using Managed Resources Directly]: direct-managed.md
|
||||
[Upgrading to v0.14]: {{<ref "upgrading-to-v0.14.md" >}}
|
||||
[Upgrading to v1.x]: {{<ref "upgrading-to-v1.x.md" >}}
|
||||
[Vault Provider Credential Injection]: {{<ref "vault-injection" >}}
|
||||
|
||||
|
||||
|
|
@ -1,14 +1,9 @@
|
|||
---
|
||||
title: Argo CD
|
||||
toc: true
|
||||
weight: 270
|
||||
indent: true
|
||||
title: Configuring Crossplane with Argo CD
|
||||
weight: 270
|
||||
---
|
||||
|
||||
|
||||
# Configuring Crossplane with Argo CD
|
||||
|
||||
## Overview
|
||||
|
||||
[Argo CD](https://argoproj.github.io/cd/) and [Crossplane](https://crossplane.io)
|
||||
are a great combination. Argo CD provides GitOps while Crossplane turns any Kubernetes
|
||||
cluster into a Universal Control Plane for all of your resources. There are
|
||||
|
|
@ -1,12 +1,7 @@
|
|||
---
|
||||
title: Composition Revisions
|
||||
toc: true
|
||||
weight: 260
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Composition Revisions
|
||||
|
||||
This guide discusses the use of "Composition Revisions" to safely make and roll
|
||||
back changes to a Crossplane [`Composition`][composition-type]. It assumes
|
||||
familiarity with Crossplane, and particularly with
|
||||
|
|
@ -152,7 +147,7 @@ spec:
|
|||
name: db-conn
|
||||
```
|
||||
|
||||
[composition-type]: ../concepts/composition.md
|
||||
[composition-term]: ../concepts/terminology.md#composition
|
||||
[composition-type]: {{<ref "../concepts/composition" >}}
|
||||
[composition-term]: {{<ref "../concepts/terminology" >}}#composition
|
||||
[canary]: https://martinfowler.com/bliki/CanaryRelease.html
|
||||
[install-guide]: ../getting-started/install-configure.md
|
||||
[install-guide]: {{<ref "../getting-started/install-configure" >}}
|
||||
|
|
@ -1,12 +1,8 @@
|
|||
---
|
||||
title: Multi-Tenant Crossplane
|
||||
toc: true
|
||||
weight: 240
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Multi-Tenant Crossplane
|
||||
|
||||
This guide describes how to use Crossplane effectively in multi-tenant
|
||||
environments by utilizing Kubernetes primitives and compatible policy
|
||||
enforcement projects in the cloud-native ecosystem.
|
||||
|
|
@ -25,14 +21,15 @@ those with more complex environments, may choose to incorporate third-party
|
|||
policy engines, or scale to multiple Crossplane clusters. The following sections
|
||||
describe each of these scenarios in greater detail.
|
||||
|
||||
- [TL;DR](#tldr)
|
||||
- [Background](#background)
|
||||
- [Cluster Scoped Managed Resources](#cluster-scoped-managed-resources)
|
||||
- [Namespace Scoped Claims](#namespace-scoped-claims)
|
||||
- [Single Cluster Multi Tenancy](#single-cluster-multi-tenancy)
|
||||
- [Cluster-Scoped Managed Resources](#cluster-scoped-managed-resources)
|
||||
- [Namespace Scoped Claims](#namespace-scoped-claims)
|
||||
- [Single Cluster Multi-Tenancy](#single-cluster-multi-tenancy)
|
||||
- [Composition as an Isolation Mechanism](#composition-as-an-isolation-mechanism)
|
||||
- [Namespaces as an Isolation Mechanism](#namespaces-as-an-isolation-mechanism)
|
||||
- [Policy Enforcement with Open Policy Agent](#policy-enforcement-with-open-policy-agent)
|
||||
- [Multi Cluster Multi Tenancy](#multi-cluster-multi-tenancy)
|
||||
- [Multi-Cluster Multi-Tenancy](#multi-cluster-multi-tenancy)
|
||||
- [Reproducible Platforms with Configuration Packages](#reproducible-platforms-with-configuration-packages)
|
||||
- [Control Plane of Control Planes](#control-plane-of-control-planes)
|
||||
- [Service Provisioning using Open Service Broker API](#service-provisioning-using-open-service-broker-api)
|
||||
|
|
@ -321,19 +318,19 @@ found under [vshn/application-catalog-demo].
|
|||
This way even a tight integration of Crossplane in to [Cloudfoundry] is possible.
|
||||
|
||||
<!-- Named Links -->
|
||||
[managed resources]: ../concepts/managed-resources.md
|
||||
[managed resources]: {{<ref "../concepts/managed-resources" >}}
|
||||
[RBAC]: https://kubernetes.io/docs/reference/access-authn-authz/rbac/
|
||||
[Composition]: ../concepts/composition.md
|
||||
[Composition]: {{<ref "../concepts/composition" >}}
|
||||
[CustomResourceDefinitions]: https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/
|
||||
[Open Policy Agent]: https://www.openpolicyagent.org/
|
||||
[Rego]: https://www.openpolicyagent.org/docs/latest/policy-language/
|
||||
[Gatekeeper]: https://open-policy-agent.github.io/gatekeeper/website/docs/
|
||||
[here]: https://youtu.be/TaF0_syejXc
|
||||
[Multiple Source Field patching]: https://github.com/crossplane/crossplane/pull/2093
|
||||
[Configuration packages]: ../concepts/packages.md
|
||||
[Configuration packages]: {{<ref "../concepts/packages" >}}
|
||||
[OCI images]: https://github.com/opencontainers/image-spec
|
||||
[EKS Cluster]: https://doc.crds.dev/github.com/crossplane/provider-aws/eks.aws.crossplane.io/Cluster/v1beta1@v0.17.0
|
||||
[provider-aws]: https://github.com/crossplane/provider-aws
|
||||
[provider-aws]: https://github.com/crossplane-contrib/provider-aws
|
||||
[provider-helm]: https://github.com/crossplane-contrib/provider-helm
|
||||
[Open Service Broker API]: https://github.com/openservicebrokerapi/servicebroker
|
||||
[Crossplane Service Broker]: https://github.com/vshn/crossplane-service-broker
|
||||
|
|
@ -1,13 +1,9 @@
|
|||
---
|
||||
title: Self-Signed CA Certs
|
||||
toc: true
|
||||
weight: 270
|
||||
indent: true
|
||||
title: Self-Signed CA Certs
|
||||
weight: 270
|
||||
---
|
||||
|
||||
# Overview of Crossplane for Registry with Self-Signed CA Certificate
|
||||
|
||||
> ! Using self-signed certificates is not advised in production, it is
|
||||
> Using self-signed certificates is not advised in production, it is
|
||||
recommended to only use self-signed certificates for testing.
|
||||
|
||||
When Crossplane loads Configuration and Provider Packages from private
|
||||
|
|
@ -15,7 +11,7 @@ registries, it must be configured to trust the CA and Intermediate certs.
|
|||
|
||||
Crossplane needs to be installed via the Helm chart with the
|
||||
`registryCaBundleConfig.name` and `registryCaBundleConfig.key` parameters
|
||||
defined. See [Install Crossplane].
|
||||
defined. See [Install Crossplane]({{<ref "../getting-started/install-configure" >}}).
|
||||
|
||||
## Configure
|
||||
|
||||
|
|
@ -51,6 +47,3 @@ in an `override.yaml` file would look like this:
|
|||
name: ca-bundle-config
|
||||
key: ca-bundle
|
||||
```
|
||||
|
||||
|
||||
[Install Crossplane]: ../reference/install.md
|
||||
|
|
@ -1,12 +1,8 @@
|
|||
---
|
||||
title: Upgrading to v0.14
|
||||
toc: true
|
||||
weight: 210
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Upgrading to v0.14
|
||||
|
||||
Crossplane made a small handful of breaking changes in v0.14. The most broadly
|
||||
impactful change was updating the `CompositeResourceDefinition` (XRD) schema to
|
||||
support defining multiple versions of a composite resource (XR) at once. This
|
||||
|
|
@ -1,12 +1,8 @@
|
|||
---
|
||||
title: Upgrading to v1.x
|
||||
toc: true
|
||||
weight: 220
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Upgrading to v1.x
|
||||
|
||||
Crossplane versions post v1.0 do not introduce any breaking changes, but may
|
||||
make some backward compatible changes to the core Crossplane CRDs. Helm [does
|
||||
not currently touch CRDs](https://github.com/helm/helm/issues/6581) when a chart
|
||||
|
|
@ -1,12 +1,8 @@
|
|||
---
|
||||
title: Vault as an External Secret Store
|
||||
toc: true
|
||||
weight: 230
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Using Vault as an External Secret Store
|
||||
|
||||
This guide walks through the steps required to configure Crossplane and
|
||||
its Providers to use [Vault] as an [External Secret Store]. For the sake of
|
||||
completeness, we will also include steps for Vault installation and setup,
|
||||
|
|
@ -479,7 +475,7 @@ kubectl -n default delete claim my-ess
|
|||
|
||||
[Vault]: https://www.vaultproject.io/
|
||||
[External Secret Store]: https://github.com/crossplane/crossplane/blob/master/design/design-doc-external-secret-stores.md
|
||||
[the previous guide]: vault-injection.md
|
||||
[the previous guide]: {{<ref "vault-injection" >}}
|
||||
[this issue]: https://github.com/crossplane/crossplane/issues/2985
|
||||
[Kubernetes Auth Method]: https://www.vaultproject.io/docs/auth/kubernetes
|
||||
[Unseal]: https://www.vaultproject.io/docs/concepts/seal
|
||||
|
|
@ -1,11 +1,8 @@
|
|||
---
|
||||
title: Vault Credential Injection
|
||||
toc: true
|
||||
weight: 230
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Using Vault for Provider Credentials
|
||||
|
||||
> This guide is adapted from the [Vault on Minikube] and [Vault Kubernetes
|
||||
> Sidecar] guides.
|
||||
|
Before Width: | Height: | Size: 292 KiB After Width: | Height: | Size: 292 KiB |
|
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
|
Before Width: | Height: | Size: 137 KiB After Width: | Height: | Size: 137 KiB |
|
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
|
@ -1,11 +1,8 @@
|
|||
---
|
||||
title: Reference
|
||||
toc: true
|
||||
weight: 300
|
||||
---
|
||||
|
||||
# Overview
|
||||
|
||||
The reference documentation includes answers to frequently asked questions,
|
||||
information about similar projects, and links to resources that can help you
|
||||
learn more about Crossplane and Kubernetes. If you have additional information
|
||||
|
|
@ -13,16 +10,16 @@ that you think would be valuable for the community, please feel free to [open a
|
|||
pull request] and add it.
|
||||
|
||||
1. [Install]
|
||||
1. [Configure]
|
||||
1. [Uninstall]
|
||||
1. [Troubleshoot]
|
||||
1. [Learn More]
|
||||
2. [Configure]
|
||||
3. [Uninstall]
|
||||
4. [Troubleshoot]
|
||||
5. [Learn More]
|
||||
|
||||
<!-- Named Links -->
|
||||
|
||||
[open a pull request]: https://github.com/crossplane/crossplane/compare
|
||||
[Install]: install.md
|
||||
[Configure]: configure.md
|
||||
[Uninstall]: uninstall.md
|
||||
[Troubleshoot]: troubleshoot.md
|
||||
[Learn More]: learn_more.md
|
||||
[Install]: {{<ref "install" >}}
|
||||
[Configure]: {{<ref "configure" >}}
|
||||
[Uninstall]: {{<ref "uninstall" >}}
|
||||
[Troubleshoot]: {{<ref "troubleshoot" >}}
|
||||
[Learn More]: {{<ref "learn_more" >}}
|
||||
|
|
@ -1,11 +1,8 @@
|
|||
---
|
||||
title: Composition
|
||||
toc: true
|
||||
weight: 304
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Overview
|
||||
|
||||
This reference provides detailed examples of defining, configuring, and using
|
||||
Composite Resources in Crossplane. You can also refer to Crossplane's [API
|
||||
|
|
@ -829,14 +826,14 @@ so:
|
|||
1. Use a `FromCompositeFieldPath` patch to patch from the 'intermediary' field
|
||||
you patched to in step 1 to a field on the destination composed resource.
|
||||
|
||||
[api-docs]: ../api-docs/crossplane.md
|
||||
[xr-concepts]: ../concepts/composition.md
|
||||
[api-docs]: {{<ref "../api-docs/crossplane" >}}
|
||||
[xr-concepts]: {{<ref "../concepts/composition" >}}
|
||||
[crd-docs]: https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/
|
||||
[raise an issue]: https://github.com/crossplane/crossplane/issues/new?assignees=&labels=enhancement&template=feature_request.md
|
||||
[issue-2524]: https://github.com/crossplane/crossplane/issues/2524
|
||||
[field-paths]: https://github.com/kubernetes/community/blob/61f3d0/contributors/devel/sig-architecture/api-conventions.md#selecting-fields
|
||||
[pkg/fmt]: https://golang.org/pkg/fmt/
|
||||
[trouble-ref]: troubleshoot.md
|
||||
[field-paths]: https://github.com/kubernetes/community/blob/61f3d0/contributors/devel/sig-architecture/api-conventions.md#selecting-fields
|
||||
[pkg/fmt]: https://pkg.go.dev/fmt
|
||||
[trouble-ref]: {{<ref "troubleshoot" >}}
|
||||
[crossplane-contrib]: https://github.com/crossplane-contrib
|
||||
[helm-and-gcp]: https://github.com/crossplane-contrib/provider-helm/blob/2dcbdd0/examples/in-composition/composition.yaml
|
||||
[issue-2024]: https://github.com/crossplane/crossplane/issues/2024
|
||||
|
|
@ -1,12 +1,8 @@
|
|||
---
|
||||
title: Configure
|
||||
toc: true
|
||||
title: Configure Your Cloud Provider Account
|
||||
weight: 302
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Configure Your Cloud Provider Account
|
||||
|
||||
In order for Crossplane to be able to manage resources in a specific cloud
|
||||
provider, you will need to create an account for Crossplane to use. Use the
|
||||
links below for cloud-specific instructions to create an account that can be
|
||||
|
|
@ -21,6 +17,6 @@ provisioning resources!
|
|||
|
||||
<!-- Named Links -->
|
||||
|
||||
[Google Cloud Platform (GCP) Service Account]: ../cloud-providers/gcp/gcp-provider.md
|
||||
[Microsoft Azure Service Principal]: ../cloud-providers/azure/azure-provider.md
|
||||
[Amazon Web Services (AWS) IAM User]: ../cloud-providers/aws/aws-provider.md
|
||||
[Google Cloud Platform (GCP) Service Account]: {{<ref "../cloud-providers/gcp/gcp-provider" >}}
|
||||
[Microsoft Azure Service Principal]: {{<ref "../cloud-providers/azure/azure-provider" >}}
|
||||
[Amazon Web Services (AWS) IAM User]: {{<ref "../cloud-providers/aws/aws-provider" >}}
|
||||
|
|
@ -1,12 +1,8 @@
|
|||
---
|
||||
title: Install
|
||||
toc: true
|
||||
title: Install Crossplane
|
||||
weight: 301
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Install Crossplane
|
||||
|
||||
Crossplane can be easily installed into any existing Kubernetes cluster using
|
||||
the regularly published Helm chart. The Helm chart contains all the custom
|
||||
resources and controllers needed to deploy and configure Crossplane.
|
||||
|
|
@ -162,5 +158,5 @@ imagePullSecrets:
|
|||
<!-- Named Links -->
|
||||
|
||||
[Kubernetes cluster]: https://kubernetes.io/docs/setup/
|
||||
[Minikube]: https://kubernetes.io/docs/tasks/tools/install-minikube/
|
||||
[Helm]: https://docs.helm.sh/using_helm/
|
||||
[Minikube]: https://minikube.sigs.k8s.io/docs/start/
|
||||
[Helm]: https://helm.sh/docs/intro/using_helm/
|
||||
|
|
@ -1,12 +1,8 @@
|
|||
---
|
||||
title: Learn More
|
||||
toc: true
|
||||
weight: 307
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Learn More
|
||||
|
||||
If you have any questions, please drop us a note on [Crossplane Slack][join-crossplane-slack] or [contact us][contact-us]!
|
||||
|
||||
***Learn more about using Crossplane***
|
||||
|
|
@ -1,12 +1,8 @@
|
|||
---
|
||||
title: Release Cycle
|
||||
toc: true
|
||||
weight: 308
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Release Cycle
|
||||
|
||||
Starting with the v1.10.0 release, Crossplane is released on a quarterly (13
|
||||
week) cadence. A cycle is comprised of three general stages:
|
||||
|
||||
|
|
@ -1,12 +1,8 @@
|
|||
---
|
||||
title: Troubleshoot
|
||||
toc: true
|
||||
weight: 306
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Troubleshooting
|
||||
|
||||
* [Requested Resource Not Found]
|
||||
* [Resource Status and Conditions]
|
||||
* [Resource Events]
|
||||
|
|
@ -281,7 +277,7 @@ spec:
|
|||
<!-- Named Links -->
|
||||
|
||||
[Requested Resource Not Found]: #requested-resource-not-found
|
||||
[install Crossplane CLI]: ../getting-started/install-configure.md#install-crossplane-cli
|
||||
[install Crossplane CLI]: {{<ref "../getting-started/install-configure" >}}#install-crossplane-cli
|
||||
[Resource Status and Conditions]: #resource-status-and-conditions
|
||||
[Resource Events]: #resource-events
|
||||
[Crossplane Logs]: #crossplane-logs
|
||||
|
|
@ -290,6 +286,6 @@ spec:
|
|||
[Pausing Providers]: #pausing-providers
|
||||
[Deleting When a Resource Hangs]: #deleting-when-a-resource-hangs
|
||||
[Installing Crossplane Package]: #installing-crossplane-package
|
||||
[Crossplane package]: https://crossplane.io/docs/v1.3/concepts/packages.html
|
||||
[Crossplane package]: {{<ref "../concepts/packages" >}}
|
||||
[Handling Crossplane Package Dependency]: #handling-crossplane-package-dependency
|
||||
[semver spec]: https://github.com/Masterminds/semver#basic-comparisons
|
||||
|
|
@ -1,12 +1,8 @@
|
|||
---
|
||||
title: Uninstall
|
||||
toc: true
|
||||
title: Uninstall Crossplane
|
||||
weight: 303
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Uninstalling
|
||||
|
||||
Crossplane has a number of components that must be cleaned up in order to
|
||||
guarantee proper removal from the cluster. When deleting objects, it is best to
|
||||
consider parent-child relationships and clean up the children first to ensure
|
||||
|
|
@ -88,4 +84,4 @@ kubectl get crd -o name | grep crossplane.io | xargs kubectl delete
|
|||
<!-- Named Links -->
|
||||
|
||||
[finalizers]: https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#finalizers
|
||||
[troubleshooting guide]: troubleshoot.md
|
||||
[troubleshooting guide]: {{<ref "troubleshoot" >}}
|
||||
|
|
@ -1,12 +1,8 @@
|
|||
---
|
||||
title: xpkg Specification
|
||||
toc: true
|
||||
weight: 305
|
||||
indent: true
|
||||
---
|
||||
|
||||
# Overview
|
||||
|
||||
Crossplane supports two types of [packages]: Providers and Configurations. These
|
||||
packages are distributed as generic [OCI images], which contain [YAML] content
|
||||
informing the Crossplane package manager how to alter the state of a cluster by
|
||||
|
|
@ -201,7 +197,7 @@ unmodified.
|
|||
|
||||
<!-- Named Links -->
|
||||
|
||||
[packages]: ../concepts/packages.md
|
||||
[packages]: {{<ref "../concepts/packages" >}}
|
||||
[OCI images]: https://github.com/opencontainers/image-spec
|
||||
[OCI image specification]: https://github.com/opencontainers/image-spec/blob/main/spec.md
|
||||
[YAML]: https://yaml.org/spec/1.2.2/
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
---
|
||||
title: "Overview"
|
||||
weight: 1
|
||||
toc_include: false
|
||||
cascade:
|
||||
version: 1.7
|
||||
---
|
||||

|
||||
|
||||
Crossplane is an open source Kubernetes add-on that transforms your cluster into
|
||||
a **universal control plane**. Crossplane enables platform teams to assemble
|
||||
infrastructure from multiple vendors, and expose higher level self-service APIs
|
||||
for application teams to consume, without having to write any code.
|
||||
|
||||
Crossplane extends your Kubernetes cluster to support orchestrating any
|
||||
infrastructure or managed service. Compose Crossplane's granular resources into
|
||||
higher level abstractions that can be versioned, managed, deployed and consumed
|
||||
using your favorite tools and existing processes. [Install Crossplane]({{<ref "getting-started/install-configure" >}}) into any
|
||||
Kubernetes cluster to get started.
|
||||
|
||||
Crossplane is a [Cloud Native Compute Foundation][cncf] project.
|
||||
|
||||
<!-- Named Links -->
|
||||
|
||||
|
||||
[cncf]: https://www.cncf.io/
|
||||
|
|
@ -1,10 +1,9 @@
|
|||
---
|
||||
title: API Documentation
|
||||
toc: true
|
||||
weight: 400
|
||||
---
|
||||
|
||||
# API Documentation
|
||||
|
||||
|
||||
The Crossplane ecosystem contains many CRDs that map to API types represented by
|
||||
external infrastructure providers. The documentation for these CRDs are
|
||||
|
|
@ -24,12 +24,12 @@ spec:
|
|||
apiVersion:
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
of an object. Servers should convert recognized schemas to the latest
|
||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||
internal value, and may reject unrecognized values. More info: {{<ref "https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions" >}}#resources'
|
||||
type: string
|
||||
kind:
|
||||
description: 'Kind is a string value representing the REST resource this
|
||||
object represents. Servers may infer this from the endpoint the client
|
||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||
submits requests to. Cannot be updated. In CamelCase. More info: {{<ref "https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions" >}}#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
|
|
@ -83,12 +83,12 @@ spec:
|
|||
apiVersion:
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
of an object. Servers should convert recognized schemas to the latest
|
||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||
internal value, and may reject unrecognized values. More info: {{<ref "https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions" >}}#resources'
|
||||
type: string
|
||||
kind:
|
||||
description: 'Kind is a string value representing the REST resource this
|
||||
object represents. Servers may infer this from the endpoint the client
|
||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||
submits requests to. Cannot be updated. In CamelCase. More info: {{<ref "https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions" >}}#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
|
|
@ -23,12 +23,12 @@ spec:
|
|||
apiVersion:
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
of an object. Servers should convert recognized schemas to the latest
|
||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||
internal value, and may reject unrecognized values. More info: {{<ref "https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions" >}}#resources'
|
||||
type: string
|
||||
kind:
|
||||
description: 'Kind is a string value representing the REST resource this
|
||||
object represents. Servers may infer this from the endpoint the client
|
||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||
submits requests to. Cannot be updated. In CamelCase. More info: {{<ref "https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions" >}}#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
|
|
@ -143,12 +143,12 @@ spec:
|
|||
apiVersion:
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
of an object. Servers should convert recognized schemas to the latest
|
||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||
internal value, and may reject unrecognized values. More info: {{<ref "https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions" >}}#resources'
|
||||
type: string
|
||||
kind:
|
||||
description: 'Kind is a string value representing the REST resource this
|
||||
object represents. Servers may infer this from the endpoint the client
|
||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||
submits requests to. Cannot be updated. In CamelCase. More info: {{<ref "https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions" >}}#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: crossplane
|
||||
weight: 401
|
||||
layout: redirect
|
||||
to: https://doc.crds.dev/github.com/crossplane/crossplane
|
||||
---
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: provider-alibaba
|
||||
weight: 402
|
||||
layout: redirect
|
||||
to: https://doc.crds.dev/github.com/crossplane/provider-alibaba
|
||||
---
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: provider-aws
|
||||
weight: 403
|
||||
layout: redirect
|
||||
to: https://doc.crds.dev/github.com/crossplane/provider-aws
|
||||
---
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: provider-azure
|
||||
weight: 404
|
||||
layout: redirect
|
||||
to: https://doc.crds.dev/github.com/crossplane/provider-azure
|
||||
---
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: provider-gcp
|
||||
weight: 405
|
||||
layout: redirect
|
||||
to: https://doc.crds.dev/github.com/crossplane/provider-gcp
|
||||
---
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: provider-helm
|
||||
weight: 407
|
||||
layout: redirect
|
||||
to: https://doc.crds.dev/github.com/crossplane-contrib/provider-helm
|
||||
---
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: provider-rook
|
||||
weight: 406
|
||||
layout: redirect
|
||||
to: https://doc.crds.dev/github.com/crossplane/provider-rook
|
||||
---
|
||||