Docs redesign (#210)
This completely redesigns the docs and moves them to a new domain docs.crossplane.io and hosting on Netlify. This creates a custom Hugo theme affectionally called `Geekboot` based the work of both [Geekdoc](https://geekdocs.de/) and [Bootstrap](https://github.com/twbs/bootstrap/tree/main/site). [Lighthouse testing on desktop](https://pagespeed.web.dev/report?url=https%3A%2F%2Fdocs.crossplane.io%2Fv1.10%2F&form_factor=desktop) gives the site a 100/100 in performance and best practices, 90/100 in accessibility and 92/100 in SEO. Besides new layout and colors other new user-facing features include: * Dark mode * Fully responsive design and mobile ready * Automated webp image conversion and optimization as well as lazy loading * Tabs * Alerts and hint boxes * Foldable/hide long outputs * Linkable anchors inside tabs * Improved code boxes with line numbers * Adds support for docs.crossplane.io/latest * Right hand page table of contents * Improved text readability Infrastructure improves: * Uses [Bootstrap](https://getbootstrap.com/) to dramatically simplify styling and site development * Prefetch links on hover using [instant.page](https://instant.page/) * Highly optimized CSS using PostCSS and [PurgeCSS ](https://purgecss.com/) without requiring users to install additional tools * Minimizes the use of JavaScript and bundles scripts with [Webpack](https://webpack.js.org/) to optimize load times * Massive improvement of SCSS/CSS organization and overrides improving the development process for stylesheet changes * Optimizes existing SVGs and converts all other template images to webp * Minification on production builds to further reduce page sizes This also bumps the `Makefile` Hugo version to [0.107.0](https://github.com/gohugoio/hugo/releases/tag/v0.107.0) to pick up build improvements related to code syntax highlighting, improving builds about about 20-30% in unscientific testing.
|
@ -53,8 +53,14 @@ public/*
|
|||
hugo
|
||||
hugo-*
|
||||
.hugo_build.lock
|
||||
package-lock.json
|
||||
hugo_stats.json
|
||||
|
||||
# From original Upbound Crossplane .gitignore #
|
||||
# Webpack related files #
|
||||
######################
|
||||
utils/webpack/node_modules
|
||||
|
||||
# From original Crossplane .gitignore #
|
||||
######################
|
||||
/_site
|
||||
/vendor
|
||||
|
|
2
Makefile
|
@ -62,7 +62,7 @@ endif
|
|||
# ====================================================================================
|
||||
# Tools
|
||||
|
||||
HUGO_VERSION ?= 0.104.3
|
||||
HUGO_VERSION ?= 0.107.0
|
||||
HUGO := ./hugo-$(HUGO_VERSION)
|
||||
|
||||
$(HUGO):
|
||||
|
|
|
@ -8,3 +8,5 @@ For detailed information about contributing to documentation read the [Docs Cont
|
|||
|
||||
## License
|
||||
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.
|
||||
|
||||
The docs.crossplane.io theme is based on [Geekdoc](https://github.com/thegeeklab/hugo-geekdoc) and [Bootstrap](https://github.com/twbs/bootstrap), both licensed under the MIT License.
|
37
config.yaml
|
@ -2,24 +2,47 @@ baseURL: "/"
|
|||
enableRobotsTXT: True
|
||||
languageCode: "en-us"
|
||||
title: "Crossplane"
|
||||
theme: "crossplane"
|
||||
uglyurls: true
|
||||
theme: "geekboot"
|
||||
enableGitInfo: true
|
||||
uglyurls: false
|
||||
disableKinds:
|
||||
- taxonomy
|
||||
- term
|
||||
- RSS
|
||||
|
||||
build:
|
||||
writeStats: true
|
||||
|
||||
markup:
|
||||
goldmark:
|
||||
renderer:
|
||||
unsafe: true
|
||||
tableOfContents:
|
||||
startLevel: 1
|
||||
endLevel: 9
|
||||
highlight:
|
||||
CodeFences: true
|
||||
|
||||
codeFences: true
|
||||
noClasses: false
|
||||
linenos: true
|
||||
LineNumbersInTable: true
|
||||
anchorLineNos: false # Need to fix the line number ID generation.
|
||||
|
||||
module:
|
||||
mounts:
|
||||
- source: content
|
||||
target: content
|
||||
- source: assets
|
||||
target: assets
|
||||
- source: content
|
||||
target: assets/content
|
||||
includeFiles:
|
||||
- "**/**.png"
|
||||
- "**/**.jpg"
|
||||
- "**/**.jpeg"
|
||||
- "**/**.gif"
|
||||
|
||||
params:
|
||||
latest: "1.10"
|
||||
upboundLink: "https://www.upbound.io/"
|
||||
slackLink: "https://slack.crossplane.io/"
|
||||
githubLink: "https://github.com/crossplane/crossplane"
|
||||
|
@ -33,5 +56,9 @@ params:
|
|||
prodFormLink: "https://docs.google.com/forms/d/e/1FAIpQLSev-5clADSdkwi_wiFqBCAECeIoAQDE91chBbeWbvyTjRCeYg/viewform"
|
||||
infoMailToLink: "mailto:info@crossplane.io"
|
||||
upboundGithubLink: "https://github.com/upbound"
|
||||
latest: "1.10"
|
||||
|
||||
repoLink: "https://github.com/crossplane/crossplane"
|
||||
anchors:
|
||||
min: 2
|
||||
max: 5
|
||||
description: "Crossplane lets you build a control plane with Kubernetes-style declarative and API-driven configuration and management for anything."
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
---
|
||||
layout: 404
|
||||
---
|
|
@ -1,7 +1,5 @@
|
|||
---
|
||||
title: crossplane
|
||||
weight: 401
|
||||
layout: redirect
|
||||
docs_root: true
|
||||
url: /docs/
|
||||
---
|
|
@ -1,3 +0,0 @@
|
|||
---
|
||||
layout: community
|
||||
---
|
|
@ -1,187 +0,0 @@
|
|||
---
|
||||
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](https://github.com/crossplane/crossplane.github.io) 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,187 +0,0 @@
|
|||
---
|
||||
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](https://github.com/crossplane/crossplane.github.io) 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,3 +1,6 @@
|
|||
---
|
||||
tocHidden: true
|
||||
---
|
||||
# Overview
|
||||
|
||||

|
|
@ -1,14 +1,11 @@
|
|||
---
|
||||
title: "Overview"
|
||||
weight: -1
|
||||
toc_include: false
|
||||
aliases:
|
||||
- /docs/master/index.html
|
||||
cascade:
|
||||
version: master
|
||||
---
|
||||
|
||||

|
||||
{{< img src="media/banner.png" alt="Crossplane Popsicle Truck" size="large" >}}
|
||||
|
||||
Crossplane is an open source Kubernetes add-on that transforms your cluster into
|
||||
a **universal control plane**. Crossplane enables platform teams to assemble
|
||||
|
@ -21,9 +18,4 @@ 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/
|
||||
Crossplane is a [Cloud Native Compute Foundation](https://www.cncf.io/) project.
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: Adding Amazon Web Services (AWS) to Crossplane
|
||||
toc_hide: true
|
||||
tocHidden: true
|
||||
---
|
||||
|
||||
In this guide, we will walk through the steps necessary to configure your AWS
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: Adding Microsoft Azure to Crossplane
|
||||
toc_hide: true
|
||||
tocHidden: true
|
||||
---
|
||||
|
||||
In this guide, we will walk through the steps necessary to configure your Azure
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: Adding Google Cloud Platform (GCP) to Crossplane
|
||||
toc_hide: true
|
||||
tocHidden: true
|
||||
---
|
||||
|
||||
|
|
@ -241,10 +241,10 @@ scenarios, including:
|
|||
take minutes to provision on-demand.
|
||||
|
||||
[managed-resources]: {{<ref "managed-resources" >}}
|
||||
[xrs-and-mrs]: /docs/master/media/composition-xrs-and-mrs.svg
|
||||
[xrs-and-mrs]: /master/media/composition-xrs-and-mrs.svg
|
||||
[xr-ref]: {{<ref "../reference/composition" >}}
|
||||
[how-it-works]: /docs/master/media/composition-how-it-works.svg
|
||||
[how-it-works]: /master/media/composition-how-it-works.svg
|
||||
[crd-docs]: https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/
|
||||
[provider-kubernetes]: https://marketplace.upbound.io/providers/crossplane-contrib/provider-kubernetes
|
||||
[provider-helm]: https://marketplace.upbound.io/providers/crossplane-contrib/provider-helm
|
||||
[claims-and-xrs]: /docs/master/media/composition-claims-and-xrs.svg
|
||||
[provider-helm]: https://marketplace.upbound.io/providers/crossplane-contrib/provider-helm/
|
||||
[claims-and-xrs]: /master/media/composition-claims-and-xrs.svg
|
|
@ -25,14 +25,8 @@ Composite Resources or XRs - not used directly. See the
|
|||
Crossplane API conventions extend the Kubernetes API conventions for the schema
|
||||
of Crossplane managed resources. Following is an example of a managed resource:
|
||||
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#aws-tab-1" data-toggle="tab">AWS</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>
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane fade in active" id="aws-tab-1" markdown="1">
|
||||
{{< tabs >}}
|
||||
{{< tab "AWS" >}}
|
||||
|
||||
The AWS provider supports provisioning an [RDS][rds] instance via the `RDSInstance`
|
||||
managed resource it adds to Crossplane.
|
||||
|
@ -81,8 +75,8 @@ You can then delete the `RDSInstance`:
|
|||
kubectl delete rdsinstance rdspostgresql
|
||||
```
|
||||
|
||||
</div>
|
||||
<div class="tab-pane fade" id="gcp-tab-1" markdown="1">
|
||||
{{< /tab >}}
|
||||
{{< tab "GCP" >}}
|
||||
|
||||
The GCP provider supports provisioning a [CloudSQL][cloudsql] instance with the
|
||||
`CloudSQLInstance` managed resource it adds to Crossplane.
|
||||
|
@ -130,8 +124,8 @@ You can then delete the `CloudSQLInstance`:
|
|||
kubectl delete cloudsqlinstance cloudsqlpostgresql
|
||||
```
|
||||
|
||||
</div>
|
||||
<div class="tab-pane fade" id="azure-tab-1" markdown="1">
|
||||
{{< /tab >}}
|
||||
{{< tab "Azure" >}}
|
||||
|
||||
The Azure provider supports provisioning an [Azure Database for PostgreSQL]
|
||||
instance with the `PostgreSQLServer` managed resource it adds to Crossplane.
|
||||
|
@ -199,8 +193,8 @@ kubectl delete postgresqlserver sqlserverpostgresql
|
|||
kubectl delete resourcegroup sqlserverpostgresql-rg
|
||||
```
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{{< /tab >}}
|
||||
{{< /tabs >}}
|
||||
|
||||
In Kubernetes, `spec` top field represents the desired state of the user.
|
||||
Crossplane adheres to that and has its own conventions about how the fields
|
|
@ -0,0 +1,505 @@
|
|||
---
|
||||
title: "Crossplane Documentation"
|
||||
weight: 2000
|
||||
---
|
||||
## Code of conduct
|
||||
Crossplane follows the [CNCF Code of
|
||||
Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md).
|
||||
|
||||
Taken directly from the code:
|
||||
<!-- vale off -->
|
||||
>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.
|
||||
<!-- vale on -->
|
||||
|
||||
### Reporting violations
|
||||
To report violations contact the Crossplane maintainers at `info@crossplane.io`
|
||||
or the CNCF at `conduct@cncf.io`.
|
||||
|
||||
## Docs source
|
||||
Crossplane documentation lives in two repositories:
|
||||
|
||||
* Crossplane documentation source is in the [Crossplane
|
||||
repository](https://github.com/crossplane/crossplane) `/docs` directory.
|
||||
|
||||
* The Crossplane docs website is in the
|
||||
[crossplane.github.io](https://github.com/crossplane/crossplane.github.io)
|
||||
repository.
|
||||
|
||||
Use `crossplane/crossplane` for documentation contributions.
|
||||
Use `crossplane/crossplane.github.io` for local development or updates involving
|
||||
HTML, CSS or Hugo.
|
||||
|
||||
### 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.
|
||||
|
||||
### Issues and feature requests
|
||||
Open an [issue](https://github.com/crossplane/crossplane/issues)
|
||||
to report a problem or request documentation content.
|
||||
|
||||
## Contributing
|
||||
|
||||
Documentation content contributions are always welcome.
|
||||
|
||||
The Crossplane documentation source is in the [Crossplane
|
||||
repository](https://github.com/crossplane/crossplane) `/docs` directory.
|
||||
|
||||
Crossplane recommends using the [website
|
||||
repository](https://github.com/crossplane/crossplane.github.io) for local development.
|
||||
When a contribution is ready, submit a pull request to the [Crossplane
|
||||
repository](https://github.com/crossplane/crossplane).
|
||||
|
||||
|
||||
### Local development
|
||||
Build the Crossplane documentation site locally for development and
|
||||
testing.
|
||||
|
||||
#### Clone the documentation site
|
||||
Clone the [documentation
|
||||
repository](https://github.com/crossplane/crossplane.github.io) with
|
||||
|
||||
```command
|
||||
git clone https://github.com/crossplane/crossplane.github.io.git
|
||||
```
|
||||
|
||||
#### Download the Hugo static site generator
|
||||
Crossplane uses [Hugo](https://github.com/gohugoio/hugo), a static site
|
||||
generator.
|
||||
|
||||
Download a Hugo v0.101.0 or later from the [Hugo
|
||||
releases](https://github.com/gohugoio/hugo/releases/tag/v0.106.0).
|
||||
|
||||
#### Build the Crossplane documentation
|
||||
From the `crossplane.github.io` folder run
|
||||
|
||||
```command
|
||||
hugo server
|
||||
```
|
||||
|
||||
Hugo builds the website and launch a local web server on
|
||||
[http://localhost:1313](http://localhost:1313).
|
||||
|
||||
Any changes made are instantly reflected on the local web server. You
|
||||
don't need to restart Hugo.
|
||||
|
||||
### Contribute to a specific version
|
||||
The documentation location for the various Crossplane versions are different
|
||||
for the Crossplane source and docs website.
|
||||
|
||||
#### Crossplane repository
|
||||
In the [crossplane/crossplane](https://github.com/crossplane/crossplane)
|
||||
repository documentation is in the `/docs` directory.
|
||||
|
||||
Each active release has a `/docs` folder in a branch called
|
||||
`release-<version>`. For example, v1.10 docs are in the branch
|
||||
[release-1.10](https://github.com/crossplane/crossplane/tree/release-1.10).
|
||||
|
||||
To contribute to a specific release submit a pull-request to the
|
||||
`release-<version>` or `master` branch.
|
||||
|
||||
The next Crossplane release uses `master` as the starting documentation.
|
||||
|
||||
#### Website repository
|
||||
The [docs website
|
||||
repository](https://github.com/crossplane/crossplane.github.io) combines all
|
||||
active versions in the `/content` directory.
|
||||
|
||||
## Style guidelines
|
||||
The official Crossplane documentation style guide is still under construction.
|
||||
Guiding principals for the documentation include:
|
||||
<!-- vale off -->
|
||||
* Avoid [passive voice](https://www.grammarly.com/blog/passive-voice/).
|
||||
* Use [sentence-case headings](https://apastyle.apa.org/style-grammar-guidelines/capitalization/sentence-case).
|
||||
* Wrap lines at 80 characters.
|
||||
* Use [present tense](https://www.grammarly.com/blog/simple-present/).
|
||||
* Spell out numbers less than 10, except for percentages, time and versions.
|
||||
* Capitalize "Crossplane" and "Kubernetes."
|
||||
* Spell out the first use of an acronym unless it's common to new Crossplane
|
||||
users. When in doubt, spell it out first.
|
||||
* Don't use [cliches](https://www.topcreativewritingcourses.com/blog/common-cliches-in-writing-and-how-to-avoid-them).
|
||||
* Use contractions for phrases like "do not", "cannot", "is not" and related terms.
|
||||
* Don't use Latin terms (i.e., e.g., etc.).
|
||||
* Don't use [gerund](https://owl.purdue.edu/owl/general_writing/mechanics/gerunds_participles_and_infinitives/index.html) headings (-ing words).
|
||||
* Try and limit sentences to 25 words or fewer.
|
||||
* [Be descriptive in link text](https://usability.yale.edu/web-accessibility/articles/links#link-text). Don't use "click here" or "read more".
|
||||
<!-- vale on -->
|
||||
|
||||
Crossplane documentation is adopting
|
||||
[Vale](https://github.com/errata-ai/vale) and relies on the [Upbound Vale
|
||||
definitions](https://github.com/upbound/vale) for style guidelines.
|
||||
|
||||
Beyond Vale, Crossplane recommends [Grammarly](https://www.grammarly.com/) and [Hemingway
|
||||
Editor](https://hemingwayapp.com/) to improve writing quality.
|
||||
|
||||
## Docs site styling features
|
||||
The Crossplane documentation supports multiple styling features to improve
|
||||
readability.
|
||||
|
||||
### Images
|
||||
Crossplane supports standard [Markdown image
|
||||
syntax](https://www.markdownguide.org/basic-syntax/#images-1) but using the
|
||||
`img` shortcode is strongly recommended.
|
||||
|
||||
Images using the shortcode are automatically converted to `webp` image format,
|
||||
compressed and use responsive image sizing.
|
||||
|
||||
{{<hint "note">}}
|
||||
The `img` shortcode doesn't support .SVG files.
|
||||
{{< /hint >}}
|
||||
|
||||
The shortcode requires a `src` (relative to the file using the shortcode), an
|
||||
`alt` text and an optional `size`.
|
||||
|
||||
The `size` can be one of:
|
||||
* `xtiny` - Resizes the image to 150px.
|
||||
* `tiny` - Resizes the image to 320px.
|
||||
* `small` - Resizes the image to 600px.
|
||||
* `medium` - Resizes the image to 1200px.
|
||||
* `large` - Resizes the image to 1800px.
|
||||
|
||||
By default the image isn't resized.
|
||||
|
||||
An example of using the `img` shortcode:
|
||||
```html
|
||||
{{</* img src="../media/banner.png" alt="Crossplane Popsicle Truck" size="small" */>}}
|
||||
```
|
||||
|
||||
Which generates this responsive image (change your browser size to see it change):
|
||||
{{<img src="../media/banner.png" alt="Crossplane Popsicle Truck" size="small" >}}
|
||||
|
||||
### Links
|
||||
Crossplane docs support standard [Markdown
|
||||
links](https://www.markdownguide.org/basic-syntax/#links) but Crossplane prefers link shortcodes
|
||||
for links between docs pages. Using shortcodes prevents incorrect link creation
|
||||
and notifies which links to change after moving a page.
|
||||
|
||||
#### Between docs pages
|
||||
For links between pages use a standard Markdown link in the form:
|
||||
|
||||
`[Link text](link)`
|
||||
|
||||
Crossplane recommends using 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 `master` release index page use
|
||||
```markdown
|
||||
[master branch documentation]({{</* ref "master/_index.md" */>}})
|
||||
```
|
||||
|
||||
<!-- [master branch documentation]({{<ref "master/_index.md" >}}) -->
|
||||
|
||||
The `ref` value is of the markdown file, including `.md` extension.
|
||||
|
||||
If the `ref` value points to a page that doesn't exist, Hugo fails to start.
|
||||
|
||||
#### 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.
|
||||
|
||||
```html
|
||||
{{</* tabs */>}}
|
||||
|
||||
{{</* tab "First tab title" */>}}
|
||||
An example tab. Place anything inside a tab.
|
||||
{{</* /tab */>}}
|
||||
|
||||
{{</* tab "Second tab title" */>}}
|
||||
A second example tab.
|
||||
{{</* /tab */>}}
|
||||
|
||||
{{</* /tabs */>}}
|
||||
```
|
||||
|
||||
This code block renders the following tabs
|
||||
{{< tabs >}}
|
||||
|
||||
{{< tab "First tab title" >}}
|
||||
An example tab. Place anything inside a tab.
|
||||
{{< /tab >}}
|
||||
|
||||
{{< tab "Second tab title" >}}
|
||||
A second example tab.
|
||||
{{< /tab >}}
|
||||
|
||||
{{< /tabs >}}
|
||||
|
||||
Both `tab` and `tabs` require opening and closing tags. Unclosed tags causes
|
||||
Hugo to fail.
|
||||
|
||||
### Hints and alert boxes
|
||||
Hint and alert boxes provide call-outs to important information to the reader. Crossplane docs support four different hint box styles.
|
||||
|
||||
{{< hint "note" >}}
|
||||
Notes are useful for calling out optional information.
|
||||
{{< /hint >}}
|
||||
|
||||
{{< hint "tip" >}}
|
||||
Use tips to provide context or a best practice.
|
||||
{{< /hint >}}
|
||||
|
||||
{{< hint "important" >}}
|
||||
Important hints are for drawing extra attention to something.
|
||||
{{< /hint >}}
|
||||
|
||||
{{< hint "warning" >}}
|
||||
Use warning boxes to alert users of things that may cause outages, lose data or
|
||||
are irreversible changes.
|
||||
{{< /hint >}}
|
||||
|
||||
|
||||
Create a hint by using a shortcode in your markdown file:
|
||||
```html
|
||||
{{</* hint "note" */>}}
|
||||
Your box content. This hint box is a note.
|
||||
{{</* /hint */>}}
|
||||
```
|
||||
|
||||
Use `note`, `tip`, `important`, or `warning` as the `hint` value.
|
||||
|
||||
The `hint` shortcode requires opening and closing tags. Unclosed tags causes
|
||||
Hugo to fail.
|
||||
|
||||
|
||||
### Hide long outputs
|
||||
Some outputs may be verbose or only relevant for
|
||||
a small audience. Use the `expand` shortcode to hide blocks of text by default.
|
||||
|
||||
{{<expand "A large XRD" >}}
|
||||
```yaml
|
||||
apiVersion: apiextensions.crossplane.io/v1
|
||||
kind: CompositeResourceDefinition
|
||||
metadata:
|
||||
name: xpostgresqlinstances.database.example.org
|
||||
spec:
|
||||
group: database.example.org
|
||||
names:
|
||||
kind: XPostgreSQLInstance
|
||||
plural: xpostgresqlinstances
|
||||
claimNames:
|
||||
kind: PostgreSQLInstance
|
||||
plural: postgresqlinstances
|
||||
versions:
|
||||
- name: v1alpha1
|
||||
served: true
|
||||
referenceable: true
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
type: object
|
||||
properties:
|
||||
spec:
|
||||
type: object
|
||||
properties:
|
||||
parameters:
|
||||
type: object
|
||||
properties:
|
||||
storageGB:
|
||||
type: integer
|
||||
required:
|
||||
- storageGB
|
||||
required:
|
||||
- parameters
|
||||
```
|
||||
{{< /expand >}}
|
||||
|
||||
The `expand` shortcode can have a title, the default is "Expand."
|
||||
````yaml
|
||||
{{</* expand "A large XRD" */>}}
|
||||
```yaml
|
||||
apiVersion: apiextensions.crossplane.io/v1
|
||||
kind: CompositeResourceDefinition
|
||||
metadata:
|
||||
name: xpostgresqlinstances.database.example.org
|
||||
```
|
||||
{{</* /expand */>}}
|
||||
````
|
||||
|
||||
The `expand` shortcode requires opening and closing tags. Unclosed tags causes
|
||||
Hugo to fail.
|
||||
|
||||
## Adding new content
|
||||
|
||||
To create new content create a new markdown file in the appropriate location.
|
||||
|
||||
To create a new section, create a new directory and an `_index.md` file in the
|
||||
root.
|
||||
|
||||
### 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: "A New Page"
|
||||
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.
|
||||
|
||||
|
||||
### Hiding pages
|
||||
To hide a page from the left-hand navigation use `tocHidden: true` in the front
|
||||
matter of the page. The docs website skips pages with `tocHidden:true` when building the menu.
|
||||
|
||||
## Docs website
|
||||
The Crossplane document website is in a unique [website GitHub
|
||||
repository](https://github.com/crossplane/crossplane.github.io).
|
||||
|
||||
Crossplane uses [Hugo](https://gohugo.io/), a static site generator. Hugo
|
||||
influences the directory structure of the website repository.
|
||||
|
||||
The `/content` directory is the root directory for all documentation content.
|
||||
|
||||
The `/themes/geekboot` directory is the root directory for all website related
|
||||
files, like HTML templates, shortcodes and global media files.
|
||||
|
||||
The `/utils/` directory is for JavaScript source code used in the website.
|
||||
|
||||
The `/themes/geekboot/assets` folder contains all (S)CSS and compiled JavaScript
|
||||
for the website.
|
||||
|
||||
### CSS
|
||||
Crossplane documentation uses [Bootstrap
|
||||
5.2](https://getbootstrap.com/docs/5.2/getting-started/introduction/).
|
||||
Unmodified Bootstrap SCSS files are in
|
||||
`/themes/geekboot/assets/scss/bootstrap/`. Any docs-specific overrides are in
|
||||
per-element SCSS files located one directory higher in
|
||||
`/themes/geekboot/assets/scss/`.
|
||||
|
||||
{{<hint "important" >}}
|
||||
Don't edit the original Bootstrap stylesheets. It makes the ability to
|
||||
upgrade to future Bootstrap versions difficult or impossible.
|
||||
{{< /hint >}}
|
||||
|
||||
#### Color themes
|
||||
Crossplane docs support a light and dark color theme that's applied via CSS
|
||||
variables.
|
||||
|
||||
Universal and default variables are defined in
|
||||
`/themes/geekboot/assets/scss/_variables.scss`.
|
||||
|
||||
Provide theme specific color overrides in
|
||||
`/themes/geekboot/assets/scss/light-mode.scss` or
|
||||
`/themes/geekboot/assets/scss/light-mode.scss`.
|
||||
|
||||
{{<hint "note" >}}
|
||||
When creating new styles rely on variables for any color function, even if both
|
||||
themes share the color.
|
||||
{{< /hint >}}
|
||||
|
||||
#### SCSS compilation
|
||||
Hugo compiles the SCSS to CSS. Local development doesn't require SCSS installed.
|
||||
|
||||
For local development (when using `hugo server`) Hugo compiles SCSS without
|
||||
any optimizations.
|
||||
|
||||
For production (publishing on Netlify or using `hugo server
|
||||
--environment production`) Hugo compiles SCSS and optimizes the CSS with
|
||||
[PostCSS](https://postcss.org/). The PostCSS configuration is in
|
||||
`/postcss.config.js`. The optimizations includes:
|
||||
* [postcss-lightningcss](https://github.com/onigoetz/postcss-lightningcss) - for
|
||||
building, minimizing and generating a source map.
|
||||
* [PurgeCSS](https://purgecss.com/plugins/postcss.html) - removes unused styles
|
||||
to reduce the CSS file size.
|
||||
* [postcss-sort-media-queries](https://github.com/yunusga/postcss-sort-media-queries)-
|
||||
to organize and reduce CSS media queries to remove duplicate and unused
|
||||
CSS.
|
||||
|
||||
Optimizing CSS locally with PostCSS requires installing extra packages.
|
||||
* [Sass](https://sass-lang.com/install)
|
||||
* [NPM](https://www.npmjs.com/)
|
||||
* NPM packages defined in `/package.json` with `npm install`.
|
||||
|
||||
|
||||
### JavaScript
|
||||
A goal of the documentation website is to use as little JavaScript as possible. Unless
|
||||
the script provides a significant improvement in performance, capability or user
|
||||
experience.
|
||||
|
||||
To make local development there are no run-time dependencies for
|
||||
JavaScript.
|
||||
|
||||
Runtime JavaScript is in `/themes/geekboot/assets/js/`. [Webpack](https://webpack.js.org/)
|
||||
has bundled, minified and compressed the JavaScript.
|
||||
|
||||
The source JavaScript is in `/utils/webpack/src/js` and
|
||||
requires [Webpack](https://webpack.js.org/) to bundle and optimize the code.
|
||||
|
||||
* `colorMode.js` provides the ability to change the light/dark mode color theme.
|
||||
* `tabDeepAnchor.js` rewrites anchor links inside tabs to open a tab and present
|
||||
the anchor.
|
||||
* `globalScripts.js` is the point of entry for Webpack to determine all
|
||||
dependencies. This bundles [instant.page](https://instant.page/) and
|
||||
[Bootstrap's
|
||||
JavaScript](https://getbootstrap.com/docs/5.2/getting-started/javascript/).
|
||||
|
||||
#### Bootstrap JavaScript
|
||||
The entire [Bootstap JavaScript
|
||||
source](https://github.com/twbs/bootstrap/tree/main/js/src) is in
|
||||
`/utils/webpack/src/js/bootstrap`.
|
||||
|
||||
Adding a new Bootstrap feature requires importing it in `globalScripts.js`.
|
||||
|
||||
By importing only the necessary Bootstrap JavaScript features, reduces the
|
||||
bundle size.
|
||||
## Annotated website tree
|
||||
Expand the tab below to see an annotated `tree` output of the website repo.
|
||||
|
||||
{{<expand >}}
|
||||
```shell
|
||||
├── content # Root for all page content
|
||||
│ ├── master
|
||||
│ ├── v1.10
|
||||
│ ├── v1.8
|
||||
│ └── v1.9
|
||||
├── themes # Entry point for theme-specific designs
|
||||
│ └── geekboot
|
||||
│ ├── assets # JS and stylesheets
|
||||
│ │ ├── js # Bundled and optmized Javascript
|
||||
│ │ └── scss # Bootstrap SCSS overrides
|
||||
│ │ └── bootstrap # Bootstrap original SCSS files
|
||||
│ ├── data
|
||||
│ ├── layouts # HTML layouts and shortcodes
|
||||
│ │ ├── _default # HTML layouts for page types
|
||||
│ │ │ └── _markup # Hugo render hooks
|
||||
│ │ ├── partials # HTML Template elements
|
||||
│ │ │ ├── icons
|
||||
│ │ │ └── utils
|
||||
│ │ └── shortcodes # Shortcode features
|
||||
│ └── static # Static files across the theme.
|
||||
│ ├── fonts # Font files
|
||||
│ └── img # Global images
|
||||
└── utils # Files unrelated to Hugo
|
||||
└── webpack # Files managed or related to webpack
|
||||
└── src
|
||||
└── js
|
||||
└── bootstrap/ # Original Bootstrap JavaScript
|
||||
└── colorMode.js # Color theme switcher
|
||||
└── tabDeepAnchor.js # Enable anchors inside tabs
|
||||
```
|
||||
{{</expand>}}
|
|
@ -45,10 +45,7 @@ prescriptive detail.
|
|||
Feature freeze should be performed on all repos. In order to start the feature
|
||||
freeze period, the following conditions should be met:
|
||||
|
||||
* All expected features should be
|
||||
["complete"](https://github.com/crossplane/crossplane/blob/master/design/one-pager-definition-of-done.md)
|
||||
and merged into main development branch. This includes user guides, examples,
|
||||
API documentation, and test updates.
|
||||
|
||||
* All issues in the
|
||||
[milestone](https://github.com/crossplane/crossplane/milestones) should be
|
||||
closed
|
||||
|
@ -167,7 +164,7 @@ For all repos with Helm charts:
|
|||
* [Helm chart repository](https://charts.crossplane.io/)
|
||||
|
||||
For crossplane/crossplane:
|
||||
* [Docs website](https://crossplane.io/docs/latest)
|
||||
* [Docs website](https://docs.crossplane.io)
|
||||
* [Configuration Packages](https://marketplace.upbound.io)
|
||||
|
||||
### Tag Next Pre-release
|
|
@ -75,7 +75,7 @@ plane.
|
|||
<!-- Named Links -->
|
||||
|
||||
[Open Service Broker]: https://www.openservicebrokerapi.org/
|
||||
[Kubernetes Service Catalog]: https://kubernetes.io/docs/concepts/extend-kubernetes/service-catalog/
|
||||
[Kubernetes Service Catalog]: https://github.com/kubernetes-retired/service-catalog
|
||||
[GCP OSB]: https://cloud.google.com/kubernetes-engine/docs/concepts/google-cloud-platform-service-broker
|
||||
[GCP Config Connector]: https://github.com/GoogleCloudPlatform/k8s-config-connector
|
||||
[AWS Controllers for Kubernetes]: https://github.com/aws-controllers-k8s/community
|
|
@ -3,7 +3,7 @@ title: Getting Started
|
|||
weight: 4
|
||||
---
|
||||
|
||||

|
||||
{{< img src="../media/banner.png" alt="Crossplane Popsicle Truck" size="large" >}}
|
||||
|
||||
Crossplane is an open source Kubernetes add-on that transforms your cluster into
|
||||
a **universal control plane**. Crossplane enables platform teams to assemble
|
||||
|
@ -13,12 +13,7 @@ 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 "install-configure" >}}) 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 -->
|
||||
|
||||
|
||||
[cncf]: https://www.cncf.io/
|
||||
Crossplane is a [Cloud Native Compute Foundation](https://www.cncf.io/) project.
|
|
@ -103,15 +103,8 @@ this by defining a `Composition` that can satisfy the XR we defined above. In
|
|||
this case, our `Composition` will specify how to provision a public PostgreSQL
|
||||
instance on the chosen provider.
|
||||
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#aws-tab-2" data-toggle="tab">AWS (Default VPC)</a></li>
|
||||
<li><a href="#aws-new-tab-2" data-toggle="tab">AWS (New VPC)</a></li>
|
||||
<li><a href="#gcp-tab-2" data-toggle="tab">GCP</a></li>
|
||||
<li><a href="#azure-tab-2" data-toggle="tab">Azure</a></li>
|
||||
</ul>
|
||||
<br>
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane fade in active" id="aws-tab-2" markdown="1">
|
||||
{{< tabs >}}
|
||||
{{< tab "AWS (Default VPC)" >}}
|
||||
|
||||
> Note that this Composition will create an RDS instance using your default VPC,
|
||||
> which may or may not allow connections from the internet depending on how it
|
||||
|
@ -168,8 +161,8 @@ spec:
|
|||
curl -OL https://raw.githubusercontent.com/crossplane/crossplane/master/docs/snippets/package/aws/composition.yaml
|
||||
```
|
||||
|
||||
</div>
|
||||
<div class="tab-pane fade" id="aws-new-tab-2" markdown="1">
|
||||
{{< /tab >}}
|
||||
{{< tab "AWS (New VPC)" >}}
|
||||
|
||||
> Note: this `Composition` for AWS also includes several networking managed
|
||||
> resources that are required to provision a publicly available PostgreSQL
|
||||
|
@ -342,8 +335,8 @@ spec:
|
|||
curl -OL https://raw.githubusercontent.com/crossplane/crossplane/master/docs/snippets/package/aws-with-vpc/composition.yaml
|
||||
```
|
||||
|
||||
</div>
|
||||
<div class="tab-pane fade" id="gcp-tab-2" markdown="1">
|
||||
{{< /tab >}}
|
||||
{{< tab "GCP" >}}
|
||||
|
||||
```yaml
|
||||
apiVersion: apiextensions.crossplane.io/v1
|
||||
|
@ -398,8 +391,8 @@ spec:
|
|||
curl -OL https://raw.githubusercontent.com/crossplane/crossplane/master/docs/snippets/package/gcp/composition.yaml
|
||||
```
|
||||
|
||||
</div>
|
||||
<div class="tab-pane fade" id="azure-tab-2" markdown="1">
|
||||
{{< /tab >}}
|
||||
{{< tab "Azure" >}}
|
||||
|
||||
> Note: the `Composition` for Azure also includes a `ResourceGroup` and
|
||||
> `PostgreSQLServerFirewallRule` that are required to provision a publicly
|
||||
|
@ -484,58 +477,8 @@ spec:
|
|||
curl -OL https://raw.githubusercontent.com/crossplane/crossplane/master/docs/snippets/package/azure/composition.yaml
|
||||
```
|
||||
|
||||
</div>
|
||||
<div class="tab-pane fade" id="alibaba-tab-2" markdown="1">
|
||||
|
||||
```yaml
|
||||
apiVersion: apiextensions.crossplane.io/v1
|
||||
kind: Composition
|
||||
metadata:
|
||||
name: xpostgresqlinstances.alibaba.database.example.org
|
||||
labels:
|
||||
provider: alibaba
|
||||
guide: quickstart
|
||||
spec:
|
||||
writeConnectionSecretsToNamespace: crossplane-system
|
||||
compositeTypeRef:
|
||||
apiVersion: database.example.org/v1alpha1
|
||||
kind: XPostgreSQLInstance
|
||||
resources:
|
||||
- name: rdsinstance
|
||||
base:
|
||||
apiVersion: database.alibaba.crossplane.io/v1alpha1
|
||||
kind: RDSInstance
|
||||
spec:
|
||||
forProvider:
|
||||
engine: PostgreSQL
|
||||
engineVersion: "9.4"
|
||||
dbInstanceClass: rds.pg.s1.small
|
||||
securityIPList: "0.0.0.0/0"
|
||||
masterUsername: "myuser"
|
||||
writeConnectionSecretToRef:
|
||||
namespace: crossplane-system
|
||||
patches:
|
||||
- fromFieldPath: "metadata.uid"
|
||||
toFieldPath: "spec.writeConnectionSecretToRef.name"
|
||||
transforms:
|
||||
- type: string
|
||||
string:
|
||||
fmt: "%s-postgresql"
|
||||
- fromFieldPath: "spec.parameters.storageGB"
|
||||
toFieldPath: "spec.forProvider.dbInstanceStorageInGB"
|
||||
connectionDetails:
|
||||
- fromConnectionSecretKey: username
|
||||
- fromConnectionSecretKey: password
|
||||
- fromConnectionSecretKey: endpoint
|
||||
- fromConnectionSecretKey: port
|
||||
```
|
||||
|
||||
```console
|
||||
curl -OL https://raw.githubusercontent.com/crossplane/crossplane/master/docs/snippets/package/alibaba/composition.yaml
|
||||
```
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{{< /tab >}}
|
||||
{{< /tabs >}}
|
||||
|
||||
## Build and Push The Configuration
|
||||
|
||||
|
@ -546,15 +489,8 @@ so that Crossplane users may install it.
|
|||
> Hub] by default. You may need to run `docker login` before you are able to
|
||||
> push a package.
|
||||
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#aws-tab-3" data-toggle="tab">AWS (Default VPC)</a></li>
|
||||
<li><a href="#aws-new-tab-3" data-toggle="tab">AWS (New VPC)</a></li>
|
||||
<li><a href="#gcp-tab-3" data-toggle="tab">GCP</a></li>
|
||||
<li><a href="#azure-tab-3" data-toggle="tab">Azure</a></li>
|
||||
</ul>
|
||||
<br>
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane fade in active" id="aws-tab-3" markdown="1">
|
||||
{{< tabs >}}
|
||||
{{< tab "AWS (Default VPC)" >}}
|
||||
|
||||
```yaml
|
||||
apiVersion: meta.pkg.crossplane.io/v1
|
||||
|
@ -587,14 +523,14 @@ you may specify a specific package by using the `-f` flag.
|
|||
```console
|
||||
# Set this to the Docker Hub username or OCI registry you wish to use.
|
||||
REG=my-package-repo
|
||||
kubectl crossplane push configuration ${REG}/getting-started-with-aws:master
|
||||
kubectl crossplane push configuration ${REG}/getting-started-with-aws:v1.10.1
|
||||
```
|
||||
|
||||
> Note that the Crossplane CLI will not follow symbolic links for files in the
|
||||
> root package directory.
|
||||
|
||||
</div>
|
||||
<div class="tab-pane fade" id="aws-new-tab-3" markdown="1">
|
||||
{{< /tab >}}
|
||||
{{< tab "AWS (New VPC)" >}}
|
||||
|
||||
```yaml
|
||||
apiVersion: meta.pkg.crossplane.io/v1
|
||||
|
@ -627,14 +563,14 @@ you may specify a specific package by using the `-f` flag.
|
|||
```console
|
||||
# Set this to the Docker Hub username or OCI registry you wish to use.
|
||||
REG=my-package-repo
|
||||
kubectl crossplane push configuration ${REG}/getting-started-with-aws-with-vpc:master
|
||||
kubectl crossplane push configuration ${REG}/getting-started-with-aws-with-vpc:v1.10.1
|
||||
```
|
||||
|
||||
> Note that the Crossplane CLI will not follow symbolic links for files in the
|
||||
> root package directory.
|
||||
|
||||
</div>
|
||||
<div class="tab-pane fade" id="gcp-tab-3" markdown="1">
|
||||
{{< /tab >}}
|
||||
{{< tab "GCP" >}}
|
||||
|
||||
```yaml
|
||||
apiVersion: meta.pkg.crossplane.io/v1
|
||||
|
@ -666,14 +602,14 @@ you may specify a specific package by using the `-f` flag.
|
|||
```console
|
||||
# Set this to the Docker Hub username or OCI registry you wish to use.
|
||||
REG=my-package-repo
|
||||
kubectl crossplane push configuration ${REG}/getting-started-with-gcp:master
|
||||
kubectl crossplane push configuration ${REG}/getting-started-with-gcp:v1.10.1
|
||||
```
|
||||
|
||||
> Note that the Crossplane CLI will not follow symbolic links for files in the
|
||||
> root package directory.
|
||||
|
||||
</div>
|
||||
<div class="tab-pane fade" id="azure-tab-3" markdown="1">
|
||||
{{< /tab >}}
|
||||
{{< tab "Azure" >}}
|
||||
|
||||
```yaml
|
||||
apiVersion: meta.pkg.crossplane.io/v1
|
||||
|
@ -705,14 +641,14 @@ you may specify a specific package by using the `-f` flag.
|
|||
```console
|
||||
# Set this to the Docker Hub username or OCI registry you wish to use.
|
||||
REG=my-package-repo
|
||||
kubectl crossplane push configuration ${REG}/getting-started-with-azure:master
|
||||
kubectl crossplane push configuration ${REG}/getting-started-with-azure:v1.10.1
|
||||
```
|
||||
|
||||
> Note that the Crossplane CLI will not follow symbolic links for files in the
|
||||
> root package directory.
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{{< /tab >}}
|
||||
{{< /tabs >}}
|
||||
|
||||
That's it! You've now built and pushed your package. Take a look at the
|
||||
Crossplane [packages] documentation for more information about installing and
|
|
@ -30,16 +30,9 @@ This means that we can create a `PostgreSQLInstance` XRC in the `default`
|
|||
namespace to provision a PostgreSQL instance and all the supporting
|
||||
infrastructure (VPCs, firewall rules, resource groups, etc) that it may need!
|
||||
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#aws-tab-2" data-toggle="tab">AWS (Default VPC)</a></li>
|
||||
<li><a href="#aws-new-tab-2" data-toggle="tab">AWS (New VPC)</a></li>
|
||||
<li><a href="#gcp-tab-2" data-toggle="tab">GCP</a></li>
|
||||
<li><a href="#azure-tab-2" data-toggle="tab">Azure</a></li>
|
||||
</ul>
|
||||
<br>
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane fade in active" id="aws-tab-2" markdown="1">
|
||||
{{< tabs >}}
|
||||
|
||||
{{< tab "AWS (Default VPC)" >}}
|
||||
> Note that this resource will create an RDS instance using your default VPC,
|
||||
> which may or may not allow connections from the internet depending on how it
|
||||
> is configured.
|
||||
|
@ -65,8 +58,9 @@ spec:
|
|||
kubectl apply -f https://raw.githubusercontent.com/crossplane/crossplane/master/docs/snippets/compose/claim-aws.yaml
|
||||
```
|
||||
|
||||
</div>
|
||||
<div class="tab-pane fade" id="aws-new-tab-2" markdown="1">
|
||||
{{< /tab >}}
|
||||
|
||||
{{< tab "AWS (New VPC)" >}}
|
||||
|
||||
> Note that this resource also includes several networking managed resources
|
||||
> that are required to provision a publicly available PostgreSQL instance.
|
||||
|
@ -94,8 +88,8 @@ spec:
|
|||
kubectl apply -f https://raw.githubusercontent.com/crossplane/crossplane/master/docs/snippets/compose/claim-aws-new.yaml
|
||||
```
|
||||
|
||||
</div>
|
||||
<div class="tab-pane fade" id="gcp-tab-2" markdown="1">
|
||||
{{< /tab >}}
|
||||
{{< tab "GCP Azure" >}}
|
||||
|
||||
```yaml
|
||||
apiVersion: database.example.org/v1alpha1
|
||||
|
@ -117,8 +111,8 @@ spec:
|
|||
kubectl apply -f https://raw.githubusercontent.com/crossplane/crossplane/master/docs/snippets/compose/claim-gcp.yaml
|
||||
```
|
||||
|
||||
</div>
|
||||
<div class="tab-pane fade" id="azure-tab-2" markdown="1">
|
||||
{{< /tab >}}
|
||||
{{< tab "Azure" >}}
|
||||
|
||||
```yaml
|
||||
apiVersion: database.example.org/v1alpha1
|
||||
|
@ -140,8 +134,9 @@ spec:
|
|||
kubectl apply -f https://raw.githubusercontent.com/crossplane/crossplane/master/docs/snippets/compose/claim-azure.yaml
|
||||
```
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{{< /tab >}}
|
||||
{{< /tabs >}}
|
||||
|
||||
|
||||
After creating the `PostgreSQLInstance` Crossplane will begin provisioning a
|
||||
database instance on your provider of choice. Once provisioning is complete, you
|
|
@ -57,4 +57,3 @@ data:
|
|||
- apigateway.aws.upbound.io
|
||||
- cloudwatch.aws.upbound.io
|
||||
```
|
||||
|
|
@ -331,7 +331,7 @@ This way even a tight integration of Crossplane in to [Cloudfoundry] is possible
|
|||
[OCI images]: https://github.com/opencontainers/image-spec
|
||||
[EKS Cluster]: https://marketplace.upbound.io/providers/crossplane-contrib/provider-aws/latest/resources/eks.aws.crossplane.io/Cluster/v1beta1
|
||||
[provider-aws]: https://marketplace.upbound.io/providers/crossplane-contrib/provider-aws
|
||||
[provider-helm]: https://marketplace.upbound.io/providerscrossplane-contrib/provider-helm
|
||||
[provider-helm]: https://marketplace.upbound.io/providers/crossplane-contrib/provider-helm/
|
||||
[Open Service Broker API]: https://github.com/openservicebrokerapi/servicebroker
|
||||
[Crossplane Service Broker]: https://github.com/vshn/crossplane-service-broker
|
||||
[Cloudfoundry]: https://www.cloudfoundry.org/
|
|
@ -92,14 +92,8 @@ The next steps will be executed in your local environment.
|
|||
```console
|
||||
exit
|
||||
```
|
||||
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#aws-tab-1" data-toggle="tab">AWS</a></li>
|
||||
<li><a href="#gcp-tab-1" data-toggle="tab">GCP</a></li>
|
||||
</ul>
|
||||
<br>
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane fade" id="gcp-tab-1" markdown="1">
|
||||
{{< tabs >}}
|
||||
{{<tab "GCP" >}}
|
||||
|
||||
## Create GCP Service Account
|
||||
|
||||
|
@ -182,8 +176,8 @@ ahead and clean it up.
|
|||
rm tmp/creds.json
|
||||
```
|
||||
|
||||
</div>
|
||||
<div class="tab-pane fade in active" id="aws-tab-1" markdown="1">
|
||||
{{< /tab >}}
|
||||
{{< tab "AWS" >}}
|
||||
|
||||
## Create AWS IAM User
|
||||
|
||||
|
@ -237,8 +231,8 @@ injecting it into the `provider-aws` controller `Pod`.
|
|||
vault kv put secret/provider-creds/aws-default access_key="$ACCESS_KEY_ID" secret_key="$AWS_SECRET_ACCESS_KEY"
|
||||
```
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{{< /tab >}}
|
||||
{{< /tabs >}}
|
||||
|
||||
## Create a Vault Policy for Reading Provider Credentials
|
||||
|
||||
|
@ -279,14 +273,8 @@ The next steps will be executed in your local environment.
|
|||
exit
|
||||
```
|
||||
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#aws-tab-2" data-toggle="tab">AWS</a></li>
|
||||
<li><a href="#gcp-tab-2" data-toggle="tab">GCP</a></li>
|
||||
</ul>
|
||||
<br>
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane fade" id="gcp-tab-2" markdown="1">
|
||||
|
||||
{{< tabs >}}
|
||||
{{< tab "GCP" >}}
|
||||
## Install provider-gcp
|
||||
|
||||
You are now ready to install `provider-gcp`. Crossplane provides a
|
||||
|
@ -299,7 +287,6 @@ injected into the container filesystem by assuming role `crossplane-providers`.
|
|||
There is also so template formatting added to make sure the secret data is
|
||||
presented in a form that `provider-gcp` is expecting.
|
||||
|
||||
{% raw %}
|
||||
```console
|
||||
echo "apiVersion: pkg.crossplane.io/v1alpha1
|
||||
kind: ControllerConfig
|
||||
|
@ -325,7 +312,6 @@ spec:
|
|||
controllerConfigRef:
|
||||
name: vault-config" | kubectl apply -f -
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
## Configure provider-gcp
|
||||
|
||||
|
@ -390,8 +376,8 @@ command:
|
|||
kubectl get cloudsqlinstance -w
|
||||
```
|
||||
|
||||
</div>
|
||||
<div class="tab-pane fade in active" id="aws-tab-2" markdown="1">
|
||||
{{< /tab >}}
|
||||
{{< tab "AWS" >}}
|
||||
|
||||
## Install provider-aws
|
||||
|
||||
|
@ -405,7 +391,6 @@ injected into the container filesystem by assuming role `crossplane-providers`.
|
|||
There is also some template formatting added to make sure the secret data is
|
||||
presented in a form that `provider-aws` is expecting.
|
||||
|
||||
{% raw %}
|
||||
```console
|
||||
echo "apiVersion: pkg.crossplane.io/v1alpha1
|
||||
kind: ControllerConfig
|
||||
|
@ -435,7 +420,6 @@ spec:
|
|||
controllerConfigRef:
|
||||
name: aws-vault-config" | kubectl apply -f -
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
## Configure provider-aws
|
||||
|
||||
|
@ -496,8 +480,8 @@ command:
|
|||
kubectl get bucket -w
|
||||
```
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{{< /tab >}}
|
||||
{{< /tabs >}}
|
||||
|
||||
<!-- named links -->
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
toc_hide: true
|
||||
tocHidden: true
|
||||
---
|
||||
# Crossplane Documentation Media
|
||||
|
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,3 +1,6 @@
|
|||
---
|
||||
tocHidden: true
|
||||
---
|
||||
# Overview
|
||||
|
||||

|
|
@ -1,14 +1,12 @@
|
|||
---
|
||||
title: "Overview"
|
||||
weight: -1
|
||||
toc_include: false
|
||||
aliases:
|
||||
- /docs/v1.10/index.html
|
||||
cascade:
|
||||
version: "1.10"
|
||||
---
|
||||
|
||||

|
||||
{{< img src="media/banner.png" alt="Crossplane Popsicle Truck" eager=true >}}
|
||||
|
||||
|
||||
Crossplane is an open source Kubernetes add-on that transforms your cluster into
|
||||
a **universal control plane**. Crossplane enables platform teams to assemble
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: Adding Amazon Web Services (AWS) to Crossplane
|
||||
toc_hide: true
|
||||
tocHidden: true
|
||||
---
|
||||
|
||||
In this guide, we will walk through the steps necessary to configure your AWS
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: Adding Microsoft Azure to Crossplane
|
||||
toc_hide: true
|
||||
tocHidden: true
|
||||
---
|
||||
|
||||
In this guide, we will walk through the steps necessary to configure your Azure
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: Adding Google Cloud Platform (GCP) to Crossplane
|
||||
toc_hide: true
|
||||
tocHidden: true
|
||||
---
|
||||
|
||||
|
|
@ -241,10 +241,10 @@ scenarios, including:
|
|||
take minutes to provision on-demand.
|
||||
|
||||
[managed-resources]: {{<ref "managed-resources" >}}
|
||||
[xrs-and-mrs]: /docs/master/media/composition-xrs-and-mrs.svg
|
||||
[xrs-and-mrs]: /v1.10/media/composition-xrs-and-mrs.svg
|
||||
[xr-ref]: {{<ref "../reference/composition" >}}
|
||||
[how-it-works]: /docs/master/media/composition-how-it-works.svg
|
||||
[how-it-works]: /v1.10/media/composition-how-it-works.svg
|
||||
[crd-docs]: https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/
|
||||
[provider-kubernetes]: https://marketplace.upbound.io/providers/crossplane-contrib/provider-kubernetes
|
||||
[provider-helm]: https://marketplace.upbound.io/providers/crossplane-contrib/provider-helm
|
||||
[claims-and-xrs]: /docs/master/media/composition-claims-and-xrs.svg
|
||||
[provider-helm]: https://marketplace.upbound.io/providers/crossplane-contrib/provider-helm/
|
||||
[claims-and-xrs]: /v1.10/media/composition-claims-and-xrs.svg
|
|
@ -25,14 +25,8 @@ Composite Resources or XRs - not used directly. See the
|
|||
Crossplane API conventions extend the Kubernetes API conventions for the schema
|
||||
of Crossplane managed resources. Following is an example of a managed resource:
|
||||
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#aws-tab-1" data-toggle="tab">AWS</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>
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane fade in active" id="aws-tab-1" markdown="1">
|
||||
{{< tabs >}}
|
||||
{{< tab "AWS" >}}
|
||||
|
||||
The AWS provider supports provisioning an [RDS][rds] instance via the `RDSInstance`
|
||||
managed resource it adds to Crossplane.
|
||||
|
@ -81,8 +75,8 @@ You can then delete the `RDSInstance`:
|
|||
kubectl delete rdsinstance rdspostgresql
|
||||
```
|
||||
|
||||
</div>
|
||||
<div class="tab-pane fade" id="gcp-tab-1" markdown="1">
|
||||
{{< /tab >}}
|
||||
{{< tab "GCP" >}}
|
||||
|
||||
The GCP provider supports provisioning a [CloudSQL][cloudsql] instance with the
|
||||
`CloudSQLInstance` managed resource it adds to Crossplane.
|
||||
|
@ -130,8 +124,8 @@ You can then delete the `CloudSQLInstance`:
|
|||
kubectl delete cloudsqlinstance cloudsqlpostgresql
|
||||
```
|
||||
|
||||
</div>
|
||||
<div class="tab-pane fade" id="azure-tab-1" markdown="1">
|
||||
{{< /tab >}}
|
||||
{{< tab "Azure" >}}
|
||||
|
||||
The Azure provider supports provisioning an [Azure Database for PostgreSQL]
|
||||
instance with the `PostgreSQLServer` managed resource it adds to Crossplane.
|
||||
|
@ -199,8 +193,8 @@ kubectl delete postgresqlserver sqlserverpostgresql
|
|||
kubectl delete resourcegroup sqlserverpostgresql-rg
|
||||
```
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{{< /tab >}}
|
||||
{{< /tabs >}}
|
||||
|
||||
In Kubernetes, `spec` top field represents the desired state of the user.
|
||||
Crossplane adheres to that and has its own conventions about how the fields
|