-
Notifications
You must be signed in to change notification settings - Fork 64
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #115 from vmware-tanzu/docs-oss-template
Adding new Hugo Template and Updating Docs
- Loading branch information
Showing
156 changed files
with
4,329 additions
and
147 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# Website for [Template] | ||
|
||
##### Prerequisites | ||
|
||
* [Hugo](https://github.com/gohugoio/hugo) | ||
* macOS: `brew install hugo` | ||
* Windows: `choco install hugo-extended -confirm` | ||
|
||
#### Build | ||
|
||
```bash | ||
hugo server --disableFastRender | ||
``` | ||
|
||
#### Serve | ||
|
||
Serve site at http://localhost:1313 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
--- | ||
title: "{{ replace .Name "-" " " | title }}" | ||
date: {{ .Date }} | ||
draft: true | ||
--- | ||
|
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
# Copyright 2021 VMware | ||
# | ||
# 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. | ||
|
||
baseURL: "https://template.dev/" | ||
languageCode: "en-us" | ||
title: "Cartographer" | ||
theme: "template" | ||
outputs: | ||
home: [ "HTML", "REDIRECTS" ] | ||
pygmentsCodefences: true | ||
pygmentsStyle: "pygments" | ||
markup: | ||
highlight: | ||
anchorLineNos: false | ||
codeFences: true | ||
guessSyntax: false | ||
hl_Lines: "" | ||
lineAnchors: "" | ||
lineNoStart: 1 | ||
lineNos: false | ||
lineNumbersInTable: true | ||
noClasses: true | ||
style: native | ||
tabWidth: 4 | ||
menu: | ||
docs: | ||
- name: Overview | ||
url: /docs/ | ||
# weight: 100 | ||
# - name: Architecture | ||
# url: /docs/architecture/ | ||
# name: Demo | ||
# url: /docs/demo/ | ||
# - name: Scope | ||
# url: /docs/scope/ | ||
# - name: Update Images | ||
# url: /docs/contributing/ | ||
params: | ||
twitter_url: "https://twitter.com/" | ||
github_url: "https://github.com/vmware-tanzu/cartographer" | ||
slack_url: "https://slack.com/" | ||
github_base_url: "https://github.com/vmware-tanzu/cartographer" | ||
use_advanced_docs: true | ||
docs_right_sidebar: true | ||
docs_search: false | ||
docs_search_index_name: index_name | ||
docs_search_api_key: api_key | ||
docs_versioning: true | ||
docs_latest: v0.0.6 | ||
docs_versions: | ||
- v0.0.6 | ||
mediaTypes: | ||
"text/netlify": | ||
delimiter: "" | ||
outputFormats: | ||
REDIRECTS: | ||
mediaType: "text/netlify" | ||
baseName: "_redirects" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
<!-- | ||
Copyright 2021 VMware | ||
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. | ||
--> | ||
|
||
--- | ||
title: "Community" | ||
layout: section | ||
--- | ||
|
||
<div class="hero subpage-hero"> | ||
<div class="wrapper"> | ||
<h1>Community</h1> | ||
</div> | ||
</div> | ||
<div class="wrapper subpage"> | ||
<h2>Donec ac odio tempor orci dapibus?</h2> | ||
<div class="grid three"> | ||
<div class="col"> | ||
<div class="icon"> | ||
<img src="/img/github-image.svg" /> | ||
</div> | ||
<div class="content"> | ||
<h3><a href="https://github.com/">Fringilla urna</a></h3> | ||
<p>Egestas erat imperdiet sed euismod nisi porta. Risus in hendrerit gravida rutrum.</p> | ||
</div> | ||
</div> | ||
<div class="col"> | ||
<div class="icon"> | ||
<img src="/img/slack.svg" /> | ||
</div> | ||
<div class="content"> | ||
<h3><a href="https://slack.com/">At tempor commodo ullam</a></h3> | ||
<p>Aliquam vestibulum morbi blandit cursus risus at ultrices</p> | ||
</div> | ||
</div> | ||
<div class="col"> | ||
<div class="icon"> | ||
<img src="/img/calendar.svg" /> | ||
</div> | ||
<div class="content"> | ||
<h3><a href="#">Et malesuada fames ac</a></h3> | ||
<p>Nisi porta lorem mollis aliquam ut porttitor leo. Integer vitae justo eget</p> | ||
</div> | ||
</div> | ||
</div> | ||
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
--- | ||
headless: true | ||
--- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
--- | ||
first_name: John | ||
last_name: Doe | ||
image: https://via.placeholder.com/80x80.png?text=JD1 | ||
--- | ||
John is a great developer |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
--- | ||
first_name: John | ||
last_name: Doe 2 | ||
image: https://via.placeholder.com/80x80.png?text=JD2 | ||
--- | ||
John is a great developer |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
--- | ||
first_name: John | ||
last_name: Doe 3 | ||
image: https://via.placeholder.com/80x80.png?text=JD3 | ||
--- | ||
John is a great developer |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
--- | ||
first_name: John | ||
last_name: Doe 4 | ||
image: https://via.placeholder.com/80x80.png?text=JD4 | ||
--- | ||
John is a great developer |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
--- | ||
first_name: John | ||
last_name: Doe | ||
image: https://via.placeholder.com/80x80.png?text=JD5 | ||
--- | ||
John is a great developer |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
--- | ||
version: v0.0.6 | ||
cascade: | ||
layout: docs | ||
--- | ||
|
||
## TLDR | ||
|
||
Cartographer is a Kubernetes native Supply Chain Choreographer. It allows App Operators to create pre-approved paths to production by integrating k8s resources with the elements of their existing toolchains (e.g. Jenkins). | ||
|
||
Each pre-approved supply chain creates a paved road to production; orchestrating supply chain components - test, build, scan, and deploy - allowing developers to be able to focus on delivering value to their users while also providing App Operators with the peace of mind that all code in production has passed through all of the steps of an approved workflow. | ||
|
||
## Cartographer Design and Philosophy | ||
|
||
Cartographer is a Kubernetes (K8s) native supply chain choreographer. In other words, Cartographer allows users to define all of the steps that an application must go through before reaching a production environment. Users can codify their paths to production using two abstractions: | ||
|
||
* Supply Chain ([Spec Reference](reference.md/#clustersupplychain)) | ||
<!-- * Deliverable ([Spec Reference](reference.md)) --> | ||
|
||
The supply chain allows users to define the steps that an application must pass through in order to create an image. The deliverable portion of a Cartographer workflow allows the user to define the steps that the built image must pass through. By combining supply chains with delivery, the entire path to production can be specified and thereby choreographed by Cartographer. | ||
|
||
The supply chain and delivery are not bound to a single cluster. Cartographer embraces a gitOps approach for image promotion across clusters - a gitOps repo is used to track the Kubernetes configuration that corresponds to a given application. The delivery portion will watch that same gitOps repository and initiate the second half of the path to prod whenever a new configuration is pushed to the repository. | ||
|
||
Both the supply chain and delivery consist of components that are specified via Templates. Each template acts as a wrapper for existing Kubernetes resources and allows them to be used with Cartographer. There are currently four different types of templates that can be use in a Cartographer supply chain or deliverable: | ||
|
||
* Source Template ([Spec Reference](reference.md/#clustersourcetemplate)) | ||
* Image Template ([Spec Reference](reference.md/#clusterimagetemplate)) | ||
* Opinion Template ([Spec Reference](reference.md/#clusterconfigtemplate)) | ||
* Cluster Config Template ([Spec Reference](reference.md/#clustertemplate)) | ||
|
||
Contrary to many other Kubernetes native workflow tools that already exist in the market, Cartographer does not “run” any of the objects themselves. Instead, it monitors the execution of each component and templates the following component in the supply chain or delivery after a given component has completed execution and updated its status. | ||
|
||
The supply chain and delivery may also be extended to include integrations to existing CI and CD pipelines by using the Pipeline Service (which is part of Cartographer Core). The Pipeline Service acts as a wrapper for existing CI and CD tooling (with support for Tekton and Jenkins, and with supporting more providers in the future) and provides a declarative way for pipelines to be run inside of Cartographer. | ||
|
||
While the supply chain and delivery are both operator facing, Cartographer also provides an abstraction for developers called workloads ([Spec Reference](reference.md/#workload)). Workloads allow developers to specify application specifications such as the location of their repository, environment variables and service claims. | ||
|
||
By design, supply chains can be reused by many workloads. This allows an operator to specify the steps in the path to production a single time, and for developers to specify their applications independently but for each to use the same path to production. The intent is that developers are able to focus on providing value for their users and can reach production quickly and easily, while providing peace of mind for app operators, who are ensured that each application has passed through the steps of the path to production that they’ve defined. | ||
|
||
![Cartographer High Level Diagram](img/ownership-flow.png) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,96 +1,3 @@ | ||
# Installing Cartographer | ||
|
||
## Pre-requisites | ||
|
||
- Running kubernetes cluster (v1.18+) | ||
- [cert-manager]: necessary for setting up certificates for the controller's [admission webhook] | ||
|
||
|
||
## Steps | ||
|
||
0. Clone the repository | ||
|
||
```bash | ||
kubectl apply -f https://github.com/vmware-tanzu/cartographer/releases/download/v0.0.3/release.yaml | ||
``` | ||
|
||
1. Create the `cartographer-system` namespace | ||
|
||
```bash | ||
kubectl create namespace cartographer-system | ||
``` | ||
|
||
2. Submit the Kubernetes objects that will extend Kubernetes and run the | ||
controller inside the cluster | ||
|
||
you can do so either via plain `kubectl` | ||
|
||
```bash | ||
kubectl apply -f ./releases/release.yaml | ||
``` | ||
|
||
or, better, with `kapp`: | ||
|
||
```shell | ||
$ kapp deploy -a cartographer -f ./releases/release.yaml | ||
|
||
Target cluster 'https://127.0.0.1:53218' (nodes: kind-control-plane) | ||
|
||
Changes | ||
|
||
Namespace Name Kind Conds. Age Op Op st. Wait to Rs Ri | ||
(cluster) clusterimagetemplates.carto.run CustomResourceDefinition - - create - reconcile - - | ||
^ clustertemplates.carto.run CustomResourceDefinition - - create - reconcile - - | ||
^ clusterconfigtemplates.carto.run CustomResourceDefinition - - create - reconcile - - | ||
^ clustersourcetemplates.carto.run CustomResourceDefinition - - create - reconcile - - | ||
^ clustersupplychains.carto.run CustomResourceDefinition - - create - reconcile - - | ||
^ deliverables.carto.run CustomResourceDefinition - - create - reconcile - - | ||
^ cartographer-cluster-admin ClusterRoleBinding - - create - reconcile - - | ||
^ workloads.carto.run CustomResourceDefinition - - create - reconcile - - | ||
cartographer-system cartographer-controller Deployment - - create - reconcile - - | ||
^ cartographer-controller ServiceAccount - - create - reconcile - - | ||
|
||
Op: 10 create, 0 delete, 0 update, 0 noop | ||
Wait to: 10 reconcile, 0 delete, 0 noop | ||
|
||
Continue? [yN]: y | ||
|
||
11:01:49AM: ---- applying 9 changes [0/10 done] ---- | ||
... | ||
11:01:58AM: ok: reconcile deployment/cartographer-controller (apps/v1) namespace: cartographer-system | ||
11:01:58AM: ---- applying complete [10/10 done] ---- | ||
11:01:58AM: ---- waiting complete [10/10 done] ---- | ||
|
||
Succeeded | ||
``` | ||
|
||
Remember: to properly install `cartographer` you must have already have | ||
[cert-manager] installed. Below you'll find a suggestion of how you can do it, | ||
but make sure you check their documentation: | ||
|
||
```bash | ||
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.2.0/cert-manager.yaml | ||
|
||
# or, better with kapp | ||
# | ||
kapp deploy -a cert-manager \ | ||
-f https://github.com/jetstack/cert-manager/releases/download/v1.2.0/cert-manager.yaml | ||
``` | ||
|
||
|
||
## Uninstalling | ||
|
||
With plain `kubectl`: | ||
|
||
```bash | ||
kubectl delete -f ./releases/release.yaml | ||
``` | ||
|
||
with `kapp`: | ||
|
||
```bash | ||
kapp delete -a cartographer | ||
``` | ||
|
||
[cert-manager]: https://github.com/jetstack/cert-manager | ||
[admission webhook]: https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/ | ||
Check out [Cartographer on GitHub](https://github.com/vmware-tanzu/cartographer) for information regarding installation. |
Oops, something went wrong.