-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Updated structure for CD docs #242
Merged
Merged
Changes from all commits
Commits
Show all changes
16 commits
Select commit
Hold shift + click to select a range
3fe38fe
updated structure for CD docs
swoodward90 55f6c2a
added browser quickstart
swoodward90 4ef07a1
first deployments pages
swoodward90 e312226
ran `yarn fix`
dogmar 88e5e5d
first version of eployments section
swoodward90 ea453ac
Merge branch 'swoodward/cd-docs' of github.com:pluralsh/documentation…
swoodward90 04841d2
add docs for byok, architecture, etc
michaeljguarino 8950525
add some more cluster docs
michaeljguarino 02cd15a
add some more docs for cluster mgmt and add ons
michaeljguarino c2d9b9e
added deprecations page
swoodward90 bc6f2e0
updated introduction + cleanup
swoodward90 e503d7c
remaining cleanup
swoodward90 e18e900
added first cli quickstart and update browser quickstart for CD
swoodward90 3336fc6
Fix babel vulnerability
dogmar 51a73bb
Typo
dogmar 1590f25
add github actions example
michaeljguarino File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
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
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
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
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
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 @@ | ||
--- | ||
title: Kubernetes Add-Ons | ||
description: Extend Kubernetes to support load balancing, dns, monitoring and security | ||
--- | ||
|
||
Kubernetes natively is just a container orchestrator, but it's apis can be easily extended to support many other major concerns within the DevOps space. Some of the more common usecases we currently support are: | ||
|
||
- Networking - you need load balancers, dns, and cert management to build a full production service exposed to the outside world. We can deploy all the operators and controllers needed to get this set up in a fully self-service way. | ||
- Monitoring - inject agents from Datadog, New Relic, Prometheus and other providers to provide observability to your fleet | ||
- Security - tools like Trivy and Kubescape can continuously monitor clusters for vulnerabilities and enhance your security posture. | ||
- Cost Monitoring - deploy the kubecost agent to give you coherent cost dashboards for your entire fleet | ||
|
||
All of these will be constantly updated and maintained by us, you just need to perform the initial configuration via our wizards. | ||
|
||
You can see all the addons we support in the `Add Ons` tab of Plural Deployments, as seen here: | ||
|
||
![](/assets/deployments/addons.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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
--- | ||
title: Plural CD Architecture | ||
description: Secure, Scalable Pull-Based Architecture | ||
--- | ||
|
||
## Overview | ||
|
||
Plural CD is based on a scalable, secure, agent-based pull architecture. It doesn't require direct access to any of the clusters it deploys to, meaning it can manage workloads in any cloud, on-prem, on the edge, or even on a local laptop running KIND. Further since it doesn't require networking intensive kubernetes watch streams, central access to kubernetes, or relies on single-mastered operator control loops, it should scale to virtually any size kubernetes fleet. We also enhance your kubernetes setup with a auth proxy, allowing you to have full visibility to your workloads without compromising the network security of your setup or require the creation of complex multi-cloud networking setups. | ||
|
||
Here's a quick diagram of the setup: | ||
|
||
![](/assets/deployments/architecture.png) | ||
|
||
## Control Plane | ||
|
||
The Control Plane layer is a full-stack service deployable onto any kubernetes cluster you designate as your management cluster. It contains a few main components: | ||
|
||
- Horizontally scalable git cache - we should be able to ingest as many git repos as you'd like and auto-shard them throughout your cluster automatically and efficiently. | ||
- Configuration Management - supports re-configurable backends, but allows you to easily parameterize services with information like hostnames, docker image tags, and other secret and non-secret information. | ||
- Auth Proxy - this is a secure bidirectional grpc channel initiated by a deployment agent used to make kubernetes api calls no matter where a cluster may live and give you full dashboarding capabilities from the Plural CD UI. | ||
- Cluster API Providers - Plural CD natively integrates with cluster api and allows you to create and manage new clusters at scale and fork your own kubernetes cluster APIs on top of existing setups for services like EKS, AKS and GKE or on-prem solutions like Rancher | ||
|
||
We provide simple installers if you'd like to deploy the control plane layer to a kubernetes cluster already in your fleet, or you can use our own kubernetes setup in the standard plural install flow. | ||
|
||
## Deployment Agent | ||
|
||
A thin deployment agent is installed onto each cluster and perpetually managed by Plural CD from then on. It will perpetually poll the control plane for new services to apply and if there are any changes to make, apply them into your cluster. It also can do a few other things like: | ||
|
||
- establish the bidectional grpc channel for the auth proxy layer (this does require an ingress with websocket support) | ||
- execute integration tests | ||
|
||
There were a few design considerations involved in our agent that are worth understanding as well: | ||
|
||
- The expectation is the agent is deployed independently at scale, potentially hundreds of times for a large organization, so it must be maximally simple to reduce operational complexity to near 0. | ||
- It is designed to be extensible to arbitrarily many frameworks for defining kubernetes manifests. We aren't actually huge fans of helm or kustomize and want organizations to have the flexibility to ultimately use other toolchains for managing their kubernetes YAML codebase (or ultimately de-YAML themselves) |
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,53 @@ | ||
--- | ||
title: Plural CD In-Browser Quickstart | ||
description: Deploying your services using the Plural Console UI. | ||
--- | ||
|
||
## Overview | ||
|
||
This guide goes over how to deploy your services with Plural using the Plural Console UI. At the end of this tutorial, you will have: | ||
|
||
- Provisioned new clusters, and/or deployed the Plural Deployment Operator on your existing clusters. | ||
- Imported the Git repositories containing your code and manifests. | ||
- Deployed your code onto your clusters of choice. | ||
- Optionally updated any configurations and permissions for the clusters and services. | ||
|
||
in under 30 minutes, all within your browser. You can see the process in the video here or follow the instructions step-by-step: | ||
|
||
{% embed url="https://www.youtube.com/watch?v=jBlq45ntbBw" aspectRatio="16 / 9" /%} | ||
|
||
## Onboard to Plural and install the Plural Console | ||
|
||
If you haven't already, you'll need to follow the Plural guide to install Console. You can use the guide for the [in-browser Cloud Shell](/getting-started/cloud-shell-quickstart) or the [CLI](/getting-started/quickstart) to get started. | ||
|
||
## Log in to Console and Add Clusters | ||
|
||
Once you've logged in to Plural Console, you can click the "Continuous deployment" tab to set up your clusters. By default, you should see the cluster that your Console is deployed on. | ||
|
||
To deploy additional clusters, click the "Create cluster" button in the top right. To spin up a new cluster, fill in the required fields: | ||
|
||
![](/assets/deployments/create-cluster.png) | ||
|
||
To import an existing cluster, select the "Import existing" toggle and add a name, handle, and any tags. You then need to run the following command on the cluster itself to install the Plural Deploy Operator: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @michaeljguarino any additional detail here on where to run this command? I can add this to the BYOK section too if helpful |
||
|
||
``` | ||
plural cd install --url https://<CONSOLE_URL>/ext/gql --token <TOKEN> | ||
``` | ||
|
||
Make sure your kubeconfig points to the desired cluster for import. More information is available in the guide for [existing clusters](/deployments/existing-cluster). | ||
|
||
Once you've added the required clusters, you should see them populated on the "Clusters" subtab within your Console. | ||
|
||
## Import Git Repositories and Deploy services | ||
|
||
You'll need to then import the Git repository containing your service and the associated Kubernetes manifests. Click the "Git repositories" subtab, and hit the "Import Git" button in the top right. | ||
|
||
![](/assets/deployments/import-git.png) | ||
|
||
Add the url of the repo and authorization if necessary, and hit import. Once your service is pullable, you can deploy it to your clusters. | ||
|
||
Navigate to the "Services" subtab and click "Deploy service". Add a name and namespace and select the cluster you want to deploy to. You can then select the relevant repository and add any secrets necessary to parameterize the deployment. | ||
|
||
Your service should populate initially as `Stale` until your components are Ready, at which point they will flip to `Healthy`. | ||
|
||
Congratulations! You've deployed your first service with Plural. |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@michaeljguarino just checking that this is true, they'll always at least have their current console cluster visible here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yep