-
Notifications
You must be signed in to change notification settings - Fork 886
chore(docs): fix inconsistencies in external provisioner docs #15416
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
f2680df
chore(docs): fix inconsistencies in external provisioner docs
johnstcn 919aaaf
fixup! chore(docs): fix inconsistencies in external provisioner docs
johnstcn 8c1964f
fixup! fixup! chore(docs): fix inconsistencies in external provisioneβ¦
johnstcn 633899b
fixup! fixup! fixup! chore(docs): fix inconsistencies in external proβ¦
johnstcn 938be05
fixup! fixup! fixup! fixup! chore(docs): fix inconsistencies in exterβ¦
johnstcn f600308
make fmt
johnstcn f66a877
Update docs/admin/provisioners.md
bpmct File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -178,15 +178,17 @@ A provisioner can run a given build job if one of the below is true: | |
1. If a job has any explicit tags, it can only run on a provisioner with those | ||
explicit tags (the provisioner could have additional tags). | ||
|
||
The external provisioner in the above example can run build jobs with tags: | ||
The external provisioner in the above example can run build jobs in the same | ||
organization with tags: | ||
|
||
- `environment=on_prem` | ||
- `datacenter=chicago` | ||
- `environment=on_prem datacenter=chicago` | ||
|
||
However, it will not pick up any build jobs that do not have either of the | ||
`environment` or `datacenter` tags set. It will also not pick up any build jobs | ||
from templates with the tag `scope=user` set. | ||
from templates with the tag `scope=user` set, or build jobs from templates in | ||
different organizations. | ||
|
||
> [!NOTE] If you only run tagged provisioners, you will need to specify a set of | ||
> tags that matches at least one provisioner for _all_ template import jobs and | ||
|
@@ -198,34 +200,35 @@ from templates with the tag `scope=user` set. | |
|
||
This is illustrated in the below table: | ||
|
||
| Provisioner Tags | Job Tags | Can Run Job? | | ||
| ----------------------------------------------------------------- | ---------------------------------------------------------------- | ------------ | | ||
| scope=organization owner= | scope=organization owner= | β | | ||
| scope=organization owner= environment=on-prem | scope=organization owner= environment=on-prem | β | | ||
| scope=organization owner= environment=on-prem datacenter=chicago | scope=organization owner= environment=on-prem | β | | ||
| scope=organization owner= environment=on-prem datacenter=chicago | scope=organization owner= environment=on-prem datacenter=chicago | β | | ||
| scope=user owner=aaa | scope=user owner=aaa | β | | ||
| scope=user owner=aaa environment=on-prem | scope=user owner=aaa | β | | ||
| scope=user owner=aaa environment=on-prem | scope=user owner=aaa environment=on-prem | β | | ||
| scope=user owner=aaa environment=on-prem datacenter=chicago | scope=user owner=aaa environment=on-prem | β | | ||
| scope=user owner=aaa environment=on-prem datacenter=chicago | scope=user owner=aaa environment=on-prem datacenter=chicago | β | | ||
| scope=organization owner= | scope=organization owner= environment=on-prem | β | | ||
| scope=organization owner= environment=on-prem | scope=organization owner= | β | | ||
| scope=organization owner= environment=on-prem | scope=organization owner= environment=on-prem datacenter=chicago | β | | ||
| scope=organization owner= environment=on-prem datacenter=new_york | scope=organization owner= environment=on-prem datacenter=chicago | β | | ||
| scope=user owner=aaa | scope=organization owner= | β | | ||
| scope=user owner=aaa | scope=user owner=bbb | β | | ||
| scope=organization owner= | scope=user owner=aaa | β | | ||
| scope=organization owner= | scope=user owner=aaa environment=on-prem | β | | ||
| scope=user owner=aaa | scope=user owner=aaa environment=on-prem | β | | ||
| scope=user owner=aaa environment=on-prem | scope=user owner=aaa environment=on-prem datacenter=chicago | β | | ||
| scope=user owner=aaa environment=on-prem datacenter=chicago | scope=user owner=aaa environment=on-prem datacenter=new_york | β | | ||
| Provisioner Tags | Job Tags | Same Org | Can Run Job? | | ||
| ----------------------------------------------------------------- | ---------------------------------------------------------------- | -------- | ------------ | | ||
| scope=organization owner= | scope=organization owner= | β | β | | ||
| scope=organization owner= environment=on-prem | scope=organization owner= environment=on-prem | β | β | | ||
| scope=organization owner= environment=on-prem datacenter=chicago | scope=organization owner= environment=on-prem | β | β | | ||
| scope=organization owner= environment=on-prem datacenter=chicago | scope=organization owner= environment=on-prem datacenter=chicago | β | β | | ||
| scope=user owner=aaa | scope=user owner=aaa | β | β | | ||
| scope=user owner=aaa environment=on-prem | scope=user owner=aaa | β | β | | ||
| scope=user owner=aaa environment=on-prem | scope=user owner=aaa environment=on-prem | β | β | | ||
| scope=user owner=aaa environment=on-prem datacenter=chicago | scope=user owner=aaa environment=on-prem | β | β | | ||
| scope=user owner=aaa environment=on-prem datacenter=chicago | scope=user owner=aaa environment=on-prem datacenter=chicago | β | β | | ||
| scope=organization owner= | scope=organization owner= environment=on-prem | β | β | | ||
| scope=organization owner= environment=on-prem | scope=organization owner= | β | β | | ||
| scope=organization owner= environment=on-prem | scope=organization owner= environment=on-prem datacenter=chicago | β | β | | ||
| scope=organization owner= environment=on-prem datacenter=new_york | scope=organization owner= environment=on-prem datacenter=chicago | β | β | | ||
| scope=user owner=aaa | scope=organization owner= | β | β | | ||
| scope=user owner=aaa | scope=user owner=bbb | β | β | | ||
| scope=organization owner= | scope=user owner=aaa | β | β | | ||
| scope=organization owner= | scope=user owner=aaa environment=on-prem | β | β | | ||
| scope=user owner=aaa | scope=user owner=aaa environment=on-prem | β | β | | ||
| scope=user owner=aaa environment=on-prem | scope=user owner=aaa environment=on-prem datacenter=chicago | β | β | | ||
| scope=user owner=aaa environment=on-prem datacenter=chicago | scope=user owner=aaa environment=on-prem datacenter=new_york | β | β | | ||
| scope=organization owner= environment=on-prem | scope=organization owner= environment=on-prem | β | β | | ||
|
||
> **Note to maintainers:** to generate this table, run the following command and | ||
> copy the output: | ||
> | ||
> ``` | ||
> go test -v -count=1 ./coderd/provisionerserver/ -test.run='^TestAcquirer_MatchTags/GenTable$' | ||
> go test -v -count=1 ./coderd/provisionerdserver/ -test.run='^TestAcquirer_MatchTags/GenTable$' | ||
> ``` | ||
|
||
## Types of provisioners | ||
|
@@ -288,8 +291,7 @@ will use in concert with the Helm chart for deploying the Coder server. | |
```sh | ||
coder provisioner keys create my-cool-key --org default | ||
# Optionally, you can specify tags for the provisioner key: | ||
# coder provisioner keys create my-cool-key --org default --tags location=auh kind=k8s | ||
``` | ||
# coder provisioner keys create my-cool-key --org default --tag location=auh --tag kind=k8s | ||
|
||
Successfully created provisioner key kubernetes-key! Save this authentication | ||
token, it will not be shown again. | ||
|
@@ -300,25 +302,7 @@ will use in concert with the Helm chart for deploying the Coder server. | |
1. Store the key in a kubernetes secret: | ||
|
||
```sh | ||
kubectl create secret generic coder-provisioner-psk --from-literal=key1=`<key omitted>` | ||
``` | ||
|
||
1. Modify your Coder `values.yaml` to include | ||
|
||
```yaml | ||
provisionerDaemon: | ||
keySecretName: "coder-provisioner-keys" | ||
keySecretKey: "key1" | ||
``` | ||
|
||
1. Redeploy Coder with the new `values.yaml` to roll out the PSK. You can omit | ||
`--version <your version>` to also upgrade Coder to the latest version. | ||
|
||
```sh | ||
helm upgrade coder coder-v2/coder \ | ||
--namespace coder \ | ||
--version <your version> \ | ||
--values values.yaml | ||
Comment on lines
-306
to
-321
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. review: this is no longer required when using provisioner keys, removed. |
||
kubectl create secret generic coder-provisioner-psk --from-literal=my-cool-key=`<key omitted>` | ||
``` | ||
|
||
1. Create a `provisioner-values.yaml` file for the provisioner daemons Helm | ||
|
@@ -331,13 +315,17 @@ will use in concert with the Helm chart for deploying the Coder server. | |
value: "https://coder.example.com" | ||
replicaCount: 10 | ||
provisionerDaemon: | ||
# NOTE: in older versions of the Helm chart (2.17.0 and below), it is required to set this to an empty string. | ||
pskSecretName: "" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. review: PR to address this workaround is here: #15417 |
||
keySecretName: "coder-provisioner-keys" | ||
keySecretKey: "key1" | ||
keySecretKey: "my-cool-key" | ||
``` | ||
|
||
This example creates a deployment of 10 provisioner daemons (for 10 | ||
concurrent builds) with the listed tags. For generic provisioners, remove the | ||
tags. | ||
concurrent builds) authenticating using the above key. The daemons will | ||
authenticate using the provisioner key created in the previous step and | ||
acquire jobs matching the tags specified when the provisioner key was | ||
created. The set of tags is inferred automatically from the provisioner key. | ||
|
||
> Refer to the | ||
> [values.yaml](https://github.com/coder/coder/blob/main/helm/provisioner/values.yaml) | ||
|
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
review:
--tags
is incorrect ->--tag A --tag B