42 lines
1.4 KiB
JavaScript
42 lines
1.4 KiB
JavaScript
/**
|
||
* Copyright (c) HashiCorp, Inc.
|
||
* SPDX-License-Identifier: MPL-2.0
|
||
*/
|
||
|
||
import Model, { attr } from '@ember-data/model';
|
||
import { withFormFields } from 'vault/decorators/model-form-fields';
|
||
import { withModelValidations } from 'vault/decorators/model-validations';
|
||
|
||
const validations = {
|
||
kubernetesHost: [
|
||
{
|
||
validator: (model) => (model.disableLocalCaJwt && !model.kubernetesHost ? false : true),
|
||
message: 'Kubernetes host is required',
|
||
},
|
||
],
|
||
};
|
||
@withModelValidations(validations)
|
||
@withFormFields(['kubernetesHost', 'serviceAccountJwt', 'kubernetesCaCert'])
|
||
export default class KubernetesConfigModel extends Model {
|
||
@attr('string') backend; // dynamic path of secret -- set on response from value passed to queryRecord
|
||
@attr('string', {
|
||
label: 'Kubernetes host',
|
||
subText: 'Kubernetes API URL to connect to.',
|
||
})
|
||
kubernetesHost;
|
||
@attr('string', {
|
||
label: 'Service account JWT',
|
||
subText:
|
||
'The JSON web token of the service account used by the secret engine to manage Kubernetes roles. Defaults to the local pod’s JWT if found.',
|
||
})
|
||
serviceAccountJwt;
|
||
@attr('string', {
|
||
label: 'Kubernetes CA Certificate',
|
||
subText:
|
||
'PEM-encoded CA certificate to use by the secret engine to verify the Kubernetes API server certificate. Defaults to the local pod’s CA if found.',
|
||
editType: 'textarea',
|
||
})
|
||
kubernetesCaCert;
|
||
@attr('boolean', { defaultValue: false }) disableLocalCaJwt;
|
||
}
|