...

Text file src/edge-infra.dev/pkg/edge/api/graph/schema/helm_schema_queries.graphql

Documentation: edge-infra.dev/pkg/edge/api/graph/schema

     1extend type Query {
     2  """
     3  HelmChartVersion gets helm chart versions from helm url for the secret passed in. Will return a list of the installable versions of the provided helm repository and chart.
     4  """
     5  helmChartVersion(
     6    """
     7    Name of the helm workload to get versions for.
     8    """
     9    name: String!
    10    """
    11    Helm repository secret to use to get helm chart information
    12    """
    13    secretName: String!
    14    """
    15    Banner id for the helm repository
    16    """
    17    bannerEdgeId: String! @hasBannerAccess(field: "bannerEdgeId")
    18  ): HelmChartResponse
    19    @hasRole(
    20      roles: [
    21        EDGE_ORG_ADMIN
    22        EDGE_BANNER_ADMIN
    23        EDGE_BANNER_OPERATOR
    24        EDGE_BANNER_VIEWER
    25      ]
    26    )
    27
    28  """
    29  DefaultSchemaConfig gets default schema config file using helm secret's helmUrl for secret name param. This schema config is used to validate helm config values.
    30  """
    31  defaultSchemaConfig(params: helmConfigSchemaParams!): HelmConfig
    32    @hasRole(
    33      roles: [
    34        EDGE_ORG_ADMIN
    35        EDGE_BANNER_ADMIN
    36        EDGE_BANNER_OPERATOR
    37        EDGE_BANNER_VIEWER
    38      ]
    39    )
    40
    41  """
    42  HelmReleases is deprecated, use helmWorkloads api and helmReleasesStatus api instead.
    43  HelmReleases gets helm release resources from kubernetes.
    44  """
    45  helmReleases(
    46    clusterEdgeId: String! @hasClusterAccess(field: "clusterEdgeId")
    47  ): [HelmRelease]
    48    @deprecated(reason: "Use `helmWorkloads` instead.")
    49    @hasRole(
    50      roles: [
    51        EDGE_ORG_ADMIN
    52        EDGE_BANNER_ADMIN
    53        EDGE_BANNER_OPERATOR
    54        EDGE_BANNER_VIEWER
    55      ]
    56    )
    57
    58  """
    59  HelmReleasesStatus gets helm release resources status from kubernetes. This API is separate from the helmWorkloads API due to the additional time getting status of clusters currently takes. An upcomming enhancement will reduce the delay and we will combine the APIs
    60  """
    61  helmReleasesStatus(
    62    clusterEdgeId: String! @hasClusterAccess(field: "clusterEdgeId")
    63  ): [HelmReleaseStatus]
    64    @hasRole(
    65      roles: [
    66        EDGE_ORG_ADMIN
    67        EDGE_BANNER_ADMIN
    68        EDGE_BANNER_OPERATOR
    69        EDGE_BANNER_VIEWER
    70      ]
    71    )
    72
    73  """
    74  HelmWorkloads gets helm workloads deployed to a cluster. Currently does not include status info.
    75  """
    76  helmWorkloads(
    77    """
    78    The clusterEdgeId to retrieve deployed workloads.
    79    """
    80    clusterEdgeId: String @hasClusterAccess(field: "clusterEdgeId")
    81    """
    82    The bannerEdgeId to retrieve workloads for.
    83    """
    84    bannerEdgeId: String @hasBannerAccess(field: "bannerEdgeId")
    85  ): [HelmWorkload]
    86    @hasRole(
    87      roles: [
    88        EDGE_BANNER_VIEWER
    89        EDGE_ORG_ADMIN
    90        EDGE_BANNER_ADMIN
    91        EDGE_BANNER_OPERATOR
    92      ]
    93    )
    94
    95  """
    96  HelmWorkload gets a single helm workload deployed to a cluster.
    97  """
    98  helmWorkload(
    99    """
   100    The helmEdgeId of the workload.
   101    """
   102    helmEdgeId: String! @hasHelmWorkloadAccess(field: "helmEdgeId")
   103    """
   104    The clusterEdgeId to retrieve deployed workload.
   105    """
   106    clusterEdgeId: String! @hasClusterAccess(field: "clusterEdgeId")
   107  ): HelmWorkload
   108    @hasRole(
   109      roles: [
   110        EDGE_BANNER_VIEWER
   111        EDGE_ORG_ADMIN
   112        EDGE_BANNER_ADMIN
   113        EDGE_BANNER_OPERATOR
   114      ]
   115    )
   116
   117  """
   118  HelmCharts get the helm chart from helm url in helm repository secret
   119  """
   120  helmCharts(
   121    """
   122    Secret for helm repository.
   123    """
   124    secretName: String!
   125    """
   126    Banner helm repository is located in.
   127    """
   128    bannerEdgeId: String! @hasBannerAccess(field: "bannerEdgeId")
   129  ): [HelmChart!]
   130    @hasRole(
   131      roles: [
   132        EDGE_ORG_ADMIN
   133        EDGE_BANNER_ADMIN
   134        EDGE_BANNER_OPERATOR
   135        EDGE_BANNER_VIEWER
   136      ]
   137    )
   138
   139  """
   140  HelmRepositories gets helmrepositories resources from kubernetes.
   141  """
   142  helmRepositories(
   143    """
   144    Banner to get helmRepositories for.
   145    """
   146    bannerEdgeId: String! @hasBannerAccess(field: "bannerEdgeId")
   147  ): [HelmRepository]
   148    @hasRole(
   149      roles: [
   150        EDGE_BANNER_VIEWER
   151        EDGE_ORG_ADMIN
   152        EDGE_BANNER_ADMIN
   153        EDGE_BANNER_OPERATOR
   154      ]
   155    )
   156
   157  """
   158  GetHelmRepositoryInfo gets the Readme.md file using helm secret's helmUrl for secret name param.
   159  """
   160  helmRepositoryInfo(params: helmConfigSchemaParams!): HelmRepositoryInfo
   161    @hasRole(
   162      roles: [
   163        EDGE_ORG_ADMIN
   164        EDGE_BANNER_ADMIN
   165        EDGE_BANNER_OPERATOR
   166        EDGE_BANNER_VIEWER
   167      ]
   168    )
   169}
   170
   171extend type Mutation {
   172  """
   173  CreateHelmRelease creates helmreleases resources in kubernetes.
   174  """
   175  createHelmRelease(payload: helmReleasePayload!): Boolean!
   176    @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR])
   177
   178  """
   179  DeleteHelmRelease deletes helmreleases resources from kubernetes.
   180  """
   181  deleteHelmRelease(
   182    """
   183    Edge id of the workload that is to be deleted
   184    """
   185    helmEdgeId: String @hasHelmWorkloadAccess(field: "helmEdgeId")
   186    """
   187    Name of the helm workload to delete
   188    """
   189    name: String @deprecated(reason: "Use helmEdgeId")
   190    """
   191    Cluster id of the workload that is to be deleted
   192    """
   193    clusterEdgeId: String @hasClusterAccess(field: "clusterEdgeId") @deprecated(reason: "Use helmEdgeId")
   194  ): Boolean!
   195    @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR])
   196
   197  """
   198  Deprecated use createHelmRepository API
   199  CreateOrUpdateBannerHelmRepository creates a helm repository in the provided banner.
   200  """
   201  createOrUpdateBannerHelmRepository(
   202    """
   203    Name of the helm reporsitry getting created or updated
   204    """
   205    name: String!
   206    """
   207    Banner where the helm repository is created.
   208    """
   209    bannerEdgeId: String! @hasBannerAccess(field: "bannerEdgeId")
   210    """
   211    URL where the helm repository is located.
   212    """
   213    url: String!
   214    """
   215    Secret used to store repository information
   216    """
   217    secret: String
   218  ): Boolean!
   219    @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR])
   220
   221  """
   222  API to create helm repository for a banner.
   223  """
   224  createHelmRepository(
   225    """
   226    Name of the helm reporsitry getting created or updated
   227    """
   228    name: String!
   229    """
   230    Banner where the helm repository is created.
   231    """
   232    bannerEdgeId: String! @hasBannerAccess(field: "bannerEdgeId")
   233    """
   234    URL where the helm repository is located.
   235    """
   236    url: String!
   237    """
   238    Optional username for private helm repository. If username or password is provided both need to be provided.
   239    """
   240    username: String
   241    """
   242    Optional password for private helm repository. If username or password is provided both need to be provided.
   243    """
   244    password: String
   245  ): Boolean!
   246    @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR])
   247
   248  """
   249  DeleteHelmRepository remove helm repository resource from the provided banner. Use with caution as this may break deployed helm releases.
   250  """
   251  deleteHelmRepository(
   252    """
   253    Name of the helm repository to delete
   254    """
   255    name: String!
   256    """
   257    Banner to delete the helm reporsitory from
   258    """
   259    bannerEdgeId: String! @hasBannerAccess(field: "bannerEdgeId")
   260  ): Boolean!
   261    @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR])
   262
   263  """
   264  Deprecated. Please use deleteHelmRepository instead.
   265  DeleteBannerHelmRepository remove helm repository resource from the provided banner. Use with caution as this may break deployed helm releases.
   266  """
   267  deleteBannerHelmRepository(
   268    """
   269    Name of the helm repository to delete
   270    """
   271    name: String!
   272    """
   273    Banner to delete the helm reporsitory from
   274    """
   275    bannerEdgeId: String! @hasBannerAccess(field: "bannerEdgeId")
   276  ): Boolean!
   277    @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR])
   278
   279    """
   280    UpdateHelmRelease updates a helm release with a desired version
   281    """
   282    updateHelmRelease(
   283        helmEdgeId: String @hasHelmWorkloadAccess(field: "helmEdgeId"),
   284        """
   285        Name of the helm workload to update
   286        """
   287        helmReleaseName: String @deprecated(reason: "Use helmEdgeId"), 
   288        """
   289        Cluster to update the helm chart on.
   290        """
   291        clusterEdgeId: String @hasClusterAccess(field: "clusterEdgeId") @deprecated(reason: "Use helmEdgeId"),
   292        """
   293        Version to update the helm chart to. If not provided the version will remain the same.
   294        """
   295        version: String,
   296        """
   297        Updated helm configuration values. If not provided the current values will be used.
   298        """
   299        configValues: String,
   300        """
   301        Configmaps to inject to workload namespace. If not provided the current values will be used.
   302        """
   303        injectConfigmaps: [InjectableConfigmaps!]
   304        """
   305        Helm repository secret to use to get helm chart information
   306        """
   307        secrets: [String!]
   308        labelEdgeIds: [String!]) : Boolean! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR])
   309    """
   310    ValidateHelmConfig validates a helm config yaml of helm release using the chart's json validation schema.
   311    """
   312    validateHelmConfig(payload: validateHelmConfigParams!) : Boolean! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR])
   313
   314  """
   315  addWorkloadLabel add a new mapping of label to workload  
   316  """
   317  addWorkloadLabel(workloadLabelParameters: WorkloadLabelInput! @hasLabelAccess(field: "labelEdgeId")): Boolean!  
   318    @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR])  
   319
   320  """
   321  addWorkloadLabels add a list of labels to workload
   322  """
   323  addWorkloadLabels(  
   324    helmEdgeId: String! @hasHelmWorkloadAccess(field: "helmEdgeId")
   325    labelEdgeIds: [String!]! @hasLabelAccess(field: "labelEdgeId")
   326  ): Boolean!  
   327    @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR])  
   328
   329  """
   330  deleteWorkloadLabel deletes a workload label mapping by either helmEdgeID, LabelEdgeID or both  
   331  """
   332  deleteWorkloadLabel(  
   333    workloadLabelParameters: WorkloadLabelInput! @hasLabelAccess(field: "labelEdgeId")  
   334  ): Boolean!  
   335    @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) 
   336}

View as plain text