Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(controller): Store artifact repository in workflow status. Fixes #6255 #6299

Merged
merged 5 commits into from
Jul 12, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
207 changes: 207 additions & 0 deletions api/jsonschema/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -2846,6 +2846,36 @@
],
"type": "object"
},
"io.argoproj.workflow.v1alpha1.ArtifactRepository": {
"description": "ArtifactRepository represents an artifact repository in which a controller will store its artifacts",
"properties": {
"archiveLogs": {
"description": "ArchiveLogs enables log archiving",
"type": "boolean"
},
"artifactory": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.ArtifactoryArtifactRepository",
"description": "Artifactory stores artifacts to JFrog Artifactory"
},
"gcs": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.GCSArtifactRepository",
"description": "GCS stores artifact in a GCS object store"
},
"hdfs": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.HDFSArtifactRepository",
"description": "HDFS stores artifacts in HDFS"
},
"oss": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.OSSArtifactRepository",
"description": "OSS stores artifact in a OSS-compliant object store"
},
"s3": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.S3ArtifactRepository",
"description": "S3 stores artifact in a S3-compliant object store"
}
},
"type": "object"
},
"io.argoproj.workflow.v1alpha1.ArtifactRepositoryRef": {
"properties": {
"configMap": {
Expand All @@ -2861,6 +2891,10 @@
},
"io.argoproj.workflow.v1alpha1.ArtifactRepositoryRefStatus": {
"properties": {
"artifactRepository": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.ArtifactRepository",
"description": "The repository the workflow will use. This maybe empty before v3.1."
},
"configMap": {
"description": "The name of the config map. Defaults to \"artifact-repositories\".",
"type": "string"
Expand Down Expand Up @@ -2901,6 +2935,24 @@
],
"type": "object"
},
"io.argoproj.workflow.v1alpha1.ArtifactoryArtifactRepository": {
"description": "ArtifactoryArtifactRepository defines the controller configuration for an artifactory artifact repository",
"properties": {
"passwordSecret": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector",
"description": "PasswordSecret is the secret selector to the repository password"
},
"repoURL": {
"description": "RepoURL is the url for artifactory repo.",
"type": "string"
},
"usernameSecret": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector",
"description": "UsernameSecret is the secret selector to the repository username"
}
},
"type": "object"
},
"io.argoproj.workflow.v1alpha1.Backoff": {
"description": "Backoff is a backoff strategy to use within retryStrategy",
"properties": {
Expand Down Expand Up @@ -3573,6 +3625,24 @@
],
"type": "object"
},
"io.argoproj.workflow.v1alpha1.GCSArtifactRepository": {
"description": "GCSArtifactRepository defines the controller configuration for a GCS artifact repository",
"properties": {
"bucket": {
"description": "Bucket is the name of the bucket",
"type": "string"
},
"keyFormat": {
"description": "KeyFormat is defines the format of how to store keys. Can reference workflow variables",
"type": "string"
},
"serviceAccountKeySecret": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector",
"description": "ServiceAccountKeySecret is the secret selector to the bucket's service account key"
}
},
"type": "object"
},
"io.argoproj.workflow.v1alpha1.Gauge": {
"description": "Gauge is a Gauge prometheus metric",
"properties": {
Expand Down Expand Up @@ -3717,6 +3787,55 @@
],
"type": "object"
},
"io.argoproj.workflow.v1alpha1.HDFSArtifactRepository": {
"description": "HDFSArtifactRepository defines the controller configuration for an HDFS artifact repository",
"properties": {
"addresses": {
"description": "Addresses is accessible addresses of HDFS name nodes",
"items": {
"type": "string"
},
"type": "array"
},
"force": {
"description": "Force copies a file forcibly even if it exists (default: false)",
"type": "boolean"
},
"hdfsUser": {
"description": "HDFSUser is the user to access HDFS file system. It is ignored if either ccache or keytab is used.",
"type": "string"
},
"krbCCacheSecret": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector",
"description": "KrbCCacheSecret is the secret selector for Kerberos ccache Either ccache or keytab can be set to use Kerberos."
},
"krbConfigConfigMap": {
"$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector",
"description": "KrbConfig is the configmap selector for Kerberos config as string It must be set if either ccache or keytab is used."
},
"krbKeytabSecret": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector",
"description": "KrbKeytabSecret is the secret selector for Kerberos keytab Either ccache or keytab can be set to use Kerberos."
},
"krbRealm": {
"description": "KrbRealm is the Kerberos realm used with Kerberos keytab It must be set if keytab is used.",
"type": "string"
},
"krbServicePrincipalName": {
"description": "KrbServicePrincipalName is the principal name of Kerberos service It must be set if either ccache or keytab is used.",
"type": "string"
},
"krbUsername": {
"description": "KrbUsername is the Kerberos username used with Kerberos keytab It must be set if keytab is used.",
"type": "string"
},
"pathFormat": {
"description": "PathFormat is defines the format of path to store a file. Can reference workflow variables",
"type": "string"
}
},
"type": "object"
},
"io.argoproj.workflow.v1alpha1.HTTP": {
"properties": {
"body": {
Expand Down Expand Up @@ -4263,6 +4382,44 @@
],
"type": "object"
},
"io.argoproj.workflow.v1alpha1.OSSArtifactRepository": {
"description": "OSSArtifactRepository defines the controller configuration for an OSS artifact repository",
"properties": {
"accessKeySecret": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector",
"description": "AccessKeySecret is the secret selector to the bucket's access key"
},
"bucket": {
"description": "Bucket is the name of the bucket",
"type": "string"
},
"createBucketIfNotPresent": {
"description": "CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist",
"type": "boolean"
},
"endpoint": {
"description": "Endpoint is the hostname of the bucket endpoint",
"type": "string"
},
"keyFormat": {
"description": "KeyFormat is defines the format of how to store keys. Can reference workflow variables",
"type": "string"
},
"lifecycleRule": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.OSSLifecycleRule",
"description": "LifecycleRule specifies how to manage bucket's lifecycle"
},
"secretKeySecret": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector",
"description": "SecretKeySecret is the secret selector to the bucket's secret key"
},
"securityToken": {
"description": "SecurityToken is the user's temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm",
"type": "string"
}
},
"type": "object"
},
"io.argoproj.workflow.v1alpha1.OSSLifecycleRule": {
"description": "OSSLifecycleRule specifies how to manage bucket's lifecycle",
"properties": {
Expand Down Expand Up @@ -4544,6 +4701,56 @@
},
"type": "object"
},
"io.argoproj.workflow.v1alpha1.S3ArtifactRepository": {
"description": "S3ArtifactRepository defines the controller configuration for an S3 artifact repository",
"properties": {
"accessKeySecret": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector",
"description": "AccessKeySecret is the secret selector to the bucket's access key"
},
"bucket": {
"description": "Bucket is the name of the bucket",
"type": "string"
},
"createBucketIfNotPresent": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.CreateS3BucketOptions",
"description": "CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist"
},
"endpoint": {
"description": "Endpoint is the hostname of the bucket endpoint",
"type": "string"
},
"insecure": {
"description": "Insecure will connect to the service with TLS",
"type": "boolean"
},
"keyFormat": {
"description": "KeyFormat is defines the format of how to store keys. Can reference workflow variables",
"type": "string"
},
"keyPrefix": {
"description": "KeyPrefix is prefix used as part of the bucket key in which the controller will store artifacts. DEPRECATED. Use KeyFormat instead",
"type": "string"
},
"region": {
"description": "Region contains the optional bucket region",
"type": "string"
},
"roleARN": {
"description": "RoleARN is the Amazon Resource Name (ARN) of the role to assume.",
"type": "string"
},
"secretKeySecret": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector",
"description": "SecretKeySecret is the secret selector to the bucket's secret key"
},
"useSDKCreds": {
"description": "UseSDKCreds tells the driver to figure out credentials based on sdk defaults.",
"type": "boolean"
}
},
"type": "object"
},
"io.argoproj.workflow.v1alpha1.ScriptTemplate": {
"description": "ScriptTemplate is a template subtype to enable scripting through code steps",
"properties": {
Expand Down
Loading