@@ -17,6 +17,14 @@ import { type FC, useState } from "react";
17
17
import { createDayString } from "utils/createDayString" ;
18
18
import { docs } from "utils/docs" ;
19
19
import { ProvisionerTag } from "./ProvisionerTag" ;
20
+ import {
21
+ HelpTooltip ,
22
+ HelpTooltipContent ,
23
+ HelpTooltipText ,
24
+ HelpTooltipTitle ,
25
+ HelpTooltipTrigger ,
26
+ } from "components/HelpTooltip/HelpTooltip" ;
27
+ import { Stack } from "components/Stack/Stack" ;
20
28
21
29
type ProvisionerGroupType = "builtin" | "psk" | "key" ;
22
30
@@ -100,17 +108,15 @@ export const ProvisionerGroup: FC<ProvisionerGroupProps> = ({
100
108
>
101
109
{ type === "builtin" && (
102
110
< div css = { { lineHeight : "160%" } } >
103
- < h4 css = { { fontWeight : 500 , margin : 0 } } >
104
- Built-in provisioners
105
- </ h4 >
111
+ < BuiltinProvisionerTitle />
106
112
< span css = { { color : theme . palette . text . secondary } } >
107
113
{ provisionerCount } — Built-in
108
114
</ span >
109
115
</ div >
110
116
) }
111
117
{ type === "psk" && (
112
118
< div css = { { lineHeight : "160%" } } >
113
- < h4 css = { { fontWeight : 500 , margin : 0 } } > PSK provisioners </ h4 >
119
+ < PskProvisionerTitle / >
114
120
< span css = { { color : theme . palette . text . secondary } } >
115
121
{ provisionerCount } —{ " " }
116
122
{ allProvisionersAreSameVersion ? (
@@ -123,9 +129,7 @@ export const ProvisionerGroup: FC<ProvisionerGroupProps> = ({
123
129
) }
124
130
{ type === "key" && (
125
131
< div css = { { lineHeight : "160%" } } >
126
- < h4 css = { { fontWeight : 500 , margin : 0 } } >
127
- Key group – { keyName }
128
- </ h4 >
132
+ < h4 css = { styles . groupTitle } > Key group – { keyName } </ h4 >
129
133
< span css = { { color : theme . palette . text . secondary } } >
130
134
{ provisionerCount } —{ " " }
131
135
{ allProvisionersAreSameVersion ? (
@@ -191,7 +195,7 @@ export const ProvisionerGroup: FC<ProvisionerGroupProps> = ({
191
195
] }
192
196
>
193
197
< div css = { { lineHeight : 1.6 } } >
194
- < h4 css = { { fontWeight : 500 , margin : 0 } } > { provisioner . name } </ h4 >
198
+ < h4 css = { styles . groupTitle } > { provisioner . name } </ h4 >
195
199
< span
196
200
css = { { color : theme . palette . text . secondary , fontSize : 13 } }
197
201
>
@@ -218,18 +222,21 @@ export const ProvisionerGroup: FC<ProvisionerGroupProps> = ({
218
222
} ,
219
223
} }
220
224
>
221
- < h4 css = { styles . title } > Release version</ h4 >
225
+ < h4 css = { styles . versionPopoverTitle } >
226
+ Release version
227
+ </ h4 >
222
228
< p css = { styles . text } > { provisioner . version } </ p >
223
- < h4 css = { styles . title } > Protocol version</ h4 >
229
+ < h4 css = { styles . versionPopoverTitle } >
230
+ Protocol version
231
+ </ h4 >
224
232
< p css = { styles . text } > { provisioner . api_version } </ p >
225
- { provisioner . api_version !==
226
- buildInfo ?. provisioner_api_version && (
233
+ { provisioner . version !== buildInfo ?. version && (
227
234
< p css = { [ styles . text , { fontSize : 13 } ] } >
228
235
This provisioner is out of date. You may
229
236
experience issues when using a provisioner version
230
- that doesn’ t match your Coder deployment. Please
231
- upgrade to a newer version.{ " " }
232
- < Link href = { docs ( "/" ) } > Learn more… </ Link >
237
+ that doesn' t match your Coder deployment.
238
+ Please upgrade to a newer version.{ " " }
239
+ < Link href = { docs ( "/" ) } > Learn more… </ Link >
233
240
</ p >
234
241
) }
235
242
</ PopoverContent >
@@ -289,8 +296,54 @@ export const ProvisionerGroup: FC<ProvisionerGroupProps> = ({
289
296
) ;
290
297
} ;
291
298
299
+ const BuiltinProvisionerTitle : FC = ( ) => {
300
+ return (
301
+ < h4 css = { styles . groupTitle } >
302
+ < Stack direction = "row" alignItems = "end" spacing = { 1 } >
303
+ < span > Built-in provisioners</ span >
304
+ < HelpTooltip >
305
+ < HelpTooltipTrigger />
306
+ < HelpTooltipContent >
307
+ < HelpTooltipTitle > Built-in provisioners</ HelpTooltipTitle >
308
+ < HelpTooltipText >
309
+ These provisioners are running as part of a coderd instance.
310
+ Built-in provisioners are only available for the default
311
+ organization. < Link href = { docs ( "/" ) } > Learn more…</ Link >
312
+ </ HelpTooltipText >
313
+ </ HelpTooltipContent >
314
+ </ HelpTooltip >
315
+ </ Stack >
316
+ </ h4 >
317
+ ) ;
318
+ } ;
319
+ const PskProvisionerTitle : FC = ( ) => {
320
+ return (
321
+ < h4 css = { styles . groupTitle } >
322
+ < Stack direction = "row" alignItems = "end" spacing = { 1 } >
323
+ < span > PSK provisioners</ span >
324
+ < HelpTooltip >
325
+ < HelpTooltipTrigger />
326
+ < HelpTooltipContent >
327
+ < HelpTooltipTitle > PSK provisioners</ HelpTooltipTitle >
328
+ < HelpTooltipText >
329
+ These provisioners all use pre-shared key authentication. PSK
330
+ provisioners are only available for the default organization.{ " " }
331
+ < Link href = { docs ( "/" ) } > Learn more…</ Link >
332
+ </ HelpTooltipText >
333
+ </ HelpTooltipContent >
334
+ </ HelpTooltip >
335
+ </ Stack >
336
+ </ h4 >
337
+ ) ;
338
+ } ;
339
+
292
340
const styles = {
293
- title : ( theme ) => ( {
341
+ groupTitle : {
342
+ fontWeight : 500 ,
343
+ margin : 0 ,
344
+ } ,
345
+
346
+ versionPopoverTitle : ( theme ) => ( {
294
347
marginTop : 0 ,
295
348
marginBottom : 0 ,
296
349
color : theme . palette . text . primary ,
0 commit comments