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: Add webHDFS support. Fixes #7540 #8443

Closed
Closed
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
132 changes: 132 additions & 0 deletions api/jsonschema/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -4563,6 +4563,10 @@
"subPath": {
"description": "SubPath allows an artifact to be sourced from a subpath within the specified source",
"type": "string"
},
"webHDFS": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.WebHDFSArtifact",
"description": "webHDFS contains webHDFS artifact location details"
}
},
"required": [
Expand Down Expand Up @@ -4608,6 +4612,10 @@
"s3": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.S3Artifact",
"description": "S3 contains S3 artifact location details"
},
"webHDFS": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.WebHDFSArtifact",
"description": "webHDFS contains webHDFS artifact location details"
}
},
"type": "object"
Expand Down Expand Up @@ -4690,6 +4698,10 @@
"subPath": {
"description": "SubPath allows an artifact to be sourced from a subpath within the specified source",
"type": "string"
},
"webHDFS": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.WebHDFSArtifact",
"description": "webHDFS contains webHDFS artifact location details"
}
},
"required": [
Expand Down Expand Up @@ -4723,6 +4735,10 @@
"s3": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.S3ArtifactRepository",
"description": "S3 stores artifact in a S3-compliant object store"
},
"webHDFS": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.WebHDFSArtifactRepository",
"description": "webHDFS stores artifacts in webHDFS compliant object store"
}
},
"type": "object"
Expand Down Expand Up @@ -4835,6 +4851,18 @@
],
"type": "object"
},
"io.argoproj.workflow.v1alpha1.ClientCertAuth": {
"description": "ClientCertAuth holds necessary information for client authentication via certificates",
"properties": {
"clientCertSecret": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector"
},
"clientKeySecret": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector"
}
},
"type": "object"
},
"io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate": {
"description": "ClusterWorkflowTemplate is the definition of a workflow template resource in cluster scope",
"properties": {
Expand Down Expand Up @@ -5468,6 +5496,23 @@
},
"type": "object"
},
"io.argoproj.workflow.v1alpha1.EndpointParam": {
"description": "EndpointParam is for requesting optional fields that should be sent in the oauth request",
"properties": {
"key": {
"description": "Name is the header name",
"type": "string"
},
"value": {
"description": "Value is the literal value to use for the header",
"type": "string"
}
},
"required": [
"key"
],
"type": "object"
},
"io.argoproj.workflow.v1alpha1.Event": {
"properties": {
"selector": {
Expand Down Expand Up @@ -6303,6 +6348,27 @@
"description": "NoneStrategy indicates to skip tar process and upload the files or directory tree as independent files. Note that if the artifact is a directory, the artifact driver must support the ability to save/load the directory appropriately.",
"type": "object"
},
"io.argoproj.workflow.v1alpha1.OAuth2Auth": {
"description": "OAuth2Auth holds all information for client authentication via OAuth2 tokens",
"properties": {
"clientIDSecret": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector"
},
"clientSecretSecret": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector"
},
"endpointParams": {
"items": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.EndpointParam"
},
"type": "array"
},
"tokenURLSecret": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector"
}
},
"type": "object"
},
"io.argoproj.workflow.v1alpha1.OSSArtifact": {
"description": "OSSArtifact is the location of an Alibaba Cloud OSS artifact",
"properties": {
Expand Down Expand Up @@ -7601,6 +7667,72 @@
},
"type": "object"
},
"io.argoproj.workflow.v1alpha1.WebHDFSArtifact": {
"properties": {
"authType": {
"type": "string"
},
"clientCert": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.ClientCertAuth"
},
"endpoint": {
"description": "webHDFS endpoint",
"type": "string"
},
"headers": {
"description": "Headers are an optional list of headers to send with HTTP requests for artifacts",
"items": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.Header"
},
"type": "array"
},
"oauth2": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.OAuth2Auth"
},
"overwrite": {
"description": "whether to overwrite existing output artifacts (default: unset, meaning the endpoint's default behavior is used)",
"type": "boolean"
},
"path": {
"description": "path to the artifact",
"type": "string"
}
},
"type": "object"
},
"io.argoproj.workflow.v1alpha1.WebHDFSArtifactRepository": {
"description": "WebHDFSArtifactRepository defines the controller configuration for a webHDFS artifact repository",
"properties": {
"authType": {
"type": "string"
},
"clientCert": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.ClientCertAuth"
},
"endpoint": {
"type": "string"
},
"headers": {
"description": "Optional headers to be passed in the webHDFS HTTP requests",
"items": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.Header"
},
"type": "array"
},
"oauth2": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.OAuth2Auth"
},
"overwrite": {
"description": "whether to overwrite existing files",
"type": "boolean"
},
"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.Workflow": {
"description": "Workflow is the definition of a workflow resource",
"properties": {
Expand Down
132 changes: 132 additions & 0 deletions api/openapi-spec/swagger.json
Original file line number Diff line number Diff line change
Expand Up @@ -8931,6 +8931,10 @@
"subPath": {
"description": "SubPath allows an artifact to be sourced from a subpath within the specified source",
"type": "string"
},
"webHDFS": {
"description": "webHDFS contains webHDFS artifact location details",
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.WebHDFSArtifact"
}
}
},
Expand Down Expand Up @@ -8973,6 +8977,10 @@
"s3": {
"description": "S3 contains S3 artifact location details",
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.S3Artifact"
},
"webHDFS": {
"description": "webHDFS contains webHDFS artifact location details",
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.WebHDFSArtifact"
}
}
},
Expand Down Expand Up @@ -9058,6 +9066,10 @@
"subPath": {
"description": "SubPath allows an artifact to be sourced from a subpath within the specified source",
"type": "string"
},
"webHDFS": {
"description": "webHDFS contains webHDFS artifact location details",
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.WebHDFSArtifact"
}
}
},
Expand Down Expand Up @@ -9088,6 +9100,10 @@
"s3": {
"description": "S3 stores artifact in a S3-compliant object store",
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.S3ArtifactRepository"
},
"webHDFS": {
"description": "webHDFS stores artifacts in webHDFS compliant object store",
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.WebHDFSArtifactRepository"
}
}
},
Expand Down Expand Up @@ -9199,6 +9215,18 @@
}
}
},
"io.argoproj.workflow.v1alpha1.ClientCertAuth": {
"description": "ClientCertAuth holds necessary information for client authentication via certificates",
"type": "object",
"properties": {
"clientCertSecret": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector"
},
"clientKeySecret": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector"
}
}
},
"io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate": {
"description": "ClusterWorkflowTemplate is the definition of a workflow template resource in cluster scope",
"type": "object",
Expand Down Expand Up @@ -9814,6 +9842,23 @@
}
}
},
"io.argoproj.workflow.v1alpha1.EndpointParam": {
"description": "EndpointParam is for requesting optional fields that should be sent in the oauth request",
"type": "object",
"required": [
"key"
],
"properties": {
"key": {
"description": "Name is the header name",
"type": "string"
},
"value": {
"description": "Value is the literal value to use for the header",
"type": "string"
}
}
},
"io.argoproj.workflow.v1alpha1.Event": {
"type": "object",
"required": [
Expand Down Expand Up @@ -10649,6 +10694,27 @@
"description": "NoneStrategy indicates to skip tar process and upload the files or directory tree as independent files. Note that if the artifact is a directory, the artifact driver must support the ability to save/load the directory appropriately.",
"type": "object"
},
"io.argoproj.workflow.v1alpha1.OAuth2Auth": {
"description": "OAuth2Auth holds all information for client authentication via OAuth2 tokens",
"type": "object",
"properties": {
"clientIDSecret": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector"
},
"clientSecretSecret": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector"
},
"endpointParams": {
"type": "array",
"items": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.EndpointParam"
}
},
"tokenURLSecret": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector"
}
}
},
"io.argoproj.workflow.v1alpha1.OSSArtifact": {
"description": "OSSArtifact is the location of an Alibaba Cloud OSS artifact",
"type": "object",
Expand Down Expand Up @@ -11947,6 +12013,72 @@
}
}
},
"io.argoproj.workflow.v1alpha1.WebHDFSArtifact": {
"type": "object",
"properties": {
"authType": {
"type": "string"
},
"clientCert": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.ClientCertAuth"
},
"endpoint": {
"description": "webHDFS endpoint",
"type": "string"
},
"headers": {
"description": "Headers are an optional list of headers to send with HTTP requests for artifacts",
"type": "array",
"items": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.Header"
}
},
"oauth2": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.OAuth2Auth"
},
"overwrite": {
"description": "whether to overwrite existing output artifacts (default: unset, meaning the endpoint's default behavior is used)",
"type": "boolean"
},
"path": {
"description": "path to the artifact",
"type": "string"
}
}
},
"io.argoproj.workflow.v1alpha1.WebHDFSArtifactRepository": {
"description": "WebHDFSArtifactRepository defines the controller configuration for a webHDFS artifact repository",
"type": "object",
"properties": {
"authType": {
"type": "string"
},
"clientCert": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.ClientCertAuth"
},
"endpoint": {
"type": "string"
},
"headers": {
"description": "Optional headers to be passed in the webHDFS HTTP requests",
"type": "array",
"items": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.Header"
}
},
"oauth2": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.OAuth2Auth"
},
"overwrite": {
"description": "whether to overwrite existing files",
"type": "boolean"
},
"pathFormat": {
"description": "PathFormat is defines the format of path to store a file. Can reference workflow variables",
"type": "string"
}
}
},
"io.argoproj.workflow.v1alpha1.Workflow": {
"description": "Workflow is the definition of a workflow resource",
"type": "object",
Expand Down
Loading