mirror of
https://github.com/argoproj/argo-cd
synced 2026-04-21 08:57:17 +00:00
368 lines
14 KiB
Protocol Buffer
368 lines
14 KiB
Protocol Buffer
syntax = "proto3";
|
|
option go_package = "github.com/argoproj/argo-cd/v3/reposerver/apiclient";
|
|
|
|
package repository;
|
|
|
|
import "github.com/argoproj/argo-cd/v3/pkg/apis/application/v1alpha1/generated.proto";
|
|
import "google/protobuf/empty.proto";
|
|
|
|
// ManifestRequest is a query for manifest generation.
|
|
message ManifestRequest {
|
|
github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.Repository repo = 1;
|
|
// revision, potentially un-resolved
|
|
string revision = 2;
|
|
bool noCache = 3;
|
|
string appLabelKey = 4;
|
|
// Name of the application for which the request is triggered
|
|
string appName = 5;
|
|
string namespace = 8;
|
|
github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.ApplicationSource applicationSource = 10;
|
|
repeated github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.Repository repos = 11;
|
|
// Deprecated: use sidecar plugins instead.
|
|
repeated github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.ConfigManagementPlugin plugins = 12;
|
|
github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.KustomizeOptions kustomizeOptions = 13;
|
|
// KubeVersion is the Kubernetes API version from the destination cluster.
|
|
string kubeVersion = 14;
|
|
// ApiVersions is the list of API versions from the destination cluster, used for rendering Helm charts.
|
|
repeated string apiVersions = 15;
|
|
// Request to verify the signature when generating the manifests (only for Git repositories)
|
|
bool verifySignature = 16;
|
|
repeated github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.RepoCreds helmRepoCreds = 17;
|
|
bool noRevisionCache = 18;
|
|
string trackingMethod = 19;
|
|
map<string, bool> enabledSourceTypes = 20;
|
|
github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.HelmOptions helmOptions = 21;
|
|
bool hasMultipleSources = 22;
|
|
map<string, github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.RefTarget> refSources = 23;
|
|
// This is used to surface "source not permitted" errors for Helm repositories
|
|
repeated string projectSourceRepos = 24;
|
|
// This is used to surface "source not permitted" errors for Helm repositories
|
|
string projectName = 25;
|
|
// argocd.argoproj.io/manifest-generate-paths annotation value of the Application to allow optimize which resources propagated to cmpserver
|
|
string annotationManifestGeneratePaths = 26;
|
|
// Holds instance installation id
|
|
string installationID = 27;
|
|
}
|
|
|
|
message ManifestRequestWithFiles {
|
|
oneof part {
|
|
ManifestRequest request = 1;
|
|
ManifestFileMetadata metadata = 2;
|
|
ManifestFileChunk chunk = 3;
|
|
}
|
|
}
|
|
|
|
message ManifestFileMetadata {
|
|
// checksum is used to verify the integrity of the file
|
|
string checksum = 1;
|
|
// size relates to the file size in bytes
|
|
int64 size = 2;
|
|
}
|
|
|
|
message ManifestFileChunk {
|
|
bytes chunk = 1;
|
|
}
|
|
|
|
// TestRepositoryRequest is a query to test repository is valid or not and has valid access.
|
|
message TestRepositoryRequest {
|
|
github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.Repository repo = 1;
|
|
}
|
|
|
|
// TestRepositoryResponse represents the TestRepository response
|
|
message TestRepositoryResponse {
|
|
// Request to verify the signature when generating the manifests (only for Git repositories)
|
|
bool verifiedRepository = 1;
|
|
}
|
|
|
|
// ResolveRevisionRequest
|
|
message ResolveRevisionRequest {
|
|
github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.Repository repo = 1;
|
|
github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.Application app = 2;
|
|
string ambiguousRevision = 3;
|
|
int64 sourceIndex = 4;
|
|
bool noRevisionCache = 5;
|
|
}
|
|
|
|
// ResolveRevisionResponse
|
|
message ResolveRevisionResponse {
|
|
// returns the resolved revision
|
|
string revision = 1;
|
|
string ambiguousRevision = 2;
|
|
}
|
|
|
|
message ManifestResponse {
|
|
repeated string manifests = 1;
|
|
string namespace = 2;
|
|
string server = 3;
|
|
// resolved revision
|
|
string revision = 4;
|
|
string sourceType = 6;
|
|
// Raw response of git verify-commit operation (always the empty string for Helm)
|
|
string verifyResult = 7;
|
|
// Commands is the list of commands used to hydrate the manifests
|
|
repeated string commands = 8;
|
|
}
|
|
|
|
message ListRefsRequest {
|
|
github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.Repository repo = 1;
|
|
}
|
|
|
|
// A subset of the repository's named refs
|
|
message Refs {
|
|
repeated string branches = 1;
|
|
repeated string tags = 2;
|
|
}
|
|
|
|
// ListAppsRequest requests a repository directory structure
|
|
message ListAppsRequest {
|
|
github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.Repository repo = 1;
|
|
string revision = 2;
|
|
map<string, bool> enabledSourceTypes = 3;
|
|
}
|
|
|
|
// AppList returns the contents of the repo of a ListApps request
|
|
message AppList {
|
|
map<string, string> apps = 1;
|
|
}
|
|
|
|
message PluginInfo {
|
|
string name = 1;
|
|
}
|
|
|
|
// PluginList returns the list of all cmp v2 plugins running as sidecars
|
|
message PluginList {
|
|
repeated PluginInfo items = 1;
|
|
}
|
|
|
|
// RepoServerAppDetailsQuery contains query information for app details request
|
|
message RepoServerAppDetailsQuery {
|
|
github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.Repository repo = 1;
|
|
github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.ApplicationSource source = 2;
|
|
repeated github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.Repository repos = 3;
|
|
github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.KustomizeOptions kustomizeOptions = 4;
|
|
string appName = 5;
|
|
bool noCache = 6;
|
|
bool noRevisionCache = 7;
|
|
string trackingMethod = 8;
|
|
map<string, bool> enabledSourceTypes = 9;
|
|
github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.HelmOptions helmOptions = 10;
|
|
map<string, github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.RefTarget> refSources = 11;
|
|
}
|
|
|
|
// RepoAppDetailsResponse application details
|
|
message RepoAppDetailsResponse {
|
|
string type = 1;
|
|
HelmAppSpec helm = 3;
|
|
KustomizeAppSpec kustomize = 4;
|
|
DirectoryAppSpec directory = 5;
|
|
PluginAppSpec plugin = 6;
|
|
}
|
|
|
|
message RepoServerRevisionMetadataRequest {
|
|
// the repo
|
|
github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.Repository repo = 1;
|
|
// the revision within the repo
|
|
string revision = 2;
|
|
// whether to check signature on revision
|
|
bool checkSignature = 3;
|
|
}
|
|
|
|
message RepoServerRevisionChartDetailsRequest {
|
|
// the repo
|
|
github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.Repository repo = 1;
|
|
// the chart
|
|
string name = 2;
|
|
// the revision within the chart
|
|
string revision = 3;
|
|
}
|
|
|
|
// HelmAppSpec contains helm app name in source repo
|
|
message HelmAppSpec {
|
|
string name = 1;
|
|
repeated string valueFiles = 3;
|
|
// the output of `helm inspect values`
|
|
repeated github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.HelmParameter parameters = 4;
|
|
// the contents of values.yaml
|
|
string values = 5;
|
|
// helm file parameters
|
|
repeated github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.HelmFileParameter fileParameters = 6;
|
|
}
|
|
|
|
// KustomizeAppSpec contains kustomize images
|
|
message KustomizeAppSpec {
|
|
// images is a list of available images.
|
|
repeated string images = 3;
|
|
}
|
|
|
|
// DirectoryAppSpec contains directory
|
|
message DirectoryAppSpec {
|
|
}
|
|
|
|
message ParameterAnnouncement {
|
|
// name is the name identifying a parameter.
|
|
string name = 1;
|
|
// title is a human-readable text of the parameter name.
|
|
string title = 2;
|
|
// tooltip is a human-readable description of the parameter.
|
|
string tooltip = 3;
|
|
// required defines if this given parameter is mandatory.
|
|
bool required = 4;
|
|
// itemType determines the primitive data type represented by the parameter. Parameters are always encoded as
|
|
// strings, but this field lets them be interpreted as other primitive types.
|
|
string itemType = 5;
|
|
// collectionType is the type of value this parameter holds - either a single value (a string) or a collection
|
|
// (array or map). If collectionType is set, only the field with that type will be used. If collectionType is not
|
|
// set, `string` is the default. If collectionType is set to an invalid value, a validation error is thrown.
|
|
string collectionType = 6;
|
|
// string is the default value of the parameter if the parameter is a string.
|
|
string string = 7;
|
|
// array is the default value of the parameter if the parameter is an array.
|
|
repeated string array = 8;
|
|
// map is the default value of the parameter if the parameter is a map.
|
|
map<string, string> map = 9;
|
|
}
|
|
|
|
// PluginAppSpec contains details about a plugin-type Application
|
|
message PluginAppSpec {
|
|
repeated ParameterAnnouncement parametersAnnouncement = 1;
|
|
}
|
|
|
|
message HelmChartsRequest {
|
|
github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.Repository repo = 1;
|
|
}
|
|
|
|
message HelmChart {
|
|
string name = 1;
|
|
repeated string versions = 2;
|
|
}
|
|
|
|
message HelmChartsResponse {
|
|
repeated HelmChart items = 1;
|
|
}
|
|
|
|
message GitFilesRequest {
|
|
github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.Repository repo = 1;
|
|
bool submoduleEnabled = 2;
|
|
string revision = 3;
|
|
string path = 4;
|
|
bool NewGitFileGlobbingEnabled = 5;
|
|
bool noRevisionCache = 6;
|
|
bool verifyCommit = 7;
|
|
}
|
|
|
|
message GitFilesResponse {
|
|
// Map consisting of path of the path to its contents in bytes
|
|
map<string, bytes> map = 1;
|
|
}
|
|
|
|
message GitDirectoriesRequest {
|
|
github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.Repository repo = 1;
|
|
bool submoduleEnabled = 2;
|
|
string revision = 3;
|
|
bool noRevisionCache = 4;
|
|
bool verifyCommit = 5;
|
|
}
|
|
|
|
message GitDirectoriesResponse {
|
|
// A set of directory paths
|
|
repeated string paths = 1;
|
|
}
|
|
|
|
message UpdateRevisionForPathsRequest {
|
|
github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.Repository repo = 1;
|
|
|
|
string appLabelKey = 2;
|
|
string appName = 3;
|
|
string namespace = 4;
|
|
github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.ApplicationSource applicationSource = 5;
|
|
string trackingMethod = 6;
|
|
map<string, github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.RefTarget> refSources = 7;
|
|
string kubeVersion = 8;
|
|
repeated string apiVersions = 9;
|
|
bool hasMultipleSources = 10;
|
|
|
|
string syncedRevision = 11;
|
|
string revision = 12;
|
|
repeated string paths = 13;
|
|
|
|
bool noRevisionCache = 14;
|
|
string installationID = 15;
|
|
|
|
map<string, github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.RefTarget> syncedRefSources = 16;
|
|
}
|
|
|
|
message UpdateRevisionForPathsResponse {
|
|
// Changes indicates whether any changes were detected in the provided paths. If false, it means that the manifest
|
|
// cache was updated to the new revision. If true, it means that there are relevant changes in the repo files and
|
|
// that new manifests should be generated.
|
|
bool changes = 1;
|
|
string revision = 2;
|
|
}
|
|
|
|
// ManifestService
|
|
service RepoServerService {
|
|
|
|
// GenerateManifest generates manifest for application in specified repo name and revision
|
|
rpc GenerateManifest(ManifestRequest) returns (ManifestResponse) {
|
|
}
|
|
|
|
// GenerateManifestWithFiles generates manifest for application using provided tarball of files
|
|
rpc GenerateManifestWithFiles(stream ManifestRequestWithFiles) returns (ManifestResponse) {
|
|
}
|
|
|
|
// Returns a bool val if the repository is valid and has proper access
|
|
rpc TestRepository(TestRepositoryRequest) returns (TestRepositoryResponse) {
|
|
}
|
|
|
|
// Returns a valid revision
|
|
rpc ResolveRevision(ResolveRevisionRequest) returns (ResolveRevisionResponse) {
|
|
}
|
|
|
|
// Returns a list of refs (e.g. branches and tags) in the repo
|
|
rpc ListRefs(ListRefsRequest) returns (Refs) {
|
|
}
|
|
|
|
// Returns a list of oci tags in the repo
|
|
rpc ListOCITags(ListRefsRequest) returns (Refs) {
|
|
}
|
|
|
|
// ListApps returns a list of apps in the repo
|
|
rpc ListApps(ListAppsRequest) returns (AppList) {
|
|
}
|
|
|
|
// ListPlugins returns a list of cmp v2 plugins running as sidecar to reposerver
|
|
rpc ListPlugins(google.protobuf.Empty) returns (PluginList) {
|
|
}
|
|
|
|
// Generate manifest for application in specified repo name and revision
|
|
rpc GetAppDetails(RepoServerAppDetailsQuery) returns (RepoAppDetailsResponse) {
|
|
}
|
|
|
|
// Get the meta-data (author, date, tags, message) for a specific revision of the repo
|
|
rpc GetRevisionMetadata(RepoServerRevisionMetadataRequest) returns (github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.RevisionMetadata) {
|
|
}
|
|
|
|
// Get the meta-data (author, date, tags, message) for a specific revision of the OCI image
|
|
rpc GetOCIMetadata(RepoServerRevisionChartDetailsRequest) returns (github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.OCIMetadata) {
|
|
}
|
|
|
|
// Get the chart details (author, date, tags, message) for a specific revision of the repo
|
|
rpc GetRevisionChartDetails(RepoServerRevisionChartDetailsRequest) returns (github.com.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.ChartDetails) {
|
|
}
|
|
|
|
// GetHelmCharts returns list of helm charts in the specified repository
|
|
rpc GetHelmCharts(HelmChartsRequest) returns (HelmChartsResponse) {
|
|
}
|
|
|
|
// GetGitFiles returns a set of file paths and their contents for the given repo
|
|
rpc GetGitFiles(GitFilesRequest) returns (GitFilesResponse) {
|
|
}
|
|
|
|
// GetGitDirectories returns a set of directory paths for the given repo
|
|
rpc GetGitDirectories(GitDirectoriesRequest) returns (GitDirectoriesResponse) {
|
|
}
|
|
|
|
// UpdateRevisionForPaths will compare two revisions and update the cache with the new revision if no changes are detected in the provided paths
|
|
rpc UpdateRevisionForPaths(UpdateRevisionForPathsRequest) returns (UpdateRevisionForPathsResponse) {
|
|
}
|
|
}
|