UNPKG

cdktf-crd

Version:
267 lines (266 loc) 17.2 kB
import { Manifest, type ManifestConfig } from "@cdktf/provider-kubernetes/lib/manifest"; import { Construct } from "constructs"; export declare class MonitoringGoogleapisComOperatorConfigV1 extends Manifest { constructor(scope: Construct, id: string, config: MonitoringGoogleapisComOperatorConfigV1Config); } export interface MonitoringGoogleapisComOperatorConfigV1Config extends ManifestConfig { manifest: { apiVersion: "monitoring.googleapis.com/v1"; kind: "OperatorConfig"; metadata: { annotations?: { [key: string]: string; }; labels?: { [key: string]: string; }; name: string; namespace?: string; }; /** @description Collection specifies how the operator configures collection, including * scraping and an integrated export to Google Cloud Monitoring. */ collection?: { /** @description Compression enables compression of metrics collection data */ compression?: string; /** @description A reference to GCP service account credentials with which Prometheus collectors * are run. It needs to have metric write permissions for all project IDs to which * data is written. * Within GKE, this can typically be left empty if the compute default * service account has the required permissions. */ credentials?: { /** @description The key of the secret to select from. Must be a valid secret key. */ key: string; /** @description Name of the referent. * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names * TODO: Add other useful fields. apiVersion, kind, uid? */ name?: string; /** @description Specify whether the Secret or its key must be defined */ optional?: boolean; }; /** @description ExternalLabels specifies external labels that are attached to all scraped * data before being written to Google Cloud Monitoring or any other additional exports * specified in the OperatorConfig. The precedence behavior matches that of Prometheus. */ externalLabels?: { [key: string]: string; }; /** @description Filter limits which metric data is sent to Cloud Monitoring (it doesn't apply to additional exports). */ filter?: { /** @description A list of Prometheus time series matchers. Every time series must match at least one * of the matchers to be exported. This field can be used equivalently to the match[] * parameter of the Prometheus federation endpoint to selectively export data. * Example: `["{job!='foobar'}", "{__name__!~'container_foo.*|container_bar.*'}"]` */ matchOneOf?: string[]; }; /** @description Configuration to scrape the metric endpoints of the Kubelets. */ kubeletScraping?: { /** @description The interval at which the metric endpoints are scraped. */ interval: string; /** @description TLSInsecureSkipVerify disables verifying the target cert. * This can be useful for clusters provisioned with kubeadm. */ tlsInsecureSkipVerify?: boolean; }; }; /** @description Exports is an EXPERIMENTAL feature that specifies additional, optional endpoints to export to, * on top of Google Cloud Monitoring collection. * Note: To disable integrated export to Google Cloud Monitoring specify a non-matching filter in the "collection.filter" field. */ exports?: { /** @description The URL of the endpoint that supports Prometheus Remote Write to export samples to. */ url: string; }[]; /** @description Features holds configuration for optional managed-collection features. */ features?: { /** @description Settings for the collector configuration propagation. */ config?: { /** @description Compression enables compression of the config data propagated by the operator to collectors * and the rule-evaluator. It is recommended to use the gzip option when using a large number of * ClusterPodMonitoring, PodMonitoring, GlobalRules, ClusterRules, and/or Rules. */ compression?: string; }; /** @description Configuration of target status reporting. */ targetStatus?: { /** @description Enable target status reporting. */ enabled?: boolean; }; }; /** @description ManagedAlertmanager holds information for configuring the managed instance of Alertmanager. */ managedAlertmanager?: { /** @description ConfigSecret refers to the name of a single-key Secret in the public namespace that * holds the managed Alertmanager config file. */ configSecret?: { /** @description The key of the secret to select from. Must be a valid secret key. */ key: string; /** @description Name of the referent. * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names * TODO: Add other useful fields. apiVersion, kind, uid? */ name?: string; /** @description Specify whether the Secret or its key must be defined */ optional?: boolean; }; /** @description ExternalURL is the URL under which Alertmanager is externally reachable (for example, if * Alertmanager is served via a reverse proxy). Used for generating relative and absolute * links back to Alertmanager itself. If the URL has a path portion, it will be used to * prefix all HTTP endpoints served by Alertmanager, otherwise relevant URL components will * be derived automatically. * * * If no URL is provided, Alertmanager will point to the Google Cloud Metric Explorer page. */ externalURL?: string; }; /** @description Rules specifies how the operator configures and deploys rule-evaluator. */ rules?: { /** @description Alerting contains how the rule-evaluator configures alerting. */ alerting?: { /** @description Alertmanagers contains endpoint configuration for designated Alertmanagers. */ alertmanagers?: { /** @description Version of the Alertmanager API that rule-evaluator uses to send alerts. It * can be "v1" or "v2". */ apiVersion?: string; /** @description Authorization section for this alertmanager endpoint */ authorization?: { /** @description The secret's key that contains the credentials of the request */ credentials?: { /** @description The key of the secret to select from. Must be a valid secret key. */ key: string; /** @description Name of the referent. * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names * TODO: Add other useful fields. apiVersion, kind, uid? */ name?: string; /** @description Specify whether the Secret or its key must be defined */ optional?: boolean; }; /** @description Set the authentication type. Defaults to Bearer, Basic will cause an * error */ type?: string; }; /** @description Name of Endpoints object in Namespace. */ name: string; /** @description Namespace of Endpoints object. */ namespace: string; /** @description Prefix for the HTTP path alerts are pushed to. */ pathPrefix?: string; /** @description Port the Alertmanager API is exposed on. */ port: number | string; /** @description Scheme to use when firing alerts. */ scheme?: string; /** @description Timeout is a per-target Alertmanager timeout when pushing alerts. */ timeout?: string; /** @description TLS Config to use for alertmanager connection. */ tls?: { /** @description Struct containing the CA cert to use for the targets. */ ca?: { /** @description ConfigMap containing data to use for the targets. */ configMap?: { /** @description The key to select. */ key: string; /** @description Name of the referent. * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names * TODO: Add other useful fields. apiVersion, kind, uid? */ name?: string; /** @description Specify whether the ConfigMap or its key must be defined */ optional?: boolean; }; /** @description Secret containing data to use for the targets. */ secret?: { /** @description The key of the secret to select from. Must be a valid secret key. */ key: string; /** @description Name of the referent. * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names * TODO: Add other useful fields. apiVersion, kind, uid? */ name?: string; /** @description Specify whether the Secret or its key must be defined */ optional?: boolean; }; }; /** @description Struct containing the client cert file for the targets. */ cert?: { /** @description ConfigMap containing data to use for the targets. */ configMap?: { /** @description The key to select. */ key: string; /** @description Name of the referent. * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names * TODO: Add other useful fields. apiVersion, kind, uid? */ name?: string; /** @description Specify whether the ConfigMap or its key must be defined */ optional?: boolean; }; /** @description Secret containing data to use for the targets. */ secret?: { /** @description The key of the secret to select from. Must be a valid secret key. */ key: string; /** @description Name of the referent. * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names * TODO: Add other useful fields. apiVersion, kind, uid? */ name?: string; /** @description Specify whether the Secret or its key must be defined */ optional?: boolean; }; }; /** @description Disable target certificate validation. */ insecureSkipVerify?: boolean; /** @description Secret containing the client key file for the targets. */ keySecret?: { /** @description The key of the secret to select from. Must be a valid secret key. */ key: string; /** @description Name of the referent. * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names * TODO: Add other useful fields. apiVersion, kind, uid? */ name?: string; /** @description Specify whether the Secret or its key must be defined */ optional?: boolean; }; /** @description Maximum TLS version. Accepted values: TLS10 (TLS 1.0), TLS11 (TLS 1.1), TLS12 (TLS 1.2), TLS13 (TLS 1.3). * If unset, Prometheus will use Go default minimum version, which is TLS 1.2. * See MinVersion in https://pkg.go.dev/crypto/tls#Config. */ maxVersion?: string; /** @description Minimum TLS version. Accepted values: TLS10 (TLS 1.0), TLS11 (TLS 1.1), TLS12 (TLS 1.2), TLS13 (TLS 1.3). * If unset, Prometheus will use Go default minimum version, which is TLS 1.2. * See MinVersion in https://pkg.go.dev/crypto/tls#Config. */ minVersion?: string; /** @description Used to verify the hostname for the targets. */ serverName?: string; }; }[]; }; /** @description A reference to GCP service account credentials with which the rule * evaluator container is run. It needs to have metric read permissions * against queryProjectId and metric write permissions against all projects * to which rule results are written. * Within GKE, this can typically be left empty if the compute default * service account has the required permissions. */ credentials?: { /** @description The key of the secret to select from. Must be a valid secret key. */ key: string; /** @description Name of the referent. * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names * TODO: Add other useful fields. apiVersion, kind, uid? */ name?: string; /** @description Specify whether the Secret or its key must be defined */ optional?: boolean; }; /** @description ExternalLabels specifies external labels that are attached to any rule * results and alerts produced by rules. The precedence behavior matches that * of Prometheus. */ externalLabels?: { [key: string]: string; }; /** @description The base URL used for the generator URL in the alert notification payload. * Should point to an instance of a query frontend that gives access to queryProjectID. */ generatorUrl?: string; /** @description QueryProjectID is the GCP project ID to evaluate rules against. * If left blank, the rule-evaluator will try attempt to infer the Project ID * from the environment. */ queryProjectID?: string; }; /** @description Scaling contains configuration options for scaling GMP. */ scaling?: { /** @description VPASpec defines configuration options for vertical pod autoscaling. */ vpa?: { /** @description Enabled configures whether the operator configures Vertical Pod Autoscaling for the collector pods. * In GKE, installing Vertical Pod Autoscaling requires a cluster restart, and therefore it also results in an operator restart. * In other environments, the operator may need to be restarted to enable VPA to run the following check again and watch for the objects. */ enabled?: boolean; }; }; }; }