extend type Query { """ 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. """ helmChartVersion( """ Name of the helm workload to get versions for. """ name: String! """ Helm repository secret to use to get helm chart information """ secretName: String! """ Banner id for the helm repository """ bannerEdgeId: String! @hasBannerAccess(field: "bannerEdgeId") ): HelmChartResponse @hasRole( roles: [ EDGE_ORG_ADMIN EDGE_BANNER_ADMIN EDGE_BANNER_OPERATOR EDGE_BANNER_VIEWER ] ) """ 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. """ defaultSchemaConfig(params: helmConfigSchemaParams!): HelmConfig @hasRole( roles: [ EDGE_ORG_ADMIN EDGE_BANNER_ADMIN EDGE_BANNER_OPERATOR EDGE_BANNER_VIEWER ] ) """ HelmReleases is deprecated, use helmWorkloads api and helmReleasesStatus api instead. HelmReleases gets helm release resources from kubernetes. """ helmReleases( clusterEdgeId: String! @hasClusterAccess(field: "clusterEdgeId") ): [HelmRelease] @deprecated(reason: "Use `helmWorkloads` instead.") @hasRole( roles: [ EDGE_ORG_ADMIN EDGE_BANNER_ADMIN EDGE_BANNER_OPERATOR EDGE_BANNER_VIEWER ] ) """ 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 """ helmReleasesStatus( clusterEdgeId: String! @hasClusterAccess(field: "clusterEdgeId") ): [HelmReleaseStatus] @hasRole( roles: [ EDGE_ORG_ADMIN EDGE_BANNER_ADMIN EDGE_BANNER_OPERATOR EDGE_BANNER_VIEWER ] ) """ HelmWorkloads gets helm workloads deployed to a cluster. Currently does not include status info. """ helmWorkloads( """ The clusterEdgeId to retrieve deployed workloads. """ clusterEdgeId: String @hasClusterAccess(field: "clusterEdgeId") """ The bannerEdgeId to retrieve workloads for. """ bannerEdgeId: String @hasBannerAccess(field: "bannerEdgeId") ): [HelmWorkload] @hasRole( roles: [ EDGE_BANNER_VIEWER EDGE_ORG_ADMIN EDGE_BANNER_ADMIN EDGE_BANNER_OPERATOR ] ) """ HelmWorkload gets a single helm workload deployed to a cluster. """ helmWorkload( """ The helmEdgeId of the workload. """ helmEdgeId: String! @hasHelmWorkloadAccess(field: "helmEdgeId") """ The clusterEdgeId to retrieve deployed workload. """ clusterEdgeId: String! @hasClusterAccess(field: "clusterEdgeId") ): HelmWorkload @hasRole( roles: [ EDGE_BANNER_VIEWER EDGE_ORG_ADMIN EDGE_BANNER_ADMIN EDGE_BANNER_OPERATOR ] ) """ HelmCharts get the helm chart from helm url in helm repository secret """ helmCharts( """ Secret for helm repository. """ secretName: String! """ Banner helm repository is located in. """ bannerEdgeId: String! @hasBannerAccess(field: "bannerEdgeId") ): [HelmChart!] @hasRole( roles: [ EDGE_ORG_ADMIN EDGE_BANNER_ADMIN EDGE_BANNER_OPERATOR EDGE_BANNER_VIEWER ] ) """ HelmRepositories gets helmrepositories resources from kubernetes. """ helmRepositories( """ Banner to get helmRepositories for. """ bannerEdgeId: String! @hasBannerAccess(field: "bannerEdgeId") ): [HelmRepository] @hasRole( roles: [ EDGE_BANNER_VIEWER EDGE_ORG_ADMIN EDGE_BANNER_ADMIN EDGE_BANNER_OPERATOR ] ) """ GetHelmRepositoryInfo gets the Readme.md file using helm secret's helmUrl for secret name param. """ helmRepositoryInfo(params: helmConfigSchemaParams!): HelmRepositoryInfo @hasRole( roles: [ EDGE_ORG_ADMIN EDGE_BANNER_ADMIN EDGE_BANNER_OPERATOR EDGE_BANNER_VIEWER ] ) } extend type Mutation { """ CreateHelmRelease creates helmreleases resources in kubernetes. """ createHelmRelease(payload: helmReleasePayload!): Boolean! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) """ DeleteHelmRelease deletes helmreleases resources from kubernetes. """ deleteHelmRelease( """ Edge id of the workload that is to be deleted """ helmEdgeId: String @hasHelmWorkloadAccess(field: "helmEdgeId") """ Name of the helm workload to delete """ name: String @deprecated(reason: "Use helmEdgeId") """ Cluster id of the workload that is to be deleted """ clusterEdgeId: String @hasClusterAccess(field: "clusterEdgeId") @deprecated(reason: "Use helmEdgeId") ): Boolean! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) """ Deprecated use createHelmRepository API CreateOrUpdateBannerHelmRepository creates a helm repository in the provided banner. """ createOrUpdateBannerHelmRepository( """ Name of the helm reporsitry getting created or updated """ name: String! """ Banner where the helm repository is created. """ bannerEdgeId: String! @hasBannerAccess(field: "bannerEdgeId") """ URL where the helm repository is located. """ url: String! """ Secret used to store repository information """ secret: String ): Boolean! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) """ API to create helm repository for a banner. """ createHelmRepository( """ Name of the helm reporsitry getting created or updated """ name: String! """ Banner where the helm repository is created. """ bannerEdgeId: String! @hasBannerAccess(field: "bannerEdgeId") """ URL where the helm repository is located. """ url: String! """ Optional username for private helm repository. If username or password is provided both need to be provided. """ username: String """ Optional password for private helm repository. If username or password is provided both need to be provided. """ password: String ): Boolean! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) """ DeleteHelmRepository remove helm repository resource from the provided banner. Use with caution as this may break deployed helm releases. """ deleteHelmRepository( """ Name of the helm repository to delete """ name: String! """ Banner to delete the helm reporsitory from """ bannerEdgeId: String! @hasBannerAccess(field: "bannerEdgeId") ): Boolean! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) """ Deprecated. Please use deleteHelmRepository instead. DeleteBannerHelmRepository remove helm repository resource from the provided banner. Use with caution as this may break deployed helm releases. """ deleteBannerHelmRepository( """ Name of the helm repository to delete """ name: String! """ Banner to delete the helm reporsitory from """ bannerEdgeId: String! @hasBannerAccess(field: "bannerEdgeId") ): Boolean! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) """ UpdateHelmRelease updates a helm release with a desired version """ updateHelmRelease( helmEdgeId: String @hasHelmWorkloadAccess(field: "helmEdgeId"), """ Name of the helm workload to update """ helmReleaseName: String @deprecated(reason: "Use helmEdgeId"), """ Cluster to update the helm chart on. """ clusterEdgeId: String @hasClusterAccess(field: "clusterEdgeId") @deprecated(reason: "Use helmEdgeId"), """ Version to update the helm chart to. If not provided the version will remain the same. """ version: String, """ Updated helm configuration values. If not provided the current values will be used. """ configValues: String, """ Configmaps to inject to workload namespace. If not provided the current values will be used. """ injectConfigmaps: [InjectableConfigmaps!] """ Helm repository secret to use to get helm chart information """ secrets: [String!] labelEdgeIds: [String!]) : Boolean! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) """ ValidateHelmConfig validates a helm config yaml of helm release using the chart's json validation schema. """ validateHelmConfig(payload: validateHelmConfigParams!) : Boolean! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) """ addWorkloadLabel add a new mapping of label to workload """ addWorkloadLabel(workloadLabelParameters: WorkloadLabelInput! @hasLabelAccess(field: "labelEdgeId")): Boolean! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) """ addWorkloadLabels add a list of labels to workload """ addWorkloadLabels( helmEdgeId: String! @hasHelmWorkloadAccess(field: "helmEdgeId") labelEdgeIds: [String!]! @hasLabelAccess(field: "labelEdgeId") ): Boolean! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) """ deleteWorkloadLabel deletes a workload label mapping by either helmEdgeID, LabelEdgeID or both """ deleteWorkloadLabel( workloadLabelParameters: WorkloadLabelInput! @hasLabelAccess(field: "labelEdgeId") ): Boolean! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) }