Skip to content

Commit

Permalink
feat: Add webHDFS support for HTTP artifacts. Fixes #7540
Browse files Browse the repository at this point in the history
Signed-off-by: Alexander Dittmann <alexander.dittmann@sap.com>
  • Loading branch information
alexdittmann committed Apr 26, 2022
1 parent e9a8796 commit 1a7d50f
Show file tree
Hide file tree
Showing 49 changed files with 26,840 additions and 5,258 deletions.
89 changes: 82 additions & 7 deletions api/jsonschema/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -4822,6 +4822,20 @@
},
"type": "object"
},
"io.argoproj.workflow.v1alpha1.BasicAuth": {
"description": "BasicAuth describes the secret selectors required for basic authentication",
"properties": {
"passwordSecret": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector",
"description": "PasswordSecret is the secret selector to the repository password"
},
"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.Cache": {
"description": "Cache is the configuration for the type of cache to be used",
"properties": {
Expand All @@ -4835,6 +4849,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 +5494,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 @@ -5767,24 +5810,29 @@
"io.argoproj.workflow.v1alpha1.HTTPArtifact": {
"description": "HTTPArtifact allows a file served on HTTP to be placed as an input artifact in a container",
"properties": {
"basicAuth": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.BasicAuth"
},
"clientCert": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.ClientCertAuth"
},
"followTemporaryRedirects": {
"description": "whether to follow temporary redirects, needed for webHDFS",
"type": "boolean"
},
"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"
},
"passwordSecret": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector",
"description": "PasswordSecret is the secret selector to the repository password"
"oauth2": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.OAuth2Auth"
},
"url": {
"description": "URL of the artifact",
"type": "string"
},
"usernameSecret": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector",
"description": "UsernameSecret is the secret selector to the repository username"
}
},
"required": [
Expand Down Expand Up @@ -6303,6 +6351,33 @@
"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"
},
"scopes": {
"items": {
"type": "string"
},
"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
89 changes: 82 additions & 7 deletions api/openapi-spec/swagger.json
Original file line number Diff line number Diff line change
Expand Up @@ -9186,6 +9186,20 @@
}
}
},
"io.argoproj.workflow.v1alpha1.BasicAuth": {
"description": "BasicAuth describes the secret selectors required for basic authentication",
"type": "object",
"properties": {
"passwordSecret": {
"description": "PasswordSecret is the secret selector to the repository password",
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector"
},
"usernameSecret": {
"description": "UsernameSecret is the secret selector to the repository username",
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector"
}
}
},
"io.argoproj.workflow.v1alpha1.Cache": {
"description": "Cache is the configuration for the type of cache to be used",
"type": "object",
Expand All @@ -9199,6 +9213,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 +9840,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 @@ -10117,24 +10160,29 @@
"url"
],
"properties": {
"basicAuth": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.BasicAuth"
},
"clientCert": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.ClientCertAuth"
},
"followTemporaryRedirects": {
"description": "whether to follow temporary redirects, needed for webHDFS",
"type": "boolean"
},
"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"
}
},
"passwordSecret": {
"description": "PasswordSecret is the secret selector to the repository password",
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector"
"oauth2": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.OAuth2Auth"
},
"url": {
"description": "URL of the artifact",
"type": "string"
},
"usernameSecret": {
"description": "UsernameSecret is the secret selector to the repository username",
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector"
}
}
},
Expand Down Expand Up @@ -10649,6 +10697,33 @@
"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"
}
},
"scopes": {
"type": "array",
"items": {
"type": "string"
}
},
"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
Loading

0 comments on commit 1a7d50f

Please sign in to comment.