Update Vale to latest (#534)

This commit is contained in:
Pete Lumbis 2023-08-28 20:31:26 +02:00 committed by GitHub
parent fd41266a1e
commit 151ab38f09
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
88 changed files with 1866 additions and 453 deletions

View File

@ -23,7 +23,7 @@ jobs:
- name: Install Vale - name: Install Vale
env: env:
VALE_VERSION: "2.22.0" VALE_VERSION: "2.28.2"
run: wget https://github.com/errata-ai/vale/releases/download/v${{env.VALE_VERSION}}/vale_${{env.VALE_VERSION}}_Linux_64-bit.tar.gz && tar -xvzf vale_${{env.VALE_VERSION}}_Linux_64-bit.tar.gz run: wget https://github.com/errata-ai/vale/releases/download/v${{env.VALE_VERSION}}/vale_${{env.VALE_VERSION}}_Linux_64-bit.tar.gz && tar -xvzf vale_${{env.VALE_VERSION}}_Linux_64-bit.tar.gz
- name: Run Vale - name: Run Vale

View File

@ -18,7 +18,7 @@ APIs. Crossplane can even let you
directly from Kubernetes. If it has an API, Crossplane can connect to it. directly from Kubernetes. If it has an API, Crossplane can connect to it.
With Crossplane, platform teams can create new abstractions and custom With Crossplane, platform teams can create new abstractions and custom
APIs with the full power of Kubernetes policies, namespaces, role-based access APIs with the full power of Kubernetes policies, namespaces, role based access
controls and more. Crossplane brings all your non-Kubernetes resources under controls and more. Crossplane brings all your non-Kubernetes resources under
one roof. one roof.
@ -29,16 +29,18 @@ and use Kubernetes as the control plane for everything.
{{< hint "tip" >}} {{< hint "tip" >}}
**What's a control plane?** **What's a control plane?**
<!-- vale Google.WordList = NO -->
Control planes create and manage the lifecycle of resources. Control planes Control planes create and manage the lifecycle of resources. Control planes
constantly _check_ that the intended resources exist, _report_ when the intended constantly _check_ that the intended resources exist, _report_ when the intended
state doesn't match reality and _act_ to make things right. state doesn't match reality and _act_ to make things right.
Crossplane extends the Kubernetes control plane to be a **universal control Crossplane extends the Kubernetes control plane to be a **universal control
plane** to check, report and act on any resource, anywhere. plane** to check, report and act on any resource, anywhere.
<!-- vale Google.WordList = YES -->
{{< /hint >}} {{< /hint >}}
# Get Started # Get started
* [Install Crossplane]({{<ref "software/install">}}) in your Kubernetes cluster * [Install Crossplane]({{<ref "software/install">}}) in your Kubernetes cluster
* Learn more about how Crossplane works in the * Learn more about how Crossplane works in the
[Crossplane introduction]({{<ref "getting-started/introduction" >}}) [Crossplane introduction]({{<ref "getting-started/introduction" >}})

View File

@ -204,5 +204,4 @@ spec:
name: my-claim-secret name: my-claim-secret
``` ```
For more information on connection secrets read the [Connection Secrets For more information on connection secrets read the [Connection Secrets knowledge base article]({{<ref "/knowledge-base/guides/connection-details">}}).
knowledge base article]({{<ref "/knowledge-base/guides/connection-details">}}).

View File

@ -258,8 +258,7 @@ on what your OpenAPIv3 custom API can use.
{{<hint "important" >}} {{<hint "important" >}}
Changing or expanding the XRD schema requires restarting the [Crossplane Changing or expanding the XRD schema requires restarting the [Crossplane pod]({{<ref "./pods#crossplane-pod">}}) to take effect.
pod]({{<ref "./pods#crossplane-pod">}}) to take effect.
{{< /hint >}} {{< /hint >}}
##### Required fields ##### Required fields
@ -351,8 +350,7 @@ object,
- location - location
``` ```
The Swagger "[Describing The Swagger "[Describing Parameters](https://swagger.io/docs/specification/describing-parameters/)"
Parameters](https://swagger.io/docs/specification/describing-parameters/)"
documentation has more examples. documentation has more examples.
##### Crossplane reserved fields ##### Crossplane reserved fields
@ -415,8 +413,7 @@ field indicates which version of the schema Compositions use. Only one
version can be `referenceable`. version can be `referenceable`.
{{< hint "note" >}} {{< hint "note" >}}
Changing which version is `referenceable:true` requires [updating the Changing which version is `referenceable:true` requires [updating the `compositeTypeRef.apiVersion`]({{<ref "./compositions#enabling-composite-resources" >}})
`compositeTypeRef.apiVersion`]({{<ref "./compositions#enabling-composite-resources" >}})
of any Compositions referencing that XRD. of any Compositions referencing that XRD.
{{< /hint >}} {{< /hint >}}
@ -427,8 +424,7 @@ of any Compositions referencing that XRD.
Crossplane supports defining multiple `versions`, but the schema of each version Crossplane supports defining multiple `versions`, but the schema of each version
can't change any existing fields, also called "making a breaking change." can't change any existing fields, also called "making a breaking change."
Breaking schema changes between versions requires the use of [conversion Breaking schema changes between versions requires the use of [conversion webhooks](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/#webhook-conversion).
webhooks](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/#webhook-conversion).
New versions may define new optional parameters, but new required fields are New versions may define new optional parameters, but new required fields are
a "breaking change." a "breaking change."
@ -496,8 +492,7 @@ spec:
{{<hint "important" >}} {{<hint "important" >}}
Changing or expanding the XRD schema requires restarting the [Crossplane Changing or expanding the XRD schema requires restarting the [Crossplane pod]({{<ref "./pods#crossplane-pod">}}) to take effect.
pod]({{<ref "./pods#crossplane-pod">}}) to take effect.
{{< /hint >}} {{< /hint >}}
### Enable Claims ### Enable Claims
@ -622,8 +617,8 @@ You can't change the `connectionSecretKeys` of an XRD. You must delete and
recreate the XRD to change the `connectionSecretKeys`. recreate the XRD to change the `connectionSecretKeys`.
{{</hint >}} {{</hint >}}
For more information on connection secrets read the [Connection Secrets For more information on connection secrets read the
knowledge base article]({{<ref "/knowledge-base/guides/connection-details">}}). [Connection Secrets knowledge base article]({{<ref "/knowledge-base/guides/connection-details">}}).
### Set composite resource defaults ### Set composite resource defaults
XRDs can set default parameters for composite resources and Claims. XRDs can set default parameters for composite resources and Claims.

View File

@ -142,8 +142,7 @@ spec:
toFieldPath: metadata.annotations toFieldPath: metadata.annotations
``` ```
For more information on patching resources refer to the [Patch and For more information on patching resources refer to the [Patch and Transform]({{<ref "./patch-and-transform">}}) documentation.
Transform]({{<ref "./patch-and-transform">}}) documentation.
### Composition selection ### Composition selection
@ -282,8 +281,7 @@ to the composite resource.
A resource may only access connection secrets allowed by the XRD. By A resource may only access connection secrets allowed by the XRD. By
default XRDs provide access to all connection secrets generated by managed default XRDs provide access to all connection secrets generated by managed
resources. resources.
Read more about [managing connection Read more about [managing connection secrets]({{<ref "./composite-resource-definitions#manage-connection-secrets">}})
secrets]({{<ref "./composite-resource-definitions#manage-connection-secrets">}})
in the XRD documentation. in the XRD documentation.
{{< /hint >}} {{< /hint >}}
@ -335,8 +333,7 @@ spec:
Read the [External Secrets Store]({{<ref "/knowledge-base/integrations/vault-as-secret-store">}}) documentation for more information on using Read the [External Secrets Store]({{<ref "/knowledge-base/integrations/vault-as-secret-store">}}) documentation for more information on using
external secret stores. external secret stores.
For more information on connection secrets read the [Connection Secrets For more information on connection secrets read the [Connection Secrets knowledge base article]({{<ref "/knowledge-base/guides/connection-details">}}).
knowledge base article]({{<ref "/knowledge-base/guides/connection-details">}}).
### Pausing composite resources ### Pausing composite resources

View File

@ -135,7 +135,7 @@ the external resource name.
#### Template a ProviderConfig #### Template a ProviderConfig
Compositions can define a ProviderConfig like it defines managed resources. Compositions can define a ProviderConfig like it defines managed resources.
Generating a ProviderConfig may be useful in providing unique credentials to Generating a ProviderConfig can provide unique credentials to
each deployment. each deployment.
@ -240,8 +240,7 @@ Composition, the resources defined by the
the EKS {{<hover label="xcluster" line="13">}}cluster{{</hover >}}. the EKS {{<hover label="xcluster" line="13">}}cluster{{</hover >}}.
{{<hint "note" >}} {{<hint "note" >}}
This abbreviated example is from the Upbound [AWS Reference This abbreviated example is from the Upbound [AWS Reference Platform](https://github.com/upbound/platform-ref-aws).
Platform](https://github.com/upbound/platform-ref-aws).
View the complete Compositions in the reference platform's View the complete Compositions in the reference platform's
[package directory](https://github.com/upbound/platform-ref-aws/blob/main/package/cluster/composition.yaml). [package directory](https://github.com/upbound/platform-ref-aws/blob/main/package/cluster/composition.yaml).
@ -446,8 +445,7 @@ Most Compositions require customizing the fields of the resources. This can
include applying unique passwords, modifying where to deploy resources, include applying unique passwords, modifying where to deploy resources,
or applying labels or annotations. or applying labels or annotations.
The primary method to change resources is using a resource [patch and The primary method to change resources is using a resource [patch and transform]({{<ref "./patch-and-transform" >}}). Patch and transforms allow
transform]({{<ref "./patch-and-transform" >}}). Patch and transforms allow
matching specific input fields, modifying them and applying them to the managed matching specific input fields, modifying them and applying them to the managed
resource. resource.
@ -892,8 +890,7 @@ Read the
for more information on restricting secret keys. for more information on restricting secret keys.
{{< /hint >}} {{< /hint >}}
For more information on connection secrets read the [Connection Secrets For more information on connection secrets read the [Connection Secrets knowledge base article]({{<ref "/knowledge-base/guides/connection-details">}}).
knowledge base article]({{<ref "/knowledge-base/guides/connection-details">}}).
{{<hint "warning">}} {{<hint "warning">}}
You can't change the You can't change the
@ -1007,7 +1004,7 @@ Compositions support matching resource fields by:
#### Match a string #### Match a string
{{<hover label="matchstring" line="11">}}MatchString{{</hover>}} considers the composed resource to be ready when the value of a {{<hover label="matchstring" line="11">}}MatchString{{</hover>}} considers the composed resource to be ready when the value of a
field within that resource matches a specified string. field in that resource matches a specified string.
{{<hint "note" >}} {{<hint "note" >}}
<!-- vale Google.WordList = NO --> <!-- vale Google.WordList = NO -->
@ -1042,7 +1039,7 @@ spec:
#### Match an integer #### Match an integer
{{<hover label="matchint" line="11">}}MatchInteger{{</hover>}} considers the composed resource to be ready when the value of a {{<hover label="matchint" line="11">}}MatchInteger{{</hover>}} considers the composed resource to be ready when the value of a
field within that resource matches a specified integer. field in that resource matches a specified integer.
{{<hint "note" >}} {{<hint "note" >}}
<!-- vale Google.WordList = NO --> <!-- vale Google.WordList = NO -->

View File

@ -35,8 +35,7 @@ Provider also define the available settings of a managed resource.
Each managed resource is a unique API endpoint with their own Each managed resource is a unique API endpoint with their own
group, kind and version. group, kind and version.
For example the [Upbound AWS For example the [Upbound AWS Provider](https://marketplace.upbound.io/providers/upbound/provider-aws/latest/)
Provider](https://marketplace.upbound.io/providers/upbound/provider-aws/latest/)
defines the {{<hover label="gkv" line="2">}}Instance{{</hover>}} kind from the defines the {{<hover label="gkv" line="2">}}Instance{{</hover>}} kind from the
group {{<hover label="gkv" line="1">}}ec2.aws.upbound.io{{</hover>}} group {{<hover label="gkv" line="1">}}ec2.aws.upbound.io{{</hover>}}
@ -650,8 +649,7 @@ call and receiving a response.
If a Provider restarts before creating the `succeed` or `fail` annotations the If a Provider restarts before creating the `succeed` or `fail` annotations the
Provider can't reconcile the manged resource. Provider can't reconcile the manged resource.
Read Crossplane [issue Read Crossplane [issue #3037](https://github.com/crossplane/crossplane/issues/3037#issuecomment-1110142427)
#3037](https://github.com/crossplane/crossplane/issues/3037#issuecomment-1110142427)
for more details for more details
{{< /hint >}} {{< /hint >}}

View File

@ -276,8 +276,7 @@ updates the Roles to access the specific API endpoints in a Claim.
{{< hint "note" >}} {{< hint "note" >}}
The specific details of the namespace Roles are beyond this guide. For more The specific details of the namespace Roles are beyond this guide. For more
information read the [Composite Resource ClusterRole information read the [Composite Resource ClusterRole Mechanics](https://github.com/crossplane/crossplane/blob/master/design/design-doc-rbac-manager.md#composite-resource-clusterrole-mechanics)
Mechanics](https://github.com/crossplane/crossplane/blob/master/design/design-doc-rbac-manager.md#composite-resource-clusterrole-mechanics)
section of the RBAC Manager design document. section of the RBAC Manager design document.
{{< /hint >}} {{< /hint >}}

View File

@ -33,8 +33,7 @@ Kubernetes API endpoint. These endpoints are
{{< hint "note" >}} {{< hint "note" >}}
Instructions on building your own Provider are outside of the scope of this Instructions on building your own Provider are outside of the scope of this
document. Read the Crossplane contributing [Provider Development document. Read the Crossplane contributing [Provider Development Guide](https://github.com/crossplane/crossplane/blob/master/contributing/guide-provider-development.md)
Guide](https://github.com/crossplane/crossplane/blob/master/contributing/guide-provider-development.md)
for more information. for more information.
{{< /hint >}} {{< /hint >}}
@ -132,8 +131,7 @@ If you remove the Provider first, you must manually delete external resources
through your cloud provider. Managed resources must be manually deleted by through your cloud provider. Managed resources must be manually deleted by
removing their finalizers. removing their finalizers.
For more information on deleting abandoned resources read the [Crossplane For more information on deleting abandoned resources read the [Crossplane troubleshooting guide]({{<ref "/knowledge-base/guides/troubleshoot#deleting-when-a-resource-hangs" >}}).
troubleshooting guide]({{<ref "/knowledge-base/guides/troubleshoot#deleting-when-a-resource-hangs" >}}).
{{< /hint >}} {{< /hint >}}
## Verify a Provider ## Verify a Provider

View File

@ -98,7 +98,7 @@ defines a
[`bucket`](https://marketplace.upbound.io/providers/upbound/provider-aws/v0.25.0/resources/s3.aws.upbound.io/Bucket/v1beta1) [`bucket`](https://marketplace.upbound.io/providers/upbound/provider-aws/v0.25.0/resources/s3.aws.upbound.io/Bucket/v1beta1)
resource for creating and managing AWS S3 storage buckets. resource for creating and managing AWS S3 storage buckets.
Within the `bucket` CRD is a In the `bucket` CRD is a
[`spec.forProvider.region`](https://marketplace.upbound.io/providers/upbound/provider-aws/v0.25.0/resources/s3.aws.upbound.io/Bucket/v1beta1#doc:spec-forProvider-region) [`spec.forProvider.region`](https://marketplace.upbound.io/providers/upbound/provider-aws/v0.25.0/resources/s3.aws.upbound.io/Bucket/v1beta1#doc:spec-forProvider-region)
value that defines which AWS region to deploy the bucket in. value that defines which AWS region to deploy the bucket in.
@ -147,8 +147,7 @@ Depending on the size of the API server and number of managed resources, this
command may take minutes to return or may timeout. command may take minutes to return or may timeout.
For more information, read For more information, read
[Kubernetes issue [Kubernetes issue #111880](https://github.com/kubernetes/kubernetes/issues/111880)
#111880](https://github.com/kubernetes/kubernetes/issues/111880)
and and
[Crossplane issue #3459](https://github.com/crossplane/crossplane/issues/3459). [Crossplane issue #3459](https://github.com/crossplane/crossplane/issues/3459).
{{< /hint >}} {{< /hint >}}

View File

@ -132,7 +132,7 @@ is strongly recommended.
This guide uses the group This guide uses the group
{{<hover label="version" line="1">}}database.example.com{{</hover>}}. {{<hover label="version" line="1">}}database.example.com{{</hover>}}.
Since this is the first version of the API, this guide uses the version Because this is the first version of the API, this guide uses the version
{{<hover label="version" line="1">}}v1alpha1{{</hover>}}. {{<hover label="version" line="1">}}v1alpha1{{</hover>}}.
```yaml {label="version",copy-lines="none"} ```yaml {label="version",copy-lines="none"}
@ -141,7 +141,7 @@ apiVersion: database.example.com/v1alpha1
### Define a kind ### Define a kind
The API group is a logical collection of related APIs. Within a group are The API group is a logical collection of related APIs. In a group are
individual kinds representing different resources. individual kinds representing different resources.
For example a `database` group may have a `Relational` and `NoSQL` kinds. For example a `database` group may have a `Relational` and `NoSQL` kinds.
@ -283,11 +283,11 @@ Each entry in the template
is a full resource definitions, defining all the resource settings and metadata is a full resource definitions, defining all the resource settings and metadata
like labels and annotations. like labels and annotations.
This template creates a GCP This template creates an AWS
{{<hover label="comp" line="13">}}storage{{</hover>}} {{<hover label="comp" line="13">}}S3{{</hover>}}
{{<hover label="comp" line="14">}}Bucket{{</hover>}} and a {{<hover label="comp" line="14">}}Bucket{{</hover>}} and a
{{<hover label="comp" line="33">}}Pubsub{{</hover>}} {{<hover label="comp" line="33">}}DynamoDB{{</hover>}}
{{<hover label="comp" line="34">}}Topic{{</hover>}}. {{<hover label="comp" line="34">}}Table{{</hover>}}.
Crossplane uses {{<hover label="comp" line="19">}}patches{{</hover>}} to apply Crossplane uses {{<hover label="comp" line="19">}}patches{{</hover>}} to apply
the user's input to the resource template. the user's input to the resource template.
@ -319,7 +319,7 @@ spec:
name: default name: default
patches: patches:
- type: FromCompositeFieldPath - type: FromCompositeFieldPath
fromFieldPath: "spec.location" fromFieldPath: "location"
toFieldPath: "spec.forProvider.region" toFieldPath: "spec.forProvider.region"
transforms: transforms:
- type: map - type: map
@ -343,7 +343,7 @@ spec:
hashKey: S3ID hashKey: S3ID
patches: patches:
- type: FromCompositeFieldPath - type: FromCompositeFieldPath
fromFieldPath: "location" fromFieldPath: "spec.location"
toFieldPath: "spec.forProvider.region" toFieldPath: "spec.forProvider.region"
transforms: transforms:
- type: map - type: map
@ -473,7 +473,7 @@ Accessing the API `nosql` happens at the cluster scope.
Most organizations Most organizations
isolate their users into namespaces. isolate their users into namespaces.
A Crossplane _Claim_ is the custom API within a namespace. A Crossplane _Claim_ is the custom API in a namespace.
Creating a _Claim_ is just like accessing the custom API endpoint, but with the Creating a _Claim_ is just like accessing the custom API endpoint, but with the
{{<hover label="claim" line="3">}}kind{{</hover>}} {{<hover label="claim" line="3">}}kind{{</hover>}}

View File

@ -137,7 +137,7 @@ is strongly recommended.
This guide uses the group This guide uses the group
{{<hover label="version" line="1">}}compute.example.com{{</hover>}}. {{<hover label="version" line="1">}}compute.example.com{{</hover>}}.
Since this is the first version of the API, this guide uses the version Because this is the first version of the API, this guide uses the version
{{<hover label="version" line="1">}}v1alpha1{{</hover>}}. {{<hover label="version" line="1">}}v1alpha1{{</hover>}}.
```yaml {label="version",copy-lines="none"} ```yaml {label="version",copy-lines="none"}
@ -146,7 +146,7 @@ apiVersion: compute.example.com/v1alpha1
### Define a kind ### Define a kind
The API group is a logical collection of related APIs. Within a group are The API group is a logical collection of related APIs. In a group are
individual kinds representing different resources. individual kinds representing different resources.
For example a `compute` group may have a `VirtualMachine` and `BareMetal` kinds. For example a `compute` group may have a `VirtualMachine` and `BareMetal` kinds.
@ -289,16 +289,17 @@ is a full resource definitions, defining all the resource settings and metadata
like labels and annotations. like labels and annotations.
This template creates an Azure This template creates an Azure
{{<hover label="comp" line="14">}}LinuxVirtualMachine{{</hover>}} {{<hover label="comp" line="11">}}LinuxVirtualMachine{{</hover>}}
{{<hover label="comp" line="14">}}NetworkInterface{{</hover>}}, {{<hover label="comp" line="46">}}NetworkInterface{{</hover>}},
{{<hover label="comp" line="33">}}Subnet{{</hover>}} and {{<hover label="comp" line="69">}}Subnet{{</hover>}}
{{<hover label="comp" line="34">}}VirtualNetwork{{</hover>}}. {{<hover label="comp" line="90">}}VirtualNetwork{{</hover>}} and
{{<hover label="comp" line="110">}}ResourceGroup{{</hover>}}.
Crossplane uses {{<hover label="comp" line="19">}}patches{{</hover>}} to apply Crossplane uses {{<hover label="comp" line="34">}}patches{{</hover>}} to apply
the user's input to the resource template. the user's input to the resource template.
This Composition takes the user's This Composition takes the user's
{{<hover label="comp" line="21">}}location{{</hover>}} input and uses it as the {{<hover label="comp" line="36">}}location{{</hover>}} input and uses it as the
{{<hover label="comp" line="16">}}region{{</hover>}} used in the individual {{<hover label="comp" line="37">}}location{{</hover>}} used in the individual
resource. resource.
Apply this Composition to your cluster. Apply this Composition to your cluster.
@ -311,22 +312,6 @@ metadata:
name: crossplane-quickstart-vm-with-network name: crossplane-quickstart-vm-with-network
spec: spec:
resources: resources:
- name: crossplane-resourcegroup
base:
apiVersion: azure.upbound.io/v1beta1
kind: ResourceGroup
spec:
forProvider:
location: Central US
patches:
- type: FromCompositeFieldPath
fromFieldPath: "location"
toFieldPath: "spec.forProvider.location"
transforms:
- type: map
map:
EU: "Sweden Central"
US: "Central US"
- name: quickstart-vm - name: quickstart-vm
base: base:
apiVersion: compute.azure.upbound.io/v1beta1 apiVersion: compute.azure.upbound.io/v1beta1
@ -355,7 +340,7 @@ spec:
matchControllerRef: true matchControllerRef: true
patches: patches:
- type: FromCompositeFieldPath - type: FromCompositeFieldPath
fromFieldPath: "location" fromFieldPath: "spec.location"
toFieldPath: "spec.forProvider.location" toFieldPath: "spec.forProvider.location"
transforms: transforms:
- type: map - type: map
@ -378,7 +363,7 @@ spec:
matchControllerRef: true matchControllerRef: true
patches: patches:
- type: FromCompositeFieldPath - type: FromCompositeFieldPath
fromFieldPath: "location" fromFieldPath: "spec.location"
toFieldPath: "spec.forProvider.location" toFieldPath: "spec.forProvider.location"
transforms: transforms:
- type: map - type: map
@ -399,7 +384,7 @@ spec:
matchControllerRef: true matchControllerRef: true
patches: patches:
- type: FromCompositeFieldPath - type: FromCompositeFieldPath
fromFieldPath: "location" fromFieldPath: "spec.location"
toFieldPath: "spec.forProvider.location" toFieldPath: "spec.forProvider.location"
transforms: transforms:
- type: map - type: map
@ -419,7 +404,23 @@ spec:
matchControllerRef: true matchControllerRef: true
patches: patches:
- type: FromCompositeFieldPath - type: FromCompositeFieldPath
fromFieldPath: "location" fromFieldPath: "spec.location"
toFieldPath: "spec.forProvider.location"
transforms:
- type: map
map:
EU: "Sweden Central"
US: "Central US"
- name: crossplane-resourcegroup
base:
apiVersion: azure.upbound.io/v1beta1
kind: ResourceGroup
spec:
forProvider:
location: Central US
patches:
- type: FromCompositeFieldPath
fromFieldPath: "spec.location"
toFieldPath: "spec.forProvider.location" toFieldPath: "spec.forProvider.location"
transforms: transforms:
- type: map - type: map
@ -487,7 +488,7 @@ upbound-provider-family-azure True True xpkg.upbound.io/upbound/pr
With the custom API (XRD) installed and associated to a resource template With the custom API (XRD) installed and associated to a resource template
(Composition) users can access the API to create resources. (Composition) users can access the API to create resources.
Create a {{<hover label="xr" line="2">}}VirtualMachine{{</hover>}} object to Create a {{<hover label="xr" line="3">}}VirtualMachine{{</hover>}} object to
create the cloud resources. create the cloud resources.
```yaml {copy-lines="all",label="xr"} ```yaml {copy-lines="all",label="xr"}
@ -497,7 +498,7 @@ kind: VirtualMachine
metadata: metadata:
name: my-vm name: my-vm
spec: spec:
location: "US" location: "EU"
EOF EOF
``` ```
@ -573,7 +574,7 @@ Accessing the API `VirtualMachine` happens at the cluster scope.
Most organizations Most organizations
isolate their users into namespaces. isolate their users into namespaces.
A Crossplane _Claim_ is the custom API within a namespace. A Crossplane _Claim_ is the custom API in a namespace.
Creating a _Claim_ is just like accessing the custom API endpoint, but with the Creating a _Claim_ is just like accessing the custom API endpoint, but with the
{{<hover label="claim" line="3">}}kind{{</hover>}} {{<hover label="claim" line="3">}}kind{{</hover>}}
@ -595,7 +596,7 @@ metadata:
name: my-namespaced-vm name: my-namespaced-vm
namespace: crossplane-test namespace: crossplane-test
spec: spec:
location: "US" location: "EU"
EOF EOF
``` ```
View the Claim with `kubectl get claim -n crossplane-test`. View the Claim with `kubectl get claim -n crossplane-test`.

View File

@ -150,7 +150,7 @@ is strongly recommended.
This guide uses the group This guide uses the group
{{<hover label="version" line="1">}}database.example.com{{</hover>}}. {{<hover label="version" line="1">}}database.example.com{{</hover>}}.
Since this is the first version of the API, this guide uses the version Because this is the first version of the API, this guide uses the version
{{<hover label="version" line="1">}}v1alpha1{{</hover>}}. {{<hover label="version" line="1">}}v1alpha1{{</hover>}}.
```yaml {label="version",copy-lines="none"} ```yaml {label="version",copy-lines="none"}
@ -159,7 +159,7 @@ apiVersion: database.example.com/v1alpha1
### Define a kind ### Define a kind
The API group is a logical collection of related APIs. Within a group are The API group is a logical collection of related APIs. In a group are
individual kinds representing different resources. individual kinds representing different resources.
For example a `queue` group may have a `PubSub` and `CloudTask` kinds. For example a `queue` group may have a `PubSub` and `CloudTask` kinds.
@ -478,7 +478,7 @@ Accessing the API `pubsub` happens at the cluster scope.
Most organizations Most organizations
isolate their users into namespaces. isolate their users into namespaces.
A Crossplane _Claim_ is the custom API within a namespace. A Crossplane _Claim_ is the custom API in a namespace.
Creating a _Claim_ is just like accessing the custom API endpoint, but with the Creating a _Claim_ is just like accessing the custom API endpoint, but with the
{{<hover label="claim" line="3">}}kind{{</hover>}} {{<hover label="claim" line="3">}}kind{{</hover>}}

View File

@ -94,7 +94,7 @@ provider and configuration packages.
* The _Composition controller_ installs and manages the * The _Composition controller_ installs and manages the
Crossplane _Composite Resource Definitions_, _Compositions_ and _Claims_. Crossplane _Composite Resource Definitions_, _Compositions_ and _Claims_.
### Crossplane-rbac-manager deployment ### Crossplane RBAC manager deployment
The `crossplane-rbac-manager` creates and manages Kubernetes _ClusterRoles_ for The `crossplane-rbac-manager` creates and manages Kubernetes _ClusterRoles_ for
installed Crossplane _Provider_ and their _Custom Resource Definitions_. installed Crossplane _Provider_ and their _Custom Resource Definitions_.
@ -126,16 +126,16 @@ Apply customizations with the command line or with a Helm _values_ file.
| `extraEnvVarsRBACManager` | Add custom environmental variables to the RBAC Manager pod deployment. Replaces any `.` in a variable name with `_`. For example, `SAMPLE.KEY=value1` becomes `SAMPLE_KEY=value1`. | `{}` | | `extraEnvVarsRBACManager` | Add custom environmental variables to the RBAC Manager pod deployment. Replaces any `.` in a variable name with `_`. For example, `SAMPLE.KEY=value1` becomes `SAMPLE_KEY=value1`. | `{}` |
| `extraVolumeMountsCrossplane` | Add custom `volumeMounts` to the Crossplane pod. | `{}` | | `extraVolumeMountsCrossplane` | Add custom `volumeMounts` to the Crossplane pod. | `{}` |
| `extraVolumesCrossplane` | Add custom `volumes` to the Crossplane pod. | `{}` | | `extraVolumesCrossplane` | Add custom `volumes` to the Crossplane pod. | `{}` |
| `hostNetwork` | Enable `hostNetwork` for the Crossplane deployment. Caution: enabling `hostNetwork`` grants the Crossplane Pod access to the host network namespace. | `false` | | `hostNetwork` | Enable `hostNetwork` for the Crossplane deployment. Caution: enabling `hostNetwork` grants the Crossplane Pod access to the host network namespace. | `false` |
| `image.pullPolicy` | The image pull policy used for Crossplane and RBAC Manager pods. | `"IfNotPresent"` | | `image.pullPolicy` | The image pull policy used for Crossplane and RBAC Manager pods. | `"IfNotPresent"` |
| `image.repository` | Repository for the Crossplane pod image. | `"crossplane/crossplane"` | | `image.repository` | Repository for the Crossplane pod image. | `"crossplane/crossplane"` |
| `image.tag` | The Crossplane image tag. Defaults to the value of `appVersion` in Chart.yaml. | `""` | | `image.tag` | The Crossplane image tag. Defaults to the value of `appVersion` in `Chart.yaml`. | `""` |
| `imagePullSecrets` | The imagePullSecret names to add to the Crossplane ServiceAccount. | `{}` | | `imagePullSecrets` | The imagePullSecret names to add to the Crossplane ServiceAccount. | `{}` |
| `leaderElection` | Enable [leader election](https://docs.crossplane.io/latest/concepts/pods/#leader-election) for the Crossplane pod. | `true` | | `leaderElection` | Enable [leader election](https://docs.crossplane.io/latest/concepts/pods/#leader-election) for the Crossplane pod. | `true` |
| `metrics.enabled` | Enable Prometheus path, port and scrape annotations and expose port 8080 for both the Crossplane and RBAC Manager pods. | `false` | | `metrics.enabled` | Enable Prometheus path, port and scrape annotations and expose port 8080 for both the Crossplane and RBAC Manager pods. | `false` |
| `nodeSelector` | Add `nodeSelectors` to the Crossplane pod deployment. | `{}` | | `nodeSelector` | Add `nodeSelectors` to the Crossplane pod deployment. | `{}` |
| `packageCache.configMap` | The name of a ConfigMap to use as the package cache. Disables the default package cache `emptyDir` Volume. | `""` | | `packageCache.configMap` | The name of a ConfigMap to use as the package cache. Disables the default package cache `emptyDir` Volume. | `""` |
| `packageCache.medium` | Set to `Memory` to hold the package cache in a RAM-backed file system. Useful for Crossplane development. | `""` | | `packageCache.medium` | Set to `Memory` to hold the package cache in a RAM backed file system. Useful for Crossplane development. | `""` |
| `packageCache.pvc` | The name of a PersistentVolumeClaim to use as the package cache. Disables the default package cache `emptyDir` Volume. | `""` | | `packageCache.pvc` | The name of a PersistentVolumeClaim to use as the package cache. Disables the default package cache `emptyDir` Volume. | `""` |
| `packageCache.sizeLimit` | The size limit for the package cache. If medium is `Memory` the `sizeLimit` can't exceed Node memory. | `"20Mi"` | | `packageCache.sizeLimit` | The size limit for the package cache. If medium is `Memory` the `sizeLimit` can't exceed Node memory. | `"20Mi"` |
| `podSecurityContextCrossplane` | Add a custom `securityContext` to the Crossplane pod. | `{}` | | `podSecurityContextCrossplane` | Add a custom `securityContext` to the Crossplane pod. | `{}` |
@ -175,14 +175,14 @@ Apply customizations with the command line or with a Helm _values_ file.
| `webhooks.enabled` | Enable webhooks for Crossplane and installed Provider packages. | `true` | | `webhooks.enabled` | Enable webhooks for Crossplane and installed Provider packages. | `true` |
| `xfn.args` | Add custom arguments to the Composite functions runner container. | `[]` | | `xfn.args` | Add custom arguments to the Composite functions runner container. | `[]` |
| `xfn.cache.configMap` | The name of a ConfigMap to use as the Composite function runner package cache. Disables the default Composite function runner package cache `emptyDir` Volume. | `""` | | `xfn.cache.configMap` | The name of a ConfigMap to use as the Composite function runner package cache. Disables the default Composite function runner package cache `emptyDir` Volume. | `""` |
| `xfn.cache.medium` | Set to `Memory` to hold the Composite function runner package cache in a RAM-backed file system. Useful for Crossplane development. | `""` | | `xfn.cache.medium` | Set to `Memory` to hold the Composite function runner package cache in a RAM backed file system. Useful for Crossplane development. | `""` |
| `xfn.cache.pvc` | The name of a PersistentVolumeClaim to use as the Composite function runner package cache. Disables the default Composite function runner package cache `emptyDir` Volume. | `""` | | `xfn.cache.pvc` | The name of a PersistentVolumeClaim to use as the Composite function runner package cache. Disables the default Composite function runner package cache `emptyDir` Volume. | `""` |
| `xfn.cache.sizeLimit` | The size limit for the Composite function runner package cache. If medium is `Memory` the `sizeLimit` can't exceed Node memory. | `"1Gi"` | | `xfn.cache.sizeLimit` | The size limit for the Composite function runner package cache. If medium is `Memory` the `sizeLimit` can't exceed Node memory. | `"1Gi"` |
| `xfn.enabled` | Enable the alpha Composition functions (`xfn`) sidecar container. Also requires Crossplane `args` value `--enable-composition-functions` set. | `false` | | `xfn.enabled` | Enable the alpha Composition functions (`xfn`) sidecar container. Also requires Crossplane `args` value `--enable-composition-functions` set. | `false` |
| `xfn.extraEnvVars` | Add custom environmental variables to the Composite function runner container. Replaces any `.` in a variable name with `_`. For example, `SAMPLE.KEY=value1` becomes `SAMPLE_KEY=value1`. | `{}` | | `xfn.extraEnvVars` | Add custom environmental variables to the Composite function runner container. Replaces any `.` in a variable name with `_`. For example, `SAMPLE.KEY=value1` becomes `SAMPLE_KEY=value1`. | `{}` |
| `xfn.image.pullPolicy` | Composite function runner container image pull policy. | `"IfNotPresent"` | | `xfn.image.pullPolicy` | Composite function runner container image pull policy. | `"IfNotPresent"` |
| `xfn.image.repository` | Composite function runner container image. | `"crossplane/xfn"` | | `xfn.image.repository` | Composite function runner container image. | `"crossplane/xfn"` |
| `xfn.image.tag` | Composite function runner container image tag. Defaults to the value of `appVersion` in Chart.yaml. | `""` | | `xfn.image.tag` | Composite function runner container image tag. Defaults to the value of `appVersion` in `Chart.yaml`. | `""` |
| `xfn.resources.limits.cpu` | CPU resource limits for the Composite function runner container. | `"2000m"` | | `xfn.resources.limits.cpu` | CPU resource limits for the Composite function runner container. | `"2000m"` |
| `xfn.resources.limits.memory` | Memory resource limits for the Composite function runner container. | `"2Gi"` | | `xfn.resources.limits.memory` | Memory resource limits for the Composite function runner container. | `"2Gi"` |
| `xfn.resources.requests.cpu` | CPU resource requests for the Composite function runner container. | `"1000m"` | | `xfn.resources.requests.cpu` | CPU resource requests for the Composite function runner container. | `"1000m"` |

View File

@ -18,7 +18,7 @@ APIs. Crossplane can even let you
directly from Kubernetes. If it has an API, Crossplane can connect to it. directly from Kubernetes. If it has an API, Crossplane can connect to it.
With Crossplane, platform teams can create new abstractions and custom With Crossplane, platform teams can create new abstractions and custom
APIs with the full power of Kubernetes policies, namespaces, role-based access APIs with the full power of Kubernetes policies, namespaces, role based access
controls and more. Crossplane brings all your non-Kubernetes resources under controls and more. Crossplane brings all your non-Kubernetes resources under
one roof. one roof.
@ -29,16 +29,18 @@ and use Kubernetes as the control plane for everything.
{{< hint "tip" >}} {{< hint "tip" >}}
**What's a control plane?** **What's a control plane?**
<!-- vale Google.WordList = NO -->
Control planes create and manage the lifecycle of resources. Control planes Control planes create and manage the lifecycle of resources. Control planes
constantly _check_ that the intended resources exist, _report_ when the intended constantly _check_ that the intended resources exist, _report_ when the intended
state doesn't match reality and _act_ to make things right. state doesn't match reality and _act_ to make things right.
Crossplane extends the Kubernetes control plane to be a **universal control Crossplane extends the Kubernetes control plane to be a **universal control
plane** to check, report and act on any resource, anywhere. plane** to check, report and act on any resource, anywhere.
<!-- vale Google.WordList = YES -->
{{< /hint >}} {{< /hint >}}
# Get Started # Get started
* [Install Crossplane]({{<ref "software/install">}}) in your Kubernetes cluster * [Install Crossplane]({{<ref "software/install">}}) in your Kubernetes cluster
* Learn more about how Crossplane works in the * Learn more about how Crossplane works in the
[Crossplane introduction]({{<ref "getting-started/introduction" >}}) [Crossplane introduction]({{<ref "getting-started/introduction" >}})

View File

@ -204,5 +204,5 @@ spec:
name: my-claim-secret name: my-claim-secret
``` ```
For more information on connection secrets read the [Connection Secrets For more information on connection secrets read the
knowledge base article]({{<ref "/knowledge-base/guides/connection-details">}}). [Connection Secrets knowledge base article]({{<ref "/knowledge-base/guides/connection-details">}}).

View File

@ -258,8 +258,8 @@ on what your OpenAPIv3 custom API can use.
{{<hint "important" >}} {{<hint "important" >}}
Changing or expanding the XRD schema requires restarting the [Crossplane Changing or expanding the XRD schema requires restarting the
pod]({{<ref "./pods#crossplane-pod">}}) to take effect. [Crossplane pod]({{<ref "./pods#crossplane-pod">}}) to take effect.
{{< /hint >}} {{< /hint >}}
##### Required fields ##### Required fields
@ -351,8 +351,8 @@ object,
- location - location
``` ```
The Swagger "[Describing The Swagger
Parameters](https://swagger.io/docs/specification/describing-parameters/)" "[Describing Parameters](https://swagger.io/docs/specification/describing-parameters/)"
documentation has more examples. documentation has more examples.
##### Crossplane reserved fields ##### Crossplane reserved fields
@ -415,8 +415,8 @@ field indicates which version of the schema Compositions use. Only one
version can be `referenceable`. version can be `referenceable`.
{{< hint "note" >}} {{< hint "note" >}}
Changing which version is `referenceable:true` requires [updating the Changing which version is `referenceable:true` requires
`compositeTypeRef.apiVersion`]({{<ref "./compositions#enabling-composite-resources" >}}) [updating the `compositeTypeRef.apiVersion`]({{<ref "./compositions#enabling-composite-resources" >}})
of any Compositions referencing that XRD. of any Compositions referencing that XRD.
{{< /hint >}} {{< /hint >}}
@ -427,8 +427,8 @@ of any Compositions referencing that XRD.
Crossplane supports defining multiple `versions`, but the schema of each version Crossplane supports defining multiple `versions`, but the schema of each version
can't change any existing fields, also called "making a breaking change." can't change any existing fields, also called "making a breaking change."
Breaking schema changes between versions requires the use of [conversion Breaking schema changes between versions requires the use of
webhooks](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/#webhook-conversion). [conversion webhooks](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/#webhook-conversion).
New versions may define new optional parameters, but new required fields are New versions may define new optional parameters, but new required fields are
a "breaking change." a "breaking change."
@ -496,8 +496,8 @@ spec:
{{<hint "important" >}} {{<hint "important" >}}
Changing or expanding the XRD schema requires restarting the [Crossplane Changing or expanding the XRD schema requires restarting the
pod]({{<ref "./pods#crossplane-pod">}}) to take effect. [Crossplane pod]({{<ref "./pods#crossplane-pod">}}) to take effect.
{{< /hint >}} {{< /hint >}}
### Enable Claims ### Enable Claims
@ -622,8 +622,8 @@ You can't change the `connectionSecretKeys` of an XRD. You must delete and
recreate the XRD to change the `connectionSecretKeys`. recreate the XRD to change the `connectionSecretKeys`.
{{</hint >}} {{</hint >}}
For more information on connection secrets read the [Connection Secrets For more information on connection secrets read the
knowledge base article]({{<ref "/knowledge-base/guides/connection-details">}}). [Connection Secrets knowledge base article]({{<ref "/knowledge-base/guides/connection-details">}}).
### Set composite resource defaults ### Set composite resource defaults
XRDs can set default parameters for composite resources and Claims. XRDs can set default parameters for composite resources and Claims.

View File

@ -142,8 +142,8 @@ spec:
toFieldPath: metadata.annotations toFieldPath: metadata.annotations
``` ```
For more information on patching resources refer to the [Patch and For more information on patching resources refer to the
Transform]({{<ref "./patch-and-transform">}}) documentation. [Patch and Transform]({{<ref "./patch-and-transform">}}) documentation.
### Composition selection ### Composition selection
@ -282,8 +282,8 @@ to the composite resource.
A resource may only access connection secrets allowed by the XRD. By A resource may only access connection secrets allowed by the XRD. By
default XRDs provide access to all connection secrets generated by managed default XRDs provide access to all connection secrets generated by managed
resources. resources.
Read more about [managing connection Read more about
secrets]({{<ref "./composite-resource-definitions#manage-connection-secrets">}}) [managing connection secrets]({{<ref "./composite-resource-definitions#manage-connection-secrets">}})
in the XRD documentation. in the XRD documentation.
{{< /hint >}} {{< /hint >}}
@ -335,8 +335,8 @@ spec:
Read the [External Secrets Store]({{<ref "/knowledge-base/integrations/vault-as-secret-store">}}) documentation for more information on using Read the [External Secrets Store]({{<ref "/knowledge-base/integrations/vault-as-secret-store">}}) documentation for more information on using
external secret stores. external secret stores.
For more information on connection secrets read the [Connection Secrets For more information on connection secrets read the
knowledge base article]({{<ref "/knowledge-base/guides/connection-details">}}). [Connection Secrets knowledge base article]({{<ref "/knowledge-base/guides/connection-details">}}).
### Pausing composite resources ### Pausing composite resources

View File

@ -240,8 +240,8 @@ Composition, the resources defined by the
the EKS {{<hover label="xcluster" line="13">}}cluster{{</hover >}}. the EKS {{<hover label="xcluster" line="13">}}cluster{{</hover >}}.
{{<hint "note" >}} {{<hint "note" >}}
This abbreviated example is from the Upbound [AWS Reference This abbreviated example is from the Upbound
Platform](https://github.com/upbound/platform-ref-aws). [AWS Reference Platform](https://github.com/upbound/platform-ref-aws).
View the complete Compositions in the reference platform's View the complete Compositions in the reference platform's
[package directory](https://github.com/upbound/platform-ref-aws/blob/main/package/cluster/composition.yaml). [package directory](https://github.com/upbound/platform-ref-aws/blob/main/package/cluster/composition.yaml).
@ -446,10 +446,10 @@ Most Compositions require customizing the fields of the resources. This can
include applying unique passwords, modifying where to deploy resources, include applying unique passwords, modifying where to deploy resources,
or applying labels or annotations. or applying labels or annotations.
The primary method to change resources is using a resource [patch and The primary method to change resources is using a resource
transform]({{<ref "./patch-and-transform" >}}). Patch and transforms allow [patch and transform]({{<ref "./patch-and-transform" >}}). Patch and transforms
matching specific input fields, modifying them and applying them to the managed allow matching specific input fields, modifying them and applying them to the
resource. managed resource.
{{<hint "important" >}} {{<hint "important" >}}
The details of creating patch and transforms and their options are in the The details of creating patch and transforms and their options are in the
@ -892,8 +892,8 @@ Read the
for more information on restricting secret keys. for more information on restricting secret keys.
{{< /hint >}} {{< /hint >}}
For more information on connection secrets read the [Connection Secrets For more information on connection secrets read the
knowledge base article]({{<ref "/knowledge-base/guides/connection-details">}}). [Connection Secrets knowledge base article]({{<ref "/knowledge-base/guides/connection-details">}}).
{{<hint "warning">}} {{<hint "warning">}}
You can't change the You can't change the
@ -1007,7 +1007,7 @@ Compositions support matching resource fields by:
#### Match a string #### Match a string
{{<hover label="matchstring" line="11">}}MatchString{{</hover>}} considers the composed resource to be ready when the value of a {{<hover label="matchstring" line="11">}}MatchString{{</hover>}} considers the composed resource to be ready when the value of a
field within that resource matches a specified string. field in that resource matches a specified string.
{{<hint "note" >}} {{<hint "note" >}}
<!-- vale Google.WordList = NO --> <!-- vale Google.WordList = NO -->
@ -1042,7 +1042,7 @@ spec:
#### Match an integer #### Match an integer
{{<hover label="matchint" line="11">}}MatchInteger{{</hover>}} considers the composed resource to be ready when the value of a {{<hover label="matchint" line="11">}}MatchInteger{{</hover>}} considers the composed resource to be ready when the value of a
field within that resource matches a specified integer. field in that resource matches a specified integer.
{{<hint "note" >}} {{<hint "note" >}}
<!-- vale Google.WordList = NO --> <!-- vale Google.WordList = NO -->

View File

@ -35,8 +35,8 @@ Provider also define the available settings of a managed resource.
Each managed resource is a unique API endpoint with their own Each managed resource is a unique API endpoint with their own
group, kind and version. group, kind and version.
For example the [Upbound AWS For example the
Provider](https://marketplace.upbound.io/providers/upbound/provider-aws/latest/) [Upbound AWS Provider](https://marketplace.upbound.io/providers/upbound/provider-aws/latest/)
defines the {{<hover label="gkv" line="2">}}Instance{{</hover>}} kind from the defines the {{<hover label="gkv" line="2">}}Instance{{</hover>}} kind from the
group {{<hover label="gkv" line="1">}}ec2.aws.upbound.io{{</hover>}} group {{<hover label="gkv" line="1">}}ec2.aws.upbound.io{{</hover>}}
@ -650,8 +650,8 @@ call and receiving a response.
If a Provider restarts before creating the `succeed` or `fail` annotations the If a Provider restarts before creating the `succeed` or `fail` annotations the
Provider can't reconcile the manged resource. Provider can't reconcile the manged resource.
Read Crossplane [issue Read Crossplane
#3037](https://github.com/crossplane/crossplane/issues/3037#issuecomment-1110142427) [issue #3037](https://github.com/crossplane/crossplane/issues/3037#issuecomment-1110142427)
for more details for more details
{{< /hint >}} {{< /hint >}}

View File

@ -276,8 +276,7 @@ updates the Roles to access the specific API endpoints in a Claim.
{{< hint "note" >}} {{< hint "note" >}}
The specific details of the namespace Roles are beyond this guide. For more The specific details of the namespace Roles are beyond this guide. For more
information read the [Composite Resource ClusterRole information read the [Composite Resource ClusterRole Mechanics](https://github.com/crossplane/crossplane/blob/master/design/design-doc-rbac-manager.md#composite-resource-clusterrole-mechanics)
Mechanics](https://github.com/crossplane/crossplane/blob/master/design/design-doc-rbac-manager.md#composite-resource-clusterrole-mechanics)
section of the RBAC Manager design document. section of the RBAC Manager design document.
{{< /hint >}} {{< /hint >}}

View File

@ -33,8 +33,7 @@ Kubernetes API endpoint. These endpoints are
{{< hint "note" >}} {{< hint "note" >}}
Instructions on building your own Provider are outside of the scope of this Instructions on building your own Provider are outside of the scope of this
document. Read the Crossplane contributing [Provider Development document. Read the Crossplane contributing [Provider Development Guide](https://github.com/crossplane/crossplane/blob/master/contributing/guide-provider-development.md)
Guide](https://github.com/crossplane/crossplane/blob/master/contributing/guide-provider-development.md)
for more information. for more information.
{{< /hint >}} {{< /hint >}}
@ -132,8 +131,7 @@ If you remove the Provider first, you must manually delete external resources
through your cloud provider. Managed resources must be manually deleted by through your cloud provider. Managed resources must be manually deleted by
removing their finalizers. removing their finalizers.
For more information on deleting abandoned resources read the [Crossplane For more information on deleting abandoned resources read the [Crossplane troubleshooting guide]({{<ref "/knowledge-base/guides/troubleshoot#deleting-when-a-resource-hangs" >}}).
troubleshooting guide]({{<ref "/knowledge-base/guides/troubleshoot#deleting-when-a-resource-hangs" >}}).
{{< /hint >}} {{< /hint >}}
## Verify a Provider ## Verify a Provider

View File

@ -98,7 +98,7 @@ defines a
[`bucket`](https://marketplace.upbound.io/providers/upbound/provider-aws/v0.25.0/resources/s3.aws.upbound.io/Bucket/v1beta1) [`bucket`](https://marketplace.upbound.io/providers/upbound/provider-aws/v0.25.0/resources/s3.aws.upbound.io/Bucket/v1beta1)
resource for creating and managing AWS S3 storage buckets. resource for creating and managing AWS S3 storage buckets.
Within the `bucket` CRD is a In the `bucket` CRD is a
[`spec.forProvider.region`](https://marketplace.upbound.io/providers/upbound/provider-aws/v0.25.0/resources/s3.aws.upbound.io/Bucket/v1beta1#doc:spec-forProvider-region) [`spec.forProvider.region`](https://marketplace.upbound.io/providers/upbound/provider-aws/v0.25.0/resources/s3.aws.upbound.io/Bucket/v1beta1#doc:spec-forProvider-region)
value that defines which AWS region to deploy the bucket in. value that defines which AWS region to deploy the bucket in.
@ -147,8 +147,7 @@ Depending on the size of the API server and number of managed resources, this
command may take minutes to return or may timeout. command may take minutes to return or may timeout.
For more information, read For more information, read
[Kubernetes issue [Kubernetes issue #111880](https://github.com/kubernetes/kubernetes/issues/111880)
#111880](https://github.com/kubernetes/kubernetes/issues/111880)
and and
[Crossplane issue #3459](https://github.com/crossplane/crossplane/issues/3459). [Crossplane issue #3459](https://github.com/crossplane/crossplane/issues/3459).
{{< /hint >}} {{< /hint >}}

View File

@ -132,7 +132,7 @@ is strongly recommended.
This guide uses the group This guide uses the group
{{<hover label="version" line="1">}}database.example.com{{</hover>}}. {{<hover label="version" line="1">}}database.example.com{{</hover>}}.
Since this is the first version of the API, this guide uses the version Because this is the first version of the API, this guide uses the version
{{<hover label="version" line="1">}}v1alpha1{{</hover>}}. {{<hover label="version" line="1">}}v1alpha1{{</hover>}}.
```yaml {label="version",copy-lines="none"} ```yaml {label="version",copy-lines="none"}
@ -141,7 +141,7 @@ apiVersion: database.example.com/v1alpha1
### Define a kind ### Define a kind
The API group is a logical collection of related APIs. Within a group are The API group is a logical collection of related APIs. In a group are
individual kinds representing different resources. individual kinds representing different resources.
For example a `database` group may have a `Relational` and `NoSQL` kinds. For example a `database` group may have a `Relational` and `NoSQL` kinds.
@ -473,7 +473,7 @@ Accessing the API `nosql` happens at the cluster scope.
Most organizations Most organizations
isolate their users into namespaces. isolate their users into namespaces.
A Crossplane _Claim_ is the custom API within a namespace. A Crossplane _Claim_ is the custom API in a namespace.
Creating a _Claim_ is just like accessing the custom API endpoint, but with the Creating a _Claim_ is just like accessing the custom API endpoint, but with the
{{<hover label="claim" line="3">}}kind{{</hover>}} {{<hover label="claim" line="3">}}kind{{</hover>}}

View File

@ -137,7 +137,7 @@ is strongly recommended.
This guide uses the group This guide uses the group
{{<hover label="version" line="1">}}compute.example.com{{</hover>}}. {{<hover label="version" line="1">}}compute.example.com{{</hover>}}.
Since this is the first version of the API, this guide uses the version Because this is the first version of the API, this guide uses the version
{{<hover label="version" line="1">}}v1alpha1{{</hover>}}. {{<hover label="version" line="1">}}v1alpha1{{</hover>}}.
```yaml {label="version",copy-lines="none"} ```yaml {label="version",copy-lines="none"}
@ -146,7 +146,7 @@ apiVersion: compute.example.com/v1alpha1
### Define a kind ### Define a kind
The API group is a logical collection of related APIs. Within a group are The API group is a logical collection of related APIs. In a group are
individual kinds representing different resources. individual kinds representing different resources.
For example a `compute` group may have a `VirtualMachine` and `BareMetal` kinds. For example a `compute` group may have a `VirtualMachine` and `BareMetal` kinds.
@ -574,7 +574,7 @@ Accessing the API `VirtualMachine` happens at the cluster scope.
Most organizations Most organizations
isolate their users into namespaces. isolate their users into namespaces.
A Crossplane _Claim_ is the custom API within a namespace. A Crossplane _Claim_ is the custom API in a namespace.
Creating a _Claim_ is just like accessing the custom API endpoint, but with the Creating a _Claim_ is just like accessing the custom API endpoint, but with the
{{<hover label="claim" line="3">}}kind{{</hover>}} {{<hover label="claim" line="3">}}kind{{</hover>}}

View File

@ -150,7 +150,7 @@ is strongly recommended.
This guide uses the group This guide uses the group
{{<hover label="version" line="1">}}database.example.com{{</hover>}}. {{<hover label="version" line="1">}}database.example.com{{</hover>}}.
Since this is the first version of the API, this guide uses the version Because this is the first version of the API, this guide uses the version
{{<hover label="version" line="1">}}v1alpha1{{</hover>}}. {{<hover label="version" line="1">}}v1alpha1{{</hover>}}.
```yaml {label="version",copy-lines="none"} ```yaml {label="version",copy-lines="none"}
@ -159,7 +159,7 @@ apiVersion: database.example.com/v1alpha1
### Define a kind ### Define a kind
The API group is a logical collection of related APIs. Within a group are The API group is a logical collection of related APIs. In a group are
individual kinds representing different resources. individual kinds representing different resources.
For example a `queue` group may have a `PubSub` and `CloudTask` kinds. For example a `queue` group may have a `PubSub` and `CloudTask` kinds.
@ -478,7 +478,7 @@ Accessing the API `pubsub` happens at the cluster scope.
Most organizations Most organizations
isolate their users into namespaces. isolate their users into namespaces.
A Crossplane _Claim_ is the custom API within a namespace. A Crossplane _Claim_ is the custom API in a namespace.
Creating a _Claim_ is just like accessing the custom API endpoint, but with the Creating a _Claim_ is just like accessing the custom API endpoint, but with the
{{<hover label="claim" line="3">}}kind{{</hover>}} {{<hover label="claim" line="3">}}kind{{</hover>}}

View File

@ -94,7 +94,7 @@ provider and configuration packages.
* The _Composition controller_ installs and manages the * The _Composition controller_ installs and manages the
Crossplane _Composite Resource Definitions_, _Compositions_ and _Claims_. Crossplane _Composite Resource Definitions_, _Compositions_ and _Claims_.
### Crossplane-rbac-manager deployment ### Crossplane RBAC manager deployment
The `crossplane-rbac-manager` creates and manages Kubernetes _ClusterRoles_ for The `crossplane-rbac-manager` creates and manages Kubernetes _ClusterRoles_ for
installed Crossplane _Provider_ and their _Custom Resource Definitions_. installed Crossplane _Provider_ and their _Custom Resource Definitions_.
@ -126,16 +126,16 @@ Apply customizations with the command line or with a Helm _values_ file.
| `extraEnvVarsRBACManager` | Add custom environmental variables to the RBAC Manager pod deployment. Replaces any `.` in a variable name with `_`. For example, `SAMPLE.KEY=value1` becomes `SAMPLE_KEY=value1`. | `{}` | | `extraEnvVarsRBACManager` | Add custom environmental variables to the RBAC Manager pod deployment. Replaces any `.` in a variable name with `_`. For example, `SAMPLE.KEY=value1` becomes `SAMPLE_KEY=value1`. | `{}` |
| `extraVolumeMountsCrossplane` | Add custom `volumeMounts` to the Crossplane pod. | `{}` | | `extraVolumeMountsCrossplane` | Add custom `volumeMounts` to the Crossplane pod. | `{}` |
| `extraVolumesCrossplane` | Add custom `volumes` to the Crossplane pod. | `{}` | | `extraVolumesCrossplane` | Add custom `volumes` to the Crossplane pod. | `{}` |
| `hostNetwork` | Enable `hostNetwork` for the Crossplane deployment. Caution: enabling `hostNetwork`` grants the Crossplane Pod access to the host network namespace. | `false` | | `hostNetwork` | Enable `hostNetwork` for the Crossplane deployment. Caution: enabling `hostNetwork` grants the Crossplane Pod access to the host network namespace. | `false` |
| `image.pullPolicy` | The image pull policy used for Crossplane and RBAC Manager pods. | `"IfNotPresent"` | | `image.pullPolicy` | The image pull policy used for Crossplane and RBAC Manager pods. | `"IfNotPresent"` |
| `image.repository` | Repository for the Crossplane pod image. | `"crossplane/crossplane"` | | `image.repository` | Repository for the Crossplane pod image. | `"crossplane/crossplane"` |
| `image.tag` | The Crossplane image tag. Defaults to the value of `appVersion` in Chart.yaml. | `""` | | `image.tag` | The Crossplane image tag. Defaults to the value of `appVersion` in `Chart.yaml`. | `""` |
| `imagePullSecrets` | The imagePullSecret names to add to the Crossplane ServiceAccount. | `{}` | | `imagePullSecrets` | The imagePullSecret names to add to the Crossplane ServiceAccount. | `{}` |
| `leaderElection` | Enable [leader election](https://docs.crossplane.io/latest/concepts/pods/#leader-election) for the Crossplane pod. | `true` | | `leaderElection` | Enable [leader election](https://docs.crossplane.io/latest/concepts/pods/#leader-election) for the Crossplane pod. | `true` |
| `metrics.enabled` | Enable Prometheus path, port and scrape annotations and expose port 8080 for both the Crossplane and RBAC Manager pods. | `false` | | `metrics.enabled` | Enable Prometheus path, port and scrape annotations and expose port 8080 for both the Crossplane and RBAC Manager pods. | `false` |
| `nodeSelector` | Add `nodeSelectors` to the Crossplane pod deployment. | `{}` | | `nodeSelector` | Add `nodeSelectors` to the Crossplane pod deployment. | `{}` |
| `packageCache.configMap` | The name of a ConfigMap to use as the package cache. Disables the default package cache `emptyDir` Volume. | `""` | | `packageCache.configMap` | The name of a ConfigMap to use as the package cache. Disables the default package cache `emptyDir` Volume. | `""` |
| `packageCache.medium` | Set to `Memory` to hold the package cache in a RAM-backed file system. Useful for Crossplane development. | `""` | | `packageCache.medium` | Set to `Memory` to hold the package cache in a RAM backed file system. Useful for Crossplane development. | `""` |
| `packageCache.pvc` | The name of a PersistentVolumeClaim to use as the package cache. Disables the default package cache `emptyDir` Volume. | `""` | | `packageCache.pvc` | The name of a PersistentVolumeClaim to use as the package cache. Disables the default package cache `emptyDir` Volume. | `""` |
| `packageCache.sizeLimit` | The size limit for the package cache. If medium is `Memory` the `sizeLimit` can't exceed Node memory. | `"20Mi"` | | `packageCache.sizeLimit` | The size limit for the package cache. If medium is `Memory` the `sizeLimit` can't exceed Node memory. | `"20Mi"` |
| `podSecurityContextCrossplane` | Add a custom `securityContext` to the Crossplane pod. | `{}` | | `podSecurityContextCrossplane` | Add a custom `securityContext` to the Crossplane pod. | `{}` |
@ -175,14 +175,14 @@ Apply customizations with the command line or with a Helm _values_ file.
| `webhooks.enabled` | Enable webhooks for Crossplane and installed Provider packages. | `true` | | `webhooks.enabled` | Enable webhooks for Crossplane and installed Provider packages. | `true` |
| `xfn.args` | Add custom arguments to the Composite functions runner container. | `[]` | | `xfn.args` | Add custom arguments to the Composite functions runner container. | `[]` |
| `xfn.cache.configMap` | The name of a ConfigMap to use as the Composite function runner package cache. Disables the default Composite function runner package cache `emptyDir` Volume. | `""` | | `xfn.cache.configMap` | The name of a ConfigMap to use as the Composite function runner package cache. Disables the default Composite function runner package cache `emptyDir` Volume. | `""` |
| `xfn.cache.medium` | Set to `Memory` to hold the Composite function runner package cache in a RAM-backed file system. Useful for Crossplane development. | `""` | | `xfn.cache.medium` | Set to `Memory` to hold the Composite function runner package cache in a RAM backed file system. Useful for Crossplane development. | `""` |
| `xfn.cache.pvc` | The name of a PersistentVolumeClaim to use as the Composite function runner package cache. Disables the default Composite function runner package cache `emptyDir` Volume. | `""` | | `xfn.cache.pvc` | The name of a PersistentVolumeClaim to use as the Composite function runner package cache. Disables the default Composite function runner package cache `emptyDir` Volume. | `""` |
| `xfn.cache.sizeLimit` | The size limit for the Composite function runner package cache. If medium is `Memory` the `sizeLimit` can't exceed Node memory. | `"1Gi"` | | `xfn.cache.sizeLimit` | The size limit for the Composite function runner package cache. If medium is `Memory` the `sizeLimit` can't exceed Node memory. | `"1Gi"` |
| `xfn.enabled` | Enable the alpha Composition functions (`xfn`) sidecar container. Also requires Crossplane `args` value `--enable-composition-functions` set. | `false` | | `xfn.enabled` | Enable the alpha Composition functions (`xfn`) sidecar container. Also requires Crossplane `args` value `--enable-composition-functions` set. | `false` |
| `xfn.extraEnvVars` | Add custom environmental variables to the Composite function runner container. Replaces any `.` in a variable name with `_`. For example, `SAMPLE.KEY=value1` becomes `SAMPLE_KEY=value1`. | `{}` | | `xfn.extraEnvVars` | Add custom environmental variables to the Composite function runner container. Replaces any `.` in a variable name with `_`. For example, `SAMPLE.KEY=value1` becomes `SAMPLE_KEY=value1`. | `{}` |
| `xfn.image.pullPolicy` | Composite function runner container image pull policy. | `"IfNotPresent"` | | `xfn.image.pullPolicy` | Composite function runner container image pull policy. | `"IfNotPresent"` |
| `xfn.image.repository` | Composite function runner container image. | `"crossplane/xfn"` | | `xfn.image.repository` | Composite function runner container image. | `"crossplane/xfn"` |
| `xfn.image.tag` | Composite function runner container image tag. Defaults to the value of `appVersion` in Chart.yaml. | `""` | | `xfn.image.tag` | Composite function runner container image tag. Defaults to the value of `appVersion` in `Chart.yaml`. | `""` |
| `xfn.resources.limits.cpu` | CPU resource limits for the Composite function runner container. | `"2000m"` | | `xfn.resources.limits.cpu` | CPU resource limits for the Composite function runner container. | `"2000m"` |
| `xfn.resources.limits.memory` | Memory resource limits for the Composite function runner container. | `"2Gi"` | | `xfn.resources.limits.memory` | Memory resource limits for the Composite function runner container. | `"2Gi"` |
| `xfn.resources.requests.cpu` | CPU resource requests for the Composite function runner container. | `"1000m"` | | `xfn.resources.requests.cpu` | CPU resource requests for the Composite function runner container. | `"1000m"` |

View File

@ -22,10 +22,12 @@ gitlab.TabsLinks = NO
gitlab.VersionText = NO gitlab.VersionText = NO
gitlab.VersionTextSingleLine = NO gitlab.VersionTextSingleLine = NO
gitlab.EOLWhitespace = NO gitlab.EOLWhitespace = NO
gitlab.Normal = NO
# Covered by Alex # Covered by Alex
gitlab.InclusionCultural = NO gitlab.InclusionCultural = NO
gitlab.InclusionGender = NO gitlab.InclusionGender = NO
gitlab.Simplicity = NO
# Don't enforce oxford comma # Don't enforce oxford comma
Google.OxfordComma = NO Google.OxfordComma = NO
@ -46,7 +48,7 @@ Microsoft.GeneralURL = NO
# Ignore markdown image with alt: ![ # Ignore markdown image with alt: ![
# ignore v#.## # ignore v#.##
# ignore ##px # ignore ##px
TokenIgnores = (\(#.*\)),(\]\(),(http.*),({{<\s*\/?expand),(\!\[),(\d.*px) TokenIgnores = (\(#.*\)),(\]\(),(http.*),({{<\s*\/?expand),(\!\[),(\d.*px),(\d\.\d\.\d)
# ignore whole tags: # ignore whole tags:
# Ignore hugo tags # Ignore hugo tags

View File

@ -79,3 +79,7 @@ kube-apiserver
cluster-wide cluster-wide
autoscaler autoscaler
DatabaseInstance DatabaseInstance
ConfigMap
imagePullSecret
PersistentVolumeClaim
PriorityClass

View File

@ -20,6 +20,7 @@ PurgeCSS
Upbound Upbound
Upbound's Upbound's
Upjet Upjet
UXP
Velero Velero
VSCode VSCode
Webpack Webpack

View File

@ -9,17 +9,25 @@ CombineToEnvironment
CompositeResourceDefinition CompositeResourceDefinition
CompositeResourceDefinitions CompositeResourceDefinitions
composition.yaml composition.yaml
composition.yaml
CompositionRevisions
ControllerConfig ControllerConfig
ControllerConfigs ControllerConfigs
CRDs CRDs
Crossplane Crossplane
crossplane-admin crossplane-admin
crossplane-browse crossplane-browse
crossplane-browse
crossplane-edit
crossplane-edit crossplane-edit
crossplane-view crossplane-view
crossplane-view
crossplane.yaml
crossplane.yaml crossplane.yaml
Crossplane's Crossplane's
definition.yaml definition.yaml
definition.yaml
deletionPolicy
EnvironmentConfig EnvironmentConfig
EnvironmentConfigs EnvironmentConfigs
external-name external-name
@ -29,7 +37,12 @@ FromCompositeFieldPath
FromEnvironmentFieldPath FromEnvironmentFieldPath
fromFieldPath fromFieldPath
HealthyPackageRevision HealthyPackageRevision
HealthyPackageRevision
InactivePackageRevision InactivePackageRevision
InactivePackageRevision
initProvider
LateInitialize
managementPolicies
PatchSet PatchSet
PatchSets PatchSets
ProviderConfig ProviderConfig
@ -50,17 +63,4 @@ XRC
XRD XRD
XRD's XRD's
XRDs XRDs
XRs XRs
ActivePackageRevision
crossplane-edit
HealthyPackageRevision
crossplane-view
crossplane-browse
InactivePackageRevision
crossplane.yaml
definition.yaml
composition.yaml
managementPolicies
deletionPolicy
initProvider
LateInitialize

View File

@ -1,6 +1,7 @@
/tab /tab
/tabs /tabs
call-outs call-outs
ClusterRoles`
comma-seperated comma-seperated
conformant conformant
cross-reference cross-reference
@ -25,12 +26,14 @@ per-resource
poll-interval poll-interval
pre-existing pre-existing
pre-provisioned pre-provisioned
pre-release
race-conditions race-conditions
read-only read-only
resource-specific resource-specific
right-hand right-hand
run-time run-time
step-by-step step-by-step
third-party
top-level top-level
untrusted untrusted
UpperCamelCase UpperCamelCase

View File

@ -1,13 +0,0 @@
---
# Warning: gitlab.Admin
#
# Checks for "admin" and recommends using the full word instead. "Admin Area" is OK.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: substitution
message: 'Verify this use of the word "admin". Can it be updated to "administration", "administrator", "administer", or "Admin Area"?'
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html
level: suggestion
ignorecase: false
swap:
'[Aa]dmin ?\w*': '(?:Admin( Area| Mode)?|[Aa]dminist(ration|rator|rators|er|rative|ering|ered))'

View File

@ -3,13 +3,13 @@
# #
# Makes sure alert boxes are used with block quotes. Checks for 3 formatting issues: # Makes sure alert boxes are used with block quotes. Checks for 3 formatting issues:
# #
# - Alert boxes inside a block quote (">") # - Alert boxes inside a block quote ('>')
# - Alert boxes with the note text on the same line # - Alert boxes with the note text on the same line
# - Alert boxes using words other than "NOTE" or "WARNING" # - Alert boxes using words other than 'NOTE' or 'WARNING'
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence extends: existence
message: 'Alert box "%s" must use the formatting in the style guide.' message: "Update the format of the '%s' alert box. View the style guide for details."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#alert-boxes link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#alert-boxes
level: error level: error
nonword: true nonword: true

View File

@ -1,14 +1,13 @@
--- ---
# Suggestion: gitlab.BadPlurals # Warning: gitlab.BadPlurals
# #
# Don't write plural words with the '(s)' construction. "HTTP(S)" is acceptable. # Don't write plural words with the '(s)' construction. 'HTTP(S)' is acceptable.
# #
# For a list of all options, see https://docs.errata.ai/vale/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence extends: existence
message: 'Rewrite "%s" to be plural, without parentheses.' message: "Rewrite '%s' to be plural without parentheses."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html#s
level: warning level: warning
scope: raw
ignorecase: true ignorecase: true
raw: raw:
- '\b\w+\(s\)(?<!http\(s\))' - '\b\w+\(s\)(?<!http\(s\))'

View File

@ -3,9 +3,9 @@
# #
# Verifies that badges are not mixed case, which won't render properly. # Verifies that badges are not mixed case, which won't render properly.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence extends: existence
message: 'Badge "%s" must be capitalized.' message: "Capitalize the '%s' badge."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#product-tier-badges link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#product-tier-badges
level: error level: error
scope: raw scope: raw

View File

@ -3,9 +3,9 @@
# #
# Checks that US spelling is used instead of British spelling. # Checks that US spelling is used instead of British spelling.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: substitution extends: substitution
message: 'Use the US spelling "%s" instead of the British "%s".' message: "Use the US spelling '%s' instead of the British '%s'."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#language link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#language
level: error level: error
ignorecase: true ignorecase: true
@ -80,6 +80,9 @@ swap:
neighbour: neighbor neighbour: neighbor
normalise: normalize normalise: normalize
offence: offense offence: offense
optimise: optimize
optimised: optimized
optimising: optimizing
organise: organize organise: organize
orientated: oriented orientated: oriented
paralyse: paralyze paralyse: paralyze

View File

@ -0,0 +1,13 @@
---
# Error: gitlab.CIConfigFile
#
# Checks that the `.gitlab-ci.yml` file is referenced properly.
#
# For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence
message: "Change the file name to be exactly '.gitlab-ci.yml'."
link: https://docs.gitlab.com/ee/development/documentation/versions.html
level: error
scope: raw
raw:
- '(?!`\.gitlab-ci\.yml`)`.?gitlab.?ci.?ya?ml`'

View File

@ -0,0 +1,13 @@
---
# Error: gitlab.CodeblockFences
#
# Ensures all codeblock language tags use the full name, not aliases.
#
# For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence
message: "Instead of '%s' for the code block, use yaml, ruby, plaintext, markdown, javascript, shell, go, python, dockerfile, or typescript."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#code-blocks
level: error
scope: raw
raw:
- '\`\`\`(yml|rb|text|md|bash|sh\n|js\n|golang\n|py\n|docker\n|ts)'

View File

@ -0,0 +1,14 @@
---
# Error: gitlab.CommandStringsQuoted
#
# Ensures all code blocks wrap URL strings in quotation marks.
#
# For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence
message: "For the command example, use double quotes around the URL: %s"
link: https://docs.gitlab.com/ee/development/documentation/restful_api_styleguide.html#curl-commands
level: error
scope: raw
nonword: true
tokens:
- '(curl|--url)[^"\]\n]+?https?:\/\/[^ \n]*'

View File

@ -1,13 +0,0 @@
---
# Error: gitlab.CurlStringsQuoted
#
# Ensures all code blocks using `curl` wrap URL strings in quotation marks.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: existence
message: 'For consistency across all cURL examples, always wrap the URL in double quotes ("): %s'
link: https://docs.gitlab.com/ee/development/documentation/restful_api_styleguide.html#curl-commands
level: error
scope: code
raw:
- 'curl [^"]+://.*'

View File

@ -1,14 +1,13 @@
--- ---
# Suggestion: gitlab.CurrentStatus # Warning: gitlab.CurrentStatus
# #
# Checks for words that indicate a product or feature may change in the future. # Checks for words that indicate a product or feature may change in the future.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence extends: existence
message: 'Avoid words like "%s" when you write about future features. Our documentation is about the current state of the product.' message: "Remove '%s'. The documentation reflects the current state of the product."
level: suggestion level: warning
ignorecase: true ignorecase: true
link: https://docs.gitlab.com/ee/development/documentation/styleguide/#promising-features-in-future-versions link: https://docs.gitlab.com/ee/development/documentation/versions.html#promising-features-in-future-versions
tokens: tokens:
- currently - currently
- yet

View File

@ -0,0 +1,14 @@
---
# Warning: gitlab.DefaultBranch
#
# Do not refer to the default branch as the 'master' branch, if possible.
#
# For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence
message: "Use 'default branch' or `main` instead of `master`, when possible."
level: warning
ignorecase: true
link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html#default-branch
scope: raw
raw:
- '\`master\`'

View File

@ -3,11 +3,11 @@
# #
# Catches many ways the phrase 'dropdown list' can be fumbled. # Catches many ways the phrase 'dropdown list' can be fumbled.
# #
# For a list of all options, see https://errata-ai.github.io/vale/styles/ # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence extends: existence
message: 'Use "dropdown list".' message: "Use 'dropdown list'."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html#dropdown-list link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html#dropdown-list
level: suggestion level: warning
ignorecase: true ignorecase: true
tokens: tokens:
- drop-down( [\w]*)? - drop-down( [\w]*)?

View File

@ -0,0 +1,13 @@
---
# Warning: gitlab.EOLWhitespace
#
# Checks that there is no useless whitespace at the end of lines.
#
# For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence
message: "Remove whitespace characters from the end of the line."
link: https://docs.gitlab.com/ee/development/documentation/versions.html
level: warning
scope: raw
raw:
- ' +\n'

View File

@ -1,13 +1,14 @@
--- ---
# Suggestion: gitlab.ElementDescriptors # Warning: gitlab.ElementDescriptors
# #
# Suggests the correct way to describe elements in a form. # Suggests the correct way to describe a button.
# #
# For a list of all options, see https://errata-ai.github.io/vale/styles/ # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: substitution extends: existence
message: 'When describing elements, %s "%s".' message: "If possible, rewrite to remove 'button'."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#language link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html#button
level: suggestion level: warning
ignorecase: true ignorecase: true
swap: scope: raw
button: 'if possible, rewrite to remove' raw:
- \*\*[^*]+\*\*\s+button

View File

@ -1,16 +0,0 @@
---
# Warning: gitlab.FirstPerson
#
# Checks for use of first person pronouns.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: existence
message: '"%s" is a first-person pronoun. Use second- or third-person pronouns (like we, you, us, one) instead.'
level: warning
ignorecase: true
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#usage-list
tokens:
- '\bI[ ,;:?!"]|\bI\x27.{1,2}'
- me
- myself
- mine

View File

@ -1,14 +1,14 @@
--- ---
# Suggestion: gitlab.FutureTense # Warning: gitlab.FutureTense
# #
# Checks for use of future tense in sentences. Present tense is strongly preferred. # Checks for use of future tense in sentences. Present tense is strongly preferred.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence extends: existence
message: 'Avoid using future tense: "%s". Use present tense instead.' message: "Instead of future tense '%s', use present tense."
ignorecase: true ignorecase: true
level: warning level: warning
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#usage-list link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html#future-tense
raw: raw:
- "(going to( |\n|[[:punct:]])[a-zA-Z]*|" - "(going to( |\n|[[:punct:]])[a-zA-Z]*|"
- "will( |\n|[[:punct:]])[a-zA-Z]*|" - "will( |\n|[[:punct:]])[a-zA-Z]*|"

View File

@ -0,0 +1,14 @@
---
# Warning: gitlab.GitLabFlavoredMarkdown
#
# Checks for unclear use of GLFM or GLM instead of GitLab/GitHub Flavored Markdown
#
# For a list of all options, see https://vale.sh/docs/topics/styles/
extends: substitution
message: "Use '%s' instead of '%s' when possible."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html
level: warning
ignorecase: true
swap:
GLFM: "GitLab Flavored Markdown"
GFM: "GitLab Flavored Markdown' or 'GitHub Flavored Markdown"

View File

@ -1,18 +1,19 @@
--- ---
# Error: gitlab.HeadingContent # Warning: gitlab.HeadingContent
# #
# Checks for generic, unhelpful subheadings. # Checks for generic, unhelpful subheadings.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence extends: existence
message: 'Rename the subheading "%s", or re-purpose the content elsewhere.' message: "Rename the heading '%s', or re-purpose the content elsewhere."
level: warning level: warning
scope: heading link: https://docs.gitlab.com/ee/development/documentation/topic_types/concept.html#concept-headings
link: https://docs.gitlab.com/ee/development/documentation/styleguide/#headings-1 ignorecase: true
ignorecase: false nonword: true
scope: raw
tokens: tokens:
- How it works - '\#+ How it works'
- Limitations - '\#+ Limitations'
- Overview - '\#+ Overview'
- Use cases? - '\#+ Use cases?'
- Important notes? - '\#+ Important notes?'

View File

@ -0,0 +1,13 @@
---
# Suggestion: gitlab.HeadingDepth
#
# Checks that there are no headings greater than 3 levels
#
# For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence
message: "Refactor the section or page to avoid headings greater than H5."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#heading-levels-in-markdown
level: suggestion
scope: raw
raw:
- '(?<=\n)#{6,}\s.*'

View File

@ -1,13 +1,13 @@
--- ---
# Suggestion: gitlab.InclusionAbleism # Warning: gitlab.InclusionAbleism
# #
# Suggests alternatives for words that foster ableism. # Suggests alternatives for words that foster ableism.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: substitution extends: substitution
message: 'Use inclusive language. Consider "%s" instead of "%s".' message: "Use inclusive language. Consider '%s' instead of '%s'."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#inclusive-language link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html
level: suggestion level: warning
ignorecase: true ignorecase: true
swap: swap:
sanity (?:check|test): check for completeness sanity (?:check|test): check for completeness

View File

@ -3,13 +3,14 @@
# #
# Suggests alternatives for words that are culturally inappropriate. # Suggests alternatives for words that are culturally inappropriate.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: substitution extends: substitution
message: 'Use inclusive language. Consider "%s" instead of "%s".' message: "Use inclusive language. Consider '%s' instead of '%s'."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#inclusive-language link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html
level: warning level: warning
ignorecase: true ignorecase: true
swap: swap:
blacklist(?:ed|ing|s)?: denylist blacklist(?:ed|ing|s)?: denylist
whitelist(?:ed|ing|s)?: allowlist whitelist(?:ed|ing|s)?: allowlist
master: primary, main
slave: secondary slave: secondary

View File

@ -1,13 +1,13 @@
--- ---
# Suggestion: gitlab.InclusionGender # Warning: gitlab.InclusionGender
# #
# Suggests alternatives for words that are gender-specific. # Suggests alternatives for words that are gender-specific.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: substitution extends: substitution
message: 'Use inclusive language. Consider "%s" instead of "%s".' message: "Use inclusive language. Consider '%s' instead of '%s'."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#inclusive-language link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html
level: suggestion level: warning
ignorecase: true ignorecase: true
swap: swap:
mankind: humanity, people mankind: humanity, people

View File

@ -3,10 +3,10 @@
# #
# Checks that anchor fragments on internal links are in lower-case. # Checks that anchor fragments on internal links are in lower-case.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence extends: existence
message: 'Links to subheadings in GitLab docs must be in lower-case: "%s"' message: "Use lowercase for the anchor link."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#links-to-internal-documentation link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#anchor-links
level: error level: error
scope: raw scope: raw
raw: raw:

View File

@ -3,11 +3,11 @@
# #
# Checks that internal links have .md extenstion and not .html extension. # Checks that internal links have .md extenstion and not .html extension.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence extends: existence
message: 'Link "%s" must use the .md file extension.' message: "Link to a file and use the .md file extension instead of .html."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#links-to-internal-documentation link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#links
level: error level: error
scope: raw scope: raw
raw: raw:
- '\[.+\]\([\w\/\.-]+\.html[^)]*\)' - '\[[^\]]+\]\([^:\)]+(\/(#[^\)]+)?\)|\.html(#.+)?\))'

View File

@ -1,13 +1,13 @@
--- ---
# Error: gitlab.InternalLinkFormat # Error: gitlab.InternalLinkFormat
# #
# Checks that internal link paths don't start with "./", which is not needed. # Checks that internal link paths don't start with './', which is not needed.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence extends: existence
message: 'Link "%s" must not start with "./".' message: "Edit the link so it does not start with './'."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#links-to-internal-documentation link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#links
level: error level: error
scope: raw scope: raw
raw: raw:
- '\[.+\]\(\.\/.*?\)' - '\[[^\]]+\]\(\.\/.*?\)'

View File

@ -3,10 +3,10 @@
# #
# Checks for use of Latin terms. # Checks for use of Latin terms.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: substitution extends: substitution
message: 'Use "%s" instead of "%s", but consider rewriting the sentence.' message: "Use '%s' instead of '%s', but consider rewriting the sentence."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#usage-list link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html
level: warning level: warning
nonword: true nonword: true
ignorecase: true ignorecase: true

View File

@ -3,13 +3,14 @@
# #
# Checks for the presence of semantically unhelpful words in link text. # Checks for the presence of semantically unhelpful words in link text.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence extends: existence
message: 'Improve SEO and accessibility by rewriting "%s" in the link text.' message: "Improve SEO and accessibility by rewriting the link text for '%s'."
level: warning level: warning
scope: link
ignorecase: true ignorecase: true
link: https://about.gitlab.com/handbook/communication/#writing-style-guidelines link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#text-for-links
scope: raw
nonword: true
tokens: tokens:
- here - \[here\]\(.*\)
- this page - \[this page\]\(.*\)

View File

@ -3,9 +3,9 @@
# #
# Checks for the presence of merge conflict markers. # Checks for the presence of merge conflict markers.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence extends: existence
message: 'Merge conflict marker "%s" found.' message: "Remove the merge conflict marker '%s'."
link: https://docs.gitlab.com/ee/development/code_review.html#merging-a-merge-request link: https://docs.gitlab.com/ee/development/code_review.html#merging-a-merge-request
level: error level: error
scope: raw scope: raw

View File

@ -0,0 +1,14 @@
---
# Error: gitlab.MultiLineLinks
#
# Checks that links are all on a single line.
#
# For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence
message: "Put the full link on one line, even if the link is very long."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#links
level: error
scope: raw
raw:
- '\[[^\[\]]*?\n[^\[\]]*?\]\([^\)]*?\)|'
- '\[[^\[\]]*?\]\([^\)]*?\n[^\)]*\)'

View File

@ -3,12 +3,12 @@
# #
# Use only standard single and double quotes, not left or right quotes. # Use only standard single and double quotes, not left or right quotes.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence extends: existence
message: 'Use standard single quotes or double quotes only. Do not use left or right quotes.' message: "Use standard single quotes or double quotes only. Do not use left or right quotes."
level: warning level: warning
ignorecase: true ignorecase: true
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#punctuation
scope: raw scope: raw
raw: raw:
- '[‘’“”]' - '[‘’“”]'

View File

@ -0,0 +1,14 @@
---
# Warning: gitlab.Normal
#
# Suggests alternatives for 'normal'.
#
# For a list of all options, see https://vale.sh/docs/topics/styles/
extends: substitution
message: "Use '%s' instead of '%s'."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html
level: warning
ignorecase: true
swap:
normally: "usually' or 'typically"
normal: "typical' or 'standard"

View File

@ -1,12 +1,12 @@
--- ---
# Warning: gitlab.OutdatedVersions # Suggestion: gitlab.OutdatedVersions
# #
# Checks for references to versions of GitLab that are no longer supported. # Checks for references to versions of GitLab that are no longer supported.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence extends: existence
message: 'Can this reference to "%s" be refactored?' message: "If possible, remove the reference to '%s'."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#gitlab-versions link: https://docs.gitlab.com/ee/development/documentation/versions.html
level: suggestion level: suggestion
nonword: true nonword: true
ignorecase: true ignorecase: true
@ -21,3 +21,5 @@ tokens:
- "GitLab (v)?9." - "GitLab (v)?9."
- "GitLab (v)?10." - "GitLab (v)?10."
- "GitLab (v)?11." - "GitLab (v)?11."
- "GitLab (v)?12."
- "GitLab (v)?13."

View File

@ -0,0 +1,12 @@
---
# Warning: gitlab.OxfordComma
#
# Checks for the lack of an Oxford comma. In some cases, will catch overly complex sentence structures with lots of commas.
#
# For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence
message: "Use a comma before the last 'and' or 'or' in a list of four or more items."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#punctuation
level: warning
raw:
- '(?:[\w-_` ]+,){2,}(?:[\w-_` ]+) (and |or )'

View File

@ -1,13 +1,13 @@
--- ---
# Warning: gitlab.Possessive # Error: gitlab.Possessive
# #
# The word GitLab should not be used in the possessive form. # The word GitLab should not be used in the possessive form.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence extends: existence
message: "Rewrite '%s' to not use 's." message: "Remove 's from %s."
level: error level: error
ignorecase: true ignorecase: true
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#trademark link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html#gitlab
tokens: tokens:
- GitLab's - GitLab's

View File

@ -4,8 +4,10 @@
# Checks the Flesch-Kincaid reading level. # Checks the Flesch-Kincaid reading level.
# #
# https://docs.errata.ai/vale/styles#metric # https://docs.errata.ai/vale/styles#metric
#
# For a list of all options, see https://vale.sh/docs/topics/styles/
extends: metric extends: metric
message: "The grade level - %s - refers to how hard the content is to understand. Aim for 8th grade or lower by using shorter sentences and words." message: "The grade level is %s. Aim for 8th grade or lower by using shorter sentences and words."
link: https://docs.gitlab.com/ee/development/documentation/testing.html#vale-readability-score link: https://docs.gitlab.com/ee/development/documentation/testing.html#vale-readability-score
level: suggestion level: suggestion
formula: | formula: |

View File

@ -3,10 +3,10 @@
# #
# Checks for reference-style links that should be converted to inline links. # Checks for reference-style links that should be converted to inline links.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence extends: existence
message: 'Link "%s" must be inline.' message: "Put this link inline with the rest of the text."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#basic-link-criteria link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#links
level: error level: error
scope: raw scope: raw
raw: raw:

View File

@ -3,11 +3,11 @@
# #
# Checks for the presence of absolute hyperlinks that should be relative. # Checks for the presence of absolute hyperlinks that should be relative.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence extends: existence
message: 'Link "%s" must be a relative link with a .md extension.' message: "Use a relative link instead of a URL, and ensure the file name ends in .md and not .html."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#links-to-internal-documentation link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#links
level: error level: error
scope: raw scope: raw
raw: raw:
- '\[.+\]\(https?:\/\/docs\.gitlab\.com\/[ce]e.*\)' - '\[[^\]]+\]\(https?:\/\/docs\.gitlab\.com\/[ce]e.*?\)'

View File

@ -3,10 +3,10 @@
# #
# Checks for the presence of double slashes in relative URLs. # Checks for the presence of double slashes in relative URLs.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence extends: existence
message: 'Relative links must not include a double slash.' message: "Remove the double slash from this relative link."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#links-to-internal-documentation link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#links
level: error level: error
scope: raw scope: raw
raw: raw:

View File

@ -3,9 +3,9 @@
# #
# Checks for duplicate words, like `the the` or `and and`. # Checks for duplicate words, like `the the` or `and and`.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: repetition extends: repetition
message: '"%s" is repeated.' message: "Remove this duplicate word: '%s'."
level: error level: error
alpha: true alpha: true
tokens: tokens:

View File

@ -1,13 +1,13 @@
--- ---
# Warning: gitlab.SentenceLength # Suggestion: gitlab.SentenceLength
# #
# Counts words in a sentence and alerts if a sentence exceeds 25 words. # Counts words in a sentence and alerts if a sentence exceeds 25 words.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: occurrence extends: occurrence
message: 'Shorter sentences improve readability (max 25 words).' message: "Improve readability by using fewer than 25 words in this sentence."
scope: sentence scope: sentence
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#language link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#language
level: warning level: suggestion
max: 25 max: 25
token: \b(\w+)\b token: \b(\w+)\b

View File

@ -3,9 +3,9 @@
# #
# Checks for incorrect spacing (no spaces, or more than one space) around punctuation. # Checks for incorrect spacing (no spaces, or more than one space) around punctuation.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence extends: existence
message: '"%s" must contain one and only one space.' message: "Remove the extra space: '%s'"
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#punctuation link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#punctuation
level: error level: error
nonword: true nonword: true

View File

@ -1,14 +1,14 @@
--- ---
# Suggestion: gitlab.Simplicity # Warning: gitlab.Simplicity
# #
# Checks for words implying ease of use, to avoid cognitive dissonance for frustrated users. # Checks for words implying ease of use, to avoid cognitive dissonance for frustrated users.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence extends: existence
message: 'Avoid words like "%s" that imply ease of use, because the user may find this action hard.' message: "Remove '%s'. Be precise instead of subjective."
level: suggestion level: warning
ignorecase: true ignorecase: true
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#usage-list link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html
tokens: tokens:
- easy - easy
- easily - easily

View File

@ -0,0 +1,16 @@
---
# Warning: gitlab.Spelling
#
# Checks for possible spelling mistakes in content, not code. Results from links using angle brackets (<https://example.com>) should be corrected.
#
# If a word is flagged as a spelling mistake incorrectly, such as a product name,
# you can submit an MR to update `spelling-exceptions.txt` with the missing word.
# Commands, like `git clone` must use backticks, and must not be added to the
# exceptions.
#
# For a list of all options, see https://vale.sh/docs/topics/styles/
extends: spelling
message: "Check the spelling of '%s'. If the spelling is correct, ask a Technical Writer to add this word to the spelling exception list."
level: warning
ignore:
- gitlab/spelling-exceptions.txt

View File

@ -1,28 +0,0 @@
---
# Suggestion: gitlab.SubstitutionSuggestions
#
# Suggests better options for frequently misused terms that are often - but not always - incorrect.
# SubstitutionWarning.yml and Substitutions.yml also exist.
#
# For a list of all options, see https://errata-ai.github.io/vale/styles/
extends: substitution
message: 'Consider %s instead of "%s".'
link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html
level: suggestion
ignorecase: true
swap:
active user: '"billable user"'
active users: '"billable users"'
docs: '"documentation"'
e-mail: '"email"'
GLFM: '"GitLab Flavored Markdown"'
it is recommended: '"we recommend"'
navigate: go
OAuth2: '"OAuth 2.0"'
once that: '"after that"'
once the: '"after the"'
once you: '"after you"'
since: '"because" or "after"'
sub-group: '"subgroup"'
sub-groups: '"subgroups"'
within: '"in"'

View File

@ -1,28 +1,63 @@
--- ---
# Warning: gitlab.SubstitutionWarning # Warning: gitlab.SubstitutionWarning
# #
# Checks for misused terms or common shorthand that should never be used at GitLab, but can't be flagged as errors. # Checks for misused terms or common shorthand that should not be used at GitLab, but can't be flagged as errors.
# Substitutions.yml and SubstitionSuggestions.yml also exist. # Substitutions.yml also exists.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: substitution extends: substitution
message: 'If possible, use "%s" instead of "%s".' message: "Use '%s' instead of '%s' when possible."
link: https://about.gitlab.com/handbook/communication/#top-misused-terms link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html
level: warning level: warning
ignorecase: true ignorecase: true
swap: swap:
air(?:-| )?gapped: offline environment active user: "billable user"
bullet: list item active users: "billable users"
click: select air(?:-| )?gapped: "offline environment"
code base: codebase bullet: "list item"
config: configuration click: "select"
deselect: clear code base: "codebase"
deselected: cleared config: "configuration"
distro: distribution confirmation box: "confirmation dialog"
file name: filename confirmation dialog box: "confirmation dialog"
filesystem: file system deselect: "clear"
GFM: GLFM deselected: "cleared"
info: information dialog box: "dialog"
repo: repository distro: "distribution"
timezone: time zone e-mail: "email"
utilize: use emojis: "emoji"
ex: "for example"
file name: "filename"
filesystem: "file system"
info: "information"
installation from source: self-compiled installation
installations from source: self-compiled installations
it is recommended: "you should"
logged in user: "authenticated user"
logged-in user: "authenticated user"
modal dialog: "dialog"
modal window: "dialog"
modal: "dialog"
n/a: "not applicable"
navigate to: "go to"
OAuth2: "OAuth 2.0"
omnibus gitlab: "Linux package"
'omnibus(?!\))': "Linux package"
once that: "after that"
once the: "after the"
once you: "after you"
pop-up window: "dialog"
pop-up: "dialog"
popup: "dialog"
repo: "repository"
signed in user: "authenticated user"
signed-in user: "authenticated user"
since: "because' or 'after"
source (?:install|installation): self-compiled installation
source (?:installs|installations): self-compiled installations
sub-group: "subgroup"
sub-groups: "subgroups"
timezone: "time zone"
utilize: "use"
we recommend: "you should"
within: "in"

View File

@ -2,62 +2,63 @@
# Error: gitlab.Substitutions # Error: gitlab.Substitutions
# #
# Checks for misused terms that should never be used at GitLab. # Checks for misused terms that should never be used at GitLab.
# SubstitutionWarning.yml and SubstitionSuggestions.yml also exist. # SubstitutionWarning.yml also exists.
# #
# For a list of all options, see https://docs.errata.ai/vale/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: substitution extends: substitution
message: 'Use "%s" instead of "%s".' message: "Use '%s' instead of '%s'."
link: https://about.gitlab.com/handbook/communication/#top-misused-terms link: https://about.gitlab.com/handbook/communication/#top-misused-terms
level: error level: error
ignorecase: true ignorecase: true
swap: swap:
codequality: code quality
Customer [Pp]ortal: Customers Portal
disallow: prevent
frontmatter: front matter
GitLabber: GitLab team member
GitLabbers: GitLab team members
GitLab-shell: GitLab Shell
gitlab omnibus: Linux package
param: parameter
params: parameters
pg: PostgreSQL
'postgres$': PostgreSQL 'postgres$': PostgreSQL
golang: Go
raketask: Rake task
raketasks: Rake tasks
rspec: RSpec
self hosted: self-managed
self-hosted: self-managed
styleguide: style guide
to login: to log in
can login: can log in
to log-in: to log in
can log-in: can log in
to signin: to sign in
can signin: can sign in
to sign-in: to sign in
can sign-in: can sign in
x509: X.509
yml: YAML
admin user: administrator admin user: administrator
admin users: administrators admin users: administrators
administrator permission: administrator access administrator permission: administrator access
administrator permissions: administrator access administrator permissions: administrator access
administrator role: administrator access administrator role: administrator access
can log-in: can log in the administrator access level: administrator access
can login: can log in
can sign-in: can sign in
can signin: can sign in
codequality: code quality
Customer [Pp]ortal: Customers Portal
developer access: the Developer role developer access: the Developer role
developer permission: the Developer role developer permission: the Developer role
developer permissions: the Developer role developer permissions: the Developer role
disallow: prevent
frontmatter: front matter
gitlab omnibus: Omnibus GitLab
GitLab-shell: GitLab Shell
GitLabber: GitLab team member
GitLabbers: GitLab team members
guest access: the Guest role guest access: the Guest role
guest permission: the Guest role guest permission: the Guest role
guest permissions: the Guest role guest permissions: the Guest role
json: JSON
kubernetes: Kubernetes
k8s: Kubernetes
maintainer access: the Maintainer role maintainer access: the Maintainer role
maintainer permission: the Maintainer role maintainer permission: the Maintainer role
maintainer permissions: the Maintainer role maintainer permissions: the Maintainer role
owner access: the Owner role owner access: the Owner role
owner permission: the Owner role owner permission: the Owner role
owner permissions: the Owner role owner permissions: the Owner role
param: parameter
params: parameters
pg: PostgreSQL
raketask: Rake task
raketasks: Rake tasks
reporter access: the Reporter role reporter access: the Reporter role
reporter permission: the Reporter role reporter permission: the Reporter role
reporter permissions: the Reporter role reporter permissions: the Reporter role
rspec: RSpec at least the Owner role: the Owner role
styleguide: style guide
the administrator access level: administrator access
to log-in: to log in
to login: to log in
to sign-in: to sign in
to signin: to sign in
x509: X.509
yaml: YAML

View File

@ -0,0 +1,13 @@
---
# Error: gitlab.TabsLinks
#
# Checks for the presence of links to individual GitLab UI tabs.
#
# For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence
message: "Do not include tabs query parameters in links."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#tabs
level: error
scope: raw
raw:
- '\[[^\]]+\]\(.*?\.md\?tab=.*?\)'

View File

@ -3,10 +3,10 @@
# #
# You should not use "To Do", unless it refers to the UI element. # You should not use "To Do", unless it refers to the UI element.
# #
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: substitution extends: substitution
message: 'Use "to-do item" in most cases, or "Add a to do" if referring to the UI button.' message: "Use 'to-do item' in most cases, or 'Add a to do' if referring to the UI button."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#feature-names link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html#to-do-item
level: warning level: warning
ignorecase: false ignorecase: false
swap: swap:

View File

@ -3,9 +3,9 @@
# #
# Checks for words that need a noun for clarity. # Checks for words that need a noun for clarity.
# #
# For a list of all options, see https://docs.errata.ai/vale/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence extends: existence
message: "'%s' is not precise. Try rewriting with a specific subject and verb." message: "Instead of '%s', try starting this sentence with a specific subject and verb."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html#this-these-that-those link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html#this-these-that-those
level: warning level: warning
ignorecase: false ignorecase: false

View File

@ -0,0 +1,15 @@
---
# Warning: gitlab.Units
#
# Recommends a space between a number and a unit of measure.
#
# For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence
message: "Add a space between the number and the unit in '%s'."
link: 'https://docs.gitlab.com/ee/development/documentation/styleguide/'
nonword: true
level: warning
ignorecase: true
tokens:
- \d+(?:B|kB|KiB|MB|MiB|GB|GiB|TB|TiB)
- \d+(?:ns|ms|μs|s|min|h|d)

View File

@ -1,13 +1,13 @@
--- ---
# Warning: gitlab.Uppercase # Suggestion: gitlab.Uppercase
# #
# Checks for use of all uppercase letters with unknown reason. # Checks for use of all uppercase letters with unknown reason.
# #
# For a list of all options, see https://docs.errata.ai/vale/styles. # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: conditional extends: conditional
message: "'%s' is uppercase. Use lowercase or `backticks` if possible. Otherwise add this word to the rule's exception list." message: "Instead of uppercase for '%s', use lowercase or backticks (`) if possible. Otherwise, ask a Technical Writer to add this word or acronym to the rule's exception list."
link: https://about.gitlab.com/handbook/marketing/growth-marketing/content/editorial-team/#acronyms link: https://docs.gitlab.com/ee/development/documentation/testing.html#vale-uppercase-acronym-test
level: warning level: suggestion
ignorecase: false ignorecase: false
# Ensures that the existence of 'first' implies the existence of 'second'. # Ensures that the existence of 'first' implies the existence of 'second'.
first: '\b([A-Z]{3,5})\b' first: '\b([A-Z]{3,5})\b'
@ -16,48 +16,62 @@ second: '(?:\b[A-Z][a-z]+ )+\(([A-Z]{3,5})\)'
exceptions: exceptions:
- ACL - ACL
- AJAX - AJAX
- AKS - AMI
- ANSI - ANSI
- APAC
- API - API
- APM - APM
- ARM - ARM
- ARN - ARN
- ASCII - ASCII
- ASG
- AST
- AWS - AWS
- BMP - BMP
- BSD - BSD
- CAS - CAS
- CDN - CDN
- CGI
- CIDR - CIDR
- CLI - CLI
- CNA - CNA
- CNAME
- CNCF - CNCF
- CORE - CORE
- CORS
- CPU - CPU
- CRD - CRAN
- CRIME - CRIME
- CRM
- CRUD
- CSRF - CSRF
- CSS - CSS
- CSV - CSV
- CUE - CTE
- CVE - CVE
- CVS - CVS
- CVSS
- CWE
- DAG - DAG
- DAST - DAST
- DDL
- DHCP - DHCP
- DML
- DNS - DNS
- DSN
- DOM - DOM
- DORA
- DSA - DSA
- DSL - DSL
- DVCS - DVCS
- DVD
- EBS
- ECDSA - ECDSA
- ECS - ECS
- EFS - EFS
- EKS - EKS
- ELB - ELB
- ENA
- EOL - EOL
- ESS
- EWM - EWM
- EXIF - EXIF
- FAQ - FAQ
@ -76,10 +90,13 @@ exceptions:
- GID - GID
- GIF - GIF
- GKE - GKE
- GLEX
- GLFM - GLFM
- GNU - GNU
- GPG - GPG
- GPL - GPL
- GPS
- GPT
- GPU - GPU
- GUI - GUI
- HAML - HAML
@ -87,6 +104,7 @@ exceptions:
- HEAD - HEAD
- HIPAA - HIPAA
- HLL - HLL
- HSTS
- HTML - HTML
- HTTP - HTTP
- HTTPS - HTTPS
@ -96,27 +114,32 @@ exceptions:
- ICO - ICO
- IDE - IDE
- IID - IID
- IIS
- IMAP - IMAP
- IOPS - IOPS
- IRC - IRC
- IRSA
- ISO - ISO
- JPEG - JPEG
- JPG - JPG
- JSON - JSON
- JVM - JVM
- JWT - JWT
- KICS
- LAN - LAN
- LDAP - LDAP
- LDAPS - LDAPS
- LESS - LESS
- LFS - LFS
- LRU - LRU
- LSIF
- LTM - LTM
- LTS - LTS
- LVM
- MIME - MIME
- MIT - MIT
- MITRE
- MVC - MVC
- NAS
- NAT - NAT
- NDA - NDA
- NFS - NFS
@ -126,6 +149,8 @@ exceptions:
- NTP - NTP
- OCI - OCI
- OIDC - OIDC
- OKD
- OKR
- ONLY - ONLY
- OSS - OSS
- OTP - OTP
@ -138,12 +163,13 @@ exceptions:
- PGP - PGP
- PHP - PHP
- PID - PID
- PIN
- PKCS - PKCS
- PNG - PNG
- POSIX - POSIX
- POST - POST
- PROXY
- PUT - PUT
- QPS
- RAID - RAID
- RAM - RAM
- RBAC - RBAC
@ -165,7 +191,10 @@ exceptions:
- SAN - SAN
- SAST - SAST
- SATA - SATA
- SBOM
- SBT
- SCIM - SCIM
- SCM
- SCP - SCP
- SCSS - SCSS
- SDK - SDK
@ -173,13 +202,17 @@ exceptions:
- SEO - SEO
- SFTP - SFTP
- SHA - SHA
- SKI
- SLA - SLA
- SLI - SLI
- SLO
- SMS - SMS
- SMTP - SMTP
- SOAP
- SOC - SOC
- SOX - SOX
- SPDX - SPDX
- SPDY
- SPF - SPF
- SQL - SQL
- SRE - SRE
@ -189,6 +222,7 @@ exceptions:
- SSL - SSL
- SSO - SSO
- STI - STI
- SUSE
- SVG - SVG
- SVN - SVN
- TCP - TCP
@ -199,7 +233,9 @@ exceptions:
- TODO - TODO
- TOML - TOML
- TOTP - TOTP
- TPS
- TTL - TTL
- UBI
- UDP - UDP
- UID - UID
- UID - UID
@ -210,18 +246,14 @@ exceptions:
- UTC - UTC
- UTF - UTF
- UUID - UUID
- UXP
- VCS - VCS
- VPC - VPC
- VPN - VPN
- WEBP - WEBP
- WIP - WIP
- WSL - WSL
- XEKS
- XML - XML
- XPKG
- XRD
- XSS - XSS
- YAML - YAML
- ZAP - ZAP
- ZIP - ZIP

View File

@ -1,23 +1,19 @@
--- ---
# Error: gitlab.VersionText # Error: gitlab.VersionText
# #
# Checks that version text is formatted correctly. # Checks that multi-line version text is formatted correctly.
# #
# Specifically looks for either of the following that is immediately followed on the next line # Specifically, looks for multi-line version text that doesn't use `-` to make it a list.
# by content, which will break rendering: # For example:
# #
# - `> Introduced` (version text without a link) # - `> Introduced in GitLab 14.0.
# - `> [Introduced` (version text with a link) # - `> Removed in GitLab 15.0.
# #
# Because it excludes the prefix `> - `, it doesn't look for multi-line version text, for which # For a list of all options, see https://vale.sh/docs/topics/styles/
# content immediately on the next line is ok. However, this will often highlight where multi-line
# version text is attempted without `-` characters.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: existence extends: existence
message: 'This introduced-in line is not formatted correctly.' message: "Start each entry with `> -`. Keep long entries on one line."
link: https://docs.gitlab.com/ee/development/documentation/versions.html link: https://docs.gitlab.com/ee/development/documentation/versions.html
level: error level: error
scope: raw scope: raw
raw: raw:
- '> \[?Introduced.+\n[^\n]' - '\n#.*\n\n> [^-].+\n[^\n`]'

View File

@ -0,0 +1,13 @@
---
# Error: gitlab.VersionTextSingleLine
#
# Verifies that single-item version notes don't have a hyphen.
#
# For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence
message: "Do not use a hyphen '-' in version text if there is only a single item."
link: https://docs.gitlab.com/ee/development/documentation/versions.html#add-a-version-history-item
level: error
scope: raw
raw:
- '(\r|\n|\r\n){2}(> - .*)(\r|\n|\r\n){2}'

View File

@ -3,15 +3,16 @@
# #
# Suggests shorter versions of wordy phrases. # Suggests shorter versions of wordy phrases.
# #
# For a list of all options, see https://docs.errata.ai/vale/styles # For a list of all options, see https://vale.sh/docs/topics/styles/
extends: substitution extends: substitution
message: '%s "%s".' message: "%s"
link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html
level: warning level: suggestion
ignorecase: true ignorecase: true
swap: swap:
in order to: "Be concise: use 'to' rather than" as well as: "Use 'and' instead of 'as well as'."
needs? to: "Rewrite the sentence, or use 'must', instead of" note that: "Remove the phrase 'note that'."
note that: "Be concise: rewrite the sentence to not use" please: "Use 'please' only if we've inconvenienced the user."
please: "Remove this word from the sentence: " respectively: "Remove 'respectively' and list each option instead."
respectively: "Rewrite the sentence to be more precise, instead of using " and so on: "Remove 'and so on'. Try to use 'like' and provide examples instead."
in order to: "Remove 'in order' and leave 'to'."

View File

@ -0,0 +1,15 @@
---
# Warning: gitlab.Zip
#
# Recommends all instances of something.zip be wrapped in backticks
# due to the .zip top-level domain
#
# For a list of all options, see https://vale.sh/docs/topics/styles/
extends: existence
message: "Wrap '%s' in backticks to prevent unintentional links to .zip domain names."
link: 'https://docs.gitlab.com/ee/development/documentation/styleguide/index.md#backticks-in-markdown'
nonword: true
level: error
ignorecase: true
tokens:
- '\b\w*\.zip'

File diff suppressed because it is too large Load Diff