Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 23 additions & 39 deletions generated/routes.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@
},
"/overview/management-api-reference": {
"relPath": "/overview/management-api-reference.md",
"lastmod": "2025-12-15T08:09:57.000Z"
"lastmod": "2025-12-22T07:46:07.000Z"
},
"/overview/agent-api-reference": {
"relPath": "/overview/agent-api-reference.md",
"lastmod": "2025-11-26T09:01:03.000Z"
"lastmod": "2025-12-29T11:00:04.000Z"
},
"/getting-started": {
"relPath": "/getting-started/index.md",
Expand Down Expand Up @@ -117,39 +117,39 @@
},
"/plural-features/continuous-deployment/git-service": {
"relPath": "/plural-features/continuous-deployment/git-service.md",
"lastmod": "2025-03-12T14:59:41.000Z"
"lastmod": "2025-12-30T05:54:16.000Z"
},
"/plural-features/continuous-deployment/helm-service": {
"relPath": "/plural-features/continuous-deployment/helm-service.md",
"lastmod": "2025-06-09T19:18:57.000Z"
"lastmod": "2025-12-30T05:54:16.000Z"
},
"/plural-features/continuous-deployment/resource-application-logic": {
"relPath": "/plural-features/continuous-deployment/resource-application-logic.md",
"lastmod": "2025-12-09T11:18:11.000Z"
"lastmod": "2025-12-22T19:54:38.000Z"
},
"/plural-features/continuous-deployment/service-templating": {
"relPath": "/plural-features/continuous-deployment/service-templating/index.md",
"lastmod": "2025-12-19T10:52:07.039Z"
"lastmod": "2025-12-30T05:57:04.477Z"
},
"/plural-features/continuous-deployment/service-templating/supporting-liquid-filters": {
"relPath": "/plural-features/continuous-deployment/service-templating/supporting-liquid-filters.md",
"lastmod": "2025-12-19T10:52:07.055Z"
"lastmod": "2025-12-30T05:57:04.494Z"
},
"/plural-features/continuous-deployment/lua": {
"relPath": "/plural-features/continuous-deployment/lua.md",
"lastmod": "2025-07-15T12:44:58.000Z"
},
"/plural-features/continuous-deployment/global-service": {
"relPath": "/plural-features/continuous-deployment/global-service.md",
"lastmod": "2025-03-12T14:59:41.000Z"
"lastmod": "2025-12-30T05:54:16.000Z"
},
"/plural-features/continuous-deployment/observer": {
"relPath": "/plural-features/continuous-deployment/observer.md",
"lastmod": "2025-12-15T20:59:31.000Z"
},
"/plural-features/continuous-deployment/pipelines": {
"relPath": "/plural-features/continuous-deployment/pipelines.md",
"lastmod": "2025-05-12T06:30:23.000Z"
"lastmod": "2025-12-30T05:54:16.000Z"
},
"/plural-features/continuous-deployment/github-actions-ci": {
"relPath": "/plural-features/continuous-deployment/github-actions-ci.md",
Expand Down Expand Up @@ -253,7 +253,7 @@
},
"/plural-features/flows": {
"relPath": "/plural-features/flows/index.md",
"lastmod": "2025-05-11T23:04:59.000Z"
"lastmod": "2025-12-30T05:54:16.000Z"
},
"/plural-features/flows/create-a-flow": {
"relPath": "/plural-features/flows/create-a-flow.md",
Expand All @@ -273,7 +273,7 @@
},
"/plural-features/flows/mcp-auth": {
"relPath": "/plural-features/flows/mcp-auth.md",
"lastmod": "2025-05-27T02:01:02.000Z"
"lastmod": "2025-12-30T05:54:16.000Z"
},
"/plural-features/flows/scm-webhooks-and-pr-linking": {
"relPath": "/plural-features/flows/scm-webhooks-and-pr-linking.md",
Expand Down Expand Up @@ -349,39 +349,19 @@
},
"/examples/continuous-deployment/helm-basic-with-inline-values": {
"relPath": "/examples/continuous-deployment/helm-basic-with-inline-values.md",
"lastmod": "2025-05-10T04:28:20.000Z"
"lastmod": "2025-12-30T05:54:16.000Z"
},
"/examples/continuous-deployment/helm-basic-with-values-file": {
"relPath": "/examples/continuous-deployment/helm-basic-with-values-file.md",
"lastmod": "2025-05-10T04:28:20.000Z"
"lastmod": "2025-12-30T05:54:16.000Z"
},
"/examples/continuous-deployment/kustomize-inflate-helm": {
"relPath": "/examples/continuous-deployment/kustomize-inflate-helm.md",
"lastmod": "2025-05-10T04:28:20.000Z"
"lastmod": "2025-12-30T05:54:16.000Z"
},
"/examples/continuous-deployment/kustomize-stack-with-liquid": {
"relPath": "/examples/continuous-deployment/kustomize-stack-with-liquid.md",
"lastmod": "2025-05-10T04:28:20.000Z"
},
"/faq": {
"relPath": "/faq/index.md",
"lastmod": "2025-03-12T14:59:41.000Z"
},
"/faq/security": {
"relPath": "/faq/security.md",
"lastmod": "2025-03-12T14:59:41.000Z"
},
"/faq/plural-oidc": {
"relPath": "/faq/plural-oidc.md",
"lastmod": "2025-03-12T14:59:41.000Z"
},
"/faq/certifications": {
"relPath": "/faq/certifications.md",
"lastmod": "2025-03-12T14:59:41.000Z"
},
"/faq/paid-tiers": {
"relPath": "/faq/paid-tiers.md",
"lastmod": "2025-03-12T14:59:41.000Z"
"lastmod": "2025-12-30T05:54:16.000Z"
},
"/resources": {
"relPath": "/resources/index.md",
Expand All @@ -395,6 +375,10 @@
"relPath": "/resources/product-updates.md",
"lastmod": "2025-05-01T19:37:01.000Z"
},
"/resources/security": {
"relPath": null,
"lastmod": null
},
"/resources/architecture": {
"relPath": "/resources/architecture.md",
"lastmod": "2025-08-11T16:38:17.000Z"
Expand All @@ -405,7 +389,7 @@
},
"/getting-started/agent-api-reference": {
"relPath": "/overview/agent-api-reference.md",
"lastmod": "2025-11-26T09:01:03.000Z"
"lastmod": "2025-12-29T11:00:04.000Z"
},
"/getting-started/readme": {
"relPath": "/getting-started/index.md",
Expand Down Expand Up @@ -493,15 +477,15 @@
},
"/deployments/operator/git-service": {
"relPath": "/plural-features/continuous-deployment/git-service.md",
"lastmod": "2025-03-12T14:59:41.000Z"
"lastmod": "2025-12-30T05:54:16.000Z"
},
"/deployments/operator/helm-service": {
"relPath": "/plural-features/continuous-deployment/helm-service.md",
"lastmod": "2025-06-09T19:18:57.000Z"
"lastmod": "2025-12-30T05:54:16.000Z"
},
"/deployments/operator/global-service": {
"relPath": "/plural-features/continuous-deployment/global-service.md",
"lastmod": "2025-03-12T14:59:41.000Z"
"lastmod": "2025-12-30T05:54:16.000Z"
},
"/deployments/using-operator": {
"relPath": "/plural-features/continuous-deployment/index.md",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ metadata:
name: plrl-01-grafana
namespace: examples
spec:
cluster: mgmt
helm:
# Remote helm repository
url: https://grafana.github.io/helm-charts
Expand All @@ -56,11 +57,6 @@ spec:
- hosts:
- grafana-test.your-domain.com
secretName: grafana-tls
# A reference to the cluster resource instance we've created in the previous step
clusterRef:
kind: Cluster
name: mgmt
namespace: examples
```

### Step 2: Check Plural Console and access Grafana
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,9 @@ metadata:
name: plrl-02-grafana
namespace: examples
spec:
# GitRepository reference that points to a git repo where values file is stored
repositoryRef:
kind: GitRepository
name: example
namespace: examples
cluster: mgmt
git:
url: https://github.com/yourorg/example.git # the url for your example git repo
# A directory in the git repository with the values file
folder: helm-values
ref: main
Expand All @@ -78,11 +75,6 @@ spec:
# inline configuration that will be passed as a context to the liquid helm values file
configuration:
host: 'grafana-test.your-domain.com'
# A reference to the cluster resource instance we've created in the previous step
clusterRef:
kind: Cluster
name: mgmt
namespace: examples
```

### Step 3: Check Plural Console and access Grafana
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,11 +107,9 @@ metadata:
name: plrl-04-wordpress
namespace: examples
spec:
repositoryRef:
kind: GitRepository
name: example
namespace: examples
cluster: mgmt
git:
url: https://github.com/yourorg/example.git # the url for your example git repo
folder: services/examples/kustomize-inflate-helm
ref: main
kustomize:
Expand All @@ -120,9 +118,6 @@ spec:
configurationRef:
name: plrl-04-wordpress-config
namespace: examples
clusterRef:
name: mgmt
namespace: examples
```

### Step 4: Check Plural Console and access WordPress
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -238,19 +238,14 @@ metadata:
name: plrl-03-wordpress
namespace: examples
spec:
repositoryRef:
kind: GitRepository
name: example
namespace: examples
cluster: mgmt
git:
url: https://github.com/yourorg/example.git # the url for your example git repo
folder: services/examples/kustomize-stack-with-liquid
ref: main
configuration:
wordpressTag: "4.8-apache"
mysqlTag: "5.6"
clusterRef:
name: mgmt
namespace: examples
```

### Step 5: Check Plural Console and access WordPress
Expand Down
14 changes: 13 additions & 1 deletion pages/faq/security.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,17 @@ title: Is Plural secure?
description: Learn about what Plural has access to at various steps of deployment.
---

# Certifications


Plural is currently a part of the **Cloud Native Computing Foundation** and **Cloud Native Landscape**. In addition we maintain the following certifications:

* **GDPR**
* **SOC 2 Type 2**


In more detail we maintain a few key guarantees around our usage of cloud data and access to your infrastructure for our two main distribution channels.

# Plural Console

The Plural Console by default has access to nothing in your cloud. To grant it access you'll have to do one of the following:
Expand All @@ -17,10 +28,11 @@ In addition, the Console only will make two outbound network requests, outside o

# Plural Cloud

A Plural Console running in Plural Cloud can collect creds in a few ways:
A Plural Console running in Plural Cloud is functionally equivalent to any other instance of Plural, but since it sits on our servers, it's worth being aware that we can collect creds in a few ways:

1. Plural-managed terraform state could have various credentials inside it
2. SCM credentials are stored row-encrypted in our database (but can be revoked at any time).
3. Service secrets are stored row-encrypted in our database (but you can use cloud-native secret managers if you prefer robustness over convenience).

Since you'll still need to create a small management cluster to attach to your cloud console, that will be what is bound any cloud creds for executing terraform, etc, and so you do not need to exchange any cloud credentials with Plural to use Plural Cloud.

21 changes: 20 additions & 1 deletion pages/plural-features/continuous-deployment/git-service.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,26 @@ title: Git-sourced services
description: Source manifests directly from git
---

The simplest service you can deploy is just referencing a folder within a git repository. This pattern is great for deploying a simple microservice owned by a dev team, or perhaps setting up an app-of-apps. The CRs needed to make this work would be:
The simplest service you can deploy is just referencing a folder within a git repository. This pattern is great for deploying a simple microservice owned by a dev team, or perhaps setting up an app-of-apps.

There are a few different ways this can be done, here is the simplest:

```yaml
apiVersion: deployments.plural.sh/v1alpha1
kind: ServiceDeployment
metadata:
name: git-folder
spec:
namespace: examples
name: git-folder
cluster: k3s # handle of the git repository
git:
url: git@github.com:your-org/example.git # this git repository needs to be created either via a GitRepository cr or in the Plural UI
folder: kubernetes/manifests # or whatever folder you wish
ref: main
```

You can also use custom resource references if you don't want to type out the git repository url each time (this can also be useful to provide a stable name for that repository). The CRs needed to make this work would be:

```yaml
# the GitRepository and Cluster resources should ideally be defined elsewhere in your infra repo
Expand Down
Loading
Loading