cdktf-crd
Version:
141 lines (140 loc) • 7.64 kB
TypeScript
import { Manifest, type ManifestConfig } from "@cdktf/provider-kubernetes/lib/manifest";
import { Construct } from "constructs";
export declare class KubernetesAppProjectV1alpha1Manifest extends Manifest {
constructor(scope: Construct, id: string, config: KubernetesAppProjectV1alpha1ManifestConfig);
}
export interface KubernetesAppProjectV1alpha1ManifestConfig extends ManifestConfig {
manifest: {
apiVersion?: "argoproj.io/v1alpha1";
kind?: "AppProject";
metadata: {
annotations?: {
[key: string]: string;
};
labels?: {
[key: string]: string;
};
name: string;
namespace?: string;
};
/** @description AppProjectSpec is the specification of an AppProject */
spec: {
/** @description ClusterResourceBlacklist contains list of blacklisted cluster level resources */
clusterResourceBlacklist?: {
group: string;
kind: string;
}[];
/** @description ClusterResourceWhitelist contains list of whitelisted cluster level resources */
clusterResourceWhitelist?: {
group: string;
kind: string;
}[];
/** @description Description contains optional project description */
description?: string;
/** @description DestinationServiceAccounts holds information about the service accounts to be impersonated for the application sync operation for each destination. */
destinationServiceAccounts?: {
/** @description DefaultServiceAccount to be used for impersonation during the sync operation */
defaultServiceAccount: string;
/** @description Namespace specifies the target namespace for the application's resources. */
namespace?: string;
/** @description Server specifies the URL of the target cluster's Kubernetes control plane API. */
server: string;
}[];
/** @description Destinations contains list of destinations available for deployment */
destinations?: {
/** @description Name is an alternate way of specifying the target cluster by its symbolic name. This must be set if Server is not set. */
name?: string;
/** @description Namespace specifies the target namespace for the application's resources.
* The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace */
namespace?: string;
/** @description Server specifies the URL of the target cluster's Kubernetes control plane API. This must be set if Name is not set. */
server?: string;
}[];
/** @description NamespaceResourceBlacklist contains list of blacklisted namespace level resources */
namespaceResourceBlacklist?: {
group: string;
kind: string;
}[];
/** @description NamespaceResourceWhitelist contains list of whitelisted namespace level resources */
namespaceResourceWhitelist?: {
group: string;
kind: string;
}[];
/** @description OrphanedResources specifies if controller should monitor orphaned resources of apps in this project */
orphanedResources?: {
/** @description Ignore contains a list of resources that are to be excluded from orphaned resources monitoring */
ignore?: {
group?: string;
kind?: string;
name?: string;
}[];
/** @description Warn indicates if warning condition should be created for apps which have orphaned resources */
warn?: boolean;
};
/** @description PermitOnlyProjectScopedClusters determines whether destinations can only reference clusters which are project-scoped */
permitOnlyProjectScopedClusters?: boolean;
/** @description Roles are user defined RBAC roles associated with this project */
roles?: {
/** @description Description is a description of the role */
description?: string;
/** @description Groups are a list of OIDC group claims bound to this role */
groups?: string[];
/** @description JWTTokens are a list of generated JWT tokens bound to this role */
jwtTokens?: {
/** Format: int64 */
exp?: number;
/** Format: int64 */
iat: number;
id?: string;
}[];
/** @description Name is a name for this role */
name: string;
/** @description Policies Stores a list of casbin formatted strings that define access policies for the role in the project */
policies?: string[];
}[];
/** @description SignatureKeys contains a list of PGP key IDs that commits in Git must be signed with in order to be allowed for sync */
signatureKeys?: {
/** @description The ID of the key in hexadecimal notation */
keyID: string;
}[];
/** @description SourceNamespaces defines the namespaces application resources are allowed to be created in */
sourceNamespaces?: string[];
/** @description SourceRepos contains list of repository URLs which can be used for deployment */
sourceRepos?: string[];
/** @description SyncWindows controls when syncs can be run for apps in this project */
syncWindows?: {
/** @description Applications contains a list of applications that the window will apply to */
applications?: string[];
/** @description Clusters contains a list of clusters that the window will apply to */
clusters?: string[];
/** @description Duration is the amount of time the sync window will be open */
duration?: string;
/** @description Kind defines if the window allows or blocks syncs */
kind?: string;
/** @description ManualSync enables manual syncs when they would otherwise be blocked */
manualSync?: boolean;
/** @description Namespaces contains a list of namespaces that the window will apply to */
namespaces?: string[];
/** @description Schedule is the time the window will begin, specified in cron format */
schedule?: string;
/** @description TimeZone of the sync that will be applied to the schedule */
timeZone?: string;
}[];
};
/** @description AppProjectStatus contains status information for AppProject CRs */
status?: {
/** @description JWTTokensByRole contains a list of JWT tokens issued for a given role */
jwtTokensByRole?: {
[key: string]: {
items?: {
/** Format: int64 */
exp?: number;
/** Format: int64 */
iat: number;
id?: string;
}[];
};
};
};
};
}