Skip to content

Commit 10bb431

Browse files
authored
Merge pull request #711 from leejones/add-fetch-credentials-setting-for-vtadmin
Add fetchCredentials setting for VTAdmin
2 parents 071f5d3 + 146e744 commit 10bb431

File tree

8 files changed

+52
-6
lines changed

8 files changed

+52
-6
lines changed

deploy/crds/planetscale.com_vitessclusters.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3102,6 +3102,8 @@ spec:
31023102
type: array
31033103
extraVolumes:
31043104
x-kubernetes-preserve-unknown-fields: true
3105+
fetchCredentials:
3106+
type: string
31053107
initContainers:
31063108
x-kubernetes-preserve-unknown-fields: true
31073109
rbac:

docs/api.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8528,6 +8528,21 @@ Kubernetes core/v1.ResourceRequirements
85288528
</tr>
85298529
<tr>
85308530
<td>
8531+
<code>fetchCredentials</code><br>
8532+
<em>
8533+
string
8534+
</em>
8535+
</td>
8536+
<td>
8537+
<p>FetchCredentials controls whether or not the browser includes credentials
8538+
(e.g. cookies, auth headers) when vtadmin-web sends requests to
8539+
vtadmin-api. For possible values, see
8540+
<a href="https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#including_credentials">https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#including_credentials</a>.</p>
8541+
<p>Default: omit.</p>
8542+
</td>
8543+
</tr>
8544+
<tr>
8545+
<td>
85318546
<code>readOnly</code><br>
85328547
<em>
85338548
bool

docs/api/index.html

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8530,6 +8530,21 @@ <h3 id="planetscale.com/v2.VtAdminSpec">VtAdminSpec
85308530
</tr>
85318531
<tr>
85328532
<td>
8533+
<code>fetchCredentials</code><br>
8534+
<em>
8535+
string
8536+
</em>
8537+
</td>
8538+
<td>
8539+
<p>FetchCredentials controls whether or not the browser includes credentials
8540+
(e.g. cookies, auth headers) when vtadmin-web sends requests to
8541+
vtadmin-api. For possible values, see
8542+
<a href="https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#including_credentials">https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#including_credentials</a>.</p>
8543+
<p>Default: omit.</p>
8544+
</td>
8545+
</tr>
8546+
<tr>
8547+
<td>
85338548
<code>readOnly</code><br>
85348549
<em>
85358550
bool

pkg/apis/planetscale/v2/defaults.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,10 @@ const (
6767
defaultVtctldCPUMillis = 100
6868
defaultVtctldMemoryBytes = 128 * Mi
6969

70-
defaultVtadminReplicas = 1
71-
defaultVtadminCPUMillis = 100
72-
defaultVtadminMemoryBytes = 128 * Mi
70+
defaultVtadminReplicas = 1
71+
defaultVtadminCPUMillis = 100
72+
defaultVtadminMemoryBytes = 128 * Mi
73+
defaultVtadminFetchCredentials = "omit"
7374

7475
defaultVtorcReplicas = 0
7576
defaultVtorcCPUMillis = 100

pkg/apis/planetscale/v2/vitesscluster_defaults.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,9 @@ func DefaultVtAdmin(dashboard **VtAdminSpec) {
130130
corev1.ResourceMemory: *resource.NewQuantity(defaultVtadminMemoryBytes, resource.BinarySI),
131131
}
132132
}
133+
if (*dashboard).FetchCredentials == "" {
134+
(*dashboard).FetchCredentials = defaultVtadminFetchCredentials
135+
}
133136
DefaultServiceOverrides(&(*dashboard).Service)
134137
}
135138

pkg/apis/planetscale/v2/vitesscluster_types.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,14 @@ type VtAdminSpec struct {
479479
// APIResources determines the compute resources reserved for each vtadmin-api replica.
480480
APIResources corev1.ResourceRequirements `json:"apiResources,omitempty"`
481481

482+
// FetchCredentials controls whether or not the browser includes credentials
483+
// (e.g. cookies, auth headers) when vtadmin-web sends requests to
484+
// vtadmin-api. For possible values, see
485+
// https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#including_credentials.
486+
//
487+
// Default: omit.
488+
FetchCredentials string `json:"fetchCredentials,omitempty"`
489+
482490
// ReadOnly specifies whether the web UI should be read-only
483491
// or should it allow users to take actions
484492
//

pkg/controller/vitesscluster/reconcile_vtadmin.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -342,18 +342,18 @@ func (r *ReconcileVitessCluster) createWebConfigSecret(ctx context.Context, vt *
342342
configKey := vtadmin.WebConfigFileName
343343
configVal := fmt.Sprintf(`window.env = {
344344
'VITE_VTADMIN_API_ADDRESS': "%s",
345-
'VITE_FETCH_CREDENTIALS': "omit",
345+
'VITE_FETCH_CREDENTIALS': "%s",
346346
'VITE_ENABLE_EXPERIMENTAL_TABLET_DEBUG_VARS': false,
347347
'VITE_BUGSNAG_API_KEY': "",
348348
'VITE_DOCUMENT_TITLE': "",
349349
'VITE_READONLY_MODE': %s,
350350
'REACT_APP_VTADMIN_API_ADDRESS': "%s",
351-
'REACT_APP_FETCH_CREDENTIALS': "omit",
351+
'REACT_APP_FETCH_CREDENTIALS': "%s",
352352
'REACT_APP_ENABLE_EXPERIMENTAL_TABLET_DEBUG_VARS': false,
353353
'REACT_APP_BUGSNAG_API_KEY': "",
354354
'REACT_APP_DOCUMENT_TITLE': "",
355355
'REACT_APP_READONLY_MODE': %s,
356-
};`, apiAddress, convertReadOnlyFieldToString(vt.Spec.VtAdmin.ReadOnly), apiAddress, convertReadOnlyFieldToString(vt.Spec.VtAdmin.ReadOnly))
356+
};`, apiAddress, vt.Spec.VtAdmin.FetchCredentials, convertReadOnlyFieldToString(vt.Spec.VtAdmin.ReadOnly), apiAddress, vt.Spec.VtAdmin.FetchCredentials, convertReadOnlyFieldToString(vt.Spec.VtAdmin.ReadOnly))
357357
secretName := vtadmin.WebConfigSecretName(vt.Name, cell.Name)
358358

359359
// Create or update the secret

test/endtoend/operator/operator-latest.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4984,6 +4984,8 @@ spec:
49844984
type: array
49854985
extraVolumes:
49864986
x-kubernetes-preserve-unknown-fields: true
4987+
fetchCredentials:
4988+
type: string
49874989
initContainers:
49884990
x-kubernetes-preserve-unknown-fields: true
49894991
rbac:

0 commit comments

Comments
 (0)