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

WorkflowEventBinding CRD has no documentation #12166

Closed
metasim opened this issue Nov 7, 2023 · 1 comment · Fixed by #13754
Closed

WorkflowEventBinding CRD has no documentation #12166

metasim opened this issue Nov 7, 2023 · 1 comment · Fixed by #13754
Labels
area/docs Incorrect, missing, or mistakes in docs area/spec Changes to the workflow specification. type/feature Feature request

Comments

@metasim
Copy link
Contributor

metasim commented Nov 7, 2023

Summary

It is customary for K8S CRDs to be self documenting, enabling one to run kubectl explain <CRD path> (or use your IDE's features to do so) to assist in defining K8S resources. This is missing from WorkflowEventBinding, making it unnecessarily burdensome to figure out proper usage.

Here's the current output when running kubectl explain WorkflowEventBinding.spec.

GROUP:      argoproj.io
KIND:       WorkflowEventBinding
VERSION:    v1alpha1

FIELD: spec <Object>

DESCRIPTION:
    <empty>

Note: This may apply to other Argo CRDs; this is just the one I'm attempting to use right now.

Use Cases

When implementing Argo event bindings.


Message from the maintainers:

Love this enhancement proposal? Give it a 👍. We prioritise the proposals with the most 👍.

@metasim metasim added the type/feature Feature request label Nov 7, 2023
@metasim
Copy link
Contributor Author

metasim commented Nov 7, 2023

WorkflowEventBinding also appears to be missing from https://argoproj.github.io/argo-workflows/fields/

@agilgur5 agilgur5 added area/docs Incorrect, missing, or mistakes in docs area/spec Changes to the workflow specification. labels Nov 7, 2023
MasonM added a commit to MasonM/argo-workflows that referenced this issue Oct 14, 2024
…tifactGCTask. Fixes argoproj#12166

The CRDs under `manifests/base/crds/minimal/` are minimized as a workaround for
kubernetes/kubernetes#82292. However,
`WorkflowEventBinding` and `WorkflowArtifactGCTask` are small enough
that minimization isn't necessary, and allows using `kubectl explain` to
view the spec.

<details>
<summary>Click for <code>kubectl explain --recursive WorkflowEventBinding</code></summary>

```
$ kubectl explain --recursive WorkflowEventBinding
GROUP:      argoproj.io
KIND:       WorkflowEventBinding
VERSION:    v1alpha1

DESCRIPTION:
    <empty>
FIELDS:
  apiVersion    <string>
  kind  <string>
  metadata      <ObjectMeta> -required-
    annotations <map[string]string>
    creationTimestamp   <string>
    deletionGracePeriodSeconds  <integer>
    deletionTimestamp   <string>
    finalizers  <[]string>
    generateName        <string>
    generation  <integer>
    labels      <map[string]string>
    managedFields       <[]ManagedFieldsEntry>
      apiVersion        <string>
      fieldsType        <string>
      fieldsV1  <FieldsV1>
      manager   <string>
      operation <string>
      subresource       <string>
      time      <string>
    name        <string>
    namespace   <string>
    ownerReferences     <[]OwnerReference>
      apiVersion        <string> -required-
      blockOwnerDeletion        <boolean>
      controller        <boolean>
      kind      <string> -required-
      name      <string> -required-
      uid       <string> -required-
    resourceVersion     <string>
    selfLink    <string>
    uid <string>
  spec  <Object> -required-
    event       <Object> -required-
      selector  <string> -required-
    submit      <Object>
      arguments <Object>
        artifacts       <[]Object>
          archive       <Object>
            none        <Object>
            tar <Object>
              compressionLevel  <integer>
            zip <Object>
          archiveLogs   <boolean>
          artifactGC    <Object>
            podMetadata <Object>
              annotations       <map[string]string>
              labels    <map[string]string>
            serviceAccountName  <string>
            strategy    <string>
          artifactory   <Object>
            passwordSecret      <Object>
              key       <string> -required-
              name      <string>
              optional  <boolean>
            url <string> -required-
            usernameSecret      <Object>
              key       <string> -required-
              name      <string>
              optional  <boolean>
          azure <Object>
            accountKeySecret    <Object>
              key       <string> -required-
              name      <string>
              optional  <boolean>
            blob        <string> -required-
            container   <string> -required-
            endpoint    <string> -required-
            useSDKCreds <boolean>
          deleted       <boolean>
          from  <string>
          fromExpression        <string>
          gcs   <Object>
            bucket      <string>
            key <string> -required-
            serviceAccountKeySecret     <Object>
              key       <string> -required-
              name      <string>
              optional  <boolean>
          git   <Object>
            branch      <string>
            depth       <integer>
            disableSubmodules   <boolean>
            fetch       <[]string>
            insecureIgnoreHostKey       <boolean>
            passwordSecret      <Object>
              key       <string> -required-
              name      <string>
              optional  <boolean>
            repo        <string> -required-
            revision    <string>
            singleBranch        <boolean>
            sshPrivateKeySecret <Object>
              key       <string> -required-
              name      <string>
              optional  <boolean>
            usernameSecret      <Object>
              key       <string> -required-
              name      <string>
              optional  <boolean>
          globalName    <string>
          hdfs  <Object>
            addresses   <[]string>
            dataTransferProtection      <string>
            force       <boolean>
            hdfsUser    <string>
            krbCCacheSecret     <Object>
              key       <string> -required-
              name      <string>
              optional  <boolean>
            krbConfigConfigMap  <Object>
              key       <string> -required-
              name      <string>
              optional  <boolean>
            krbKeytabSecret     <Object>
              key       <string> -required-
              name      <string>
              optional  <boolean>
            krbRealm    <string>
            krbServicePrincipalName     <string>
            krbUsername <string>
            path        <string> -required-
          http  <Object>
            auth        <Object>
              basicAuth <Object>
                passwordSecret  <Object>
                  key   <string> -required-
                  name  <string>
                  optional      <boolean>
                usernameSecret  <Object>
                  key   <string> -required-
                  name  <string>
                  optional      <boolean>
              clientCert        <Object>
                clientCertSecret        <Object>
                  key   <string> -required-
                  name  <string>
                  optional      <boolean>
                clientKeySecret <Object>
                  key   <string> -required-
                  name  <string>
                  optional      <boolean>
              oauth2    <Object>
                clientIDSecret  <Object>
                  key   <string> -required-
                  name  <string>
                  optional      <boolean>
                clientSecretSecret      <Object>
                  key   <string> -required-
                  name  <string>
                  optional      <boolean>
                endpointParams  <[]Object>
                  key   <string> -required-
                  value <string>
                scopes  <[]string>
                tokenURLSecret  <Object>
                  key   <string> -required-
                  name  <string>
                  optional      <boolean>
            headers     <[]Object>
              name      <string> -required-
              value     <string> -required-
            url <string> -required-
          mode  <integer>
          name  <string> -required-
          optional      <boolean>
          oss   <Object>
            accessKeySecret     <Object>
              key       <string> -required-
              name      <string>
              optional  <boolean>
            bucket      <string>
            createBucketIfNotPresent    <boolean>
            endpoint    <string>
            key <string> -required-
            lifecycleRule       <Object>
              markDeletionAfterDays     <integer>
              markInfrequentAccessAfterDays     <integer>
            secretKeySecret     <Object>
              key       <string> -required-
              name      <string>
              optional  <boolean>
            securityToken       <string>
            useSDKCreds <boolean>
          path  <string>
          raw   <Object>
            data        <string> -required-
          recurseMode   <boolean>
          s3    <Object>
            accessKeySecret     <Object>
              key       <string> -required-
              name      <string>
              optional  <boolean>
            bucket      <string>
            caSecret    <Object>
              key       <string> -required-
              name      <string>
              optional  <boolean>
            createBucketIfNotPresent    <Object>
              objectLocking     <boolean>
            encryptionOptions   <Object>
              enableEncryption  <boolean>
              kmsEncryptionContext      <string>
              kmsKeyId  <string>
              serverSideCustomerKeySecret       <Object>
                key     <string> -required-
                name    <string>
                optional        <boolean>
            endpoint    <string>
            insecure    <boolean>
            key <string>
            region      <string>
            roleARN     <string>
            secretKeySecret     <Object>
              key       <string> -required-
              name      <string>
              optional  <boolean>
            sessionTokenSecret  <Object>
              key       <string> -required-
              name      <string>
              optional  <boolean>
            useSDKCreds <boolean>
          subPath       <string>
        parameters      <[]Object>
          default       <string>
          description   <string>
          enum  <[]string>
          globalName    <string>
          name  <string> -required-
          value <string>
          valueFrom     <Object>
            configMapKeyRef     <Object>
              key       <string> -required-
              name      <string>
              optional  <boolean>
            default     <string>
            event       <string>
            expression  <string>
            jqFilter    <string>
            jsonPath    <string>
            parameter   <string>
            path        <string>
            supplied    <Object>
      metadata  <Object>
      workflowTemplateRef       <Object> -required-
        clusterScope    <boolean>
        name    <string>
```
</details>

Signed-off-by: Mason Malone <mmalone@adobe.com>
agilgur5 pushed a commit that referenced this issue Oct 15, 2024
…ifactGCTask`. Fixes #12166 (#13754)

Signed-off-by: Mason Malone <mmalone@adobe.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/docs Incorrect, missing, or mistakes in docs area/spec Changes to the workflow specification. type/feature Feature request
Projects
None yet
2 participants