mirror of https://github.com/rancher/dashboard.git
Adding new logging Outputs and ClusterOutputs
- Also added ssl/ca to Forward, Loki and Splunk rancher/dashboard#1191
This commit is contained in:
parent
4919c76d9a
commit
a1c0b943f0
|
|
@ -748,13 +748,71 @@ logging:
|
||||||
configureKubernetesLabels: Configure Kubernetes metadata in a Prometheus like format
|
configureKubernetesLabels: Configure Kubernetes metadata in a Prometheus like format
|
||||||
extractKubernetesLabels: Extract Kubernetes labels as Loki labels
|
extractKubernetesLabels: Extract Kubernetes labels as Loki labels
|
||||||
dropSingleKey: If a record only has 1 key, then just set the log line to the value and discard the key
|
dropSingleKey: If a record only has 1 key, then just set the log line to the value and discard the key
|
||||||
|
caCert: CA Cert
|
||||||
|
cert: Cert
|
||||||
|
key: Key
|
||||||
|
awsElasticsearch:
|
||||||
|
url: URL
|
||||||
|
keyId: Key Id
|
||||||
|
secretKey: Secret Key
|
||||||
|
azurestorage:
|
||||||
|
storageAccount: Storage Account
|
||||||
|
accessKey: Access Key
|
||||||
|
container: Container
|
||||||
|
path: Path
|
||||||
|
storeAs: Store As
|
||||||
|
cloudwatch:
|
||||||
|
keyId: Key Id
|
||||||
|
secretKey: Secret Key
|
||||||
|
endpoint: Endpoint
|
||||||
|
region: Region
|
||||||
|
datadog:
|
||||||
|
apiKey: API Key
|
||||||
|
useSSL: Use SSL
|
||||||
|
useCompression: Use Compression
|
||||||
|
host: Host
|
||||||
|
file:
|
||||||
|
path: Path
|
||||||
|
gcs:
|
||||||
|
project: Project
|
||||||
|
credentialsJson: Credentials Json
|
||||||
|
bucket: Bucket
|
||||||
|
path: Path
|
||||||
|
overwriteExistingPath: Overwrite Existing Path
|
||||||
|
kinesisStream:
|
||||||
|
streamName: Stream Name
|
||||||
|
keyId: Key Id
|
||||||
|
secretKey: Secret Key
|
||||||
|
logdna:
|
||||||
|
apiKey: API Key
|
||||||
|
hostname: Hostname
|
||||||
|
app: App
|
||||||
|
logz:
|
||||||
|
url: URL
|
||||||
|
port: Port
|
||||||
|
token: Api Token
|
||||||
|
enableCompression: Enable Compression
|
||||||
|
newrelic:
|
||||||
|
apiKey: API Key
|
||||||
|
licenseKey: License Key
|
||||||
|
baseURI: Base URI
|
||||||
|
sumologic:
|
||||||
|
endpoint: Endpoint
|
||||||
|
sourceName: Source Name
|
||||||
|
s3:
|
||||||
|
keyId: Key Id
|
||||||
|
secretKey: Secret Key
|
||||||
|
endpoint: Endpoint
|
||||||
|
bucket: Bucket
|
||||||
|
path: Path
|
||||||
|
overwriteExistingPath: Overwrite Existing Path
|
||||||
output:
|
output:
|
||||||
selectOutputs: Select Outputs
|
selectOutputs: Select Outputs
|
||||||
selectBanner: Select to configure an output
|
selectBanner: Select to configure an output
|
||||||
sections:
|
sections:
|
||||||
target: Target
|
target: Target
|
||||||
access: Access
|
access: Access
|
||||||
certificate: SSL
|
certificate: Connection
|
||||||
labels: Labels
|
labels: Labels
|
||||||
outputProviders:
|
outputProviders:
|
||||||
elasticsearch: Elasticsearch
|
elasticsearch: Elasticsearch
|
||||||
|
|
@ -762,6 +820,18 @@ logging:
|
||||||
kafka: Kafka
|
kafka: Kafka
|
||||||
forward: Fluentd
|
forward: Fluentd
|
||||||
loki: Loki
|
loki: Loki
|
||||||
|
awsElasticsearch: Amazon Elasticsearch
|
||||||
|
azurestorage: Azure Storage
|
||||||
|
cloudwatch: Cloudwatch
|
||||||
|
datadog: Datadog
|
||||||
|
file: File
|
||||||
|
gcs: GCS
|
||||||
|
kinesisStream: Kinesis Stream
|
||||||
|
logdna: LogDNA
|
||||||
|
logz: LogZ
|
||||||
|
newrelic: New Relic
|
||||||
|
sumologic: SumoLogic
|
||||||
|
s3: S3
|
||||||
unknown: Unknown
|
unknown: Unknown
|
||||||
overview:
|
overview:
|
||||||
poweredBy: Banzai Cloud
|
poweredBy: Banzai Cloud
|
||||||
|
|
@ -774,17 +844,22 @@ logging:
|
||||||
protocol: Protocol
|
protocol: Protocol
|
||||||
index: Index
|
index: Index
|
||||||
token: Token
|
token: Token
|
||||||
clientCert: Client Cert
|
|
||||||
clientKey: Client Key
|
|
||||||
insecureSsl: Insecure SSL
|
insecureSsl: Insecure SSL
|
||||||
indexName: Index Name
|
indexName: Index Name
|
||||||
source: Source
|
source: Source
|
||||||
|
caFile: CA File
|
||||||
|
caPath: CA Path
|
||||||
|
clientCert: Client Cert
|
||||||
|
clientKey: Client Key
|
||||||
forward:
|
forward:
|
||||||
host: Host
|
host: Host
|
||||||
port: Port
|
port: Port
|
||||||
sharedKey: Shared Key
|
sharedKey: Shared Key
|
||||||
username: Username
|
username: Username
|
||||||
password: Password
|
password: Password
|
||||||
|
clientCertPath: Client Cert Path
|
||||||
|
clientPrivateKeyPath: Client Private Key Path
|
||||||
|
clientPrivateKeyPassphrase: Client Private Key Passphrase
|
||||||
|
|
||||||
longhorn:
|
longhorn:
|
||||||
overview:
|
overview:
|
||||||
|
|
|
||||||
|
|
@ -5,19 +5,21 @@ import Tabbed from '@/components/Tabbed';
|
||||||
import Tab from '@/components/Tabbed/Tab';
|
import Tab from '@/components/Tabbed/Tab';
|
||||||
import CruResource from '@/components/CruResource';
|
import CruResource from '@/components/CruResource';
|
||||||
import NameNsDescription from '@/components/form/NameNsDescription';
|
import NameNsDescription from '@/components/form/NameNsDescription';
|
||||||
import ToggleGradientBox from '@/components/ToggleGradientBox';
|
|
||||||
import Labels from '@/components/form/Labels';
|
import Labels from '@/components/form/Labels';
|
||||||
import LabeledSelect from '@/components/form/LabeledSelect';
|
import LabeledSelect from '@/components/form/LabeledSelect';
|
||||||
import Banner from '@/components/Banner';
|
import Banner from '@/components/Banner';
|
||||||
import { PROVIDERS } from '@/models/logging.banzaicloud.io.output';
|
import { PROVIDERS } from '@/models/logging.banzaicloud.io.output';
|
||||||
import { _VIEW } from '@/config/query-params';
|
import { _VIEW } from '@/config/query-params';
|
||||||
|
import { clone } from '@/utils/object';
|
||||||
|
import isEqual from 'lodash/isEqual';
|
||||||
|
import isEmpty from 'lodash/isEmpty';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
Banner, CruResource, Labels, LabeledSelect, NameNsDescription, Tab, Tabbed, ToggleGradientBox
|
Banner, CruResource, Labels, LabeledSelect, NameNsDescription, Tab, Tabbed
|
||||||
},
|
},
|
||||||
|
|
||||||
mixins: [CreateEditView, ToggleGradientBox],
|
mixins: [CreateEditView],
|
||||||
|
|
||||||
async fetch() {
|
async fetch() {
|
||||||
await this.$store.dispatch('cluster/findAll', { type: SECRET });
|
await this.$store.dispatch('cluster/findAll', { type: SECRET });
|
||||||
|
|
@ -34,18 +36,19 @@ export default {
|
||||||
label: this.t(provider.labelKey)
|
label: this.t(provider.labelKey)
|
||||||
}));
|
}));
|
||||||
|
|
||||||
this.value.spec = this.value.spec || {};
|
if (this.mode !== _VIEW) {
|
||||||
|
this.$set(this.value, 'spec', this.value.spec || {});
|
||||||
|
|
||||||
providers.forEach((provider) => {
|
providers.forEach((provider) => {
|
||||||
this.value.spec[provider.name] = this.value.spec[provider.name] || provider.default;
|
this.$set(this.value.spec, provider.name, this.value.spec[provider.name] || clone(provider.default));
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
const selectedProviders = providers.filter((provider) => {
|
const selectedProviders = providers.filter((provider) => {
|
||||||
const specProvider = this.value.spec[provider.name];
|
const specProvider = this.value.spec[provider.name];
|
||||||
const correctedSpecProvider = provider.name === 'forward' ? specProvider.servers[0] : specProvider;
|
const correctedSpecProvider = provider.name === 'forward' ? specProvider?.servers?.[0] || {} : specProvider;
|
||||||
const specProviderKeys = Object.keys(correctedSpecProvider || {}).filter(key => !['format', 'configure_kubernetes_labels'].includes(key));
|
|
||||||
|
|
||||||
return specProviderKeys.length > 0;
|
return !isEmpty(correctedSpecProvider) && !isEqual(correctedSpecProvider, provider.default);
|
||||||
});
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|
@ -115,12 +118,12 @@ export default {
|
||||||
</Banner>
|
</Banner>
|
||||||
<Tabbed v-else ref="tabbed" :side-tabs="true">
|
<Tabbed v-else ref="tabbed" :side-tabs="true">
|
||||||
<Tab name="Output" label="Output" :weight="1">
|
<Tab name="Output" label="Output" :weight="1">
|
||||||
<div class="row mb-20">
|
<div class="row">
|
||||||
<div class="col span-6">
|
<div class="col span-6">
|
||||||
<LabeledSelect v-model="selectedProvider" label="Output" :options="providers" :mode="mode" />
|
<LabeledSelect v-model="selectedProvider" label="Output" :options="providers" :mode="mode" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
<component :is="getComponent(selectedProvider)" :value="value.spec[selectedProvider]" :mode="mode" />
|
<component :is="getComponent(selectedProvider)" :value="value.spec[selectedProvider]" :mode="mode" />
|
||||||
</Tab>
|
</Tab>
|
||||||
<Tab
|
<Tab
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,64 @@
|
||||||
|
<script>
|
||||||
|
import LabeledInput from '@/components/form/LabeledInput';
|
||||||
|
import SecretSelector from '@/components/form/SecretSelector';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: { LabeledInput, SecretSelector },
|
||||||
|
props: {
|
||||||
|
value: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
disabled: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
mode: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.target') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<LabeledInput v-model="value.endpoint.url" :mode="mode" :disabled="disabled" :label="t('logging.awsElasticsearch.url')" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.access') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-10">
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.endpoint.access_key_id"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.awsElasticsearch.keyId')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.endpoint.secret_access_key"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
@ -0,0 +1,73 @@
|
||||||
|
<script>
|
||||||
|
import LabeledInput from '@/components/form/LabeledInput';
|
||||||
|
import SecretSelector from '@/components/form/SecretSelector';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: { LabeledInput, SecretSelector },
|
||||||
|
props: {
|
||||||
|
value: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
disabled: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
mode: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.target') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-10">
|
||||||
|
<div class="col span-6">
|
||||||
|
<LabeledInput v-model="value.azure_container" :mode="mode" :disabled="disabled" :label="t('logging.azurestorage.container')" />
|
||||||
|
</div>
|
||||||
|
<div class="col span-6">
|
||||||
|
<LabeledInput v-model="value.path" :mode="mode" :disabled="disabled" :label="t('logging.azurestorage.path')" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<LabeledInput v-model="value.store_as" :mode="mode" :disabled="disabled" :label="t('logging.azurestorage.storeAs')" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.access') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-10">
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.azure_storage_account"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.azurestorage.storageAccount')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.azure_storage_access_key"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.azurestorage.accessKey')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
@ -0,0 +1,68 @@
|
||||||
|
<script>
|
||||||
|
import LabeledInput from '@/components/form/LabeledInput';
|
||||||
|
import SecretSelector from '@/components/form/SecretSelector';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: { LabeledInput, SecretSelector },
|
||||||
|
props: {
|
||||||
|
value: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
disabled: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
mode: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.target') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<LabeledInput v-model="value.region" :mode="mode" :disabled="disabled" :label="t('logging.cloudwatch.region')" />
|
||||||
|
</div>
|
||||||
|
<div class="col span-6">
|
||||||
|
<LabeledInput v-model="value.endpoint" :mode="mode" :disabled="disabled" :label="t('logging.cloudwatch.endpoint')" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.access') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-10">
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.aws_key_id"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.cloudwatch.keyId')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.aws_sec_key"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.cloudwatch.secretKey')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
@ -0,0 +1,75 @@
|
||||||
|
<script>
|
||||||
|
import Checkbox from '@/components/form/Checkbox';
|
||||||
|
import LabeledInput from '@/components/form/LabeledInput';
|
||||||
|
import SecretSelector from '@/components/form/SecretSelector';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
Checkbox, LabeledInput, SecretSelector
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
value: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
disabled: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
mode: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.target') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<LabeledInput v-model="value.host" :mode="mode" :disabled="disabled" :label="t('logging.datadog.host')" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.access') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.api_key"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.datadog.apiKey')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.certificate') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-10">
|
||||||
|
<div class="col span-6">
|
||||||
|
<Checkbox v-model="value.use_ssl" :mode="mode" :disabled="disabled" :label="t('logging.datadog.useSSL')" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-10">
|
||||||
|
<div class="col span-6">
|
||||||
|
<Checkbox v-model="value.use_compression" :mode="mode" :disabled="disabled" :label="t('logging.datadog.useCompression')" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
<script>
|
||||||
|
import LabeledInput from '@/components/form/LabeledInput';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: { LabeledInput },
|
||||||
|
props: {
|
||||||
|
value: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
disabled: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
mode: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="forward">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.target') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<LabeledInput v-model="value.path" :mode="mode" :disabled="disabled" :label="t('logging.file.path')" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
@ -85,5 +85,42 @@ export default {
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.certificate') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.tls_client_cert_path"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.forward.clientCertPath')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.tls_client_private_key_path"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.forward.clientPrivateKeyPath')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.tls_client_private_key_passphrase"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.forward.clientPrivateKeyPassphrase')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,77 @@
|
||||||
|
<script>
|
||||||
|
import Checkbox from '@/components/form/Checkbox';
|
||||||
|
import LabeledInput from '@/components/form/LabeledInput';
|
||||||
|
import SecretSelector from '@/components/form/SecretSelector';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
Checkbox, LabeledInput, SecretSelector
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
value: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
disabled: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
mode: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.target') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-10">
|
||||||
|
<div class="col span-6">
|
||||||
|
<LabeledInput v-model="value.project" :mode="mode" :disabled="disabled" :label="t('logging.gcs.project')" />
|
||||||
|
</div>
|
||||||
|
<div class="col span-6">
|
||||||
|
<LabeledInput v-model="value.bucket" :mode="mode" :disabled="disabled" :label="t('logging.gcs.bucket')" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<LabeledInput v-model="value.path" :mode="mode" :disabled="disabled" :label="t('logging.gcs.path')" />
|
||||||
|
</div>
|
||||||
|
<div class="col span-6 overwrite">
|
||||||
|
<Checkbox v-model="value.overwrite" :mode="mode" :disabled="disabled" :label="t('logging.gcs.overwriteExistingPath')" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.access') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.credentials_json"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.gcs.credentialsJson')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.overwrite {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,65 @@
|
||||||
|
<script>
|
||||||
|
import SecretSelector from '@/components/form/SecretSelector';
|
||||||
|
import LabeledInput from '@/components/form/LabeledInput';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: { LabeledInput, SecretSelector },
|
||||||
|
props: {
|
||||||
|
value: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
disabled: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
mode: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.access') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<LabeledInput v-model="value.stream_name" :mode="mode" :disabled="disabled" :label="t('logging.kinesisStream.streamName')" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.access') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.aws_key_id"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.kinesisStream.keyId')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.aws_sec_key"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.kinesisStream.secretKey')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
@ -0,0 +1,52 @@
|
||||||
|
<script>
|
||||||
|
import LabeledInput from '@/components/form/LabeledInput';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: { LabeledInput },
|
||||||
|
props: {
|
||||||
|
value: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
disabled: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
mode: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.target') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-10">
|
||||||
|
<div class="col span-6">
|
||||||
|
<LabeledInput v-model="value.hostname" :mode="mode" :disabled="disabled" :label="t('logging.logdna.hostname')" />
|
||||||
|
</div>
|
||||||
|
<div class="col span-6">
|
||||||
|
<LabeledInput v-model="value.app" :mode="mode" :disabled="disabled" :label="t('logging.logdna.app')" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.access') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<LabeledInput v-model="value.api_key" :mode="mode" :disabled="disabled" :label="t('logging.logdna.apiKey')" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
@ -0,0 +1,88 @@
|
||||||
|
<script>
|
||||||
|
import Checkbox from '@/components/form/Checkbox';
|
||||||
|
import LabeledInput from '@/components/form/LabeledInput';
|
||||||
|
import SecretSelector from '@/components/form/SecretSelector';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
Checkbox, LabeledInput, SecretSelector
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
value: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
disabled: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
mode: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
port: {
|
||||||
|
get() {
|
||||||
|
return this.value.endpoint.port;
|
||||||
|
},
|
||||||
|
set(port) {
|
||||||
|
this.$set(this.value.endpoint, 'port', Number.parseInt(port));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.target') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<LabeledInput v-model="value.endpoint.url" :mode="mode" :disabled="disabled" :label="t('logging.logz.url')" />
|
||||||
|
</div>
|
||||||
|
<div class="col span-6">
|
||||||
|
<LabeledInput v-model="port" :mode="mode" :disabled="disabled" type="number" :label="t('logging.logz.port')" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.access') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.endpoint.token"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.logz.token')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.certificate') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<Checkbox
|
||||||
|
v-model="value.gzip"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.logz.enableCompression')"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
@ -71,6 +71,43 @@ export default {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="spacer"></div>
|
<div class="spacer"></div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.certificate') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.ca_cert"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.loki.caCert')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.cert"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.loki.cert')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.key"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.loki.key')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col span-6">
|
<div class="col span-6">
|
||||||
<h3>{{ t('logging.output.sections.labels') }}</h3>
|
<h3>{{ t('logging.output.sections.labels') }}</h3>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,65 @@
|
||||||
|
<script>
|
||||||
|
import LabeledInput from '@/components/form/LabeledInput';
|
||||||
|
import SecretSelector from '@/components/form/SecretSelector';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: { LabeledInput, SecretSelector },
|
||||||
|
props: {
|
||||||
|
value: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
disabled: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
mode: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.target') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<LabeledInput
|
||||||
|
v-model="value.base_uri"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.newrelic.baseURI')"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.api_key"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.newrelic.apiKey')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.license_key"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.newrelic.licenseKey')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
@ -0,0 +1,96 @@
|
||||||
|
<script>
|
||||||
|
import Checkbox from '@/components/form/Checkbox';
|
||||||
|
import LabeledInput from '@/components/form/LabeledInput';
|
||||||
|
import SecretSelector from '@/components/form/SecretSelector';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
Checkbox, LabeledInput, SecretSelector
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
value: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
disabled: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
mode: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
overwrite: {
|
||||||
|
get() {
|
||||||
|
return this.value.overwrite === 'true';
|
||||||
|
},
|
||||||
|
set(value) {
|
||||||
|
this.$set(this.value, 'overwrite', value.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.target') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-10">
|
||||||
|
<div class="col span-6">
|
||||||
|
<LabeledInput v-model="value.s3_endpoint" :mode="mode" :disabled="disabled" :label="t('logging.s3.endpoint')" />
|
||||||
|
</div>
|
||||||
|
<div class="col span-6">
|
||||||
|
<LabeledInput v-model="value.s3_bucket" :mode="mode" :disabled="disabled" :label="t('logging.s3.bucket')" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<LabeledInput v-model="value.path" :mode="mode" :disabled="disabled" :label="t('logging.s3.path')" />
|
||||||
|
</div>
|
||||||
|
<div class="col span-6 overwrite">
|
||||||
|
<Checkbox v-model="overwrite" :mode="mode" :disabled="disabled" :label="t('logging.s3.overwriteExistingPath')" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.access') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.aws_key_id"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.s3.keyId')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.aws_sec_key"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.s3.secretKey')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.overwrite {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -89,5 +89,45 @@ export default {
|
||||||
<Checkbox v-model="value.insecure_ssl" :mode="mode" :disabled="disabled" :label="t('logging.splunk.insecureSsl')" />
|
<Checkbox v-model="value.insecure_ssl" :mode="mode" :disabled="disabled" :label="t('logging.splunk.insecureSsl')" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.ca_file"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.splunk.caFile')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.ca_path"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.splunk.caPath')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.client_cert"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.splunk.clientCert')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.client_key"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.splunk.clientKey')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
<script>
|
||||||
|
import LabeledInput from '@/components/form/LabeledInput';
|
||||||
|
import SecretSelector from '@/components/form/SecretSelector';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: { LabeledInput, SecretSelector },
|
||||||
|
props: {
|
||||||
|
value: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
disabled: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
mode: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<h3>{{ t('logging.output.sections.target') }}</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<LabeledInput
|
||||||
|
v-model="value.source_name"
|
||||||
|
class="source-name"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.sumologic.sourceName')"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<SecretSelector
|
||||||
|
v-model="value.endpoint"
|
||||||
|
:mode="mode"
|
||||||
|
:disabled="disabled"
|
||||||
|
:label="t('logging.sumologic.endpoint')"
|
||||||
|
:show-key-selector="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
@ -1,34 +1,89 @@
|
||||||
export const PROVIDERS = [
|
export const PROVIDERS = [
|
||||||
|
{
|
||||||
|
name: 'awsElasticsearch',
|
||||||
|
labelKey: 'logging.outputProviders.awsElasticsearch',
|
||||||
|
default: { endpoint: {} },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'azurestorage',
|
||||||
|
labelKey: 'logging.outputProviders.azurestorage',
|
||||||
|
default: { },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'cloudwatch',
|
||||||
|
labelKey: 'logging.outputProviders.cloudwatch',
|
||||||
|
default: { },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'datadog',
|
||||||
|
labelKey: 'logging.outputProviders.datadog',
|
||||||
|
default: { },
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: 'elasticsearch',
|
name: 'elasticsearch',
|
||||||
labelKey: 'logging.outputProviders.elasticsearch',
|
labelKey: 'logging.outputProviders.elasticsearch',
|
||||||
enabled: false,
|
|
||||||
default: {},
|
default: {},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'splunkHec',
|
name: 'file',
|
||||||
labelKey: 'logging.outputProviders.splunkHec',
|
labelKey: 'logging.outputProviders.file',
|
||||||
enabled: false,
|
default: { },
|
||||||
default: {},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'kafka',
|
|
||||||
labelKey: 'logging.outputProviders.kafka',
|
|
||||||
enabled: false,
|
|
||||||
default: { format: { type: 'json' } },
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'forward',
|
name: 'forward',
|
||||||
labelKey: 'logging.outputProviders.forward',
|
labelKey: 'logging.outputProviders.forward',
|
||||||
enabled: false,
|
|
||||||
default: { servers: [{}] },
|
default: { servers: [{}] },
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: 'gcs',
|
||||||
|
labelKey: 'logging.outputProviders.gcs',
|
||||||
|
default: { },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'kafka',
|
||||||
|
labelKey: 'logging.outputProviders.kafka',
|
||||||
|
default: { format: { type: 'json' } },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'kinesisStream',
|
||||||
|
labelKey: 'logging.outputProviders.kinesisStream',
|
||||||
|
default: { },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'logdna',
|
||||||
|
labelKey: 'logging.outputProviders.logdna',
|
||||||
|
default: { },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'logz',
|
||||||
|
labelKey: 'logging.outputProviders.logz',
|
||||||
|
default: { endpoint: {} },
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: 'loki',
|
name: 'loki',
|
||||||
labelKey: 'logging.outputProviders.loki',
|
labelKey: 'logging.outputProviders.loki',
|
||||||
enabled: false,
|
|
||||||
default: { configure_kubernetes_labels: true },
|
default: { configure_kubernetes_labels: true },
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
name: 'newrelic',
|
||||||
|
labelKey: 'logging.outputProviders.newrelic',
|
||||||
|
default: { },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'splunkHec',
|
||||||
|
labelKey: 'logging.outputProviders.splunkHec',
|
||||||
|
default: {},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'sumologic',
|
||||||
|
labelKey: 'logging.outputProviders.sumologic',
|
||||||
|
default: { },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 's3',
|
||||||
|
labelKey: 'logging.outputProviders.s3',
|
||||||
|
default: { },
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue