@kubernetes-models/flux-cd
Version:
109 lines (108 loc) • 5.47 kB
TypeScript
import { IComGithubFluxcdPkgApisMetaLocalObjectReference } from "../../github.com/fluxcd/pkg/apis/meta/LocalObjectReference.js";
import { ModelData, Model } from "@kubernetes-models/base";
/**
* ProviderSpec defines the desired state of the Provider.
*/
export interface IProviderSpec {
/**
* Address specifies the endpoint, in a generic sense, to where alerts are sent.
* What kind of endpoint depends on the specific Provider type being used.
* For the generic Provider, for example, this is an HTTP/S address.
* For other Provider types this could be a project ID or a namespace.
*/
"address"?: string;
/**
* CertSecretRef specifies the Secret containing TLS certificates
* for secure communication.
*
* Supported configurations:
* - CA-only: Server authentication (provide ca.crt only)
* - mTLS: Mutual authentication (provide ca.crt + tls.crt + tls.key)
* - Client-only: Client authentication with system CA (provide tls.crt + tls.key only)
*
* Legacy keys "caFile", "certFile", "keyFile" are supported but deprecated. Use "ca.crt", "tls.crt", "tls.key" instead.
*/
"certSecretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
/**
* Channel specifies the destination channel where events should be posted.
*/
"channel"?: string;
/**
* CommitStatusExpr is a CEL expression that evaluates to a string value
* that can be used to generate a custom commit status message for use
* with eligible Provider types (github, gitlab, gitea, bitbucketserver,
* bitbucket, azuredevops). Supported variables are: event, provider,
* and alert.
*/
"commitStatusExpr"?: string;
"interval"?: string;
/**
* Proxy the HTTP/S address of the proxy server.
* Deprecated: Use ProxySecretRef instead. Will be removed in v1.
*/
"proxy"?: string;
/**
* ProxySecretRef specifies the Secret containing the proxy configuration
* for this Provider. The Secret should contain an 'address' key with the
* HTTP/S address of the proxy server. Optional 'username' and 'password'
* keys can be provided for proxy authentication.
*/
"proxySecretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
/**
* SecretRef specifies the Secret containing the authentication
* credentials for this Provider.
*/
"secretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
/**
* ServiceAccountName is the name of the Kubernetes ServiceAccount used to
* authenticate with cloud provider services through workload identity.
* This enables multi-tenant authentication without storing static credentials.
*
* Supported provider types: azureeventhub, azuredevops, googlepubsub
*
* When specified, the controller will:
* 1. Create an OIDC token for the specified ServiceAccount
* 2. Exchange it for cloud provider credentials via STS
* 3. Use the obtained credentials for API authentication
*
* When unspecified, controller-level authentication is used (single-tenant).
*
* An error is thrown if static credentials are also defined in SecretRef.
* This field requires the ObjectLevelWorkloadIdentity feature gate to be enabled.
*/
"serviceAccountName"?: string;
/**
* Suspend tells the controller to suspend subsequent
* events handling for this Provider.
*/
"suspend"?: boolean;
"timeout"?: string;
/**
* Type specifies which Provider implementation to use.
*/
"type": "slack" | "discord" | "msteams" | "rocket" | "generic" | "generic-hmac" | "github" | "gitlab" | "gitea" | "giteapullrequestcomment" | "bitbucketserver" | "bitbucket" | "azuredevops" | "googlechat" | "googlepubsub" | "webex" | "sentry" | "azureeventhub" | "telegram" | "lark" | "matrix" | "opsgenie" | "alertmanager" | "grafana" | "githubdispatch" | "githubpullrequestcomment" | "gitlabmergerequestcomment" | "pagerduty" | "datadog" | "nats" | "zulip" | "otel";
/**
* Username specifies the name under which events are posted.
*/
"username"?: string;
}
/**
* ProviderSpec defines the desired state of the Provider.
*/
export declare class ProviderSpec extends Model<IProviderSpec> implements IProviderSpec {
"address"?: string;
"certSecretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
"channel"?: string;
"commitStatusExpr"?: string;
"interval"?: string;
"proxy"?: string;
"proxySecretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
"secretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
"serviceAccountName"?: string;
"suspend"?: boolean;
"timeout"?: string;
"type": "slack" | "discord" | "msteams" | "rocket" | "generic" | "generic-hmac" | "github" | "gitlab" | "gitea" | "giteapullrequestcomment" | "bitbucketserver" | "bitbucket" | "azuredevops" | "googlechat" | "googlepubsub" | "webex" | "sentry" | "azureeventhub" | "telegram" | "lark" | "matrix" | "opsgenie" | "alertmanager" | "grafana" | "githubdispatch" | "githubpullrequestcomment" | "gitlabmergerequestcomment" | "pagerduty" | "datadog" | "nats" | "zulip" | "otel";
"username"?: string;
constructor(data?: ModelData<IProviderSpec>);
}
export type { IProviderSpec as IComGithubFluxcdNotificationControllerApiV1beta3ProviderSpec, ProviderSpec as ComGithubFluxcdNotificationControllerApiV1beta3ProviderSpec };