Skip to content

Commit

Permalink
feat: Add WebHDFS support for HTTP artifacts. Fixes #7540 (#8468)
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 May 13, 2022
1 parent 354dee8 commit 6b9dc26
Show file tree
Hide file tree
Showing 65 changed files with 28,503 additions and 5,611 deletions.
96 changes: 88 additions & 8 deletions api/jsonschema/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -4840,6 +4840,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 @@ -4853,6 +4867,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 @@ -5804,31 +5830,41 @@
"io.argoproj.workflow.v1alpha1.HTTPArtifact": {
"description": "HTTPArtifact allows a file served on HTTP to be placed as an input artifact in a container",
"properties": {
"auth": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.HTTPAuth",
"description": "Auth contains information for client authentication"
},
"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"
},
"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": [
"url"
],
"type": "object"
},
"io.argoproj.workflow.v1alpha1.HTTPAuth": {
"properties": {
"basicAuth": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.BasicAuth"
},
"clientCert": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.ClientCertAuth"
},
"oauth2": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.OAuth2Auth"
}
},
"type": "object"
},
"io.argoproj.workflow.v1alpha1.HTTPHeader": {
"properties": {
"name": {
Expand Down Expand Up @@ -6337,6 +6373,50 @@
"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.OAuth2EndpointParam"
},
"type": "array"
},
"scopes": {
"items": {
"type": "string"
},
"type": "array"
},
"tokenURLSecret": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector"
}
},
"type": "object"
},
"io.argoproj.workflow.v1alpha1.OAuth2EndpointParam": {
"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.OSSArtifact": {
"description": "OSSArtifact is the location of an Alibaba Cloud OSS artifact",
"properties": {
Expand Down
94 changes: 87 additions & 7 deletions api/openapi-spec/swagger.json
Original file line number Diff line number Diff line change
Expand Up @@ -9311,6 +9311,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 @@ -9324,6 +9338,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 @@ -10261,24 +10287,34 @@
"url"
],
"properties": {
"auth": {
"description": "Auth contains information for client authentication",
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.HTTPAuth"
},
"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"
},
"url": {
"description": "URL of the artifact",
"type": "string"
}
}
},
"io.argoproj.workflow.v1alpha1.HTTPAuth": {
"type": "object",
"properties": {
"basicAuth": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.BasicAuth"
},
"usernameSecret": {
"description": "UsernameSecret is the secret selector to the repository username",
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector"
"clientCert": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.ClientCertAuth"
},
"oauth2": {
"$ref": "#/definitions/io.argoproj.workflow.v1alpha1.OAuth2Auth"
}
}
},
Expand Down Expand Up @@ -10790,6 +10826,50 @@
"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.OAuth2EndpointParam"
}
},
"scopes": {
"type": "array",
"items": {
"type": "string"
}
},
"tokenURLSecret": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector"
}
}
},
"io.argoproj.workflow.v1alpha1.OAuth2EndpointParam": {
"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.OSSArtifact": {
"description": "OSSArtifact is the location of an Alibaba Cloud OSS artifact",
"type": "object",
Expand Down
Loading

0 comments on commit 6b9dc26

Please sign in to comment.