diff --git a/.tools/nvim/__http__/infra/cloud-provider-secrets.graphql.yml b/.tools/nvim/__http__/infra/cloud-provider-secrets.graphql.yml index 0b8b00793..44400e53d 100644 --- a/.tools/nvim/__http__/infra/cloud-provider-secrets.graphql.yml +++ b/.tools/nvim/__http__/infra/cloud-provider-secrets.graphql.yml @@ -21,6 +21,23 @@ variables: authMechanism: "secret_keys" --- +label: Create GCP Cloud Provider Secret +query: |+ + mutation Infra_createProviderSecret($secret: CloudProviderSecretIn!) { + infra_createProviderSecret(secret: $secret) { + id + } + } +variables: + secret: + displayName: "this has aws credentials" + metadata: + name: "{{.gcpCloudproviderName}}" + cloudProviderName: gcp + gcp: + serviceAccountJSON: "" + +--- label: Update Cloud Provider Secret query: |+ mutation Infra_updateProviderSecret($secret: CloudProviderSecretIn!) { @@ -54,18 +71,6 @@ query: |+ name namespace } - # aws { - # awsAccountId - - # cfParamTrustedARN - # cfParamStackName - # cfParamRoleName - # cfParamInstanceProfileName - # cfParamExternalID - - # secretKey - # accessKey - # } } } } @@ -74,7 +79,7 @@ variables: search: cloudProviderName: matchType: 'regex' - regex: '^aws$' + regex: '^gcp$' --- diff --git a/.tools/nvim/__http__/infra/clusters.graphql.yml b/.tools/nvim/__http__/infra/clusters.graphql.yml index f60c801ed..4555adb2f 100644 --- a/.tools/nvim/__http__/infra/clusters.graphql.yml +++ b/.tools/nvim/__http__/infra/clusters.graphql.yml @@ -34,6 +34,34 @@ variables: --- +label: Create GCP Cluster +query: |+ #graphql + mutation Infra_createCluster($cluster: ClusterIn!) { + infra_createCluster(cluster: $cluster) { + metadata { + name + } + spec { + accountName + } + } + } +variables: + cluster: + displayName: "Sample Cluster 2" + metadata: + name: "{{.gcpClusterName}}" + spec: + cloudflareEnabled: true + availabilityMode: dev + cloudProvider: gcp + gcp: + credentialsRef: + name: "{{.gcpCloudproviderName}}" + region: asia-south1 + gcpProjectID: "rich-wavelet-412321" +--- + label: List Clusters query: |+ #graphql # query Infra_listClusters($search: SearchCluster, $pagination: CursorPaginationIn) { @@ -249,7 +277,8 @@ query: |+ #graphql infra_upgradeHelmKloudliteAgent(clusterName: $clusterName) } variables: - clusterName: "{{.clusterName}}" + # clusterName: "{{.clusterName}}" + clusterName: "{{.gcpClusterName}}" --- label: Delete Cluster @@ -258,7 +287,8 @@ query: |+ #graphql infra_deleteCluster(name: $name) } variables: - name: "{{.clusterName}}" + # name: "{{.clusterName}}" + name: "{{.gcpClusterName}}" --- diff --git a/.tools/nvim/__http__/infra/nodepools.graphql.yml b/.tools/nvim/__http__/infra/nodepools.graphql.yml index ff16d40c0..63a4fd0cc 100644 --- a/.tools/nvim/__http__/infra/nodepools.graphql.yml +++ b/.tools/nvim/__http__/infra/nodepools.graphql.yml @@ -40,6 +40,43 @@ variables: --- +label: Create GCP Nodepool +query: |+ + mutation Infra_createNodePool($clusterName: String!, $pool: NodePoolIn!) { + infra_createNodePool(clusterName: $clusterName, pool: $pool) { + id + kind + metadata { + name + namespace + annotations + } + recordVersion + spec { + minCount + maxCount + } + } + } +variables: + clusterName: "{{.gcpClusterName}}" + pool: + displayName: sample + # stateful: false + metadata: + name: first + spec: + minCount: 1 + maxCount: 2 + # targetCount: 1 + cloudProvider: "gcp" + gcp: + availabilityZone: asia-south1-a + poolType: "SPOT" + machineType: e2-custom-2-4096 + +--- + label: Create Spot EC2 Nodepool query: |+ mutation Infra_createNodePool($clusterName: String!, $pool: NodePoolIn!) { @@ -142,15 +179,16 @@ query: |+ #graphql } } variables: - clusterName: "{{.clusterName}}" + # clusterName: "{{.clusterName}}" + clusterName: "{{.gcpClusterName}}" pool: - displayName: "sample nodepool" + displayName: "First GCP Nodepool" metadata: name: first spec: minCount: 1 maxCount: 1 - cloudProvider: "aws" + cloudProvider: "gcp" --- @@ -196,7 +234,8 @@ query: |+ #graphql } } variables: - clusterName: "{{.clusterName}}" + # clusterName: "{{.clusterName}}" + clusterName: "{{.gcpClusterName}}" --- label: Get Nodepool @@ -233,6 +272,7 @@ query: |+ #graphql } variables: clusterName: "{{.clusterName}}" + # clusterName: "{{.gcpClusterName}}" poolName: first --- diff --git a/apps/gateway/.gitignore b/apps/gateway/.gitignore index 4f42110ea..26f1fa3dd 100644 --- a/apps/gateway/.gitignore +++ b/apps/gateway/.gitignore @@ -1,2 +1,2 @@ schemas -prod-schema.graphql \ No newline at end of file +*.graphqls diff --git a/apps/gateway/supergraph.graphqls b/apps/gateway/supergraph.graphqls deleted file mode 100644 index f9888ebcf..000000000 --- a/apps/gateway/supergraph.graphqls +++ /dev/null @@ -1,5294 +0,0 @@ -schema - @link(url: "https://specs.apollo.dev/link/v1.0") - @link(url: "https://specs.apollo.dev/join/v0.3", for: EXECUTION) -{ - query: Query - mutation: Mutation -} - -directive @join__enumValue(graph: join__Graph!) repeatable on ENUM_VALUE - -directive @join__field(graph: join__Graph, requires: join__FieldSet, provides: join__FieldSet, type: String, external: Boolean, override: String, usedOverridden: Boolean) repeatable on FIELD_DEFINITION | INPUT_FIELD_DEFINITION - -directive @join__graph(name: String!, url: String!) on ENUM_VALUE - -directive @join__implements(graph: join__Graph!, interface: String!) repeatable on OBJECT | INTERFACE - -directive @join__type(graph: join__Graph!, key: join__FieldSet, extension: Boolean! = false, resolvable: Boolean! = true, isInterfaceObject: Boolean! = false) repeatable on OBJECT | INTERFACE | UNION | ENUM | INPUT_OBJECT | SCALAR - -directive @join__unionMember(graph: join__Graph!, member: String!) repeatable on UNION - -directive @link(url: String, as: String, for: link__Purpose, import: [link__Import]) repeatable on SCHEMA - -type Account - @join__type(graph: ACCOUNT_API) -{ - contactEmail: String - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - id: String! - isActive: Boolean - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - logo: String - markedForDeletion: Boolean - metadata: Metadata - recordVersion: Int! - targetNamespace: String - updateTime: Date! -} - -input AccountIn - @join__type(graph: ACCOUNT_API) -{ - contactEmail: String - displayName: String! - isActive: Boolean - logo: String - metadata: MetadataIn -} - -type AccountMembership - @join__type(graph: ACCOUNT_API) -{ - accountName: String! - role: Github__com___kloudlite___api___apps___iam___types__Role! - userId: String! - user: User! -} - -input AccountMembershipIn - @join__type(graph: ACCOUNT_API) -{ - accountName: String! - role: Github__com___kloudlite___api___apps___iam___types__Role! - userId: String! -} - -type AccountsCheckNameAvailabilityOutput - @join__type(graph: ACCOUNT_API) -{ - result: Boolean! - suggestedNames: [String!] -} - -scalar Any - @join__type(graph: ACCOUNT_API) - @join__type(graph: AUTH_API) - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) - -type App - @join__type(graph: CONSOLE_API) -{ - accountName: String! - apiVersion: String - ciBuildId: ID - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - enabled: Boolean - environmentName: String! - id: ID! - kind: String - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - metadata: Metadata - projectName: String! - recordVersion: Int! - spec: Github__com___kloudlite___operator___apis___crds___v1__AppSpec! - status: Github__com___kloudlite___operator___pkg___operator__Status - syncStatus: Github__com___kloudlite___api___pkg___types__SyncStatus! - updateTime: Date! - build: Build -} - -type AppEdge - @join__type(graph: CONSOLE_API) -{ - cursor: String! - node: App! -} - -input AppIn - @join__type(graph: CONSOLE_API) -{ - apiVersion: String - ciBuildId: ID - displayName: String! - enabled: Boolean - kind: String - metadata: MetadataIn - spec: Github__com___kloudlite___operator___apis___crds___v1__AppSpecIn! -} - -type AppPaginatedRecords - @join__type(graph: CONSOLE_API) -{ - edges: [AppEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type Build - @join__type(graph: CONSOLE_API, key: "id") - @join__type(graph: CONTAINER_REGISTRY_API, key: "id", extension: true) -{ - id: ID! - buildClusterName: String! @join__field(graph: CONTAINER_REGISTRY_API) - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! @join__field(graph: CONTAINER_REGISTRY_API) - creationTime: Date! @join__field(graph: CONTAINER_REGISTRY_API) - credUser: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! @join__field(graph: CONTAINER_REGISTRY_API) - errorMessages: Map! @join__field(graph: CONTAINER_REGISTRY_API) - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! @join__field(graph: CONTAINER_REGISTRY_API) - markedForDeletion: Boolean @join__field(graph: CONTAINER_REGISTRY_API) - name: String! @join__field(graph: CONTAINER_REGISTRY_API) - recordVersion: Int! @join__field(graph: CONTAINER_REGISTRY_API) - source: Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__GitSource! @join__field(graph: CONTAINER_REGISTRY_API) - spec: Github__com___kloudlite___operator___apis___distribution___v1__BuildRunSpec! @join__field(graph: CONTAINER_REGISTRY_API) - status: Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__BuildStatus! @join__field(graph: CONTAINER_REGISTRY_API) - updateTime: Date! @join__field(graph: CONTAINER_REGISTRY_API) - latestBuildRun: BuildRun @join__field(graph: CONTAINER_REGISTRY_API) -} - -type BuildEdge - @join__type(graph: CONTAINER_REGISTRY_API) -{ - cursor: String! - node: Build! -} - -input BuildIn - @join__type(graph: CONTAINER_REGISTRY_API) -{ - buildClusterName: String! - name: String! - source: Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__GitSourceIn! - spec: Github__com___kloudlite___operator___apis___distribution___v1__BuildRunSpecIn! -} - -type BuildPaginatedRecords - @join__type(graph: CONTAINER_REGISTRY_API) -{ - edges: [BuildEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type BuildRun - @join__type(graph: CONTAINER_REGISTRY_API) -{ - accountName: String! - apiVersion: String - buildId: ID! - clusterName: String! - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - id: ID! - kind: String - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - metadata: Metadata - recordVersion: Int! - spec: Github__com___kloudlite___operator___apis___distribution___v1__BuildRunSpec - status: Github__com___kloudlite___operator___pkg___operator__Status - syncStatus: Github__com___kloudlite___api___pkg___types__SyncStatus! - updateTime: Date! -} - -type BuildRunEdge - @join__type(graph: CONTAINER_REGISTRY_API) -{ - cursor: String! - node: BuildRun! -} - -input BuildRunIn - @join__type(graph: CONTAINER_REGISTRY_API) -{ - displayName: String! -} - -type BuildRunPaginatedRecords - @join__type(graph: CONTAINER_REGISTRY_API) -{ - edges: [BuildRunEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type BYOKCluster - @join__type(graph: INFRA_API) -{ - accountName: String! - ClusterSpec: Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - id: ID! - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - metadata: Metadata! - recordVersion: Int! - syncStatus: Github__com___kloudlite___api___pkg___types__SyncStatus! - updateTime: Date! -} - -input BYOKClusterIn - @join__type(graph: INFRA_API) -{ - displayName: String! - metadata: MetadataIn! -} - -type CheckAwsAccessOutput - @join__type(graph: INFRA_API) -{ - result: Boolean! - installationUrl: String -} - -type CheckNameAvailabilityOutput - @join__type(graph: INFRA_API) -{ - result: Boolean! - suggestedNames: [String!]! -} - -type CloudProviderSecret - @join__type(graph: INFRA_API) -{ - accountName: String! - aws: Github__com___kloudlite___api___apps___infra___internal___entities__AWSSecretCredentials - cloudProviderName: Github__com___kloudlite___operator___apis___common____types__CloudProvider! - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - id: ID! - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - metadata: Metadata! - recordVersion: Int! - updateTime: Date! -} - -type CloudProviderSecretEdge - @join__type(graph: INFRA_API) -{ - cursor: String! - node: CloudProviderSecret! -} - -input CloudProviderSecretIn - @join__type(graph: INFRA_API) -{ - aws: Github__com___kloudlite___api___apps___infra___internal___entities__AWSSecretCredentialsIn - cloudProviderName: Github__com___kloudlite___operator___apis___common____types__CloudProvider! - displayName: String! - metadata: MetadataIn! -} - -type CloudProviderSecretPaginatedRecords - @join__type(graph: INFRA_API) -{ - edges: [CloudProviderSecretEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type Cluster - @join__type(graph: INFRA_API) -{ - accountName: String! - apiVersion: String - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - id: ID! - kind: String - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - metadata: Metadata! - recordVersion: Int! - spec: Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec! - status: Github__com___kloudlite___operator___pkg___operator__Status - syncStatus: Github__com___kloudlite___api___pkg___types__SyncStatus! - updateTime: Date! - adminKubeconfig: EncodedValue -} - -type ClusterEdge - @join__type(graph: INFRA_API) -{ - cursor: String! - node: Cluster! -} - -input ClusterIn - @join__type(graph: INFRA_API) -{ - apiVersion: String - displayName: String! - kind: String - metadata: MetadataIn! - spec: Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpecIn! -} - -type ClusterManagedService - @join__type(graph: INFRA_API) -{ - accountName: String! - apiVersion: String - clusterName: String! - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - id: ID! - kind: String - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - metadata: Metadata - recordVersion: Int! - spec: Github__com___kloudlite___operator___apis___crds___v1__ClusterManagedServiceSpec - status: Github__com___kloudlite___operator___pkg___operator__Status - syncStatus: Github__com___kloudlite___api___pkg___types__SyncStatus! - updateTime: Date! -} - -type ClusterManagedServiceEdge - @join__type(graph: INFRA_API) -{ - cursor: String! - node: ClusterManagedService! -} - -input ClusterManagedServiceIn - @join__type(graph: INFRA_API) -{ - apiVersion: String - displayName: String! - kind: String - metadata: MetadataIn - spec: Github__com___kloudlite___operator___apis___crds___v1__ClusterManagedServiceSpecIn -} - -type ClusterManagedServicePaginatedRecords - @join__type(graph: INFRA_API) -{ - edges: [ClusterManagedServiceEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type ClusterPaginatedRecords - @join__type(graph: INFRA_API) -{ - edges: [ClusterEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type Config - @join__type(graph: CONSOLE_API) -{ - accountName: String! - apiVersion: String - binaryData: Map - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - data: Map - displayName: String! - environmentName: String! - id: ID! - immutable: Boolean - kind: String - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - metadata: Metadata - projectName: String! - recordVersion: Int! - syncStatus: Github__com___kloudlite___api___pkg___types__SyncStatus! - updateTime: Date! -} - -type ConfigEdge - @join__type(graph: CONSOLE_API) -{ - cursor: String! - node: Config! -} - -input ConfigIn - @join__type(graph: CONSOLE_API) -{ - apiVersion: String - binaryData: Map - data: Map - displayName: String! - immutable: Boolean - kind: String - metadata: MetadataIn -} - -type ConfigKeyRef - @join__type(graph: CONSOLE_API) -{ - configName: String! - key: String! -} - -input ConfigKeyRefIn - @join__type(graph: CONSOLE_API) -{ - configName: String! - key: String! -} - -type ConfigKeyValueRef - @join__type(graph: CONSOLE_API) -{ - configName: String! - key: String! - value: String! -} - -input ConfigKeyValueRefIn - @join__type(graph: CONSOLE_API) -{ - configName: String! - key: String! - value: String! -} - -type ConfigPaginatedRecords - @join__type(graph: CONSOLE_API) -{ - edges: [ConfigEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type ConsoleCheckNameAvailabilityOutput - @join__type(graph: CONSOLE_API) -{ - result: Boolean! - suggestedNames: [String!] -} - -enum ConsoleResType - @join__type(graph: CONSOLE_API) -{ - project @join__enumValue(graph: CONSOLE_API) - app @join__enumValue(graph: CONSOLE_API) - config @join__enumValue(graph: CONSOLE_API) - secret @join__enumValue(graph: CONSOLE_API) - router @join__enumValue(graph: CONSOLE_API) - managed_service @join__enumValue(graph: CONSOLE_API) - project_managed_service @join__enumValue(graph: CONSOLE_API) - managed_resource @join__enumValue(graph: CONSOLE_API) - environment @join__enumValue(graph: CONSOLE_API) - vpn_device @join__enumValue(graph: CONSOLE_API) -} - -type ConsoleVPNDevice - @join__type(graph: CONSOLE_API) -{ - accountName: String! - apiVersion: String - clusterName: String - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - environmentName: String - id: ID! - kind: String - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - linkedClusters: [String!] - markedForDeletion: Boolean - metadata: Metadata - projectName: String - recordVersion: Int! - spec: Github__com___kloudlite___operator___apis___wireguard___v1__DeviceSpec - status: Github__com___kloudlite___operator___pkg___operator__Status - syncStatus: Github__com___kloudlite___api___pkg___types__SyncStatus! - updateTime: Date! - wireguardConfig: Github__com___kloudlite___api___pkg___types__EncodedString -} - -type ConsoleVPNDeviceEdge - @join__type(graph: CONSOLE_API) -{ - cursor: String! - node: ConsoleVPNDevice! -} - -input ConsoleVPNDeviceIn - @join__type(graph: CONSOLE_API) -{ - apiVersion: String - clusterName: String - displayName: String! - environmentName: String - kind: String - metadata: MetadataIn - projectName: String - spec: Github__com___kloudlite___operator___apis___wireguard___v1__DeviceSpecIn -} - -type ConsoleVPNDevicePaginatedRecords - @join__type(graph: CONSOLE_API) -{ - edges: [ConsoleVPNDeviceEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -input CoreSearchVPNDevices - @join__type(graph: CONSOLE_API) -{ - text: MatchFilterIn - isReady: MatchFilterIn - markedForDeletion: MatchFilterIn -} - -type CRCheckNameAvailabilityOutput - @join__type(graph: CONTAINER_REGISTRY_API) -{ - result: Boolean! - suggestedNames: [String!] -} - -type Credential - @join__type(graph: CONTAINER_REGISTRY_API) -{ - access: Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__RepoAccess! - accountName: String! - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - expiration: Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__Expiration! - id: ID! - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - name: String! - recordVersion: Int! - updateTime: Date! - username: String! -} - -type CredentialEdge - @join__type(graph: CONTAINER_REGISTRY_API) -{ - cursor: String! - node: Credential! -} - -input CredentialIn - @join__type(graph: CONTAINER_REGISTRY_API) -{ - access: Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__RepoAccess! - expiration: Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__ExpirationIn! - name: String! - username: String! -} - -type CredentialPaginatedRecords - @join__type(graph: CONTAINER_REGISTRY_API) -{ - edges: [CredentialEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type CursorPagination - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - after: String - before: String - first: Int - last: Int - orderBy: String - sortDirection: CursorPaginationSortDirection -} - -input CursorPaginationIn - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - after: String - before: String - first: Int - last: Int - orderBy: String = "_id" - sortDirection: CursorPaginationSortDirection = ASC -} - -enum CursorPaginationSortDirection - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - ASC @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: CONTAINER_REGISTRY_API) @join__enumValue(graph: INFRA_API) @join__enumValue(graph: IOT_CONSOLE_API) - DESC @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: CONTAINER_REGISTRY_API) @join__enumValue(graph: INFRA_API) @join__enumValue(graph: IOT_CONSOLE_API) -} - -scalar Date - @join__type(graph: ACCOUNT_API) - @join__type(graph: AUTH_API) - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) - -type Digest - @join__type(graph: CONTAINER_REGISTRY_API) -{ - accountName: String! - actor: String! - creationTime: Date! - deleting: Boolean! - digest: String! - id: ID! - length: Int! - markedForDeletion: Boolean - mediaType: String! - recordVersion: Int! - repository: String! - size: Int! - tags: [String!]! - updateTime: Date! - url: String! -} - -type DigestEdge - @join__type(graph: CONTAINER_REGISTRY_API) -{ - cursor: String! - node: Digest! -} - -type DigestPaginatedRecords - @join__type(graph: CONTAINER_REGISTRY_API) -{ - edges: [DigestEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type DomainEntry - @join__type(graph: INFRA_API) -{ - accountName: String! - clusterName: String! - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - domainName: String! - id: ID! - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - recordVersion: Int! - updateTime: Date! -} - -type DomainEntryEdge - @join__type(graph: INFRA_API) -{ - cursor: String! - node: DomainEntry! -} - -input DomainEntryIn - @join__type(graph: INFRA_API) -{ - clusterName: String! - displayName: String! - domainName: String! -} - -type DomainEntryPaginatedRecords - @join__type(graph: INFRA_API) -{ - edges: [DomainEntryEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type EncodedValue - @join__type(graph: INFRA_API) -{ - value: String! - encoding: String! -} - -type Environment - @join__type(graph: CONSOLE_API) -{ - accountName: String! - apiVersion: String - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - id: ID! - kind: String - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - metadata: Metadata - projectName: String! - recordVersion: Int! - spec: Github__com___kloudlite___operator___apis___crds___v1__EnvironmentSpec - status: Github__com___kloudlite___operator___pkg___operator__Status - syncStatus: Github__com___kloudlite___api___pkg___types__SyncStatus! - updateTime: Date! -} - -type EnvironmentEdge - @join__type(graph: CONSOLE_API) -{ - cursor: String! - node: Environment! -} - -input EnvironmentIn - @join__type(graph: CONSOLE_API) -{ - apiVersion: String - displayName: String! - kind: String - metadata: MetadataIn - spec: Github__com___kloudlite___operator___apis___crds___v1__EnvironmentSpecIn -} - -type EnvironmentPaginatedRecords - @join__type(graph: CONSOLE_API) -{ - edges: [EnvironmentEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type GitBranch - @join__type(graph: CONTAINER_REGISTRY_API) -{ - name: String - protected: Boolean -} - -enum Github__com___kloudlite___api___apps___console___internal___entities__PullSecretFormat - @join__type(graph: CONSOLE_API) -{ - dockerConfigJson @join__enumValue(graph: CONSOLE_API) - params @join__enumValue(graph: CONSOLE_API) -} - -enum Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__BuildStatus - @join__type(graph: CONTAINER_REGISTRY_API) -{ - error @join__enumValue(graph: CONTAINER_REGISTRY_API) - failed @join__enumValue(graph: CONTAINER_REGISTRY_API) - idle @join__enumValue(graph: CONTAINER_REGISTRY_API) - pending @join__enumValue(graph: CONTAINER_REGISTRY_API) - queued @join__enumValue(graph: CONTAINER_REGISTRY_API) - running @join__enumValue(graph: CONTAINER_REGISTRY_API) - success @join__enumValue(graph: CONTAINER_REGISTRY_API) -} - -type Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__Expiration - @join__type(graph: CONTAINER_REGISTRY_API) -{ - unit: Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__ExpirationUnit! - value: Int! -} - -input Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__ExpirationIn - @join__type(graph: CONTAINER_REGISTRY_API) -{ - unit: Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__ExpirationUnit! - value: Int! -} - -enum Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__ExpirationUnit - @join__type(graph: CONTAINER_REGISTRY_API) -{ - d @join__enumValue(graph: CONTAINER_REGISTRY_API) - h @join__enumValue(graph: CONTAINER_REGISTRY_API) - m @join__enumValue(graph: CONTAINER_REGISTRY_API) - w @join__enumValue(graph: CONTAINER_REGISTRY_API) - y @join__enumValue(graph: CONTAINER_REGISTRY_API) -} - -type Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__GithubRepository - @join__type(graph: CONTAINER_REGISTRY_API) -{ - archived: Boolean - cloneUrl: String - createdAt: Date - defaultBranch: String - description: String - disabled: Boolean - fullName: String - gitignoreTemplate: String - gitUrl: String - htmlUrl: String - id: Int - language: String - masterBranch: String - mirrorUrl: String - name: String - node_id: String - permissions: Map - private: Boolean - pushedAt: Date - size: Int - team_id: Int - updatedAt: Date - url: String - visibility: String -} - -type Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__GithubUserAccount - @join__type(graph: CONTAINER_REGISTRY_API) -{ - avatarUrl: String - id: Int - login: String - nodeId: String - type: String -} - -input Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__GithubUserAccountIn - @join__type(graph: CONTAINER_REGISTRY_API) -{ - avatarUrl: String - id: Int - login: String - nodeId: String - type: String -} - -enum Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__GitProvider - @join__type(graph: CONTAINER_REGISTRY_API) -{ - github @join__enumValue(graph: CONTAINER_REGISTRY_API) - gitlab @join__enumValue(graph: CONTAINER_REGISTRY_API) -} - -type Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__GitSource - @join__type(graph: CONTAINER_REGISTRY_API) -{ - branch: String! - provider: Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__GitProvider! - repository: String! - webhookId: Int -} - -input Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__GitSourceIn - @join__type(graph: CONTAINER_REGISTRY_API) -{ - branch: String! - provider: Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__GitProvider! - repository: String! -} - -enum Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__RepoAccess - @join__type(graph: CONTAINER_REGISTRY_API) -{ - read @join__enumValue(graph: CONTAINER_REGISTRY_API) - read_write @join__enumValue(graph: CONTAINER_REGISTRY_API) -} - -enum Github__com___kloudlite___api___apps___iam___types__Role - @join__type(graph: ACCOUNT_API) -{ - account_admin @join__enumValue(graph: ACCOUNT_API) - account_member @join__enumValue(graph: ACCOUNT_API) - account_owner @join__enumValue(graph: ACCOUNT_API) - project_admin @join__enumValue(graph: ACCOUNT_API) - project_member @join__enumValue(graph: ACCOUNT_API) - resource_owner @join__enumValue(graph: ACCOUNT_API) -} - -type Github__com___kloudlite___api___apps___infra___internal___entities__AWSAssumeRoleParams - @join__type(graph: INFRA_API) -{ - awsAccountId: String! - cfParamTrustedARN: String! - externalID: String! - roleARN: String! -} - -input Github__com___kloudlite___api___apps___infra___internal___entities__AWSAssumeRoleParamsIn - @join__type(graph: INFRA_API) -{ - awsAccountId: String! -} - -type Github__com___kloudlite___api___apps___infra___internal___entities__AWSAuthSecretKeys - @join__type(graph: INFRA_API) -{ - accessKey: String! - cfParamUserName: String! - secretKey: String! -} - -input Github__com___kloudlite___api___apps___infra___internal___entities__AWSAuthSecretKeysIn - @join__type(graph: INFRA_API) -{ - accessKey: String! - secretKey: String! -} - -type Github__com___kloudlite___api___apps___infra___internal___entities__AWSSecretCredentials - @join__type(graph: INFRA_API) -{ - assumeRoleParams: Github__com___kloudlite___api___apps___infra___internal___entities__AWSAssumeRoleParams - authMechanism: Github__com___kloudlite___operator___apis___clusters___v1__AwsAuthMechanism! - authSecretKeys: Github__com___kloudlite___api___apps___infra___internal___entities__AWSAuthSecretKeys - cfParamInstanceProfileName: String - cfParamRoleName: String - cfParamStackName: String -} - -input Github__com___kloudlite___api___apps___infra___internal___entities__AWSSecretCredentialsIn - @join__type(graph: INFRA_API) -{ - assumeRoleParams: Github__com___kloudlite___api___apps___infra___internal___entities__AWSAssumeRoleParamsIn - authMechanism: Github__com___kloudlite___operator___apis___clusters___v1__AwsAuthMechanism! - authSecretKeys: Github__com___kloudlite___api___apps___infra___internal___entities__AWSAuthSecretKeysIn -} - -type Github__com___kloudlite___api___apps___infra___internal___entities__InputField - @join__type(graph: INFRA_API) -{ - defaultValue: Any - displayUnit: String - inputType: String! - label: String! - max: Float - min: Float - multiplier: Float - name: String! - required: Boolean - unit: String -} - -type Github__com___kloudlite___api___apps___infra___internal___entities__MresTemplate - @join__type(graph: INFRA_API) -{ - apiVersion: String - description: String! - displayName: String! - fields: [Github__com___kloudlite___api___apps___infra___internal___entities__InputField!]! - kind: String - name: String! - outputs: [Github__com___kloudlite___api___apps___infra___internal___entities__OutputField!]! -} - -type Github__com___kloudlite___api___apps___infra___internal___entities__MsvcTemplateEntry - @join__type(graph: INFRA_API) -{ - active: Boolean! - apiVersion: String - description: String! - displayName: String! - fields: [Github__com___kloudlite___api___apps___infra___internal___entities__InputField!]! - kind: String - logoUrl: String! - name: String! - outputs: [Github__com___kloudlite___api___apps___infra___internal___entities__OutputField!]! - resources: [Github__com___kloudlite___api___apps___infra___internal___entities__MresTemplate!]! -} - -type Github__com___kloudlite___api___apps___infra___internal___entities__OutputField - @join__type(graph: INFRA_API) -{ - description: String! - label: String! - name: String! -} - -enum Github__com___kloudlite___api___apps___iot____console___internal___entities__BluePrintType - @join__type(graph: IOT_CONSOLE_API) -{ - group_blueprint @join__enumValue(graph: IOT_CONSOLE_API) - singleton_blueprint @join__enumValue(graph: IOT_CONSOLE_API) -} - -type Github__com___kloudlite___api___apps___iot____console___internal___entities__ExposedService - @join__type(graph: IOT_CONSOLE_API) -{ - ip: String! - name: String! -} - -input Github__com___kloudlite___api___apps___iot____console___internal___entities__ExposedServiceIn - @join__type(graph: IOT_CONSOLE_API) -{ - ip: String! - name: String! -} - -type Github__com___kloudlite___api___common__CreatedOrUpdatedBy - @join__type(graph: ACCOUNT_API) - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - userEmail: String! - userId: String! - userName: String! -} - -type Github__com___kloudlite___api___pkg___types__EncodedString - @join__type(graph: CONSOLE_API) -{ - encoding: String! - value: String! -} - -enum Github__com___kloudlite___api___pkg___types__SyncAction - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) -{ - APPLY @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: CONTAINER_REGISTRY_API) @join__enumValue(graph: INFRA_API) - DELETE @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: CONTAINER_REGISTRY_API) @join__enumValue(graph: INFRA_API) -} - -enum Github__com___kloudlite___api___pkg___types__SyncState - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) -{ - APPLIED_AT_AGENT @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: CONTAINER_REGISTRY_API) @join__enumValue(graph: INFRA_API) - DELETED_AT_AGENT @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: CONTAINER_REGISTRY_API) @join__enumValue(graph: INFRA_API) - DELETING_AT_AGENT @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: CONTAINER_REGISTRY_API) @join__enumValue(graph: INFRA_API) - ERRORED_AT_AGENT @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: CONTAINER_REGISTRY_API) @join__enumValue(graph: INFRA_API) - IDLE @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: CONTAINER_REGISTRY_API) @join__enumValue(graph: INFRA_API) - IN_QUEUE @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: CONTAINER_REGISTRY_API) @join__enumValue(graph: INFRA_API) - UPDATED_AT_AGENT @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: CONTAINER_REGISTRY_API) @join__enumValue(graph: INFRA_API) -} - -type Github__com___kloudlite___api___pkg___types__SyncStatus - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) -{ - action: Github__com___kloudlite___api___pkg___types__SyncAction! - error: String - lastSyncedAt: Date - recordVersion: Int! - state: Github__com___kloudlite___api___pkg___types__SyncState! - syncScheduledAt: Date -} - -enum Github__com___kloudlite___operator___apis___clusters___v1__AwsAuthMechanism - @join__type(graph: INFRA_API) -{ - assume_role @join__enumValue(graph: INFRA_API) - secret_keys @join__enumValue(graph: INFRA_API) -} - -type Github__com___kloudlite___operator___apis___clusters___v1__AWSClusterConfig - @join__type(graph: INFRA_API) -{ - credentials: Github__com___kloudlite___operator___apis___clusters___v1__AwsCredentials! - k3sMasters: Github__com___kloudlite___operator___apis___clusters___v1__AWSK3sMastersConfig - nodePools: Map - region: String! - spotNodePools: Map - vpc: Github__com___kloudlite___operator___apis___clusters___v1__AwsVPCParams -} - -input Github__com___kloudlite___operator___apis___clusters___v1__AWSClusterConfigIn - @join__type(graph: INFRA_API) -{ - credentials: Github__com___kloudlite___operator___apis___clusters___v1__AwsCredentialsIn! - k3sMasters: Github__com___kloudlite___operator___apis___clusters___v1__AWSK3sMastersConfigIn - region: String! -} - -type Github__com___kloudlite___operator___apis___clusters___v1__AwsCredentials - @join__type(graph: INFRA_API) -{ - authMechanism: Github__com___kloudlite___operator___apis___clusters___v1__AwsAuthMechanism! - secretRef: Github__com___kloudlite___operator___apis___common____types__SecretRef! -} - -input Github__com___kloudlite___operator___apis___clusters___v1__AwsCredentialsIn - @join__type(graph: INFRA_API) -{ - authMechanism: Github__com___kloudlite___operator___apis___clusters___v1__AwsAuthMechanism! - secretRef: Github__com___kloudlite___operator___apis___common____types__SecretRefIn! -} - -type Github__com___kloudlite___operator___apis___clusters___v1__AwsEC2PoolConfig - @join__type(graph: INFRA_API) -{ - instanceType: String! - nodes: Map -} - -input Github__com___kloudlite___operator___apis___clusters___v1__AwsEC2PoolConfigIn - @join__type(graph: INFRA_API) -{ - instanceType: String! - nodes: Map -} - -type Github__com___kloudlite___operator___apis___clusters___v1__AWSK3sMastersConfig - @join__type(graph: INFRA_API) -{ - iamInstanceProfileRole: String - instanceType: String! - nodes: Map - nvidiaGpuEnabled: Boolean! - rootVolumeSize: Int! - rootVolumeType: String! -} - -input Github__com___kloudlite___operator___apis___clusters___v1__AWSK3sMastersConfigIn - @join__type(graph: INFRA_API) -{ - instanceType: String! - nvidiaGpuEnabled: Boolean! -} - -type Github__com___kloudlite___operator___apis___clusters___v1__AWSNodePoolConfig - @join__type(graph: INFRA_API) -{ - availabilityZone: String! - ec2Pool: Github__com___kloudlite___operator___apis___clusters___v1__AwsEC2PoolConfig - iamInstanceProfileRole: String - nvidiaGpuEnabled: Boolean! - poolType: Github__com___kloudlite___operator___apis___clusters___v1__AWSPoolType! - rootVolumeSize: Int! - rootVolumeType: String! - spotPool: Github__com___kloudlite___operator___apis___clusters___v1__AwsSpotPoolConfig - vpcId: String! - vpcSubnetId: String! -} - -input Github__com___kloudlite___operator___apis___clusters___v1__AWSNodePoolConfigIn - @join__type(graph: INFRA_API) -{ - availabilityZone: String! - ec2Pool: Github__com___kloudlite___operator___apis___clusters___v1__AwsEC2PoolConfigIn - nvidiaGpuEnabled: Boolean! - poolType: Github__com___kloudlite___operator___apis___clusters___v1__AWSPoolType! - spotPool: Github__com___kloudlite___operator___apis___clusters___v1__AwsSpotPoolConfigIn -} - -enum Github__com___kloudlite___operator___apis___clusters___v1__AWSPoolType - @join__type(graph: INFRA_API) -{ - ec2 @join__enumValue(graph: INFRA_API) - spot @join__enumValue(graph: INFRA_API) -} - -type Github__com___kloudlite___operator___apis___clusters___v1__AwsSpotCpuNode - @join__type(graph: INFRA_API) -{ - memoryPerVcpu: Github__com___kloudlite___operator___apis___common____types__MinMaxFloat - vcpu: Github__com___kloudlite___operator___apis___common____types__MinMaxFloat! -} - -input Github__com___kloudlite___operator___apis___clusters___v1__AwsSpotCpuNodeIn - @join__type(graph: INFRA_API) -{ - memoryPerVcpu: Github__com___kloudlite___operator___apis___common____types__MinMaxFloatIn - vcpu: Github__com___kloudlite___operator___apis___common____types__MinMaxFloatIn! -} - -type Github__com___kloudlite___operator___apis___clusters___v1__AwsSpotGpuNode - @join__type(graph: INFRA_API) -{ - instanceTypes: [String!]! -} - -input Github__com___kloudlite___operator___apis___clusters___v1__AwsSpotGpuNodeIn - @join__type(graph: INFRA_API) -{ - instanceTypes: [String!]! -} - -type Github__com___kloudlite___operator___apis___clusters___v1__AwsSpotPoolConfig - @join__type(graph: INFRA_API) -{ - cpuNode: Github__com___kloudlite___operator___apis___clusters___v1__AwsSpotCpuNode - gpuNode: Github__com___kloudlite___operator___apis___clusters___v1__AwsSpotGpuNode - nodes: Map - spotFleetTaggingRoleName: String! -} - -input Github__com___kloudlite___operator___apis___clusters___v1__AwsSpotPoolConfigIn - @join__type(graph: INFRA_API) -{ - cpuNode: Github__com___kloudlite___operator___apis___clusters___v1__AwsSpotCpuNodeIn - gpuNode: Github__com___kloudlite___operator___apis___clusters___v1__AwsSpotGpuNodeIn - nodes: Map -} - -type Github__com___kloudlite___operator___apis___clusters___v1__AwsSubnetWithID - @join__type(graph: INFRA_API) -{ - availabilityZone: String! - id: String! -} - -type Github__com___kloudlite___operator___apis___clusters___v1__AwsVPCParams - @join__type(graph: INFRA_API) -{ - id: String! - publicSubnets: [Github__com___kloudlite___operator___apis___clusters___v1__AwsSubnetWithID!]! -} - -type Github__com___kloudlite___operator___apis___clusters___v1__ClusterOutput - @join__type(graph: INFRA_API) -{ - jobName: String! - jobNamespace: String! - keyAWSVPCId: String - keyAWSVPCPublicSubnets: String - keyK3sAgentJoinToken: String! - keyK3sServerJoinToken: String! - keyKubeconfig: String! - secretName: String! -} - -type Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec - @join__type(graph: INFRA_API) -{ - accountId: String! - accountName: String! - availabilityMode: Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpecAvailabilityMode! - aws: Github__com___kloudlite___operator___apis___clusters___v1__AWSClusterConfig - backupToS3Enabled: Boolean! - cloudflareEnabled: Boolean - cloudProvider: Github__com___kloudlite___operator___apis___common____types__CloudProvider! - clusterInternalDnsHost: String - clusterTokenRef: Github__com___kloudlite___operator___apis___common____types__SecretKeyRef - kloudliteRelease: String! - messageQueueTopicName: String! - output: Github__com___kloudlite___operator___apis___clusters___v1__ClusterOutput - publicDNSHost: String! - taintMasterNodes: Boolean! -} - -enum Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpecAvailabilityMode - @join__type(graph: INFRA_API) -{ - dev @join__enumValue(graph: INFRA_API) - HA @join__enumValue(graph: INFRA_API) -} - -input Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpecIn - @join__type(graph: INFRA_API) -{ - availabilityMode: Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpecAvailabilityMode! - aws: Github__com___kloudlite___operator___apis___clusters___v1__AWSClusterConfigIn - cloudflareEnabled: Boolean - cloudProvider: Github__com___kloudlite___operator___apis___common____types__CloudProvider! -} - -type Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig - @join__type(graph: INFRA_API) -{ - availabilityZone: String! - bootVolumeSize: Int! - bootVolumeType: String! - credentials: Github__com___kloudlite___operator___apis___common____types__SecretRef! - machineType: String! - nodes: Map - poolType: Github__com___kloudlite___operator___apis___clusters___v1__GCPPoolType! - region: String! -} - -input Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfigIn - @join__type(graph: INFRA_API) -{ - availabilityZone: String! - bootVolumeSize: Int! - bootVolumeType: String! - credentials: Github__com___kloudlite___operator___apis___common____types__SecretRefIn! - machineType: String! - nodes: Map - poolType: Github__com___kloudlite___operator___apis___clusters___v1__GCPPoolType! - region: String! -} - -enum Github__com___kloudlite___operator___apis___clusters___v1__GCPPoolType - @join__type(graph: INFRA_API) -{ - SPOT @join__enumValue(graph: INFRA_API) - STANDARD @join__enumValue(graph: INFRA_API) -} - -type Github__com___kloudlite___operator___apis___clusters___v1__MasterNodeProps - @join__type(graph: INFRA_API) -{ - availabilityZone: String! - kloudliteRelease: String! - lastRecreatedAt: Date - role: String! -} - -type Github__com___kloudlite___operator___apis___clusters___v1__NodePoolSpec - @join__type(graph: INFRA_API) -{ - aws: Github__com___kloudlite___operator___apis___clusters___v1__AWSNodePoolConfig - cloudProvider: Github__com___kloudlite___operator___apis___common____types__CloudProvider! - gcp: Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig - maxCount: Int! - minCount: Int! - nodeLabels: Map - nodeTaints: [K8s__io___api___core___v1__Taint!] -} - -input Github__com___kloudlite___operator___apis___clusters___v1__NodePoolSpecIn - @join__type(graph: INFRA_API) -{ - aws: Github__com___kloudlite___operator___apis___clusters___v1__AWSNodePoolConfigIn - cloudProvider: Github__com___kloudlite___operator___apis___common____types__CloudProvider! - gcp: Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfigIn - maxCount: Int! - minCount: Int! - nodeLabels: Map - nodeTaints: [K8s__io___api___core___v1__TaintIn!] -} - -type Github__com___kloudlite___operator___apis___clusters___v1__NodeProps - @join__type(graph: INFRA_API) -{ - lastRecreatedAt: Date -} - -input Github__com___kloudlite___operator___apis___clusters___v1__NodePropsIn - @join__type(graph: INFRA_API) -{ - lastRecreatedAt: Date -} - -type Github__com___kloudlite___operator___apis___clusters___v1__NodeSpec - @join__type(graph: INFRA_API) -{ - nodepoolName: String! -} - -input Github__com___kloudlite___operator___apis___clusters___v1__NodeSpecIn - @join__type(graph: INFRA_API) -{ - nodepoolName: String! -} - -enum Github__com___kloudlite___operator___apis___common____types__CloudProvider - @join__type(graph: INFRA_API) -{ - aws @join__enumValue(graph: INFRA_API) - azure @join__enumValue(graph: INFRA_API) - digitalocean @join__enumValue(graph: INFRA_API) - gcp @join__enumValue(graph: INFRA_API) -} - -type Github__com___kloudlite___operator___apis___common____types__MinMaxFloat - @join__type(graph: INFRA_API) -{ - max: String! - min: String! -} - -input Github__com___kloudlite___operator___apis___common____types__MinMaxFloatIn - @join__type(graph: INFRA_API) -{ - max: String! - min: String! -} - -type Github__com___kloudlite___operator___apis___common____types__SecretKeyRef - @join__type(graph: INFRA_API) -{ - key: String! - name: String! - namespace: String -} - -type Github__com___kloudlite___operator___apis___common____types__SecretRef - @join__type(graph: INFRA_API) -{ - name: String! - namespace: String -} - -input Github__com___kloudlite___operator___apis___common____types__SecretRefIn - @join__type(graph: INFRA_API) -{ - name: String! - namespace: String -} - -type Github__com___kloudlite___operator___apis___crds___v1__AppContainer - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - args: [String!] - command: [String!] - env: [Github__com___kloudlite___operator___apis___crds___v1__ContainerEnv!] - envFrom: [Github__com___kloudlite___operator___apis___crds___v1__EnvFrom!] - image: String! - imagePullPolicy: String - livenessProbe: Github__com___kloudlite___operator___apis___crds___v1__Probe - name: String! - readinessProbe: Github__com___kloudlite___operator___apis___crds___v1__Probe - resourceCpu: Github__com___kloudlite___operator___apis___crds___v1__ContainerResource - resourceMemory: Github__com___kloudlite___operator___apis___crds___v1__ContainerResource - volumes: [Github__com___kloudlite___operator___apis___crds___v1__ContainerVolume!] -} - -input Github__com___kloudlite___operator___apis___crds___v1__AppContainerIn - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - args: [String!] - command: [String!] - env: [Github__com___kloudlite___operator___apis___crds___v1__ContainerEnvIn!] - envFrom: [Github__com___kloudlite___operator___apis___crds___v1__EnvFromIn!] - image: String! - imagePullPolicy: String - livenessProbe: Github__com___kloudlite___operator___apis___crds___v1__ProbeIn - name: String! - readinessProbe: Github__com___kloudlite___operator___apis___crds___v1__ProbeIn - resourceCpu: Github__com___kloudlite___operator___apis___crds___v1__ContainerResourceIn - resourceMemory: Github__com___kloudlite___operator___apis___crds___v1__ContainerResourceIn - volumes: [Github__com___kloudlite___operator___apis___crds___v1__ContainerVolumeIn!] -} - -type Github__com___kloudlite___operator___apis___crds___v1__AppSpec - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - containers: [Github__com___kloudlite___operator___apis___crds___v1__AppContainer!]! - displayName: String - freeze: Boolean - hpa: Github__com___kloudlite___operator___apis___crds___v1__HPA - intercept: Github__com___kloudlite___operator___apis___crds___v1__Intercept - nodeSelector: Map - region: String - replicas: Int - serviceAccount: String - services: [Github__com___kloudlite___operator___apis___crds___v1__AppSvc!] - tolerations: [K8s__io___api___core___v1__Toleration!] - topologySpreadConstraints: [K8s__io___api___core___v1__TopologySpreadConstraint!] -} - -input Github__com___kloudlite___operator___apis___crds___v1__AppSpecIn - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - containers: [Github__com___kloudlite___operator___apis___crds___v1__AppContainerIn!]! - displayName: String - freeze: Boolean - hpa: Github__com___kloudlite___operator___apis___crds___v1__HPAIn - intercept: Github__com___kloudlite___operator___apis___crds___v1__InterceptIn - nodeSelector: Map - region: String - replicas: Int - serviceAccount: String - services: [Github__com___kloudlite___operator___apis___crds___v1__AppSvcIn!] - tolerations: [K8s__io___api___core___v1__TolerationIn!] - topologySpreadConstraints: [K8s__io___api___core___v1__TopologySpreadConstraintIn!] -} - -type Github__com___kloudlite___operator___apis___crds___v1__AppSvc - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - name: String - port: Int! - targetPort: Int - type: String -} - -input Github__com___kloudlite___operator___apis___crds___v1__AppSvcIn - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - name: String - port: Int! - targetPort: Int - type: String -} - -type Github__com___kloudlite___operator___apis___crds___v1__BasicAuth - @join__type(graph: CONSOLE_API) -{ - enabled: Boolean! - secretName: String - username: String -} - -input Github__com___kloudlite___operator___apis___crds___v1__BasicAuthIn - @join__type(graph: CONSOLE_API) -{ - enabled: Boolean! - secretName: String - username: String -} - -type Github__com___kloudlite___operator___apis___crds___v1__ClusterManagedServiceSpec - @join__type(graph: INFRA_API) -{ - msvcSpec: Github__com___kloudlite___operator___apis___crds___v1__ManagedServiceSpec! - targetNamespace: String! -} - -input Github__com___kloudlite___operator___apis___crds___v1__ClusterManagedServiceSpecIn - @join__type(graph: INFRA_API) -{ - msvcSpec: Github__com___kloudlite___operator___apis___crds___v1__ManagedServiceSpecIn! - targetNamespace: String! -} - -enum Github__com___kloudlite___operator___apis___crds___v1__ConfigOrSecret - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - config @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: IOT_CONSOLE_API) - pvc @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: IOT_CONSOLE_API) - secret @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: IOT_CONSOLE_API) -} - -type Github__com___kloudlite___operator___apis___crds___v1__ContainerEnv - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - key: String! - optional: Boolean - refKey: String - refName: String - type: Github__com___kloudlite___operator___apis___crds___v1__ConfigOrSecret - value: String -} - -input Github__com___kloudlite___operator___apis___crds___v1__ContainerEnvIn - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - key: String! - optional: Boolean - refKey: String - refName: String - type: Github__com___kloudlite___operator___apis___crds___v1__ConfigOrSecret - value: String -} - -type Github__com___kloudlite___operator___apis___crds___v1__ContainerResource - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - max: String - min: String -} - -input Github__com___kloudlite___operator___apis___crds___v1__ContainerResourceIn - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - max: String - min: String -} - -type Github__com___kloudlite___operator___apis___crds___v1__ContainerVolume - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - items: [Github__com___kloudlite___operator___apis___crds___v1__ContainerVolumeItem!] - mountPath: String! - refName: String! - type: Github__com___kloudlite___operator___apis___crds___v1__ConfigOrSecret! -} - -input Github__com___kloudlite___operator___apis___crds___v1__ContainerVolumeIn - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - items: [Github__com___kloudlite___operator___apis___crds___v1__ContainerVolumeItemIn!] - mountPath: String! - refName: String! - type: Github__com___kloudlite___operator___apis___crds___v1__ConfigOrSecret! -} - -type Github__com___kloudlite___operator___apis___crds___v1__ContainerVolumeItem - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - fileName: String - key: String! -} - -input Github__com___kloudlite___operator___apis___crds___v1__ContainerVolumeItemIn - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - fileName: String - key: String! -} - -type Github__com___kloudlite___operator___apis___crds___v1__Cors - @join__type(graph: CONSOLE_API) -{ - allowCredentials: Boolean - enabled: Boolean - origins: [String!] -} - -input Github__com___kloudlite___operator___apis___crds___v1__CorsIn - @join__type(graph: CONSOLE_API) -{ - allowCredentials: Boolean - enabled: Boolean - origins: [String!] -} - -type Github__com___kloudlite___operator___apis___crds___v1__EnvFrom - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - refName: String! - type: Github__com___kloudlite___operator___apis___crds___v1__ConfigOrSecret! -} - -input Github__com___kloudlite___operator___apis___crds___v1__EnvFromIn - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - refName: String! - type: Github__com___kloudlite___operator___apis___crds___v1__ConfigOrSecret! -} - -type Github__com___kloudlite___operator___apis___crds___v1__EnvironmentRouting - @join__type(graph: CONSOLE_API) -{ - mode: Github__com___kloudlite___operator___apis___crds___v1__EnvironmentRoutingMode - privateIngressClass: String - publicIngressClass: String -} - -input Github__com___kloudlite___operator___apis___crds___v1__EnvironmentRoutingIn - @join__type(graph: CONSOLE_API) -{ - mode: Github__com___kloudlite___operator___apis___crds___v1__EnvironmentRoutingMode -} - -enum Github__com___kloudlite___operator___apis___crds___v1__EnvironmentRoutingMode - @join__type(graph: CONSOLE_API) -{ - private @join__enumValue(graph: CONSOLE_API) - public @join__enumValue(graph: CONSOLE_API) -} - -type Github__com___kloudlite___operator___apis___crds___v1__EnvironmentSpec - @join__type(graph: CONSOLE_API) -{ - projectName: String! - routing: Github__com___kloudlite___operator___apis___crds___v1__EnvironmentRouting - targetNamespace: String -} - -input Github__com___kloudlite___operator___apis___crds___v1__EnvironmentSpecIn - @join__type(graph: CONSOLE_API) -{ - projectName: String! - routing: Github__com___kloudlite___operator___apis___crds___v1__EnvironmentRoutingIn - targetNamespace: String -} - -type Github__com___kloudlite___operator___apis___crds___v1__HelmChartSpec - @join__type(graph: INFRA_API) -{ - chartName: String! - chartRepoURL: String! - chartVersion: String! - jobVars: Github__com___kloudlite___operator___apis___crds___v1__JobVars - postInstall: String - postUninstall: String - preInstall: String - preUninstall: String - releaseName: String - values: Map! -} - -input Github__com___kloudlite___operator___apis___crds___v1__HelmChartSpecIn - @join__type(graph: INFRA_API) -{ - chartName: String! - chartRepoURL: String! - chartVersion: String! - jobVars: Github__com___kloudlite___operator___apis___crds___v1__JobVarsIn - postInstall: String - postUninstall: String - preInstall: String - preUninstall: String - values: Map! -} - -type Github__com___kloudlite___operator___apis___crds___v1__HelmChartStatus - @join__type(graph: INFRA_API) -{ - checkList: [Github__com___kloudlite___operator___pkg___operator__CheckMeta!] - checks: Map - isReady: Boolean! - lastReadyGeneration: Int - lastReconcileTime: Date - message: Github__com___kloudlite___operator___pkg___raw____json__RawJson - releaseNotes: String! - releaseStatus: String! - resources: [Github__com___kloudlite___operator___pkg___operator__ResourceRef!] -} - -type Github__com___kloudlite___operator___apis___crds___v1__HPA - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - enabled: Boolean! - maxReplicas: Int - minReplicas: Int - thresholdCpu: Int - thresholdMemory: Int -} - -input Github__com___kloudlite___operator___apis___crds___v1__HPAIn - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - enabled: Boolean! - maxReplicas: Int - minReplicas: Int - thresholdCpu: Int - thresholdMemory: Int -} - -type Github__com___kloudlite___operator___apis___crds___v1__HttpGetProbe - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - httpHeaders: Map - path: String! - port: Int! -} - -input Github__com___kloudlite___operator___apis___crds___v1__HttpGetProbeIn - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - httpHeaders: Map - path: String! - port: Int! -} - -type Github__com___kloudlite___operator___apis___crds___v1__Https - @join__type(graph: CONSOLE_API) -{ - clusterIssuer: String - enabled: Boolean! - forceRedirect: Boolean -} - -input Github__com___kloudlite___operator___apis___crds___v1__HttpsIn - @join__type(graph: CONSOLE_API) -{ - clusterIssuer: String - enabled: Boolean! - forceRedirect: Boolean -} - -type Github__com___kloudlite___operator___apis___crds___v1__Intercept - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - enabled: Boolean! - toDevice: String! -} - -input Github__com___kloudlite___operator___apis___crds___v1__InterceptIn - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - enabled: Boolean! - toDevice: String! -} - -type Github__com___kloudlite___operator___apis___crds___v1__JobVars - @join__type(graph: INFRA_API) -{ - affinity: K8s__io___api___core___v1__Affinity - backOffLimit: Int - nodeSelector: Map - tolerations: [K8s__io___api___core___v1__Toleration!] -} - -input Github__com___kloudlite___operator___apis___crds___v1__JobVarsIn - @join__type(graph: INFRA_API) -{ - affinity: K8s__io___api___core___v1__AffinityIn - backOffLimit: Int - nodeSelector: Map - tolerations: [K8s__io___api___core___v1__TolerationIn!] -} - -type Github__com___kloudlite___operator___apis___crds___v1__ManagedResourceSpec - @join__type(graph: CONSOLE_API) -{ - resourceNamePrefix: String - resourceTemplate: Github__com___kloudlite___operator___apis___crds___v1__MresResourceTemplate! -} - -input Github__com___kloudlite___operator___apis___crds___v1__ManagedResourceSpecIn - @join__type(graph: CONSOLE_API) -{ - resourceNamePrefix: String - resourceTemplate: Github__com___kloudlite___operator___apis___crds___v1__MresResourceTemplateIn! -} - -type Github__com___kloudlite___operator___apis___crds___v1__ManagedServiceSpec - @join__type(graph: CONSOLE_API) - @join__type(graph: INFRA_API) -{ - nodeSelector: Map - serviceTemplate: Github__com___kloudlite___operator___apis___crds___v1__ServiceTemplate! - tolerations: [K8s__io___api___core___v1__Toleration!] -} - -input Github__com___kloudlite___operator___apis___crds___v1__ManagedServiceSpecIn - @join__type(graph: CONSOLE_API) - @join__type(graph: INFRA_API) -{ - nodeSelector: Map - serviceTemplate: Github__com___kloudlite___operator___apis___crds___v1__ServiceTemplateIn! - tolerations: [K8s__io___api___core___v1__TolerationIn!] -} - -type Github__com___kloudlite___operator___apis___crds___v1__MresResourceTemplate - @join__type(graph: CONSOLE_API) -{ - apiVersion: String! - kind: String! - msvcRef: Github__com___kloudlite___operator___apis___crds___v1__MsvcNamedRef! - spec: Map! -} - -input Github__com___kloudlite___operator___apis___crds___v1__MresResourceTemplateIn - @join__type(graph: CONSOLE_API) -{ - apiVersion: String! - kind: String! - msvcRef: Github__com___kloudlite___operator___apis___crds___v1__MsvcNamedRefIn! - spec: Map! -} - -type Github__com___kloudlite___operator___apis___crds___v1__MsvcNamedRef - @join__type(graph: CONSOLE_API) -{ - apiVersion: String! - kind: String! - name: String! - namespace: String! -} - -input Github__com___kloudlite___operator___apis___crds___v1__MsvcNamedRefIn - @join__type(graph: CONSOLE_API) -{ - apiVersion: String! - kind: String! - name: String! - namespace: String! -} - -type Github__com___kloudlite___operator___apis___crds___v1__Probe - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - failureThreshold: Int - httpGet: Github__com___kloudlite___operator___apis___crds___v1__HttpGetProbe - initialDelay: Int - interval: Int - shell: Github__com___kloudlite___operator___apis___crds___v1__ShellProbe - tcp: Github__com___kloudlite___operator___apis___crds___v1__TcpProbe - type: String! -} - -input Github__com___kloudlite___operator___apis___crds___v1__ProbeIn - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - failureThreshold: Int - httpGet: Github__com___kloudlite___operator___apis___crds___v1__HttpGetProbeIn - initialDelay: Int - interval: Int - shell: Github__com___kloudlite___operator___apis___crds___v1__ShellProbeIn - tcp: Github__com___kloudlite___operator___apis___crds___v1__TcpProbeIn - type: String! -} - -type Github__com___kloudlite___operator___apis___crds___v1__ProjectManagedServiceSpec - @join__type(graph: CONSOLE_API) -{ - msvcSpec: Github__com___kloudlite___operator___apis___crds___v1__ManagedServiceSpec! - targetNamespace: String! -} - -input Github__com___kloudlite___operator___apis___crds___v1__ProjectManagedServiceSpecIn - @join__type(graph: CONSOLE_API) -{ - msvcSpec: Github__com___kloudlite___operator___apis___crds___v1__ManagedServiceSpecIn! - targetNamespace: String! -} - -type Github__com___kloudlite___operator___apis___crds___v1__ProjectSpec - @join__type(graph: CONSOLE_API) -{ - targetNamespace: String! -} - -input Github__com___kloudlite___operator___apis___crds___v1__ProjectSpecIn - @join__type(graph: CONSOLE_API) -{ - targetNamespace: String! -} - -type Github__com___kloudlite___operator___apis___crds___v1__RateLimit - @join__type(graph: CONSOLE_API) -{ - connections: Int - enabled: Boolean - rpm: Int - rps: Int -} - -input Github__com___kloudlite___operator___apis___crds___v1__RateLimitIn - @join__type(graph: CONSOLE_API) -{ - connections: Int - enabled: Boolean - rpm: Int - rps: Int -} - -type Github__com___kloudlite___operator___apis___crds___v1__Route - @join__type(graph: CONSOLE_API) -{ - app: String! - path: String! - port: Int! - rewrite: Boolean -} - -input Github__com___kloudlite___operator___apis___crds___v1__RouteIn - @join__type(graph: CONSOLE_API) -{ - app: String! - path: String! - port: Int! - rewrite: Boolean -} - -type Github__com___kloudlite___operator___apis___crds___v1__RouterSpec - @join__type(graph: CONSOLE_API) -{ - backendProtocol: String - basicAuth: Github__com___kloudlite___operator___apis___crds___v1__BasicAuth - cors: Github__com___kloudlite___operator___apis___crds___v1__Cors - domains: [String!]! - https: Github__com___kloudlite___operator___apis___crds___v1__Https - ingressClass: String - maxBodySizeInMB: Int - rateLimit: Github__com___kloudlite___operator___apis___crds___v1__RateLimit - routes: [Github__com___kloudlite___operator___apis___crds___v1__Route!] -} - -input Github__com___kloudlite___operator___apis___crds___v1__RouterSpecIn - @join__type(graph: CONSOLE_API) -{ - backendProtocol: String - basicAuth: Github__com___kloudlite___operator___apis___crds___v1__BasicAuthIn - cors: Github__com___kloudlite___operator___apis___crds___v1__CorsIn - domains: [String!]! - https: Github__com___kloudlite___operator___apis___crds___v1__HttpsIn - ingressClass: String - maxBodySizeInMB: Int - rateLimit: Github__com___kloudlite___operator___apis___crds___v1__RateLimitIn - routes: [Github__com___kloudlite___operator___apis___crds___v1__RouteIn!] -} - -type Github__com___kloudlite___operator___apis___crds___v1__ServiceTemplate - @join__type(graph: CONSOLE_API) - @join__type(graph: INFRA_API) -{ - apiVersion: String! - kind: String! - spec: Map! -} - -input Github__com___kloudlite___operator___apis___crds___v1__ServiceTemplateIn - @join__type(graph: CONSOLE_API) - @join__type(graph: INFRA_API) -{ - apiVersion: String! - kind: String! - spec: Map! -} - -type Github__com___kloudlite___operator___apis___crds___v1__ShellProbe - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - command: [String!] -} - -input Github__com___kloudlite___operator___apis___crds___v1__ShellProbeIn - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - command: [String!] -} - -type Github__com___kloudlite___operator___apis___crds___v1__TcpProbe - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - port: Int! -} - -input Github__com___kloudlite___operator___apis___crds___v1__TcpProbeIn - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - port: Int! -} - -type Github__com___kloudlite___operator___apis___distribution___v1__BuildOptions - @join__type(graph: CONTAINER_REGISTRY_API) -{ - buildArgs: Map - buildContexts: Map - contextDir: String - dockerfileContent: String - dockerfilePath: String - targetPlatforms: [String!] -} - -input Github__com___kloudlite___operator___apis___distribution___v1__BuildOptionsIn - @join__type(graph: CONTAINER_REGISTRY_API) -{ - buildArgs: Map - buildContexts: Map - contextDir: String - dockerfileContent: String - dockerfilePath: String - targetPlatforms: [String!] -} - -type Github__com___kloudlite___operator___apis___distribution___v1__BuildRunSpec - @join__type(graph: CONTAINER_REGISTRY_API) -{ - accountName: String! - buildOptions: Github__com___kloudlite___operator___apis___distribution___v1__BuildOptions - caches: [Github__com___kloudlite___operator___apis___distribution___v1__Cache!] - registry: Github__com___kloudlite___operator___apis___distribution___v1__Registry! - resource: Github__com___kloudlite___operator___apis___distribution___v1__Resource! -} - -input Github__com___kloudlite___operator___apis___distribution___v1__BuildRunSpecIn - @join__type(graph: CONTAINER_REGISTRY_API) -{ - buildOptions: Github__com___kloudlite___operator___apis___distribution___v1__BuildOptionsIn - caches: [Github__com___kloudlite___operator___apis___distribution___v1__CacheIn!] - registry: Github__com___kloudlite___operator___apis___distribution___v1__RegistryIn! - resource: Github__com___kloudlite___operator___apis___distribution___v1__ResourceIn! -} - -type Github__com___kloudlite___operator___apis___distribution___v1__Cache - @join__type(graph: CONTAINER_REGISTRY_API) -{ - name: String! - path: String! -} - -input Github__com___kloudlite___operator___apis___distribution___v1__CacheIn - @join__type(graph: CONTAINER_REGISTRY_API) -{ - name: String! - path: String! -} - -type Github__com___kloudlite___operator___apis___distribution___v1__Registry - @join__type(graph: CONTAINER_REGISTRY_API) -{ - repo: Github__com___kloudlite___operator___apis___distribution___v1__Repo! -} - -input Github__com___kloudlite___operator___apis___distribution___v1__RegistryIn - @join__type(graph: CONTAINER_REGISTRY_API) -{ - repo: Github__com___kloudlite___operator___apis___distribution___v1__RepoIn! -} - -type Github__com___kloudlite___operator___apis___distribution___v1__Repo - @join__type(graph: CONTAINER_REGISTRY_API) -{ - name: String! - tags: [String!]! -} - -input Github__com___kloudlite___operator___apis___distribution___v1__RepoIn - @join__type(graph: CONTAINER_REGISTRY_API) -{ - name: String! - tags: [String!]! -} - -type Github__com___kloudlite___operator___apis___distribution___v1__Resource - @join__type(graph: CONTAINER_REGISTRY_API) -{ - cpu: Int! - memoryInMb: Int! -} - -input Github__com___kloudlite___operator___apis___distribution___v1__ResourceIn - @join__type(graph: CONTAINER_REGISTRY_API) -{ - cpu: Int! - memoryInMb: Int! -} - -type Github__com___kloudlite___operator___apis___wireguard___v1__CNameRecord - @join__type(graph: CONSOLE_API) -{ - host: String - target: String -} - -input Github__com___kloudlite___operator___apis___wireguard___v1__CNameRecordIn - @join__type(graph: CONSOLE_API) -{ - host: String - target: String -} - -type Github__com___kloudlite___operator___apis___wireguard___v1__DeviceSpec - @join__type(graph: CONSOLE_API) -{ - activeNamespace: String - cnameRecords: [Github__com___kloudlite___operator___apis___wireguard___v1__CNameRecord!] - disabled: Boolean - nodeSelector: Map - noExternalService: Boolean - ports: [Github__com___kloudlite___operator___apis___wireguard___v1__Port!] -} - -input Github__com___kloudlite___operator___apis___wireguard___v1__DeviceSpecIn - @join__type(graph: CONSOLE_API) -{ - activeNamespace: String - cnameRecords: [Github__com___kloudlite___operator___apis___wireguard___v1__CNameRecordIn!] - ports: [Github__com___kloudlite___operator___apis___wireguard___v1__PortIn!] -} - -type Github__com___kloudlite___operator___apis___wireguard___v1__Port - @join__type(graph: CONSOLE_API) -{ - port: Int - targetPort: Int -} - -input Github__com___kloudlite___operator___apis___wireguard___v1__PortIn - @join__type(graph: CONSOLE_API) -{ - port: Int - targetPort: Int -} - -type Github__com___kloudlite___operator___pkg___operator__Check - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - debug: String - error: String - generation: Int - info: String - message: String - startedAt: Date - state: Github__com___kloudlite___operator___pkg___operator__State - status: Boolean! -} - -input Github__com___kloudlite___operator___pkg___operator__CheckIn - @join__type(graph: CONTAINER_REGISTRY_API) -{ - debug: String - error: String - generation: Int - info: String - message: String - startedAt: Date - state: Github__com___kloudlite___operator___pkg___operator__State - status: Boolean! -} - -type Github__com___kloudlite___operator___pkg___operator__CheckMeta - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - debug: Boolean - description: String - name: String! - title: String! -} - -input Github__com___kloudlite___operator___pkg___operator__CheckMetaIn - @join__type(graph: CONTAINER_REGISTRY_API) -{ - debug: Boolean - description: String - name: String! - title: String! -} - -type Github__com___kloudlite___operator___pkg___operator__ResourceRef - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - apiVersion: String! - kind: String! - name: String! - namespace: String! -} - -input Github__com___kloudlite___operator___pkg___operator__ResourceRefIn - @join__type(graph: CONTAINER_REGISTRY_API) -{ - apiVersion: String! - kind: String! - name: String! - namespace: String! -} - -enum Github__com___kloudlite___operator___pkg___operator__State - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - errored____during____reconcilation @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: CONTAINER_REGISTRY_API) @join__enumValue(graph: INFRA_API) @join__enumValue(graph: IOT_CONSOLE_API) - finished____reconcilation @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: CONTAINER_REGISTRY_API) @join__enumValue(graph: INFRA_API) @join__enumValue(graph: IOT_CONSOLE_API) - under____reconcilation @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: CONTAINER_REGISTRY_API) @join__enumValue(graph: INFRA_API) @join__enumValue(graph: IOT_CONSOLE_API) - yet____to____be____reconciled @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: CONTAINER_REGISTRY_API) @join__enumValue(graph: INFRA_API) @join__enumValue(graph: IOT_CONSOLE_API) -} - -type Github__com___kloudlite___operator___pkg___operator__Status - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - checkList: [Github__com___kloudlite___operator___pkg___operator__CheckMeta!] - checks: Map - isReady: Boolean! - lastReadyGeneration: Int - lastReconcileTime: Date - message: Github__com___kloudlite___operator___pkg___raw____json__RawJson - resources: [Github__com___kloudlite___operator___pkg___operator__ResourceRef!] -} - -input Github__com___kloudlite___operator___pkg___operator__StatusIn - @join__type(graph: CONTAINER_REGISTRY_API) -{ - checkList: [Github__com___kloudlite___operator___pkg___operator__CheckMetaIn!] - checks: Map - isReady: Boolean! - lastReadyGeneration: Int - lastReconcileTime: Date - message: Github__com___kloudlite___operator___pkg___raw____json__RawJsonIn - resources: [Github__com___kloudlite___operator___pkg___operator__ResourceRefIn!] -} - -type Github__com___kloudlite___operator___pkg___raw____json__RawJson - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - RawMessage: Any -} - -input Github__com___kloudlite___operator___pkg___raw____json__RawJsonIn - @join__type(graph: CONTAINER_REGISTRY_API) -{ - RawMessage: Any -} - -type GithubBranch - @join__type(graph: CONTAINER_REGISTRY_API) -{ - name: String - protected: Boolean -} - -type GithubInstallation - @join__type(graph: CONTAINER_REGISTRY_API) -{ - account: Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__GithubUserAccount - appId: Int - id: Int - nodeId: String - repositoriesUrl: String - targetId: Int - targetType: String -} - -type GithubListRepository - @join__type(graph: CONTAINER_REGISTRY_API) -{ - repositories: [Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__GithubRepository]! - totalCount: Int -} - -type GithubSearchRepository - @join__type(graph: CONTAINER_REGISTRY_API) -{ - incompleteResults: Boolean - repositories: [Github__com___kloudlite___api___apps___container____registry___internal___domain___entities__GithubRepository]! - total: Int -} - -type GitlabBranch - @join__type(graph: CONTAINER_REGISTRY_API) -{ - canPush: Boolean! - default: Boolean! - developersCanMerge: Boolean! - developersCanPush: Boolean! - merged: Boolean! - name: String! - protected: Boolean! - webUrl: String! -} - -type GitlabGroup - @join__type(graph: CONTAINER_REGISTRY_API) -{ - avatarUrl: String! - fullName: String! - id: String! -} - -type GitlabProject - @join__type(graph: CONTAINER_REGISTRY_API) -{ - archived: Boolean! - avatarUrl: String! - createdAt: Date - creatorId: Int! - defaultBranch: String! - description: String! - emptyRepo: Boolean! - httpUrlToRepo: String! - id: Int! - lastActivityAt: Date - name: String! - nameWithNamespace: String! - path: String! - pathWithNamespace: String! - public: Boolean! - sshUrlToRepo: String! - tagList: [String!]! - topics: [String!]! - webUrl: String! -} - -type HelmRelease - @join__type(graph: INFRA_API) -{ - accountName: String! - apiVersion: String - clusterName: String! - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - id: ID! - kind: String - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - metadata: Metadata - recordVersion: Int! - spec: Github__com___kloudlite___operator___apis___crds___v1__HelmChartSpec - status: Github__com___kloudlite___operator___apis___crds___v1__HelmChartStatus - syncStatus: Github__com___kloudlite___api___pkg___types__SyncStatus! - updateTime: Date! -} - -type HelmReleaseEdge - @join__type(graph: INFRA_API) -{ - cursor: String! - node: HelmRelease! -} - -input HelmReleaseIn - @join__type(graph: INFRA_API) -{ - apiVersion: String - displayName: String! - kind: String - metadata: MetadataIn - spec: Github__com___kloudlite___operator___apis___crds___v1__HelmChartSpecIn -} - -type HelmReleasePaginatedRecords - @join__type(graph: INFRA_API) -{ - edges: [HelmReleaseEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type ImagePullSecret - @join__type(graph: CONSOLE_API) -{ - accountName: String! - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - dockerConfigJson: String - environmentName: String! - format: Github__com___kloudlite___api___apps___console___internal___entities__PullSecretFormat! - id: ID! - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - metadata: Metadata! - projectName: String! - recordVersion: Int! - registryPassword: String - registryURL: String - registryUsername: String - syncStatus: Github__com___kloudlite___api___pkg___types__SyncStatus! - updateTime: Date! -} - -type ImagePullSecretEdge - @join__type(graph: CONSOLE_API) -{ - cursor: String! - node: ImagePullSecret! -} - -input ImagePullSecretIn - @join__type(graph: CONSOLE_API) -{ - displayName: String! - dockerConfigJson: String - format: Github__com___kloudlite___api___apps___console___internal___entities__PullSecretFormat! - metadata: MetadataIn! - registryPassword: String - registryURL: String - registryUsername: String -} - -type ImagePullSecretPaginatedRecords - @join__type(graph: CONSOLE_API) -{ - edges: [ImagePullSecretEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type Invitation - @join__type(graph: ACCOUNT_API) -{ - accepted: Boolean - accountName: String! - creationTime: Date! - id: String! - invitedBy: String! - inviteToken: String! - markedForDeletion: Boolean - recordVersion: Int! - rejected: Boolean - updateTime: Date! - userEmail: String - userName: String - userRole: Github__com___kloudlite___api___apps___iam___types__Role! -} - -input InvitationIn - @join__type(graph: ACCOUNT_API) -{ - userEmail: String - userName: String - userRole: Github__com___kloudlite___api___apps___iam___types__Role! -} - -type IOTApp - @join__type(graph: IOT_CONSOLE_API) -{ - accountName: String! - apiVersion: String - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - deviceBlueprintName: String! - displayName: String! - enabled: Boolean - environmentName: String! - id: ID! - kind: String - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - metadata: Metadata - projectName: String! - recordVersion: Int! - spec: Github__com___kloudlite___operator___apis___crds___v1__AppSpec! - status: Github__com___kloudlite___operator___pkg___operator__Status - updateTime: Date! -} - -type IOTAppEdge - @join__type(graph: IOT_CONSOLE_API) -{ - cursor: String! - node: IOTApp! -} - -input IOTAppIn - @join__type(graph: IOT_CONSOLE_API) -{ - apiVersion: String - displayName: String! - enabled: Boolean - kind: String - metadata: MetadataIn - spec: Github__com___kloudlite___operator___apis___crds___v1__AppSpecIn! -} - -type IOTAppPaginatedRecords - @join__type(graph: IOT_CONSOLE_API) -{ - edges: [IOTAppEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type IOTDeployment - @join__type(graph: IOT_CONSOLE_API) -{ - accountName: String! - CIDR: String! - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - environmentName: String! - exposedServices: [Github__com___kloudlite___api___apps___iot____console___internal___entities__ExposedService!]! - id: ID! - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - name: String! - projectName: String! - recordVersion: Int! - updateTime: Date! -} - -type IOTDeploymentEdge - @join__type(graph: IOT_CONSOLE_API) -{ - cursor: String! - node: IOTDeployment! -} - -input IOTDeploymentIn - @join__type(graph: IOT_CONSOLE_API) -{ - CIDR: String! - displayName: String! - exposedServices: [Github__com___kloudlite___api___apps___iot____console___internal___entities__ExposedServiceIn!]! - name: String! -} - -type IOTDeploymentPaginatedRecords - @join__type(graph: IOT_CONSOLE_API) -{ - edges: [IOTDeploymentEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type IOTDevice - @join__type(graph: IOT_CONSOLE_API) -{ - accountName: String! - blueprint: String! - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - deployment: String! - displayName: String! - environmentName: String! - id: ID! - ip: String! - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - name: String! - podCIDR: String! - projectName: String! - publicKey: String! - recordVersion: Int! - serviceCIDR: String! - updateTime: Date! - version: String! -} - -type IOTDeviceBlueprint - @join__type(graph: IOT_CONSOLE_API) -{ - accountName: String! - bluePrintType: Github__com___kloudlite___api___apps___iot____console___internal___entities__BluePrintType! - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - environmentName: String! - id: ID! - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - name: String! - projectName: String! - recordVersion: Int! - updateTime: Date! - version: String! -} - -type IOTDeviceBlueprintEdge - @join__type(graph: IOT_CONSOLE_API) -{ - cursor: String! - node: IOTDeviceBlueprint! -} - -input IOTDeviceBlueprintIn - @join__type(graph: IOT_CONSOLE_API) -{ - bluePrintType: Github__com___kloudlite___api___apps___iot____console___internal___entities__BluePrintType! - displayName: String! - name: String! - version: String! -} - -type IOTDeviceBlueprintPaginatedRecords - @join__type(graph: IOT_CONSOLE_API) -{ - edges: [IOTDeviceBlueprintEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type IOTDeviceEdge - @join__type(graph: IOT_CONSOLE_API) -{ - cursor: String! - node: IOTDevice! -} - -input IOTDeviceIn - @join__type(graph: IOT_CONSOLE_API) -{ - blueprint: String! - deployment: String! - displayName: String! - ip: String! - name: String! - podCIDR: String! - publicKey: String! - serviceCIDR: String! - version: String! -} - -type IOTDevicePaginatedRecords - @join__type(graph: IOT_CONSOLE_API) -{ - edges: [IOTDeviceEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type IOTEnvironment - @join__type(graph: IOT_CONSOLE_API) -{ - accountName: String! - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - id: ID! - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - name: String! - projectName: String! - recordVersion: Int! - updateTime: Date! -} - -type IOTEnvironmentEdge - @join__type(graph: IOT_CONSOLE_API) -{ - cursor: String! - node: IOTEnvironment! -} - -input IOTEnvironmentIn - @join__type(graph: IOT_CONSOLE_API) -{ - displayName: String! - name: String! -} - -type IOTEnvironmentPaginatedRecords - @join__type(graph: IOT_CONSOLE_API) -{ - edges: [IOTEnvironmentEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type IOTProject - @join__type(graph: IOT_CONSOLE_API) -{ - accountName: String! - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - id: ID! - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - name: String! - recordVersion: Int! - updateTime: Date! -} - -type IOTProjectEdge - @join__type(graph: IOT_CONSOLE_API) -{ - cursor: String! - node: IOTProject! -} - -input IOTProjectIn - @join__type(graph: IOT_CONSOLE_API) -{ - displayName: String! - name: String! -} - -type IOTProjectPaginatedRecords - @join__type(graph: IOT_CONSOLE_API) -{ - edges: [IOTProjectEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -scalar join__FieldSet - -enum join__Graph { - ACCOUNT_API @join__graph(name: "account-api", url: "http://accounts-api/query") - AUTH_API @join__graph(name: "auth-api", url: "http://auth-api/query") - CONSOLE_API @join__graph(name: "console-api", url: "http://console-api/query") - CONTAINER_REGISTRY_API @join__graph(name: "container-registry-api", url: "http://container-registry-api/query") - INFRA_API @join__graph(name: "infra-api", url: "http://infra-api/query") - IOT_CONSOLE_API @join__graph(name: "iot-console-api", url: "http://iot-console-api/query") -} - -scalar Json - @join__type(graph: ACCOUNT_API) - @join__type(graph: AUTH_API) - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) - -type K8s__io___api___core___v1__Affinity - @join__type(graph: INFRA_API) -{ - nodeAffinity: K8s__io___api___core___v1__NodeAffinity - podAffinity: K8s__io___api___core___v1__PodAffinity - podAntiAffinity: K8s__io___api___core___v1__PodAntiAffinity -} - -input K8s__io___api___core___v1__AffinityIn - @join__type(graph: INFRA_API) -{ - nodeAffinity: K8s__io___api___core___v1__NodeAffinityIn - podAffinity: K8s__io___api___core___v1__PodAffinityIn - podAntiAffinity: K8s__io___api___core___v1__PodAntiAffinityIn -} - -type K8s__io___api___core___v1__AWSElasticBlockStoreVolumeSource - @join__type(graph: INFRA_API) -{ - fsType: String - partition: Int - readOnly: Boolean - volumeID: String! -} - -input K8s__io___api___core___v1__AWSElasticBlockStoreVolumeSourceIn - @join__type(graph: INFRA_API) -{ - fsType: String - partition: Int - readOnly: Boolean - volumeID: String! -} - -type K8s__io___api___core___v1__AzureDiskVolumeSource - @join__type(graph: INFRA_API) -{ - cachingMode: String - diskName: String! - diskURI: String! - fsType: String - kind: String - readOnly: Boolean -} - -input K8s__io___api___core___v1__AzureDiskVolumeSourceIn - @join__type(graph: INFRA_API) -{ - cachingMode: String - diskName: String! - diskURI: String! - fsType: String - kind: String - readOnly: Boolean -} - -type K8s__io___api___core___v1__AzureFilePersistentVolumeSource - @join__type(graph: INFRA_API) -{ - readOnly: Boolean - secretName: String! - secretNamespace: String - shareName: String! -} - -input K8s__io___api___core___v1__AzureFilePersistentVolumeSourceIn - @join__type(graph: INFRA_API) -{ - readOnly: Boolean - secretName: String! - secretNamespace: String - shareName: String! -} - -type K8s__io___api___core___v1__CephFSPersistentVolumeSource - @join__type(graph: INFRA_API) -{ - monitors: [String!]! - path: String - readOnly: Boolean - secretFile: String - secretRef: K8s__io___api___core___v1__SecretReference - user: String -} - -input K8s__io___api___core___v1__CephFSPersistentVolumeSourceIn - @join__type(graph: INFRA_API) -{ - monitors: [String!]! - path: String - readOnly: Boolean - secretFile: String - secretRef: K8s__io___api___core___v1__SecretReferenceIn - user: String -} - -type K8s__io___api___core___v1__CinderPersistentVolumeSource - @join__type(graph: INFRA_API) -{ - fsType: String - readOnly: Boolean - secretRef: K8s__io___api___core___v1__SecretReference - volumeID: String! -} - -input K8s__io___api___core___v1__CinderPersistentVolumeSourceIn - @join__type(graph: INFRA_API) -{ - fsType: String - readOnly: Boolean - secretRef: K8s__io___api___core___v1__SecretReferenceIn - volumeID: String! -} - -enum K8s__io___api___core___v1__ConditionStatus - @join__type(graph: INFRA_API) -{ - False @join__enumValue(graph: INFRA_API) - True @join__enumValue(graph: INFRA_API) - Unknown @join__enumValue(graph: INFRA_API) -} - -type K8s__io___api___core___v1__CSIPersistentVolumeSource - @join__type(graph: INFRA_API) -{ - controllerExpandSecretRef: K8s__io___api___core___v1__SecretReference - controllerPublishSecretRef: K8s__io___api___core___v1__SecretReference - driver: String! - fsType: String - nodeExpandSecretRef: K8s__io___api___core___v1__SecretReference - nodePublishSecretRef: K8s__io___api___core___v1__SecretReference - nodeStageSecretRef: K8s__io___api___core___v1__SecretReference - readOnly: Boolean - volumeAttributes: Map - volumeHandle: String! -} - -input K8s__io___api___core___v1__CSIPersistentVolumeSourceIn - @join__type(graph: INFRA_API) -{ - controllerExpandSecretRef: K8s__io___api___core___v1__SecretReferenceIn - controllerPublishSecretRef: K8s__io___api___core___v1__SecretReferenceIn - driver: String! - fsType: String - nodeExpandSecretRef: K8s__io___api___core___v1__SecretReferenceIn - nodePublishSecretRef: K8s__io___api___core___v1__SecretReferenceIn - nodeStageSecretRef: K8s__io___api___core___v1__SecretReferenceIn - readOnly: Boolean - volumeAttributes: Map - volumeHandle: String! -} - -type K8s__io___api___core___v1__FCVolumeSource - @join__type(graph: INFRA_API) -{ - fsType: String - lun: Int - readOnly: Boolean - targetWWNs: [String!] - wwids: [String!] -} - -input K8s__io___api___core___v1__FCVolumeSourceIn - @join__type(graph: INFRA_API) -{ - fsType: String - lun: Int - readOnly: Boolean - targetWWNs: [String!] - wwids: [String!] -} - -type K8s__io___api___core___v1__FlexPersistentVolumeSource - @join__type(graph: INFRA_API) -{ - driver: String! - fsType: String - options: Map - readOnly: Boolean - secretRef: K8s__io___api___core___v1__SecretReference -} - -input K8s__io___api___core___v1__FlexPersistentVolumeSourceIn - @join__type(graph: INFRA_API) -{ - driver: String! - fsType: String - options: Map - readOnly: Boolean - secretRef: K8s__io___api___core___v1__SecretReferenceIn -} - -type K8s__io___api___core___v1__FlockerVolumeSource - @join__type(graph: INFRA_API) -{ - datasetName: String - datasetUUID: String -} - -input K8s__io___api___core___v1__FlockerVolumeSourceIn - @join__type(graph: INFRA_API) -{ - datasetName: String - datasetUUID: String -} - -type K8s__io___api___core___v1__GCEPersistentDiskVolumeSource - @join__type(graph: INFRA_API) -{ - fsType: String - partition: Int - pdName: String! - readOnly: Boolean -} - -input K8s__io___api___core___v1__GCEPersistentDiskVolumeSourceIn - @join__type(graph: INFRA_API) -{ - fsType: String - partition: Int - pdName: String! - readOnly: Boolean -} - -type K8s__io___api___core___v1__GlusterfsPersistentVolumeSource - @join__type(graph: INFRA_API) -{ - endpoints: String! - endpointsNamespace: String - path: String! - readOnly: Boolean -} - -input K8s__io___api___core___v1__GlusterfsPersistentVolumeSourceIn - @join__type(graph: INFRA_API) -{ - endpoints: String! - endpointsNamespace: String - path: String! - readOnly: Boolean -} - -type K8s__io___api___core___v1__HostPathVolumeSource - @join__type(graph: INFRA_API) -{ - path: String! - type: String -} - -input K8s__io___api___core___v1__HostPathVolumeSourceIn - @join__type(graph: INFRA_API) -{ - path: String! - type: String -} - -type K8s__io___api___core___v1__ISCSIPersistentVolumeSource - @join__type(graph: INFRA_API) -{ - chapAuthDiscovery: Boolean - chapAuthSession: Boolean - fsType: String - initiatorName: String - iqn: String! - iscsiInterface: String - lun: Int! - portals: [String!] - readOnly: Boolean - secretRef: K8s__io___api___core___v1__SecretReference - targetPortal: String! -} - -input K8s__io___api___core___v1__ISCSIPersistentVolumeSourceIn - @join__type(graph: INFRA_API) -{ - chapAuthDiscovery: Boolean - chapAuthSession: Boolean - fsType: String - initiatorName: String - iqn: String! - iscsiInterface: String - lun: Int! - portals: [String!] - readOnly: Boolean - secretRef: K8s__io___api___core___v1__SecretReferenceIn - targetPortal: String! -} - -type K8s__io___api___core___v1__LocalVolumeSource - @join__type(graph: INFRA_API) -{ - fsType: String - path: String! -} - -input K8s__io___api___core___v1__LocalVolumeSourceIn - @join__type(graph: INFRA_API) -{ - fsType: String - path: String! -} - -type K8s__io___api___core___v1__NamespaceCondition - @join__type(graph: INFRA_API) -{ - lastTransitionTime: Date - message: String - reason: String - status: K8s__io___api___core___v1__ConditionStatus! - type: K8s__io___api___core___v1__NamespaceConditionType! -} - -input K8s__io___api___core___v1__NamespaceConditionIn - @join__type(graph: INFRA_API) -{ - lastTransitionTime: Date - message: String - reason: String - status: K8s__io___api___core___v1__ConditionStatus! - type: K8s__io___api___core___v1__NamespaceConditionType! -} - -enum K8s__io___api___core___v1__NamespaceConditionType - @join__type(graph: INFRA_API) -{ - NamespaceContentRemaining @join__enumValue(graph: INFRA_API) - NamespaceDeletionContentFailure @join__enumValue(graph: INFRA_API) - NamespaceDeletionDiscoveryFailure @join__enumValue(graph: INFRA_API) - NamespaceDeletionGroupVersionParsingFailure @join__enumValue(graph: INFRA_API) - NamespaceFinalizersRemaining @join__enumValue(graph: INFRA_API) -} - -enum K8s__io___api___core___v1__NamespacePhase - @join__type(graph: INFRA_API) -{ - Active @join__enumValue(graph: INFRA_API) - Terminating @join__enumValue(graph: INFRA_API) -} - -type K8s__io___api___core___v1__NamespaceSpec - @join__type(graph: INFRA_API) -{ - finalizers: [String!] -} - -input K8s__io___api___core___v1__NamespaceSpecIn - @join__type(graph: INFRA_API) -{ - finalizers: [String!] -} - -type K8s__io___api___core___v1__NamespaceStatus - @join__type(graph: INFRA_API) -{ - conditions: [K8s__io___api___core___v1__NamespaceCondition!] - phase: K8s__io___api___core___v1__NamespacePhase -} - -input K8s__io___api___core___v1__NamespaceStatusIn - @join__type(graph: INFRA_API) -{ - conditions: [K8s__io___api___core___v1__NamespaceConditionIn!] - phase: K8s__io___api___core___v1__NamespacePhase -} - -type K8s__io___api___core___v1__NFSVolumeSource - @join__type(graph: INFRA_API) -{ - path: String! - readOnly: Boolean - server: String! -} - -input K8s__io___api___core___v1__NFSVolumeSourceIn - @join__type(graph: INFRA_API) -{ - path: String! - readOnly: Boolean - server: String! -} - -type K8s__io___api___core___v1__NodeAffinity - @join__type(graph: INFRA_API) -{ - preferredDuringSchedulingIgnoredDuringExecution: [K8s__io___api___core___v1__PreferredSchedulingTerm!] - requiredDuringSchedulingIgnoredDuringExecution: K8s__io___api___core___v1__NodeSelector -} - -input K8s__io___api___core___v1__NodeAffinityIn - @join__type(graph: INFRA_API) -{ - preferredDuringSchedulingIgnoredDuringExecution: [K8s__io___api___core___v1__PreferredSchedulingTermIn!] - requiredDuringSchedulingIgnoredDuringExecution: K8s__io___api___core___v1__NodeSelectorIn -} - -type K8s__io___api___core___v1__NodeSelector - @join__type(graph: INFRA_API) -{ - nodeSelectorTerms: [K8s__io___api___core___v1__NodeSelectorTerm!]! -} - -input K8s__io___api___core___v1__NodeSelectorIn - @join__type(graph: INFRA_API) -{ - nodeSelectorTerms: [K8s__io___api___core___v1__NodeSelectorTermIn!]! -} - -enum K8s__io___api___core___v1__NodeSelectorOperator - @join__type(graph: INFRA_API) -{ - DoesNotExist @join__enumValue(graph: INFRA_API) - Exists @join__enumValue(graph: INFRA_API) - Gt @join__enumValue(graph: INFRA_API) - In @join__enumValue(graph: INFRA_API) - Lt @join__enumValue(graph: INFRA_API) - NotIn @join__enumValue(graph: INFRA_API) -} - -type K8s__io___api___core___v1__NodeSelectorRequirement - @join__type(graph: INFRA_API) -{ - key: String! - operator: K8s__io___api___core___v1__NodeSelectorOperator! - values: [String!] -} - -input K8s__io___api___core___v1__NodeSelectorRequirementIn - @join__type(graph: INFRA_API) -{ - key: String! - operator: K8s__io___api___core___v1__NodeSelectorOperator! - values: [String!] -} - -type K8s__io___api___core___v1__NodeSelectorTerm - @join__type(graph: INFRA_API) -{ - matchExpressions: [K8s__io___api___core___v1__NodeSelectorRequirement!] - matchFields: [K8s__io___api___core___v1__NodeSelectorRequirement!] -} - -input K8s__io___api___core___v1__NodeSelectorTermIn - @join__type(graph: INFRA_API) -{ - matchExpressions: [K8s__io___api___core___v1__NodeSelectorRequirementIn!] - matchFields: [K8s__io___api___core___v1__NodeSelectorRequirementIn!] -} - -type K8s__io___api___core___v1__ObjectReference - @join__type(graph: INFRA_API) -{ - apiVersion: String - fieldPath: String - kind: String - name: String - namespace: String - resourceVersion: String - uid: String -} - -input K8s__io___api___core___v1__ObjectReferenceIn - @join__type(graph: INFRA_API) -{ - apiVersion: String - fieldPath: String - kind: String - name: String - namespace: String - resourceVersion: String - uid: String -} - -type K8s__io___api___core___v1__PersistentVolumeClaimCondition - @join__type(graph: INFRA_API) -{ - lastProbeTime: Date - lastTransitionTime: Date - message: String - reason: String - status: K8s__io___api___core___v1__ConditionStatus! - type: K8s__io___api___core___v1__PersistentVolumeClaimConditionType! -} - -input K8s__io___api___core___v1__PersistentVolumeClaimConditionIn - @join__type(graph: INFRA_API) -{ - lastProbeTime: Date - lastTransitionTime: Date - message: String - reason: String - status: K8s__io___api___core___v1__ConditionStatus! - type: K8s__io___api___core___v1__PersistentVolumeClaimConditionType! -} - -enum K8s__io___api___core___v1__PersistentVolumeClaimConditionType - @join__type(graph: INFRA_API) -{ - FileSystemResizePending @join__enumValue(graph: INFRA_API) - Resizing @join__enumValue(graph: INFRA_API) -} - -enum K8s__io___api___core___v1__PersistentVolumeClaimPhase - @join__type(graph: INFRA_API) -{ - Bound @join__enumValue(graph: INFRA_API) - Lost @join__enumValue(graph: INFRA_API) - Pending @join__enumValue(graph: INFRA_API) -} - -type K8s__io___api___core___v1__PersistentVolumeClaimSpec - @join__type(graph: INFRA_API) -{ - accessModes: [String!] - dataSource: K8s__io___api___core___v1__TypedLocalObjectReference - dataSourceRef: K8s__io___api___core___v1__TypedObjectReference - resources: K8s__io___api___core___v1__ResourceRequirements - selector: K8s__io___apimachinery___pkg___apis___meta___v1__LabelSelector - storageClassName: String - volumeMode: String - volumeName: String -} - -input K8s__io___api___core___v1__PersistentVolumeClaimSpecIn - @join__type(graph: INFRA_API) -{ - accessModes: [String!] - dataSource: K8s__io___api___core___v1__TypedLocalObjectReferenceIn - dataSourceRef: K8s__io___api___core___v1__TypedObjectReferenceIn - resources: K8s__io___api___core___v1__ResourceRequirementsIn - selector: K8s__io___apimachinery___pkg___apis___meta___v1__LabelSelectorIn - storageClassName: String - volumeMode: String - volumeName: String -} - -type K8s__io___api___core___v1__PersistentVolumeClaimStatus - @join__type(graph: INFRA_API) -{ - accessModes: [String!] - allocatedResources: Map - allocatedResourceStatuses: Map - capacity: Map - conditions: [K8s__io___api___core___v1__PersistentVolumeClaimCondition!] - phase: K8s__io___api___core___v1__PersistentVolumeClaimPhase -} - -input K8s__io___api___core___v1__PersistentVolumeClaimStatusIn - @join__type(graph: INFRA_API) -{ - accessModes: [String!] - allocatedResources: Map - allocatedResourceStatuses: Map - capacity: Map - conditions: [K8s__io___api___core___v1__PersistentVolumeClaimConditionIn!] - phase: K8s__io___api___core___v1__PersistentVolumeClaimPhase -} - -enum K8s__io___api___core___v1__PersistentVolumePhase - @join__type(graph: INFRA_API) -{ - Available @join__enumValue(graph: INFRA_API) - Bound @join__enumValue(graph: INFRA_API) - Failed @join__enumValue(graph: INFRA_API) - Pending @join__enumValue(graph: INFRA_API) - Released @join__enumValue(graph: INFRA_API) -} - -enum K8s__io___api___core___v1__PersistentVolumeReclaimPolicy - @join__type(graph: INFRA_API) -{ - Delete @join__enumValue(graph: INFRA_API) - Recycle @join__enumValue(graph: INFRA_API) - Retain @join__enumValue(graph: INFRA_API) -} - -type K8s__io___api___core___v1__PersistentVolumeSpec - @join__type(graph: INFRA_API) -{ - accessModes: [String!] - awsElasticBlockStore: K8s__io___api___core___v1__AWSElasticBlockStoreVolumeSource - azureDisk: K8s__io___api___core___v1__AzureDiskVolumeSource - azureFile: K8s__io___api___core___v1__AzureFilePersistentVolumeSource - capacity: Map - cephfs: K8s__io___api___core___v1__CephFSPersistentVolumeSource - cinder: K8s__io___api___core___v1__CinderPersistentVolumeSource - claimRef: K8s__io___api___core___v1__ObjectReference - csi: K8s__io___api___core___v1__CSIPersistentVolumeSource - fc: K8s__io___api___core___v1__FCVolumeSource - flexVolume: K8s__io___api___core___v1__FlexPersistentVolumeSource - flocker: K8s__io___api___core___v1__FlockerVolumeSource - gcePersistentDisk: K8s__io___api___core___v1__GCEPersistentDiskVolumeSource - glusterfs: K8s__io___api___core___v1__GlusterfsPersistentVolumeSource - hostPath: K8s__io___api___core___v1__HostPathVolumeSource - iscsi: K8s__io___api___core___v1__ISCSIPersistentVolumeSource - local: K8s__io___api___core___v1__LocalVolumeSource - mountOptions: [String!] - nfs: K8s__io___api___core___v1__NFSVolumeSource - nodeAffinity: K8s__io___api___core___v1__VolumeNodeAffinity - persistentVolumeReclaimPolicy: K8s__io___api___core___v1__PersistentVolumeReclaimPolicy - photonPersistentDisk: K8s__io___api___core___v1__PhotonPersistentDiskVolumeSource - portworxVolume: K8s__io___api___core___v1__PortworxVolumeSource - quobyte: K8s__io___api___core___v1__QuobyteVolumeSource - rbd: K8s__io___api___core___v1__RBDPersistentVolumeSource - scaleIO: K8s__io___api___core___v1__ScaleIOPersistentVolumeSource - storageClassName: String - storageos: K8s__io___api___core___v1__StorageOSPersistentVolumeSource - volumeMode: String - vsphereVolume: K8s__io___api___core___v1__VsphereVirtualDiskVolumeSource -} - -input K8s__io___api___core___v1__PersistentVolumeSpecIn - @join__type(graph: INFRA_API) -{ - accessModes: [String!] - awsElasticBlockStore: K8s__io___api___core___v1__AWSElasticBlockStoreVolumeSourceIn - azureDisk: K8s__io___api___core___v1__AzureDiskVolumeSourceIn - azureFile: K8s__io___api___core___v1__AzureFilePersistentVolumeSourceIn - capacity: Map - cephfs: K8s__io___api___core___v1__CephFSPersistentVolumeSourceIn - cinder: K8s__io___api___core___v1__CinderPersistentVolumeSourceIn - claimRef: K8s__io___api___core___v1__ObjectReferenceIn - csi: K8s__io___api___core___v1__CSIPersistentVolumeSourceIn - fc: K8s__io___api___core___v1__FCVolumeSourceIn - flexVolume: K8s__io___api___core___v1__FlexPersistentVolumeSourceIn - flocker: K8s__io___api___core___v1__FlockerVolumeSourceIn - gcePersistentDisk: K8s__io___api___core___v1__GCEPersistentDiskVolumeSourceIn - glusterfs: K8s__io___api___core___v1__GlusterfsPersistentVolumeSourceIn - hostPath: K8s__io___api___core___v1__HostPathVolumeSourceIn - iscsi: K8s__io___api___core___v1__ISCSIPersistentVolumeSourceIn - local: K8s__io___api___core___v1__LocalVolumeSourceIn - mountOptions: [String!] - nfs: K8s__io___api___core___v1__NFSVolumeSourceIn - nodeAffinity: K8s__io___api___core___v1__VolumeNodeAffinityIn - persistentVolumeReclaimPolicy: K8s__io___api___core___v1__PersistentVolumeReclaimPolicy - photonPersistentDisk: K8s__io___api___core___v1__PhotonPersistentDiskVolumeSourceIn - portworxVolume: K8s__io___api___core___v1__PortworxVolumeSourceIn - quobyte: K8s__io___api___core___v1__QuobyteVolumeSourceIn - rbd: K8s__io___api___core___v1__RBDPersistentVolumeSourceIn - scaleIO: K8s__io___api___core___v1__ScaleIOPersistentVolumeSourceIn - storageClassName: String - storageos: K8s__io___api___core___v1__StorageOSPersistentVolumeSourceIn - volumeMode: String - vsphereVolume: K8s__io___api___core___v1__VsphereVirtualDiskVolumeSourceIn -} - -type K8s__io___api___core___v1__PersistentVolumeStatus - @join__type(graph: INFRA_API) -{ - lastPhaseTransitionTime: Date - message: String - phase: K8s__io___api___core___v1__PersistentVolumePhase - reason: String -} - -input K8s__io___api___core___v1__PersistentVolumeStatusIn - @join__type(graph: INFRA_API) -{ - lastPhaseTransitionTime: Date - message: String - phase: K8s__io___api___core___v1__PersistentVolumePhase - reason: String -} - -type K8s__io___api___core___v1__PhotonPersistentDiskVolumeSource - @join__type(graph: INFRA_API) -{ - fsType: String - pdID: String! -} - -input K8s__io___api___core___v1__PhotonPersistentDiskVolumeSourceIn - @join__type(graph: INFRA_API) -{ - fsType: String - pdID: String! -} - -type K8s__io___api___core___v1__PodAffinity - @join__type(graph: INFRA_API) -{ - preferredDuringSchedulingIgnoredDuringExecution: [K8s__io___api___core___v1__WeightedPodAffinityTerm!] - requiredDuringSchedulingIgnoredDuringExecution: [K8s__io___api___core___v1__PodAffinityTerm!] -} - -input K8s__io___api___core___v1__PodAffinityIn - @join__type(graph: INFRA_API) -{ - preferredDuringSchedulingIgnoredDuringExecution: [K8s__io___api___core___v1__WeightedPodAffinityTermIn!] - requiredDuringSchedulingIgnoredDuringExecution: [K8s__io___api___core___v1__PodAffinityTermIn!] -} - -type K8s__io___api___core___v1__PodAffinityTerm - @join__type(graph: INFRA_API) -{ - labelSelector: K8s__io___apimachinery___pkg___apis___meta___v1__LabelSelector - namespaces: [String!] - namespaceSelector: K8s__io___apimachinery___pkg___apis___meta___v1__LabelSelector - topologyKey: String! -} - -input K8s__io___api___core___v1__PodAffinityTermIn - @join__type(graph: INFRA_API) -{ - labelSelector: K8s__io___apimachinery___pkg___apis___meta___v1__LabelSelectorIn - namespaces: [String!] - namespaceSelector: K8s__io___apimachinery___pkg___apis___meta___v1__LabelSelectorIn - topologyKey: String! -} - -type K8s__io___api___core___v1__PodAntiAffinity - @join__type(graph: INFRA_API) -{ - preferredDuringSchedulingIgnoredDuringExecution: [K8s__io___api___core___v1__WeightedPodAffinityTerm!] - requiredDuringSchedulingIgnoredDuringExecution: [K8s__io___api___core___v1__PodAffinityTerm!] -} - -input K8s__io___api___core___v1__PodAntiAffinityIn - @join__type(graph: INFRA_API) -{ - preferredDuringSchedulingIgnoredDuringExecution: [K8s__io___api___core___v1__WeightedPodAffinityTermIn!] - requiredDuringSchedulingIgnoredDuringExecution: [K8s__io___api___core___v1__PodAffinityTermIn!] -} - -type K8s__io___api___core___v1__PortworxVolumeSource - @join__type(graph: INFRA_API) -{ - fsType: String - readOnly: Boolean - volumeID: String! -} - -input K8s__io___api___core___v1__PortworxVolumeSourceIn - @join__type(graph: INFRA_API) -{ - fsType: String - readOnly: Boolean - volumeID: String! -} - -type K8s__io___api___core___v1__PreferredSchedulingTerm - @join__type(graph: INFRA_API) -{ - preference: K8s__io___api___core___v1__NodeSelectorTerm! - weight: Int! -} - -input K8s__io___api___core___v1__PreferredSchedulingTermIn - @join__type(graph: INFRA_API) -{ - preference: K8s__io___api___core___v1__NodeSelectorTermIn! - weight: Int! -} - -type K8s__io___api___core___v1__QuobyteVolumeSource - @join__type(graph: INFRA_API) -{ - group: String - readOnly: Boolean - registry: String! - tenant: String - user: String - volume: String! -} - -input K8s__io___api___core___v1__QuobyteVolumeSourceIn - @join__type(graph: INFRA_API) -{ - group: String - readOnly: Boolean - registry: String! - tenant: String - user: String - volume: String! -} - -type K8s__io___api___core___v1__RBDPersistentVolumeSource - @join__type(graph: INFRA_API) -{ - fsType: String - image: String! - keyring: String - monitors: [String!]! - pool: String - readOnly: Boolean - secretRef: K8s__io___api___core___v1__SecretReference - user: String -} - -input K8s__io___api___core___v1__RBDPersistentVolumeSourceIn - @join__type(graph: INFRA_API) -{ - fsType: String - image: String! - keyring: String - monitors: [String!]! - pool: String - readOnly: Boolean - secretRef: K8s__io___api___core___v1__SecretReferenceIn - user: String -} - -type K8s__io___api___core___v1__ResourceClaim - @join__type(graph: INFRA_API) -{ - name: String! -} - -input K8s__io___api___core___v1__ResourceClaimIn - @join__type(graph: INFRA_API) -{ - name: String! -} - -type K8s__io___api___core___v1__ResourceRequirements - @join__type(graph: INFRA_API) -{ - claims: [K8s__io___api___core___v1__ResourceClaim!] - limits: Map - requests: Map -} - -input K8s__io___api___core___v1__ResourceRequirementsIn - @join__type(graph: INFRA_API) -{ - claims: [K8s__io___api___core___v1__ResourceClaimIn!] - limits: Map - requests: Map -} - -type K8s__io___api___core___v1__ScaleIOPersistentVolumeSource - @join__type(graph: INFRA_API) -{ - fsType: String - gateway: String! - protectionDomain: String - readOnly: Boolean - secretRef: K8s__io___api___core___v1__SecretReference - sslEnabled: Boolean - storageMode: String - storagePool: String - system: String! - volumeName: String -} - -input K8s__io___api___core___v1__ScaleIOPersistentVolumeSourceIn - @join__type(graph: INFRA_API) -{ - fsType: String - gateway: String! - protectionDomain: String - readOnly: Boolean - secretRef: K8s__io___api___core___v1__SecretReferenceIn - sslEnabled: Boolean - storageMode: String - storagePool: String - system: String! - volumeName: String -} - -type K8s__io___api___core___v1__Secret - @join__type(graph: CONSOLE_API) -{ - apiVersion: String - data: Map - immutable: Boolean - kind: String - metadata: Metadata - stringData: Map - type: K8s__io___api___core___v1__SecretType -} - -type K8s__io___api___core___v1__SecretReference - @join__type(graph: INFRA_API) -{ - name: String - namespace: String -} - -input K8s__io___api___core___v1__SecretReferenceIn - @join__type(graph: INFRA_API) -{ - name: String - namespace: String -} - -enum K8s__io___api___core___v1__SecretType - @join__type(graph: CONSOLE_API) -{ - bootstrap__kubernetes__io___token @join__enumValue(graph: CONSOLE_API) - kubernetes__io___basic____auth @join__enumValue(graph: CONSOLE_API) - kubernetes__io___dockercfg @join__enumValue(graph: CONSOLE_API) - kubernetes__io___dockerconfigjson @join__enumValue(graph: CONSOLE_API) - kubernetes__io___service____account____token @join__enumValue(graph: CONSOLE_API) - kubernetes__io___ssh____auth @join__enumValue(graph: CONSOLE_API) - kubernetes__io___tls @join__enumValue(graph: CONSOLE_API) - Opaque @join__enumValue(graph: CONSOLE_API) -} - -type K8s__io___api___core___v1__StorageOSPersistentVolumeSource - @join__type(graph: INFRA_API) -{ - fsType: String - readOnly: Boolean - secretRef: K8s__io___api___core___v1__ObjectReference - volumeName: String - volumeNamespace: String -} - -input K8s__io___api___core___v1__StorageOSPersistentVolumeSourceIn - @join__type(graph: INFRA_API) -{ - fsType: String - readOnly: Boolean - secretRef: K8s__io___api___core___v1__ObjectReferenceIn - volumeName: String - volumeNamespace: String -} - -type K8s__io___api___core___v1__Taint - @join__type(graph: INFRA_API) -{ - effect: K8s__io___api___core___v1__TaintEffect! - key: String! - timeAdded: Date - value: String -} - -enum K8s__io___api___core___v1__TaintEffect - @join__type(graph: CONSOLE_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - NoExecute @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: INFRA_API) @join__enumValue(graph: IOT_CONSOLE_API) - NoSchedule @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: INFRA_API) @join__enumValue(graph: IOT_CONSOLE_API) - PreferNoSchedule @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: INFRA_API) @join__enumValue(graph: IOT_CONSOLE_API) -} - -input K8s__io___api___core___v1__TaintIn - @join__type(graph: INFRA_API) -{ - effect: K8s__io___api___core___v1__TaintEffect! - key: String! - timeAdded: Date - value: String -} - -type K8s__io___api___core___v1__Toleration - @join__type(graph: CONSOLE_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - effect: K8s__io___api___core___v1__TaintEffect - key: String - operator: K8s__io___api___core___v1__TolerationOperator - tolerationSeconds: Int - value: String -} - -input K8s__io___api___core___v1__TolerationIn - @join__type(graph: CONSOLE_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - effect: K8s__io___api___core___v1__TaintEffect - key: String - operator: K8s__io___api___core___v1__TolerationOperator - tolerationSeconds: Int - value: String -} - -enum K8s__io___api___core___v1__TolerationOperator - @join__type(graph: CONSOLE_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - Equal @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: INFRA_API) @join__enumValue(graph: IOT_CONSOLE_API) - Exists @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: INFRA_API) @join__enumValue(graph: IOT_CONSOLE_API) -} - -type K8s__io___api___core___v1__TopologySpreadConstraint - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - labelSelector: K8s__io___apimachinery___pkg___apis___meta___v1__LabelSelector - matchLabelKeys: [String!] - maxSkew: Int! - minDomains: Int - nodeAffinityPolicy: String - nodeTaintsPolicy: String - topologyKey: String! - whenUnsatisfiable: K8s__io___api___core___v1__UnsatisfiableConstraintAction! -} - -input K8s__io___api___core___v1__TopologySpreadConstraintIn - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - labelSelector: K8s__io___apimachinery___pkg___apis___meta___v1__LabelSelectorIn - matchLabelKeys: [String!] - maxSkew: Int! - minDomains: Int - nodeAffinityPolicy: String - nodeTaintsPolicy: String - topologyKey: String! - whenUnsatisfiable: K8s__io___api___core___v1__UnsatisfiableConstraintAction! -} - -type K8s__io___api___core___v1__TypedLocalObjectReference - @join__type(graph: INFRA_API) -{ - apiGroup: String - kind: String! - name: String! -} - -input K8s__io___api___core___v1__TypedLocalObjectReferenceIn - @join__type(graph: INFRA_API) -{ - apiGroup: String - kind: String! - name: String! -} - -type K8s__io___api___core___v1__TypedObjectReference - @join__type(graph: INFRA_API) -{ - apiGroup: String - kind: String! - name: String! - namespace: String -} - -input K8s__io___api___core___v1__TypedObjectReferenceIn - @join__type(graph: INFRA_API) -{ - apiGroup: String - kind: String! - name: String! - namespace: String -} - -enum K8s__io___api___core___v1__UnsatisfiableConstraintAction - @join__type(graph: CONSOLE_API) - @join__type(graph: IOT_CONSOLE_API) -{ - DoNotSchedule @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: IOT_CONSOLE_API) - ScheduleAnyway @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: IOT_CONSOLE_API) -} - -type K8s__io___api___core___v1__VolumeNodeAffinity - @join__type(graph: INFRA_API) -{ - required: K8s__io___api___core___v1__NodeSelector -} - -input K8s__io___api___core___v1__VolumeNodeAffinityIn - @join__type(graph: INFRA_API) -{ - required: K8s__io___api___core___v1__NodeSelectorIn -} - -type K8s__io___api___core___v1__VsphereVirtualDiskVolumeSource - @join__type(graph: INFRA_API) -{ - fsType: String - storagePolicyID: String - storagePolicyName: String - volumePath: String! -} - -input K8s__io___api___core___v1__VsphereVirtualDiskVolumeSourceIn - @join__type(graph: INFRA_API) -{ - fsType: String - storagePolicyID: String - storagePolicyName: String - volumePath: String! -} - -type K8s__io___api___core___v1__WeightedPodAffinityTerm - @join__type(graph: INFRA_API) -{ - podAffinityTerm: K8s__io___api___core___v1__PodAffinityTerm! - weight: Int! -} - -input K8s__io___api___core___v1__WeightedPodAffinityTermIn - @join__type(graph: INFRA_API) -{ - podAffinityTerm: K8s__io___api___core___v1__PodAffinityTermIn! - weight: Int! -} - -type K8s__io___api___storage___v1__VolumeAttachmentSource - @join__type(graph: INFRA_API) -{ - inlineVolumeSpec: K8s__io___api___core___v1__PersistentVolumeSpec - persistentVolumeName: String -} - -input K8s__io___api___storage___v1__VolumeAttachmentSourceIn - @join__type(graph: INFRA_API) -{ - inlineVolumeSpec: K8s__io___api___core___v1__PersistentVolumeSpecIn - persistentVolumeName: String -} - -type K8s__io___api___storage___v1__VolumeAttachmentSpec - @join__type(graph: INFRA_API) -{ - attacher: String! - nodeName: String! - source: K8s__io___api___storage___v1__VolumeAttachmentSource! -} - -input K8s__io___api___storage___v1__VolumeAttachmentSpecIn - @join__type(graph: INFRA_API) -{ - attacher: String! - nodeName: String! - source: K8s__io___api___storage___v1__VolumeAttachmentSourceIn! -} - -type K8s__io___api___storage___v1__VolumeAttachmentStatus - @join__type(graph: INFRA_API) -{ - attached: Boolean! - attachError: K8s__io___api___storage___v1__VolumeError - attachmentMetadata: Map - detachError: K8s__io___api___storage___v1__VolumeError -} - -input K8s__io___api___storage___v1__VolumeAttachmentStatusIn - @join__type(graph: INFRA_API) -{ - attached: Boolean! - attachError: K8s__io___api___storage___v1__VolumeErrorIn - attachmentMetadata: Map - detachError: K8s__io___api___storage___v1__VolumeErrorIn -} - -type K8s__io___api___storage___v1__VolumeError - @join__type(graph: INFRA_API) -{ - message: String - time: Date -} - -input K8s__io___api___storage___v1__VolumeErrorIn - @join__type(graph: INFRA_API) -{ - message: String - time: Date -} - -enum K8s__io___apimachinery___pkg___api___resource__Format - @join__type(graph: INFRA_API) -{ - BinarySI @join__enumValue(graph: INFRA_API) - DecimalExponent @join__enumValue(graph: INFRA_API) - DecimalSI @join__enumValue(graph: INFRA_API) -} - -type K8s__io___apimachinery___pkg___api___resource__Quantity - @join__type(graph: INFRA_API) -{ - Format: K8s__io___apimachinery___pkg___api___resource__Format! -} - -input K8s__io___apimachinery___pkg___api___resource__QuantityIn - @join__type(graph: INFRA_API) -{ - Format: K8s__io___apimachinery___pkg___api___resource__Format! -} - -type K8s__io___apimachinery___pkg___apis___meta___v1__LabelSelector - @join__type(graph: CONSOLE_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - matchExpressions: [K8s__io___apimachinery___pkg___apis___meta___v1__LabelSelectorRequirement!] - matchLabels: Map -} - -input K8s__io___apimachinery___pkg___apis___meta___v1__LabelSelectorIn - @join__type(graph: CONSOLE_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - matchExpressions: [K8s__io___apimachinery___pkg___apis___meta___v1__LabelSelectorRequirementIn!] - matchLabels: Map -} - -enum K8s__io___apimachinery___pkg___apis___meta___v1__LabelSelectorOperator - @join__type(graph: CONSOLE_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - DoesNotExist @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: INFRA_API) @join__enumValue(graph: IOT_CONSOLE_API) - Exists @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: INFRA_API) @join__enumValue(graph: IOT_CONSOLE_API) - In @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: INFRA_API) @join__enumValue(graph: IOT_CONSOLE_API) - NotIn @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: INFRA_API) @join__enumValue(graph: IOT_CONSOLE_API) -} - -type K8s__io___apimachinery___pkg___apis___meta___v1__LabelSelectorRequirement - @join__type(graph: CONSOLE_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - key: String! - operator: K8s__io___apimachinery___pkg___apis___meta___v1__LabelSelectorOperator! - values: [String!] -} - -input K8s__io___apimachinery___pkg___apis___meta___v1__LabelSelectorRequirementIn - @join__type(graph: CONSOLE_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - key: String! - operator: K8s__io___apimachinery___pkg___apis___meta___v1__LabelSelectorOperator! - values: [String!] -} - -scalar link__Import - -enum link__Purpose { - """ - `SECURITY` features provide metadata necessary to securely resolve fields. - """ - SECURITY - - """ - `EXECUTION` features provide metadata necessary for operation execution. - """ - EXECUTION -} - -type ManagedResource - @join__type(graph: CONSOLE_API) -{ - accountName: String! - apiVersion: String - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - enabled: Boolean - environmentName: String! - id: ID! - kind: String - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - metadata: Metadata - projectName: String! - recordVersion: Int! - spec: Github__com___kloudlite___operator___apis___crds___v1__ManagedResourceSpec! - status: Github__com___kloudlite___operator___pkg___operator__Status - syncedOutputSecretRef: K8s__io___api___core___v1__Secret - syncStatus: Github__com___kloudlite___api___pkg___types__SyncStatus! - updateTime: Date! -} - -type ManagedResourceEdge - @join__type(graph: CONSOLE_API) -{ - cursor: String! - node: ManagedResource! -} - -input ManagedResourceIn - @join__type(graph: CONSOLE_API) -{ - apiVersion: String - displayName: String! - enabled: Boolean - kind: String - metadata: MetadataIn - spec: Github__com___kloudlite___operator___apis___crds___v1__ManagedResourceSpecIn! -} - -type ManagedResourceKeyRef - @join__type(graph: CONSOLE_API) -{ - key: String! - mresName: String! -} - -input ManagedResourceKeyRefIn - @join__type(graph: CONSOLE_API) -{ - key: String! - mresName: String! -} - -type ManagedResourceKeyValueRef - @join__type(graph: CONSOLE_API) -{ - key: String! - mresName: String! - value: String! -} - -input ManagedResourceKeyValueRefIn - @join__type(graph: CONSOLE_API) -{ - key: String! - mresName: String! - value: String! -} - -type ManagedResourcePaginatedRecords - @join__type(graph: CONSOLE_API) -{ - edges: [ManagedResourceEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -scalar Map - @join__type(graph: ACCOUNT_API) - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) - -type MatchFilter - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - array: [Any!] - exact: Any - matchType: MatchFilterMatchType! - regex: String -} - -input MatchFilterIn - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - array: [Any!] - exact: Any - matchType: MatchFilterMatchType! - regex: String -} - -enum MatchFilterMatchType - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - array @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: CONTAINER_REGISTRY_API) @join__enumValue(graph: INFRA_API) @join__enumValue(graph: IOT_CONSOLE_API) - exact @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: CONTAINER_REGISTRY_API) @join__enumValue(graph: INFRA_API) @join__enumValue(graph: IOT_CONSOLE_API) - regex @join__enumValue(graph: CONSOLE_API) @join__enumValue(graph: CONTAINER_REGISTRY_API) @join__enumValue(graph: INFRA_API) @join__enumValue(graph: IOT_CONSOLE_API) -} - -type Metadata - @join__type(graph: ACCOUNT_API) - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - annotations: Map - creationTimestamp: Date! - deletionTimestamp: Date - generation: Int! - labels: Map - name: String! - namespace: String -} - -input MetadataIn - @join__type(graph: ACCOUNT_API) - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - annotations: Map - labels: Map - name: String! - namespace: String -} - -type MsvcTemplate - @join__type(graph: INFRA_API) -{ - category: String! - displayName: String! - items: [Github__com___kloudlite___api___apps___infra___internal___entities__MsvcTemplateEntry!]! -} - -type Mutation - @join__type(graph: ACCOUNT_API) - @join__type(graph: AUTH_API) - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - accounts_createAccount(account: AccountIn!): Account! @join__field(graph: ACCOUNT_API) - accounts_updateAccount(account: AccountIn!): Account! @join__field(graph: ACCOUNT_API) - accounts_deactivateAccount(accountName: String!): Boolean! @join__field(graph: ACCOUNT_API) - accounts_activateAccount(accountName: String!): Boolean! @join__field(graph: ACCOUNT_API) - accounts_deleteAccount(accountName: String!): Boolean! @join__field(graph: ACCOUNT_API) - accounts_inviteMembers(accountName: String!, invitations: [InvitationIn!]!): [Invitation!] @join__field(graph: ACCOUNT_API) - accounts_resendInviteMail(accountName: String!, invitationId: String!): Boolean! @join__field(graph: ACCOUNT_API) - accounts_deleteInvitation(accountName: String!, invitationId: String!): Boolean! @join__field(graph: ACCOUNT_API) - accounts_acceptInvitation(accountName: String!, inviteToken: String!): Boolean! @join__field(graph: ACCOUNT_API) - accounts_rejectInvitation(accountName: String!, inviteToken: String!): Boolean! @join__field(graph: ACCOUNT_API) - accounts_removeAccountMembership(accountName: String!, memberId: ID!): Boolean! @join__field(graph: ACCOUNT_API) - accounts_updateAccountMembership(accountName: String!, memberId: ID!, role: Github__com___kloudlite___api___apps___iam___types__Role!): Boolean! @join__field(graph: ACCOUNT_API) - auth_setRemoteAuthHeader(loginId: String!, authHeader: String): Boolean! @join__field(graph: AUTH_API) - auth_createRemoteLogin(secret: String): String! @join__field(graph: AUTH_API) - auth_login(email: String!, password: String!): Session @join__field(graph: AUTH_API) - auth_signup(name: String!, email: String!, password: String!): Session @join__field(graph: AUTH_API) - oAuth_login(provider: String!, code: String!, state: String): Session! @join__field(graph: AUTH_API) - oAuth_addLogin(provider: String!, state: String!, code: String!): Boolean! @join__field(graph: AUTH_API) - auth_logout: Boolean! @join__field(graph: AUTH_API) - auth_setMetadata(values: Json!): User! @join__field(graph: AUTH_API) - auth_clearMetadata: User! @join__field(graph: AUTH_API) - auth_verifyEmail(token: String!): Session! @join__field(graph: AUTH_API) - auth_resetPassword(token: String!, password: String!): Boolean! @join__field(graph: AUTH_API) - auth_requestResetPassword(email: String!): Boolean! @join__field(graph: AUTH_API) - auth_changeEmail(email: String!): Boolean! @join__field(graph: AUTH_API) - auth_resendVerificationEmail: Boolean! @join__field(graph: AUTH_API) - auth_changePassword(currentPassword: String!, newPassword: String!): Boolean! @join__field(graph: AUTH_API) - core_createProject(project: ProjectIn!): Project @join__field(graph: CONSOLE_API) - core_updateProject(project: ProjectIn!): Project @join__field(graph: CONSOLE_API) - core_deleteProject(name: String!): Boolean! @join__field(graph: CONSOLE_API) - core_createEnvironment(projectName: String!, env: EnvironmentIn!): Environment @join__field(graph: CONSOLE_API) - core_updateEnvironment(projectName: String!, env: EnvironmentIn!): Environment @join__field(graph: CONSOLE_API) - core_deleteEnvironment(projectName: String!, envName: String!): Boolean! @join__field(graph: CONSOLE_API) - core_cloneEnvironment(projectName: String!, sourceEnvName: String!, destinationEnvName: String!, displayName: String!, environmentRoutingMode: Github__com___kloudlite___operator___apis___crds___v1__EnvironmentRoutingMode!): Environment @join__field(graph: CONSOLE_API) - core_createImagePullSecret(projectName: String!, envName: String!, imagePullSecretIn: ImagePullSecretIn!): ImagePullSecret @join__field(graph: CONSOLE_API) - core_deleteImagePullSecret(projectName: String!, envName: String!, secretName: String!): Boolean! @join__field(graph: CONSOLE_API) - core_createApp(projectName: String!, envName: String!, app: AppIn!): App @join__field(graph: CONSOLE_API) - core_updateApp(projectName: String!, envName: String!, app: AppIn!): App @join__field(graph: CONSOLE_API) - core_deleteApp(projectName: String!, envName: String!, appName: String!): Boolean! @join__field(graph: CONSOLE_API) - core_interceptApp(projectName: String!, envName: String!, appname: String!, deviceName: String!, intercept: Boolean!): Boolean! @join__field(graph: CONSOLE_API) - core_createConfig(projectName: String!, envName: String!, config: ConfigIn!): Config @join__field(graph: CONSOLE_API) - core_updateConfig(projectName: String!, envName: String!, config: ConfigIn!): Config @join__field(graph: CONSOLE_API) - core_deleteConfig(projectName: String!, envName: String!, configName: String!): Boolean! @join__field(graph: CONSOLE_API) - core_createSecret(projectName: String!, envName: String!, secret: SecretIn!): Secret @join__field(graph: CONSOLE_API) - core_updateSecret(projectName: String!, envName: String!, secret: SecretIn!): Secret @join__field(graph: CONSOLE_API) - core_deleteSecret(projectName: String!, envName: String!, secretName: String!): Boolean! @join__field(graph: CONSOLE_API) - core_createRouter(projectName: String!, envName: String!, router: RouterIn!): Router @join__field(graph: CONSOLE_API) - core_updateRouter(projectName: String!, envName: String!, router: RouterIn!): Router @join__field(graph: CONSOLE_API) - core_deleteRouter(projectName: String!, envName: String!, routerName: String!): Boolean! @join__field(graph: CONSOLE_API) - core_createManagedResource(projectName: String!, envName: String!, mres: ManagedResourceIn!): ManagedResource @join__field(graph: CONSOLE_API) - core_updateManagedResource(projectName: String!, envName: String!, mres: ManagedResourceIn!): ManagedResource @join__field(graph: CONSOLE_API) - core_deleteManagedResource(projectName: String!, envName: String!, mresName: String!): Boolean! @join__field(graph: CONSOLE_API) - core_createProjectManagedService(projectName: String!, pmsvc: ProjectManagedServiceIn!): ProjectManagedService @join__field(graph: CONSOLE_API) - core_updateProjectManagedService(projectName: String!, pmsvc: ProjectManagedServiceIn!): ProjectManagedService @join__field(graph: CONSOLE_API) - core_deleteProjectManagedService(projectName: String!, pmsvcName: String!): Boolean! @join__field(graph: CONSOLE_API) - core_createVPNDevice(vpnDevice: ConsoleVPNDeviceIn!): ConsoleVPNDevice @join__field(graph: CONSOLE_API) - core_updateVPNDevice(vpnDevice: ConsoleVPNDeviceIn!): ConsoleVPNDevice @join__field(graph: CONSOLE_API) - core_updateVPNDevicePorts(deviceName: String!, ports: [PortIn!]!): Boolean! @join__field(graph: CONSOLE_API) - core_updateVPNDeviceEnv(deviceName: String!, projectName: String!, envName: String!): Boolean! @join__field(graph: CONSOLE_API) - core_updateVpnDeviceNs(deviceName: String!, ns: String!): Boolean! @join__field(graph: CONSOLE_API) - core_updateVpnClusterName(deviceName: String!, clusterName: String!): Boolean! @join__field(graph: CONSOLE_API) - core_deleteVPNDevice(deviceName: String!): Boolean! @join__field(graph: CONSOLE_API) - cr_createRepo(repository: RepositoryIn!): Repository @join__field(graph: CONTAINER_REGISTRY_API) - cr_createCred(credential: CredentialIn!): Credential @join__field(graph: CONTAINER_REGISTRY_API) - cr_deleteRepo(name: String!): Boolean! @join__field(graph: CONTAINER_REGISTRY_API) - cr_deleteCred(username: String!): Boolean! @join__field(graph: CONTAINER_REGISTRY_API) - cr_deleteDigest(repoName: String!, digest: String!): Boolean! @join__field(graph: CONTAINER_REGISTRY_API) - cr_addBuild(build: BuildIn!): Build @join__field(graph: CONTAINER_REGISTRY_API) - cr_updateBuild(id: ID!, build: BuildIn!): Build @join__field(graph: CONTAINER_REGISTRY_API) - cr_deleteBuild(id: ID!): Boolean! @join__field(graph: CONTAINER_REGISTRY_API) - cr_triggerBuild(id: ID!): Boolean! @join__field(graph: CONTAINER_REGISTRY_API) - infra_createCluster(cluster: ClusterIn!): Cluster @join__field(graph: INFRA_API) - infra_updateCluster(cluster: ClusterIn!): Cluster @join__field(graph: INFRA_API) - infra_deleteCluster(name: String!): Boolean! @join__field(graph: INFRA_API) - infra_createBYOKCluster(cluster: BYOKClusterIn!): BYOKCluster @join__field(graph: INFRA_API) - infra_upgradeHelmKloudliteAgent(clusterName: String!): Boolean! @join__field(graph: INFRA_API) - infra_createProviderSecret(secret: CloudProviderSecretIn!): CloudProviderSecret @join__field(graph: INFRA_API) - infra_updateProviderSecret(secret: CloudProviderSecretIn!): CloudProviderSecret @join__field(graph: INFRA_API) - infra_deleteProviderSecret(secretName: String!): Boolean! @join__field(graph: INFRA_API) - infra_createDomainEntry(domainEntry: DomainEntryIn!): DomainEntry @join__field(graph: INFRA_API) - infra_updateDomainEntry(domainEntry: DomainEntryIn!): DomainEntry @join__field(graph: INFRA_API) - infra_deleteDomainEntry(domainName: String!): Boolean! @join__field(graph: INFRA_API) - infra_createNodePool(clusterName: String!, pool: NodePoolIn!): NodePool @join__field(graph: INFRA_API) - infra_updateNodePool(clusterName: String!, pool: NodePoolIn!): NodePool @join__field(graph: INFRA_API) - infra_deleteNodePool(clusterName: String!, poolName: String!): Boolean! @join__field(graph: INFRA_API) - infra_createClusterManagedService(clusterName: String!, service: ClusterManagedServiceIn!): ClusterManagedService @join__field(graph: INFRA_API) - infra_updateClusterManagedService(clusterName: String!, service: ClusterManagedServiceIn!): ClusterManagedService @join__field(graph: INFRA_API) - infra_deleteClusterManagedService(clusterName: String!, serviceName: String!): Boolean! @join__field(graph: INFRA_API) - infra_createHelmRelease(clusterName: String!, release: HelmReleaseIn!): HelmRelease @join__field(graph: INFRA_API) - infra_updateHelmRelease(clusterName: String!, release: HelmReleaseIn!): HelmRelease @join__field(graph: INFRA_API) - infra_deleteHelmRelease(clusterName: String!, releaseName: String!): Boolean! @join__field(graph: INFRA_API) - infra_deletePV(clusterName: String!, pvName: String!): Boolean! @join__field(graph: INFRA_API) - iot_createProject(project: IOTProjectIn!): IOTProject @join__field(graph: IOT_CONSOLE_API) - iot_updateProject(project: IOTProjectIn!): IOTProject @join__field(graph: IOT_CONSOLE_API) - iot_deleteProject(name: String!): Boolean! @join__field(graph: IOT_CONSOLE_API) - iot_createEnvironment(projectName: String!, env: IOTEnvironmentIn!): IOTEnvironment @join__field(graph: IOT_CONSOLE_API) - iot_updateEnvironment(projectName: String!, env: IOTEnvironmentIn!): IOTEnvironment @join__field(graph: IOT_CONSOLE_API) - iot_deleteEnvironment(projectName: String!, name: String!): Boolean! @join__field(graph: IOT_CONSOLE_API) - iot_createDevice(projectName: String!, envName: String!, device: IOTDeviceIn!): IOTDevice @join__field(graph: IOT_CONSOLE_API) - iot_updateDevice(projectName: String!, envName: String!, device: IOTDeviceIn!): IOTDevice @join__field(graph: IOT_CONSOLE_API) - iot_deleteDevice(projectName: String!, envName: String!, name: String!): Boolean! @join__field(graph: IOT_CONSOLE_API) - iot_createDeviceBlueprint(projectName: String!, envName: String!, deviceBlueprint: IOTDeviceBlueprintIn!): IOTDeviceBlueprint @join__field(graph: IOT_CONSOLE_API) - iot_updateDeviceBlueprint(projectName: String!, envName: String!, deviceBlueprint: IOTDeviceBlueprintIn!): IOTDeviceBlueprint @join__field(graph: IOT_CONSOLE_API) - iot_deleteDeviceBlueprint(projectName: String!, envName: String!, name: String!): Boolean! @join__field(graph: IOT_CONSOLE_API) - iot_createDeployment(projectName: String!, envName: String!, deployment: IOTDeploymentIn!): IOTDeployment @join__field(graph: IOT_CONSOLE_API) - iot_updateDeployment(projectName: String!, envName: String!, deployment: IOTDeploymentIn!): IOTDeployment @join__field(graph: IOT_CONSOLE_API) - iot_deleteDeployment(projectName: String!, envName: String!, name: String!): Boolean! @join__field(graph: IOT_CONSOLE_API) - iot_createApp(projectName: String!, envName: String!, deviceBlueprintName: String!, app: IOTAppIn!): IOTApp @join__field(graph: IOT_CONSOLE_API) - iot_updateApp(projectName: String!, envName: String!, deviceBlueprintName: String!, app: IOTAppIn!): IOTApp @join__field(graph: IOT_CONSOLE_API) - iot_deleteApp(projectName: String!, envName: String!, deviceBlueprintName: String!, name: String!): Boolean! @join__field(graph: IOT_CONSOLE_API) -} - -type Namespace - @join__type(graph: INFRA_API) -{ - accountName: String! - apiVersion: String - clusterName: String! - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - id: ID! - kind: String - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - metadata: Metadata - recordVersion: Int! - spec: K8s__io___api___core___v1__NamespaceSpec - status: K8s__io___api___core___v1__NamespaceStatus - syncStatus: Github__com___kloudlite___api___pkg___types__SyncStatus! - updateTime: Date! -} - -type NamespaceEdge - @join__type(graph: INFRA_API) -{ - cursor: String! - node: Namespace! -} - -input NamespaceIn - @join__type(graph: INFRA_API) -{ - apiVersion: String - kind: String - metadata: MetadataIn - spec: K8s__io___api___core___v1__NamespaceSpecIn - status: K8s__io___api___core___v1__NamespaceStatusIn -} - -type NamespacePaginatedRecords - @join__type(graph: INFRA_API) -{ - edges: [NamespaceEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type Node - @join__type(graph: INFRA_API) -{ - accountName: String! - apiVersion: String - clusterName: String! - creationTime: Date! - id: ID! - kind: String - markedForDeletion: Boolean - metadata: Metadata - recordVersion: Int! - spec: Github__com___kloudlite___operator___apis___clusters___v1__NodeSpec! - status: Github__com___kloudlite___operator___pkg___operator__Status - syncStatus: Github__com___kloudlite___api___pkg___types__SyncStatus! - updateTime: Date! -} - -type NodeEdge - @join__type(graph: INFRA_API) -{ - cursor: String! - node: Node! -} - -input NodeIn - @join__type(graph: INFRA_API) -{ - apiVersion: String - kind: String - metadata: MetadataIn - spec: Github__com___kloudlite___operator___apis___clusters___v1__NodeSpecIn! -} - -type NodePaginatedRecords - @join__type(graph: INFRA_API) -{ - edges: [NodeEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type NodePool - @join__type(graph: INFRA_API) -{ - accountName: String! - apiVersion: String - clusterName: String! - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - id: ID! - kind: String - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - metadata: Metadata - recordVersion: Int! - spec: Github__com___kloudlite___operator___apis___clusters___v1__NodePoolSpec! - status: Github__com___kloudlite___operator___pkg___operator__Status - syncStatus: Github__com___kloudlite___api___pkg___types__SyncStatus! - updateTime: Date! -} - -type NodePoolEdge - @join__type(graph: INFRA_API) -{ - cursor: String! - node: NodePool! -} - -input NodePoolIn - @join__type(graph: INFRA_API) -{ - apiVersion: String - displayName: String! - kind: String - metadata: MetadataIn - spec: Github__com___kloudlite___operator___apis___clusters___v1__NodePoolSpecIn! -} - -type NodePoolPaginatedRecords - @join__type(graph: INFRA_API) -{ - edges: [NodePoolEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type OAuthProviderStatus - @join__type(graph: AUTH_API) -{ - provider: String! - enabled: Boolean! -} - -type PageInfo - @join__type(graph: ACCOUNT_API) - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - endCursor: String - hasNextPage: Boolean - hasPreviousPage: Boolean - startCursor: String -} - -type Pagination - @join__type(graph: CONTAINER_REGISTRY_API) -{ - page: Int - per_page: Int -} - -input PaginationIn - @join__type(graph: CONTAINER_REGISTRY_API) -{ - page: Int - per_page: Int -} - -type PersistentVolume - @join__type(graph: INFRA_API) -{ - accountName: String! - apiVersion: String - clusterName: String! - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - id: ID! - kind: String - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - metadata: Metadata - recordVersion: Int! - spec: K8s__io___api___core___v1__PersistentVolumeSpec - status: K8s__io___api___core___v1__PersistentVolumeStatus - syncStatus: Github__com___kloudlite___api___pkg___types__SyncStatus! - updateTime: Date! -} - -type PersistentVolumeClaim - @join__type(graph: INFRA_API) -{ - accountName: String! - apiVersion: String - clusterName: String! - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - id: ID! - kind: String - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - metadata: Metadata - recordVersion: Int! - spec: K8s__io___api___core___v1__PersistentVolumeClaimSpec - status: K8s__io___api___core___v1__PersistentVolumeClaimStatus - syncStatus: Github__com___kloudlite___api___pkg___types__SyncStatus! - updateTime: Date! -} - -type PersistentVolumeClaimEdge - @join__type(graph: INFRA_API) -{ - cursor: String! - node: PersistentVolumeClaim! -} - -type PersistentVolumeClaimPaginatedRecords - @join__type(graph: INFRA_API) -{ - edges: [PersistentVolumeClaimEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type PersistentVolumeEdge - @join__type(graph: INFRA_API) -{ - cursor: String! - node: PersistentVolume! -} - -input PersistentVolumeIn - @join__type(graph: INFRA_API) -{ - apiVersion: String - kind: String - metadata: MetadataIn - spec: K8s__io___api___core___v1__PersistentVolumeSpecIn - status: K8s__io___api___core___v1__PersistentVolumeStatusIn -} - -type PersistentVolumePaginatedRecords - @join__type(graph: INFRA_API) -{ - edges: [PersistentVolumeEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type Port - @join__type(graph: CONSOLE_API) -{ - port: Int - targetPort: Int -} - -input PortIn - @join__type(graph: CONSOLE_API) -{ - port: Int - targetPort: Int -} - -type Project - @join__type(graph: CONSOLE_API) -{ - accountName: String! - apiVersion: String - clusterName: String - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - id: ID! - kind: String - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - metadata: Metadata - recordVersion: Int! - spec: Github__com___kloudlite___operator___apis___crds___v1__ProjectSpec! - status: Github__com___kloudlite___operator___pkg___operator__Status - syncStatus: Github__com___kloudlite___api___pkg___types__SyncStatus! - updateTime: Date! -} - -type ProjectEdge - @join__type(graph: CONSOLE_API) -{ - cursor: String! - node: Project! -} - -input ProjectIn - @join__type(graph: CONSOLE_API) -{ - apiVersion: String - clusterName: String - displayName: String! - kind: String - metadata: MetadataIn - spec: Github__com___kloudlite___operator___apis___crds___v1__ProjectSpecIn! -} - -type ProjectManagedService - @join__type(graph: CONSOLE_API) -{ - accountName: String! - apiVersion: String - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - id: ID! - kind: String - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - metadata: Metadata - projectName: String! - recordVersion: Int! - spec: Github__com___kloudlite___operator___apis___crds___v1__ProjectManagedServiceSpec - status: Github__com___kloudlite___operator___pkg___operator__Status - syncStatus: Github__com___kloudlite___api___pkg___types__SyncStatus! - updateTime: Date! -} - -type ProjectManagedServiceEdge - @join__type(graph: CONSOLE_API) -{ - cursor: String! - node: ProjectManagedService! -} - -input ProjectManagedServiceIn - @join__type(graph: CONSOLE_API) -{ - apiVersion: String - displayName: String! - kind: String - metadata: MetadataIn - spec: Github__com___kloudlite___operator___apis___crds___v1__ProjectManagedServiceSpecIn -} - -type ProjectManagedServicePaginatedRecords - @join__type(graph: CONSOLE_API) -{ - edges: [ProjectManagedServiceEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type ProjectPaginatedRecords - @join__type(graph: CONSOLE_API) -{ - edges: [ProjectEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -scalar ProviderDetail - @join__type(graph: AUTH_API) - -type Query - @join__type(graph: ACCOUNT_API) - @join__type(graph: AUTH_API) - @join__type(graph: CONSOLE_API) - @join__type(graph: CONTAINER_REGISTRY_API) - @join__type(graph: INFRA_API) - @join__type(graph: IOT_CONSOLE_API) -{ - accounts_listAccounts: [Account] @join__field(graph: ACCOUNT_API) - accounts_getAccount(accountName: String!): Account @join__field(graph: ACCOUNT_API) - accounts_resyncAccount(accountName: String!): Boolean! @join__field(graph: ACCOUNT_API) - accounts_listInvitations(accountName: String!): [Invitation!] @join__field(graph: ACCOUNT_API) - accounts_getInvitation(accountName: String!, invitationId: String!): Invitation @join__field(graph: ACCOUNT_API) - accounts_listInvitationsForUser(onlyPending: Boolean!): [Invitation!] @join__field(graph: ACCOUNT_API) - accounts_checkNameAvailability(name: String!): AccountsCheckNameAvailabilityOutput! @join__field(graph: ACCOUNT_API) - accounts_listMembershipsForUser: [AccountMembership!] @join__field(graph: ACCOUNT_API) - accounts_listMembershipsForAccount(accountName: String!, role: Github__com___kloudlite___api___apps___iam___types__Role): [AccountMembership!] @join__field(graph: ACCOUNT_API) - accounts_getAccountMembership(accountName: String!): AccountMembership @join__field(graph: ACCOUNT_API) - accounts_ensureKloudliteRegistryPullSecrets(accountName: String!): Boolean! @join__field(graph: ACCOUNT_API) - auth_me: User @join__field(graph: AUTH_API) - auth_findByEmail(email: String!): User @join__field(graph: AUTH_API) - oAuth_requestLogin(provider: String!, state: String): URL! @join__field(graph: AUTH_API) - auth_getRemoteLogin(loginId: String!, secret: String!): RemoteLogin @join__field(graph: AUTH_API) - auth_listOAuthProviders: [OAuthProviderStatus!] @join__field(graph: AUTH_API) - core_checkNameAvailability(projectName: String, envName: String, resType: ConsoleResType!, name: String!): ConsoleCheckNameAvailabilityOutput! @join__field(graph: CONSOLE_API) - core_listProjects(search: SearchProjects, pq: CursorPaginationIn): ProjectPaginatedRecords @join__field(graph: CONSOLE_API) - core_getProject(name: String!): Project @join__field(graph: CONSOLE_API) - core_resyncProject(name: String!): Boolean! @join__field(graph: CONSOLE_API) - core_listEnvironments(projectName: String!, search: SearchEnvironments, pq: CursorPaginationIn): EnvironmentPaginatedRecords @join__field(graph: CONSOLE_API) - core_getEnvironment(projectName: String!, name: String!): Environment @join__field(graph: CONSOLE_API) - core_resyncEnvironment(projectName: String!, name: String!): Boolean! @join__field(graph: CONSOLE_API) - core_listImagePullSecrets(projectName: String!, envName: String!, search: SearchImagePullSecrets, pq: CursorPaginationIn): ImagePullSecretPaginatedRecords @join__field(graph: CONSOLE_API) - core_getImagePullSecret(projectName: String!, envName: String!, name: String!): ImagePullSecret @join__field(graph: CONSOLE_API) - core_resyncImagePullSecret(projectName: String!, envName: String!, name: String!): Boolean! @join__field(graph: CONSOLE_API) - core_listApps(projectName: String!, envName: String!, search: SearchApps, pq: CursorPaginationIn): AppPaginatedRecords @join__field(graph: CONSOLE_API) - core_getApp(projectName: String!, envName: String!, name: String!): App @join__field(graph: CONSOLE_API) - core_resyncApp(projectName: String!, envName: String!, name: String!): Boolean! @join__field(graph: CONSOLE_API) - core_restartApp(projectName: String!, envName: String!, appName: String!): Boolean! @join__field(graph: CONSOLE_API) - core_getConfigValues(projectName: String!, envName: String!, queries: [ConfigKeyRefIn]): [ConfigKeyValueRef!] @join__field(graph: CONSOLE_API) - core_listConfigs(projectName: String!, envName: String!, search: SearchConfigs, pq: CursorPaginationIn): ConfigPaginatedRecords @join__field(graph: CONSOLE_API) - core_getConfig(projectName: String!, envName: String!, name: String!): Config @join__field(graph: CONSOLE_API) - core_resyncConfig(projectName: String!, envName: String!, name: String!): Boolean! @join__field(graph: CONSOLE_API) - core_getSecretValues(projectName: String!, envName: String!, queries: [SecretKeyRefIn!]): [SecretKeyValueRef!] @join__field(graph: CONSOLE_API) - core_listSecrets(projectName: String!, envName: String!, search: SearchSecrets, pq: CursorPaginationIn): SecretPaginatedRecords @join__field(graph: CONSOLE_API) - core_getSecret(projectName: String!, envName: String!, name: String!): Secret @join__field(graph: CONSOLE_API) - core_resyncSecret(projectName: String!, envName: String!, name: String!): Boolean! @join__field(graph: CONSOLE_API) - core_listRouters(projectName: String!, envName: String!, search: SearchRouters, pq: CursorPaginationIn): RouterPaginatedRecords @join__field(graph: CONSOLE_API) - core_getRouter(projectName: String!, envName: String!, name: String!): Router @join__field(graph: CONSOLE_API) - core_resyncRouter(projectName: String!, envName: String!, name: String!): Boolean! @join__field(graph: CONSOLE_API) - core_getManagedResouceOutputKeys(projectName: String!, envName: String!, name: String!): [String!]! @join__field(graph: CONSOLE_API) - core_getManagedResouceOutputKeyValues(projectName: String!, envName: String!, keyrefs: [ManagedResourceKeyRefIn]): [ManagedResourceKeyValueRef!]! @join__field(graph: CONSOLE_API) - core_listManagedResources(projectName: String!, envName: String!, search: SearchManagedResources, pq: CursorPaginationIn): ManagedResourcePaginatedRecords @join__field(graph: CONSOLE_API) - core_getManagedResource(projectName: String!, envName: String!, name: String!): ManagedResource @join__field(graph: CONSOLE_API) - core_resyncManagedResource(projectName: String!, envName: String!, name: String!): Boolean! @join__field(graph: CONSOLE_API) - core_listProjectManagedServices(projectName: String!, search: SearchProjectManagedService, pq: CursorPaginationIn): ProjectManagedServicePaginatedRecords @join__field(graph: CONSOLE_API) - core_getProjectManagedService(projectName: String!, name: String!): ProjectManagedService @join__field(graph: CONSOLE_API) - core_resyncProjectManagedService(projectName: String!, name: String!): Boolean! @join__field(graph: CONSOLE_API) - core_restartProjectManagedService(projectName: String!, name: String!): Boolean! @join__field(graph: CONSOLE_API) - core_listVPNDevices(search: CoreSearchVPNDevices, pq: CursorPaginationIn): ConsoleVPNDevicePaginatedRecords @join__field(graph: CONSOLE_API) - core_listVPNDevicesForUser: [ConsoleVPNDevice!] @join__field(graph: CONSOLE_API) - core_getVPNDevice(name: String!): ConsoleVPNDevice @join__field(graph: CONSOLE_API) - cr_listRepos(search: SearchRepos, pagination: CursorPaginationIn): RepositoryPaginatedRecords @join__field(graph: CONTAINER_REGISTRY_API) - cr_listCreds(search: SearchCreds, pagination: CursorPaginationIn): CredentialPaginatedRecords @join__field(graph: CONTAINER_REGISTRY_API) - cr_listDigests(repoName: String!, search: SearchRepos, pagination: CursorPaginationIn): DigestPaginatedRecords @join__field(graph: CONTAINER_REGISTRY_API) - cr_getCredToken(username: String!): String! @join__field(graph: CONTAINER_REGISTRY_API) - cr_checkUserNameAvailability(name: String!): CRCheckNameAvailabilityOutput! @join__field(graph: CONTAINER_REGISTRY_API) - cr_getBuild(id: ID!): Build @join__field(graph: CONTAINER_REGISTRY_API) - cr_listBuilds(repoName: String!, search: SearchBuilds, pagination: CursorPaginationIn): BuildPaginatedRecords @join__field(graph: CONTAINER_REGISTRY_API) - cr_listGithubInstallations(pagination: PaginationIn): [GithubInstallation!] @join__field(graph: CONTAINER_REGISTRY_API) - cr_listGithubRepos(installationId: Int!, pagination: PaginationIn): GithubListRepository @join__field(graph: CONTAINER_REGISTRY_API) - cr_searchGithubRepos(organization: String!, search: String!, pagination: PaginationIn): GithubSearchRepository @join__field(graph: CONTAINER_REGISTRY_API) - cr_listGithubBranches(repoUrl: String!, pagination: PaginationIn): [GitBranch!] @join__field(graph: CONTAINER_REGISTRY_API) - cr_listGitlabGroups(query: String, pagination: PaginationIn): [GitlabGroup!] @join__field(graph: CONTAINER_REGISTRY_API) - cr_listGitlabRepositories(groupId: String!, query: String, pagination: PaginationIn): [GitlabProject!] @join__field(graph: CONTAINER_REGISTRY_API) - cr_listGitlabBranches(repoId: String!, query: String, pagination: PaginationIn): [GitBranch!] @join__field(graph: CONTAINER_REGISTRY_API) - cr_listBuildRuns(search: SearchBuildRuns, pq: CursorPaginationIn): BuildRunPaginatedRecords @join__field(graph: CONTAINER_REGISTRY_API) - cr_getBuildRun(buildID: ID!, buildRunName: String!): BuildRun @join__field(graph: CONTAINER_REGISTRY_API) - infra_checkNameAvailability(resType: ResType!, clusterName: String, name: String!): CheckNameAvailabilityOutput! @join__field(graph: INFRA_API) - infra_listClusters(search: SearchCluster, pagination: CursorPaginationIn): ClusterPaginatedRecords @join__field(graph: INFRA_API) - infra_getCluster(name: String!): Cluster @join__field(graph: INFRA_API) - infra_listNodePools(clusterName: String!, search: SearchNodepool, pagination: CursorPaginationIn): NodePoolPaginatedRecords @join__field(graph: INFRA_API) - infra_getNodePool(clusterName: String!, poolName: String!): NodePool @join__field(graph: INFRA_API) - infra_listProviderSecrets(search: SearchProviderSecret, pagination: CursorPaginationIn): CloudProviderSecretPaginatedRecords @join__field(graph: INFRA_API) - infra_getProviderSecret(name: String!): CloudProviderSecret @join__field(graph: INFRA_API) - infra_listDomainEntries(search: SearchDomainEntry, pagination: CursorPaginationIn): DomainEntryPaginatedRecords @join__field(graph: INFRA_API) - infra_getDomainEntry(domainName: String!): DomainEntry @join__field(graph: INFRA_API) - infra_checkAwsAccess(cloudproviderName: String!): CheckAwsAccessOutput! @join__field(graph: INFRA_API) - infra_listClusterManagedServices(clusterName: String!, search: SearchClusterManagedService, pagination: CursorPaginationIn): ClusterManagedServicePaginatedRecords @join__field(graph: INFRA_API) - infra_getClusterManagedService(clusterName: String!, name: String!): ClusterManagedService @join__field(graph: INFRA_API) - infra_listHelmReleases(clusterName: String!, search: SearchHelmRelease, pagination: CursorPaginationIn): HelmReleasePaginatedRecords @join__field(graph: INFRA_API) - infra_getHelmRelease(clusterName: String!, name: String!): HelmRelease @join__field(graph: INFRA_API) - infra_listManagedServiceTemplates: [MsvcTemplate!] @join__field(graph: INFRA_API) - infra_getManagedServiceTemplate(category: String!, name: String!): Github__com___kloudlite___api___apps___infra___internal___entities__MsvcTemplateEntry @join__field(graph: INFRA_API) - infra_listPVCs(clusterName: String!, search: SearchPersistentVolumeClaims, pq: CursorPaginationIn): PersistentVolumeClaimPaginatedRecords @join__field(graph: INFRA_API) - infra_getPVC(clusterName: String!, name: String!): PersistentVolumeClaim @join__field(graph: INFRA_API) - infra_listNamespaces(clusterName: String!, search: SearchNamespaces, pq: CursorPaginationIn): NamespacePaginatedRecords @join__field(graph: INFRA_API) - infra_getNamespace(clusterName: String!, name: String!): Namespace @join__field(graph: INFRA_API) - infra_listPVs(clusterName: String!, search: SearchPersistentVolumes, pq: CursorPaginationIn): PersistentVolumePaginatedRecords @join__field(graph: INFRA_API) - infra_getPV(clusterName: String!, name: String!): PersistentVolume @join__field(graph: INFRA_API) - infra_listVolumeAttachments(clusterName: String!, search: SearchVolumeAttachments, pq: CursorPaginationIn): VolumeAttachmentPaginatedRecords @join__field(graph: INFRA_API) - infra_getVolumeAttachment(clusterName: String!, name: String!): VolumeAttachment @join__field(graph: INFRA_API) - iot_listProjects(search: SearchIOTProjects, pq: CursorPaginationIn): IOTProjectPaginatedRecords @join__field(graph: IOT_CONSOLE_API) - iot_getProject(name: String!): IOTProject @join__field(graph: IOT_CONSOLE_API) - iot_listEnvironments(projectName: String!, search: SearchIOTEnvironments, pq: CursorPaginationIn): IOTEnvironmentPaginatedRecords @join__field(graph: IOT_CONSOLE_API) - iot_getEnvironment(projectName: String!, name: String!): IOTEnvironment @join__field(graph: IOT_CONSOLE_API) - iot_listDevices(projectName: String!, envName: String!, search: SearchIOTDevices, pq: CursorPaginationIn): IOTDevicePaginatedRecords @join__field(graph: IOT_CONSOLE_API) - iot_getDevice(projectName: String!, envName: String!, name: String!): IOTDevice @join__field(graph: IOT_CONSOLE_API) - iot_listDeviceBlueprints(projectName: String!, envName: String!, search: SearchIOTDeviceBlueprints, pq: CursorPaginationIn): IOTDeviceBlueprintPaginatedRecords @join__field(graph: IOT_CONSOLE_API) - iot_getDeviceBlueprint(projectName: String!, envName: String!, name: String!): IOTDeviceBlueprint @join__field(graph: IOT_CONSOLE_API) - iot_listDeployments(projectName: String!, envName: String!, search: SearchIOTDeployments, pq: CursorPaginationIn): IOTDeploymentPaginatedRecords @join__field(graph: IOT_CONSOLE_API) - iot_getDeployment(projectName: String!, envName: String!, name: String!): IOTDeployment @join__field(graph: IOT_CONSOLE_API) - iot_listApps(projectName: String!, envName: String!, deviceBlueprintName: String!, search: SearchIOTApps, pq: CursorPaginationIn): IOTAppPaginatedRecords @join__field(graph: IOT_CONSOLE_API) - iot_getApp(projectName: String!, envName: String!, deviceBlueprintName: String!, name: String!): IOTApp @join__field(graph: IOT_CONSOLE_API) -} - -type RemoteLogin - @join__type(graph: AUTH_API) -{ - status: String! - authHeader: String -} - -type Repository - @join__type(graph: CONTAINER_REGISTRY_API) -{ - accountName: String! - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - id: ID! - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - name: String! - recordVersion: Int! - updateTime: Date! -} - -type RepositoryEdge - @join__type(graph: CONTAINER_REGISTRY_API) -{ - cursor: String! - node: Repository! -} - -input RepositoryIn - @join__type(graph: CONTAINER_REGISTRY_API) -{ - name: String! -} - -type RepositoryPaginatedRecords - @join__type(graph: CONTAINER_REGISTRY_API) -{ - edges: [RepositoryEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -enum ResType - @join__type(graph: INFRA_API) -{ - cluster @join__enumValue(graph: INFRA_API) - providersecret @join__enumValue(graph: INFRA_API) - nodepool @join__enumValue(graph: INFRA_API) - helm_release @join__enumValue(graph: INFRA_API) -} - -type Router - @join__type(graph: CONSOLE_API) -{ - accountName: String! - apiVersion: String - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - enabled: Boolean - environmentName: String! - id: ID! - kind: String - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - metadata: Metadata - projectName: String! - recordVersion: Int! - spec: Github__com___kloudlite___operator___apis___crds___v1__RouterSpec! - status: Github__com___kloudlite___operator___pkg___operator__Status - syncStatus: Github__com___kloudlite___api___pkg___types__SyncStatus! - updateTime: Date! -} - -type RouterEdge - @join__type(graph: CONSOLE_API) -{ - cursor: String! - node: Router! -} - -input RouterIn - @join__type(graph: CONSOLE_API) -{ - apiVersion: String - displayName: String! - enabled: Boolean - kind: String - metadata: MetadataIn - spec: Github__com___kloudlite___operator___apis___crds___v1__RouterSpecIn! -} - -type RouterPaginatedRecords - @join__type(graph: CONSOLE_API) -{ - edges: [RouterEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -input SearchApps - @join__type(graph: CONSOLE_API) -{ - text: MatchFilterIn - isReady: MatchFilterIn - markedForDeletion: MatchFilterIn -} - -input SearchBuildRuns - @join__type(graph: CONTAINER_REGISTRY_API) -{ - buildId: ID - repoName: MatchFilterIn -} - -input SearchBuilds - @join__type(graph: CONTAINER_REGISTRY_API) -{ - text: MatchFilterIn -} - -input SearchCluster - @join__type(graph: INFRA_API) -{ - cloudProviderName: MatchFilterIn - isReady: MatchFilterIn - region: MatchFilterIn - text: MatchFilterIn -} - -input SearchClusterManagedService - @join__type(graph: INFRA_API) -{ - isReady: MatchFilterIn - text: MatchFilterIn -} - -input SearchConfigs - @join__type(graph: CONSOLE_API) -{ - text: MatchFilterIn - isReady: MatchFilterIn - markedForDeletion: MatchFilterIn -} - -input SearchCreds - @join__type(graph: CONTAINER_REGISTRY_API) -{ - text: MatchFilterIn -} - -input SearchDomainEntry - @join__type(graph: INFRA_API) -{ - clusterName: MatchFilterIn - text: MatchFilterIn -} - -input SearchEnvironments - @join__type(graph: CONSOLE_API) -{ - text: MatchFilterIn - projectName: MatchFilterIn - isReady: MatchFilterIn - markedForDeletion: MatchFilterIn -} - -input SearchHelmRelease - @join__type(graph: INFRA_API) -{ - text: MatchFilterIn - isReady: MatchFilterIn -} - -input SearchImagePullSecrets - @join__type(graph: CONSOLE_API) -{ - text: MatchFilterIn - isReady: MatchFilterIn - markedForDeletion: MatchFilterIn -} - -input SearchIOTApps - @join__type(graph: IOT_CONSOLE_API) -{ - text: MatchFilterIn - isReady: MatchFilterIn - markedForDeletion: MatchFilterIn -} - -input SearchIOTDeployments - @join__type(graph: IOT_CONSOLE_API) -{ - text: MatchFilterIn - isReady: MatchFilterIn - markedForDeletion: MatchFilterIn -} - -input SearchIOTDeviceBlueprints - @join__type(graph: IOT_CONSOLE_API) -{ - text: MatchFilterIn - isReady: MatchFilterIn - markedForDeletion: MatchFilterIn -} - -input SearchIOTDevices - @join__type(graph: IOT_CONSOLE_API) -{ - text: MatchFilterIn - isReady: MatchFilterIn - markedForDeletion: MatchFilterIn -} - -input SearchIOTEnvironments - @join__type(graph: IOT_CONSOLE_API) -{ - text: MatchFilterIn - projectName: MatchFilterIn - isReady: MatchFilterIn - markedForDeletion: MatchFilterIn -} - -input SearchIOTProjects - @join__type(graph: IOT_CONSOLE_API) -{ - text: MatchFilterIn - isReady: MatchFilterIn - markedForDeletion: MatchFilterIn -} - -input SearchManagedResources - @join__type(graph: CONSOLE_API) -{ - text: MatchFilterIn - managedServiceName: MatchFilterIn - isReady: MatchFilterIn - markedForDeletion: MatchFilterIn -} - -input SearchNamespaces - @join__type(graph: INFRA_API) -{ - text: MatchFilterIn -} - -input SearchNodepool - @join__type(graph: INFRA_API) -{ - text: MatchFilterIn -} - -input SearchPersistentVolumeClaims - @join__type(graph: INFRA_API) -{ - text: MatchFilterIn -} - -input SearchPersistentVolumes - @join__type(graph: INFRA_API) -{ - text: MatchFilterIn -} - -input SearchProjectManagedService - @join__type(graph: CONSOLE_API) -{ - text: MatchFilterIn - managedServiceName: MatchFilterIn - isReady: MatchFilterIn - markedForDeletion: MatchFilterIn -} - -input SearchProjects - @join__type(graph: CONSOLE_API) -{ - text: MatchFilterIn - isReady: MatchFilterIn - markedForDeletion: MatchFilterIn -} - -input SearchProviderSecret - @join__type(graph: INFRA_API) -{ - cloudProviderName: MatchFilterIn - text: MatchFilterIn -} - -input SearchRepos - @join__type(graph: CONTAINER_REGISTRY_API) -{ - text: MatchFilterIn -} - -input SearchRouters - @join__type(graph: CONSOLE_API) -{ - text: MatchFilterIn - isReady: MatchFilterIn - markedForDeletion: MatchFilterIn -} - -input SearchSecrets - @join__type(graph: CONSOLE_API) -{ - text: MatchFilterIn - isReady: MatchFilterIn - markedForDeletion: MatchFilterIn -} - -input SearchVolumeAttachments - @join__type(graph: INFRA_API) -{ - text: MatchFilterIn -} - -type Secret - @join__type(graph: CONSOLE_API) -{ - accountName: String! - apiVersion: String - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - data: Map - displayName: String! - environmentName: String! - id: ID! - immutable: Boolean - isReadyOnly: Boolean! - kind: String - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - metadata: Metadata - projectName: String! - recordVersion: Int! - stringData: Map - syncStatus: Github__com___kloudlite___api___pkg___types__SyncStatus! - type: K8s__io___api___core___v1__SecretType - updateTime: Date! -} - -type SecretEdge - @join__type(graph: CONSOLE_API) -{ - cursor: String! - node: Secret! -} - -input SecretIn - @join__type(graph: CONSOLE_API) -{ - apiVersion: String - data: Map - displayName: String! - immutable: Boolean - kind: String - metadata: MetadataIn - stringData: Map - type: K8s__io___api___core___v1__SecretType -} - -type SecretKeyRef - @join__type(graph: CONSOLE_API) -{ - key: String! - secretName: String! -} - -input SecretKeyRefIn - @join__type(graph: CONSOLE_API) -{ - key: String! - secretName: String! -} - -type SecretKeyValueRef - @join__type(graph: CONSOLE_API) -{ - key: String! - secretName: String! - value: String! -} - -input SecretKeyValueRefIn - @join__type(graph: CONSOLE_API) -{ - key: String! - secretName: String! - value: String! -} - -type SecretPaginatedRecords - @join__type(graph: CONSOLE_API) -{ - edges: [SecretEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type Session - @join__type(graph: AUTH_API) -{ - id: ID! - userId: ID! - userEmail: String! - loginMethod: String! - userVerified: Boolean! -} - -scalar URL - @join__type(graph: AUTH_API) - -type User - @join__type(graph: ACCOUNT_API, key: "id", extension: true) - @join__type(graph: AUTH_API, key: "id") -{ - id: ID! - accounts: [AccountMembership!] @join__field(graph: ACCOUNT_API) - accountInvitations(onlyPending: Boolean!): [Invitation!] @join__field(graph: ACCOUNT_API) - name: String! @join__field(graph: AUTH_API) - email: String! @join__field(graph: AUTH_API) - avatar: String @join__field(graph: AUTH_API) - invite: String! @join__field(graph: AUTH_API) - verified: Boolean! @join__field(graph: AUTH_API) - metadata: Json @join__field(graph: AUTH_API) - joined: Date! @join__field(graph: AUTH_API) - providerGitlab: ProviderDetail @join__field(graph: AUTH_API) - providerGithub: ProviderDetail @join__field(graph: AUTH_API) - providerGoogle: ProviderDetail @join__field(graph: AUTH_API) -} - -type VolumeAttachment - @join__type(graph: INFRA_API) -{ - accountName: String! - apiVersion: String - clusterName: String! - createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - creationTime: Date! - displayName: String! - id: ID! - kind: String - lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! - markedForDeletion: Boolean - metadata: Metadata - recordVersion: Int! - spec: K8s__io___api___storage___v1__VolumeAttachmentSpec! - status: K8s__io___api___storage___v1__VolumeAttachmentStatus - syncStatus: Github__com___kloudlite___api___pkg___types__SyncStatus! - updateTime: Date! -} - -type VolumeAttachmentEdge - @join__type(graph: INFRA_API) -{ - cursor: String! - node: VolumeAttachment! -} - -input VolumeAttachmentIn - @join__type(graph: INFRA_API) -{ - apiVersion: String - kind: String - metadata: MetadataIn - spec: K8s__io___api___storage___v1__VolumeAttachmentSpecIn! - status: K8s__io___api___storage___v1__VolumeAttachmentStatusIn -} - -type VolumeAttachmentPaginatedRecords - @join__type(graph: INFRA_API) -{ - edges: [VolumeAttachmentEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} \ No newline at end of file diff --git a/apps/infra/internal/app/graph/cloudprovidersecret.resolvers.go b/apps/infra/internal/app/graph/cloudprovidersecret.resolvers.go index 0b9699fb6..391441c16 100644 --- a/apps/infra/internal/app/graph/cloudprovidersecret.resolvers.go +++ b/apps/infra/internal/app/graph/cloudprovidersecret.resolvers.go @@ -40,6 +40,11 @@ func (r *cloudProviderSecretResolver) CreationTime(ctx context.Context, obj *ent return obj.CreationTime.Format(time.RFC3339), nil } +// Gcp is the resolver for the gcp field. +func (r *cloudProviderSecretResolver) Gcp(ctx context.Context, obj *entities.CloudProviderSecret) (*model.GithubComKloudliteAPIAppsInfraInternalEntitiesGCPSecretCredentials, error) { + return fn.JsonConvertP[model.GithubComKloudliteAPIAppsInfraInternalEntitiesGCPSecretCredentials](obj.GCP) +} + // ID is the resolver for the id field. func (r *cloudProviderSecretResolver) ID(ctx context.Context, obj *entities.CloudProviderSecret) (repos.ID, error) { if obj == nil { @@ -73,6 +78,11 @@ func (r *cloudProviderSecretInResolver) CloudProviderName(ctx context.Context, o return nil } +// Gcp is the resolver for the gcp field. +func (r *cloudProviderSecretInResolver) Gcp(ctx context.Context, obj *entities.CloudProviderSecret, data *model.GithubComKloudliteAPIAppsInfraInternalEntitiesGCPSecretCredentialsIn) error { + return fn.JsonConversion(data, &obj.GCP) +} + // Metadata is the resolver for the metadata field. func (r *cloudProviderSecretInResolver) Metadata(ctx context.Context, obj *entities.CloudProviderSecret, data *v1.ObjectMeta) error { return fn.JsonConversion(data, &obj.ObjectMeta) diff --git a/apps/infra/internal/app/graph/cluster.resolvers.go b/apps/infra/internal/app/graph/cluster.resolvers.go index d3dda9637..000dd9b12 100644 --- a/apps/infra/internal/app/graph/cluster.resolvers.go +++ b/apps/infra/internal/app/graph/cluster.resolvers.go @@ -6,9 +6,8 @@ package graph import ( "context" - "time" - "github.com/kloudlite/api/pkg/errors" + "time" "github.com/kloudlite/api/apps/infra/internal/app/graph/generated" "github.com/kloudlite/api/apps/infra/internal/app/graph/model" @@ -87,7 +86,5 @@ func (r *Resolver) Cluster() generated.ClusterResolver { return &clusterResolver // ClusterIn returns generated.ClusterInResolver implementation. func (r *Resolver) ClusterIn() generated.ClusterInResolver { return &clusterInResolver{r} } -type ( - clusterResolver struct{ *Resolver } - clusterInResolver struct{ *Resolver } -) +type clusterResolver struct{ *Resolver } +type clusterInResolver struct{ *Resolver } diff --git a/apps/infra/internal/app/graph/generated/generated.go b/apps/infra/internal/app/graph/generated/generated.go index c783087a8..b0eeecb62 100644 --- a/apps/infra/internal/app/graph/generated/generated.go +++ b/apps/infra/internal/app/graph/generated/generated.go @@ -117,6 +117,7 @@ type ComplexityRoot struct { CreatedBy func(childComplexity int) int CreationTime func(childComplexity int) int DisplayName func(childComplexity int) int + Gcp func(childComplexity int) int ID func(childComplexity int) int LastUpdatedBy func(childComplexity int) int MarkedForDeletion func(childComplexity int) int @@ -257,6 +258,10 @@ type ComplexityRoot struct { CfParamStackName func(childComplexity int) int } + Github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentials struct { + ServiceAccountJSON func(childComplexity int) int + } + Github__com___kloudlite___api___apps___infra___internal___entities__InputField struct { DefaultValue func(childComplexity int) int DisplayUnit func(childComplexity int) int @@ -402,6 +407,7 @@ type ComplexityRoot struct { CloudflareEnabled func(childComplexity int) int ClusterInternalDNSHost func(childComplexity int) int ClusterTokenRef func(childComplexity int) int + Gcp func(childComplexity int) int KloudliteRelease func(childComplexity int) int MessageQueueTopicName func(childComplexity int) int Output func(childComplexity int) int @@ -409,11 +415,25 @@ type ComplexityRoot struct { TaintMasterNodes func(childComplexity int) int } + Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig struct { + CredentialsRef func(childComplexity int) int + GcpProjectID func(childComplexity int) int + MasterNodes func(childComplexity int) int + Region func(childComplexity int) int + } + + Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig struct { + Nodes func(childComplexity int) int + RootVolumeSize func(childComplexity int) int + RootVolumeType func(childComplexity int) int + } + Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig struct { AvailabilityZone func(childComplexity int) int BootVolumeSize func(childComplexity int) int BootVolumeType func(childComplexity int) int Credentials func(childComplexity int) int + GcpProjectID func(childComplexity int) int MachineType func(childComplexity int) int Nodes func(childComplexity int) int PoolType func(childComplexity int) int @@ -1268,6 +1288,7 @@ type CloudProviderSecretResolver interface { CreationTime(ctx context.Context, obj *entities.CloudProviderSecret) (string, error) + Gcp(ctx context.Context, obj *entities.CloudProviderSecret) (*model.GithubComKloudliteAPIAppsInfraInternalEntitiesGCPSecretCredentials, error) ID(ctx context.Context, obj *entities.CloudProviderSecret) (repos.ID, error) UpdateTime(ctx context.Context, obj *entities.CloudProviderSecret) (string, error) @@ -1454,6 +1475,7 @@ type CloudProviderSecretInResolver interface { Aws(ctx context.Context, obj *entities.CloudProviderSecret, data *model.GithubComKloudliteAPIAppsInfraInternalEntitiesAWSSecretCredentialsIn) error CloudProviderName(ctx context.Context, obj *entities.CloudProviderSecret, data model.GithubComKloudliteOperatorApisCommonTypesCloudProvider) error + Gcp(ctx context.Context, obj *entities.CloudProviderSecret, data *model.GithubComKloudliteAPIAppsInfraInternalEntitiesGCPSecretCredentialsIn) error Metadata(ctx context.Context, obj *entities.CloudProviderSecret, data *v1.ObjectMeta) error } type ClusterInResolver interface { @@ -1665,6 +1687,13 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return e.complexity.CloudProviderSecret.DisplayName(childComplexity), true + case "CloudProviderSecret.gcp": + if e.complexity.CloudProviderSecret.Gcp == nil { + break + } + + return e.complexity.CloudProviderSecret.Gcp(childComplexity), true + case "CloudProviderSecret.id": if e.complexity.CloudProviderSecret.ID == nil { break @@ -2295,6 +2324,13 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return e.complexity.Github__com___kloudlite___api___apps___infra___internal___entities__AWSSecretCredentials.CfParamStackName(childComplexity), true + case "Github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentials.serviceAccountJSON": + if e.complexity.Github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentials.ServiceAccountJSON == nil { + break + } + + return e.complexity.Github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentials.ServiceAccountJSON(childComplexity), true + case "Github__com___kloudlite___api___apps___infra___internal___entities__InputField.defaultValue": if e.complexity.Github__com___kloudlite___api___apps___infra___internal___entities__InputField.DefaultValue == nil { break @@ -2946,6 +2982,13 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return e.complexity.Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec.ClusterTokenRef(childComplexity), true + case "Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec.gcp": + if e.complexity.Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec.Gcp == nil { + break + } + + return e.complexity.Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec.Gcp(childComplexity), true + case "Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec.kloudliteRelease": if e.complexity.Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec.KloudliteRelease == nil { break @@ -2981,6 +3024,55 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return e.complexity.Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec.TaintMasterNodes(childComplexity), true + case "Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig.credentialsRef": + if e.complexity.Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig.CredentialsRef == nil { + break + } + + return e.complexity.Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig.CredentialsRef(childComplexity), true + + case "Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig.gcpProjectID": + if e.complexity.Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig.GcpProjectID == nil { + break + } + + return e.complexity.Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig.GcpProjectID(childComplexity), true + + case "Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig.masterNodes": + if e.complexity.Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig.MasterNodes == nil { + break + } + + return e.complexity.Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig.MasterNodes(childComplexity), true + + case "Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig.region": + if e.complexity.Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig.Region == nil { + break + } + + return e.complexity.Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig.Region(childComplexity), true + + case "Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig.nodes": + if e.complexity.Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig.Nodes == nil { + break + } + + return e.complexity.Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig.Nodes(childComplexity), true + + case "Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig.rootVolumeSize": + if e.complexity.Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig.RootVolumeSize == nil { + break + } + + return e.complexity.Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig.RootVolumeSize(childComplexity), true + + case "Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig.rootVolumeType": + if e.complexity.Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig.RootVolumeType == nil { + break + } + + return e.complexity.Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig.RootVolumeType(childComplexity), true + case "Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig.availabilityZone": if e.complexity.Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig.AvailabilityZone == nil { break @@ -3009,6 +3101,13 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return e.complexity.Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig.Credentials(childComplexity), true + case "Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig.gcpProjectID": + if e.complexity.Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig.GcpProjectID == nil { + break + } + + return e.complexity.Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig.GcpProjectID(childComplexity), true + case "Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig.machineType": if e.complexity.Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig.MachineType == nil { break @@ -6956,6 +7055,7 @@ func (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler { ec.unmarshalInputGithub__com___kloudlite___api___apps___infra___internal___entities__AWSAssumeRoleParamsIn, ec.unmarshalInputGithub__com___kloudlite___api___apps___infra___internal___entities__AWSAuthSecretKeysIn, ec.unmarshalInputGithub__com___kloudlite___api___apps___infra___internal___entities__AWSSecretCredentialsIn, + ec.unmarshalInputGithub__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentialsIn, ec.unmarshalInputGithub__com___kloudlite___operator___apis___clusters___v1__AWSClusterConfigIn, ec.unmarshalInputGithub__com___kloudlite___operator___apis___clusters___v1__AWSK3sMastersConfigIn, ec.unmarshalInputGithub__com___kloudlite___operator___apis___clusters___v1__AWSNodePoolConfigIn, @@ -6965,6 +7065,7 @@ func (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler { ec.unmarshalInputGithub__com___kloudlite___operator___apis___clusters___v1__AwsSpotGpuNodeIn, ec.unmarshalInputGithub__com___kloudlite___operator___apis___clusters___v1__AwsSpotPoolConfigIn, ec.unmarshalInputGithub__com___kloudlite___operator___apis___clusters___v1__ClusterSpecIn, + ec.unmarshalInputGithub__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfigIn, ec.unmarshalInputGithub__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfigIn, ec.unmarshalInputGithub__com___kloudlite___operator___apis___clusters___v1__NodePoolSpecIn, ec.unmarshalInputGithub__com___kloudlite___operator___apis___clusters___v1__NodePropsIn, @@ -7333,6 +7434,7 @@ input BYOKClusterIn { createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! creationTime: Date! displayName: String! + gcp: Github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentials id: ID! lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! markedForDeletion: Boolean @@ -7356,6 +7458,7 @@ input CloudProviderSecretIn { aws: Github__com___kloudlite___api___apps___infra___internal___entities__AWSSecretCredentialsIn cloudProviderName: Github__com___kloudlite___operator___apis___common____types__CloudProvider! displayName: String! + gcp: Github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentialsIn metadata: MetadataIn! } @@ -7459,6 +7562,10 @@ type Github__com___kloudlite___api___apps___infra___internal___entities__AWSSecr cfParamStackName: String } +type Github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentials @shareable { + serviceAccountJSON: String! +} + type Github__com___kloudlite___api___apps___infra___internal___entities__InputField @shareable { defaultValue: Any displayUnit: String @@ -7604,6 +7711,7 @@ type Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec @sha cloudProvider: Github__com___kloudlite___operator___apis___common____types__CloudProvider! clusterInternalDnsHost: String clusterTokenRef: Github__com___kloudlite___operator___apis___common____types__SecretKeyRef + gcp: Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig kloudliteRelease: String! messageQueueTopicName: String! output: Github__com___kloudlite___operator___apis___clusters___v1__ClusterOutput @@ -7611,11 +7719,25 @@ type Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec @sha taintMasterNodes: Boolean! } +type Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig @shareable { + credentialsRef: Github__com___kloudlite___operator___apis___common____types__SecretRef! + gcpProjectID: String! + masterNodes: Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig + region: String! +} + +type Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig @shareable { + nodes: Map + rootVolumeSize: Int! + rootVolumeType: String! +} + type Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig @shareable { availabilityZone: String! bootVolumeSize: Int! bootVolumeType: String! credentials: Github__com___kloudlite___operator___apis___common____types__SecretRef! + gcpProjectID: String! machineType: String! nodes: Map poolType: Github__com___kloudlite___operator___apis___clusters___v1__GCPPoolType! @@ -8193,6 +8315,10 @@ input Github__com___kloudlite___api___apps___infra___internal___entities__AWSSec authSecretKeys: Github__com___kloudlite___api___apps___infra___internal___entities__AWSAuthSecretKeysIn } +input Github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentialsIn { + serviceAccountJSON: String! +} + input Github__com___kloudlite___operator___apis___clusters___v1__AWSClusterConfigIn { credentials: Github__com___kloudlite___operator___apis___clusters___v1__AwsCredentialsIn! k3sMasters: Github__com___kloudlite___operator___apis___clusters___v1__AWSK3sMastersConfigIn @@ -8242,17 +8368,18 @@ input Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpecIn { aws: Github__com___kloudlite___operator___apis___clusters___v1__AWSClusterConfigIn cloudflareEnabled: Boolean cloudProvider: Github__com___kloudlite___operator___apis___common____types__CloudProvider! + gcp: Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfigIn +} + +input Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfigIn { + credentialsRef: Github__com___kloudlite___operator___apis___common____types__SecretRefIn! + region: String! } input Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfigIn { availabilityZone: String! - bootVolumeSize: Int! - bootVolumeType: String! - credentials: Github__com___kloudlite___operator___apis___common____types__SecretRefIn! machineType: String! - nodes: Map poolType: Github__com___kloudlite___operator___apis___clusters___v1__GCPPoolType! - region: String! } input Github__com___kloudlite___operator___apis___clusters___v1__NodePoolSpecIn { @@ -10424,6 +10551,8 @@ func (ec *executionContext) fieldContext_BYOKCluster_ClusterSpec(ctx context.Con return ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec_clusterInternalDnsHost(ctx, field) case "clusterTokenRef": return ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec_clusterTokenRef(ctx, field) + case "gcp": + return ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec_gcp(ctx, field) case "kloudliteRelease": return ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec_kloudliteRelease(ctx, field) case "messageQueueTopicName": @@ -11380,6 +11509,51 @@ func (ec *executionContext) fieldContext_CloudProviderSecret_displayName(ctx con return fc, nil } +func (ec *executionContext) _CloudProviderSecret_gcp(ctx context.Context, field graphql.CollectedField, obj *entities.CloudProviderSecret) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_CloudProviderSecret_gcp(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return ec.resolvers.CloudProviderSecret().Gcp(rctx, obj) + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*model.GithubComKloudliteAPIAppsInfraInternalEntitiesGCPSecretCredentials) + fc.Result = res + return ec.marshalOGithub__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentials2ᚖgithubᚗcomᚋkloudliteᚋapiᚋappsᚋinfraᚋinternalᚋappᚋgraphᚋmodelᚐGithubComKloudliteAPIAppsInfraInternalEntitiesGCPSecretCredentials(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_CloudProviderSecret_gcp(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "CloudProviderSecret", + Field: field, + IsMethod: true, + IsResolver: true, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "serviceAccountJSON": + return ec.fieldContext_Github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentials_serviceAccountJSON(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type Github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentials", field.Name) + }, + } + return fc, nil +} + func (ec *executionContext) _CloudProviderSecret_id(ctx context.Context, field graphql.CollectedField, obj *entities.CloudProviderSecret) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CloudProviderSecret_id(ctx, field) if err != nil { @@ -11760,6 +11934,8 @@ func (ec *executionContext) fieldContext_CloudProviderSecretEdge_node(ctx contex return ec.fieldContext_CloudProviderSecret_creationTime(ctx, field) case "displayName": return ec.fieldContext_CloudProviderSecret_displayName(ctx, field) + case "gcp": + return ec.fieldContext_CloudProviderSecret_gcp(ctx, field) case "id": return ec.fieldContext_CloudProviderSecret_id(ctx, field) case "lastUpdatedBy": @@ -12491,6 +12667,8 @@ func (ec *executionContext) fieldContext_Cluster_spec(ctx context.Context, field return ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec_clusterInternalDnsHost(ctx, field) case "clusterTokenRef": return ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec_clusterTokenRef(ctx, field) + case "gcp": + return ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec_gcp(ctx, field) case "kloudliteRelease": return ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec_kloudliteRelease(ctx, field) case "messageQueueTopicName": @@ -15674,6 +15852,50 @@ func (ec *executionContext) fieldContext_Github__com___kloudlite___api___apps___ return fc, nil } +func (ec *executionContext) _Github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentials_serviceAccountJSON(ctx context.Context, field graphql.CollectedField, obj *model.GithubComKloudliteAPIAppsInfraInternalEntitiesGCPSecretCredentials) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentials_serviceAccountJSON(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return obj.ServiceAccountJSON, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentials_serviceAccountJSON(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentials", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + func (ec *executionContext) _Github__com___kloudlite___api___apps___infra___internal___entities__InputField_defaultValue(ctx context.Context, field graphql.CollectedField, obj *model.GithubComKloudliteAPIAppsInfraInternalEntitiesInputField) (ret graphql.Marshaler) { fc, err := ec.fieldContext_Github__com___kloudlite___api___apps___infra___internal___entities__InputField_defaultValue(ctx, field) if err != nil { @@ -19838,6 +20060,57 @@ func (ec *executionContext) fieldContext_Github__com___kloudlite___operator___ap return fc, nil } +func (ec *executionContext) _Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec_gcp(ctx context.Context, field graphql.CollectedField, obj *model.GithubComKloudliteOperatorApisClustersV1ClusterSpec) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec_gcp(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return obj.Gcp, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*model.GithubComKloudliteOperatorApisClustersV1GCPClusterConfig) + fc.Result = res + return ec.marshalOGithub__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig2ᚖgithubᚗcomᚋkloudliteᚋapiᚋappsᚋinfraᚋinternalᚋappᚋgraphᚋmodelᚐGithubComKloudliteOperatorApisClustersV1GCPClusterConfig(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec_gcp(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "credentialsRef": + return ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig_credentialsRef(ctx, field) + case "gcpProjectID": + return ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig_gcpProjectID(ctx, field) + case "masterNodes": + return ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig_masterNodes(ctx, field) + case "region": + return ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig_region(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig", field.Name) + }, + } + return fc, nil +} + func (ec *executionContext) _Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec_kloudliteRelease(ctx context.Context, field graphql.CollectedField, obj *model.GithubComKloudliteOperatorApisClustersV1ClusterSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec_kloudliteRelease(ctx, field) if err != nil { @@ -20073,6 +20346,322 @@ func (ec *executionContext) fieldContext_Github__com___kloudlite___operator___ap return fc, nil } +func (ec *executionContext) _Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig_credentialsRef(ctx context.Context, field graphql.CollectedField, obj *model.GithubComKloudliteOperatorApisClustersV1GCPClusterConfig) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig_credentialsRef(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return obj.CredentialsRef, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(*model.GithubComKloudliteOperatorApisCommonTypesSecretRef) + fc.Result = res + return ec.marshalNGithub__com___kloudlite___operator___apis___common____types__SecretRef2ᚖgithubᚗcomᚋkloudliteᚋapiᚋappsᚋinfraᚋinternalᚋappᚋgraphᚋmodelᚐGithubComKloudliteOperatorApisCommonTypesSecretRef(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig_credentialsRef(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "name": + return ec.fieldContext_Github__com___kloudlite___operator___apis___common____types__SecretRef_name(ctx, field) + case "namespace": + return ec.fieldContext_Github__com___kloudlite___operator___apis___common____types__SecretRef_namespace(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type Github__com___kloudlite___operator___apis___common____types__SecretRef", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) _Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig_gcpProjectID(ctx context.Context, field graphql.CollectedField, obj *model.GithubComKloudliteOperatorApisClustersV1GCPClusterConfig) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig_gcpProjectID(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return obj.GcpProjectID, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig_gcpProjectID(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig_masterNodes(ctx context.Context, field graphql.CollectedField, obj *model.GithubComKloudliteOperatorApisClustersV1GCPClusterConfig) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig_masterNodes(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return obj.MasterNodes, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*model.GithubComKloudliteOperatorApisClustersV1GCPMasterNodesConfig) + fc.Result = res + return ec.marshalOGithub__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig2ᚖgithubᚗcomᚋkloudliteᚋapiᚋappsᚋinfraᚋinternalᚋappᚋgraphᚋmodelᚐGithubComKloudliteOperatorApisClustersV1GCPMasterNodesConfig(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig_masterNodes(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "nodes": + return ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig_nodes(ctx, field) + case "rootVolumeSize": + return ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig_rootVolumeSize(ctx, field) + case "rootVolumeType": + return ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig_rootVolumeType(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) _Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig_region(ctx context.Context, field graphql.CollectedField, obj *model.GithubComKloudliteOperatorApisClustersV1GCPClusterConfig) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig_region(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return obj.Region, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig_region(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig_nodes(ctx context.Context, field graphql.CollectedField, obj *model.GithubComKloudliteOperatorApisClustersV1GCPMasterNodesConfig) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig_nodes(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return obj.Nodes, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(map[string]interface{}) + fc.Result = res + return ec.marshalOMap2map(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig_nodes(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type Map does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig_rootVolumeSize(ctx context.Context, field graphql.CollectedField, obj *model.GithubComKloudliteOperatorApisClustersV1GCPMasterNodesConfig) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig_rootVolumeSize(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return obj.RootVolumeSize, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(int) + fc.Result = res + return ec.marshalNInt2int(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig_rootVolumeSize(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type Int does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig_rootVolumeType(ctx context.Context, field graphql.CollectedField, obj *model.GithubComKloudliteOperatorApisClustersV1GCPMasterNodesConfig) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig_rootVolumeType(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return obj.RootVolumeType, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig_rootVolumeType(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + func (ec *executionContext) _Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig_availabilityZone(ctx context.Context, field graphql.CollectedField, obj *model.GithubComKloudliteOperatorApisClustersV1GCPNodePoolConfig) (ret graphql.Marshaler) { fc, err := ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig_availabilityZone(ctx, field) if err != nil { @@ -20255,6 +20844,50 @@ func (ec *executionContext) fieldContext_Github__com___kloudlite___operator___ap return fc, nil } +func (ec *executionContext) _Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig_gcpProjectID(ctx context.Context, field graphql.CollectedField, obj *model.GithubComKloudliteOperatorApisClustersV1GCPNodePoolConfig) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig_gcpProjectID(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return obj.GcpProjectID, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig_gcpProjectID(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + func (ec *executionContext) _Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig_machineType(ctx context.Context, field graphql.CollectedField, obj *model.GithubComKloudliteOperatorApisClustersV1GCPNodePoolConfig) (ret graphql.Marshaler) { fc, err := ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig_machineType(ctx, field) if err != nil { @@ -20752,6 +21385,8 @@ func (ec *executionContext) fieldContext_Github__com___kloudlite___operator___ap return ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig_bootVolumeType(ctx, field) case "credentials": return ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig_credentials(ctx, field) + case "gcpProjectID": + return ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig_gcpProjectID(ctx, field) case "machineType": return ec.fieldContext_Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig_machineType(ctx, field) case "nodes": @@ -36700,6 +37335,8 @@ func (ec *executionContext) fieldContext_Mutation_infra_createProviderSecret(ctx return ec.fieldContext_CloudProviderSecret_creationTime(ctx, field) case "displayName": return ec.fieldContext_CloudProviderSecret_displayName(ctx, field) + case "gcp": + return ec.fieldContext_CloudProviderSecret_gcp(ctx, field) case "id": return ec.fieldContext_CloudProviderSecret_id(ctx, field) case "lastUpdatedBy": @@ -36804,6 +37441,8 @@ func (ec *executionContext) fieldContext_Mutation_infra_updateProviderSecret(ctx return ec.fieldContext_CloudProviderSecret_creationTime(ctx, field) case "displayName": return ec.fieldContext_CloudProviderSecret_displayName(ctx, field) + case "gcp": + return ec.fieldContext_CloudProviderSecret_gcp(ctx, field) case "id": return ec.fieldContext_CloudProviderSecret_id(ctx, field) case "lastUpdatedBy": @@ -44031,6 +44670,8 @@ func (ec *executionContext) fieldContext_Query_infra_getProviderSecret(ctx conte return ec.fieldContext_CloudProviderSecret_creationTime(ctx, field) case "displayName": return ec.fieldContext_CloudProviderSecret_displayName(ctx, field) + case "gcp": + return ec.fieldContext_CloudProviderSecret_gcp(ctx, field) case "id": return ec.fieldContext_CloudProviderSecret_id(ctx, field) case "lastUpdatedBy": @@ -48708,7 +49349,7 @@ func (ec *executionContext) unmarshalInputCloudProviderSecretIn(ctx context.Cont asMap[k] = v } - fieldsInOrder := [...]string{"aws", "cloudProviderName", "displayName", "metadata"} + fieldsInOrder := [...]string{"aws", "cloudProviderName", "displayName", "gcp", "metadata"} for _, k := range fieldsInOrder { v, ok := asMap[k] if !ok { @@ -48746,6 +49387,17 @@ func (ec *executionContext) unmarshalInputCloudProviderSecretIn(ctx context.Cont return it, err } it.DisplayName = data + case "gcp": + var err error + + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("gcp")) + data, err := ec.unmarshalOGithub__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentialsIn2ᚖgithubᚗcomᚋkloudliteᚋapiᚋappsᚋinfraᚋinternalᚋappᚋgraphᚋmodelᚐGithubComKloudliteAPIAppsInfraInternalEntitiesGCPSecretCredentialsIn(ctx, v) + if err != nil { + return it, err + } + if err = ec.resolvers.CloudProviderSecretIn().Gcp(ctx, &it, data); err != nil { + return it, err + } case "metadata": var err error @@ -49143,6 +49795,35 @@ func (ec *executionContext) unmarshalInputGithub__com___kloudlite___api___apps__ return it, nil } +func (ec *executionContext) unmarshalInputGithub__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentialsIn(ctx context.Context, obj interface{}) (model.GithubComKloudliteAPIAppsInfraInternalEntitiesGCPSecretCredentialsIn, error) { + var it model.GithubComKloudliteAPIAppsInfraInternalEntitiesGCPSecretCredentialsIn + asMap := map[string]interface{}{} + for k, v := range obj.(map[string]interface{}) { + asMap[k] = v + } + + fieldsInOrder := [...]string{"serviceAccountJSON"} + for _, k := range fieldsInOrder { + v, ok := asMap[k] + if !ok { + continue + } + switch k { + case "serviceAccountJSON": + var err error + + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("serviceAccountJSON")) + data, err := ec.unmarshalNString2string(ctx, v) + if err != nil { + return it, err + } + it.ServiceAccountJSON = data + } + } + + return it, nil +} + func (ec *executionContext) unmarshalInputGithub__com___kloudlite___operator___apis___clusters___v1__AWSClusterConfigIn(ctx context.Context, obj interface{}) (model.GithubComKloudliteOperatorApisClustersV1AWSClusterConfigIn, error) { var it model.GithubComKloudliteOperatorApisClustersV1AWSClusterConfigIn asMap := map[string]interface{}{} @@ -49490,7 +50171,7 @@ func (ec *executionContext) unmarshalInputGithub__com___kloudlite___operator___a asMap[k] = v } - fieldsInOrder := [...]string{"availabilityMode", "aws", "cloudflareEnabled", "cloudProvider"} + fieldsInOrder := [...]string{"availabilityMode", "aws", "cloudflareEnabled", "cloudProvider", "gcp"} for _, k := range fieldsInOrder { v, ok := asMap[k] if !ok { @@ -49533,62 +50214,82 @@ func (ec *executionContext) unmarshalInputGithub__com___kloudlite___operator___a return it, err } it.CloudProvider = data + case "gcp": + var err error + + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("gcp")) + data, err := ec.unmarshalOGithub__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfigIn2ᚖgithubᚗcomᚋkloudliteᚋapiᚋappsᚋinfraᚋinternalᚋappᚋgraphᚋmodelᚐGithubComKloudliteOperatorApisClustersV1GCPClusterConfigIn(ctx, v) + if err != nil { + return it, err + } + it.Gcp = data } } return it, nil } -func (ec *executionContext) unmarshalInputGithub__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfigIn(ctx context.Context, obj interface{}) (model.GithubComKloudliteOperatorApisClustersV1GCPNodePoolConfigIn, error) { - var it model.GithubComKloudliteOperatorApisClustersV1GCPNodePoolConfigIn +func (ec *executionContext) unmarshalInputGithub__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfigIn(ctx context.Context, obj interface{}) (model.GithubComKloudliteOperatorApisClustersV1GCPClusterConfigIn, error) { + var it model.GithubComKloudliteOperatorApisClustersV1GCPClusterConfigIn asMap := map[string]interface{}{} for k, v := range obj.(map[string]interface{}) { asMap[k] = v } - fieldsInOrder := [...]string{"availabilityZone", "bootVolumeSize", "bootVolumeType", "credentials", "machineType", "nodes", "poolType", "region"} + fieldsInOrder := [...]string{"credentialsRef", "region"} for _, k := range fieldsInOrder { v, ok := asMap[k] if !ok { continue } switch k { - case "availabilityZone": + case "credentialsRef": var err error - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("availabilityZone")) - data, err := ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - it.AvailabilityZone = data - case "bootVolumeSize": - var err error - - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("bootVolumeSize")) - data, err := ec.unmarshalNInt2int(ctx, v) + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("credentialsRef")) + data, err := ec.unmarshalNGithub__com___kloudlite___operator___apis___common____types__SecretRefIn2ᚖgithubᚗcomᚋkloudliteᚋapiᚋappsᚋinfraᚋinternalᚋappᚋgraphᚋmodelᚐGithubComKloudliteOperatorApisCommonTypesSecretRefIn(ctx, v) if err != nil { return it, err } - it.BootVolumeSize = data - case "bootVolumeType": + it.CredentialsRef = data + case "region": var err error - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("bootVolumeType")) + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("region")) data, err := ec.unmarshalNString2string(ctx, v) if err != nil { return it, err } - it.BootVolumeType = data - case "credentials": + it.Region = data + } + } + + return it, nil +} + +func (ec *executionContext) unmarshalInputGithub__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfigIn(ctx context.Context, obj interface{}) (model.GithubComKloudliteOperatorApisClustersV1GCPNodePoolConfigIn, error) { + var it model.GithubComKloudliteOperatorApisClustersV1GCPNodePoolConfigIn + asMap := map[string]interface{}{} + for k, v := range obj.(map[string]interface{}) { + asMap[k] = v + } + + fieldsInOrder := [...]string{"availabilityZone", "machineType", "poolType"} + for _, k := range fieldsInOrder { + v, ok := asMap[k] + if !ok { + continue + } + switch k { + case "availabilityZone": var err error - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("credentials")) - data, err := ec.unmarshalNGithub__com___kloudlite___operator___apis___common____types__SecretRefIn2ᚖgithubᚗcomᚋkloudliteᚋapiᚋappsᚋinfraᚋinternalᚋappᚋgraphᚋmodelᚐGithubComKloudliteOperatorApisCommonTypesSecretRefIn(ctx, v) + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("availabilityZone")) + data, err := ec.unmarshalNString2string(ctx, v) if err != nil { return it, err } - it.Credentials = data + it.AvailabilityZone = data case "machineType": var err error @@ -49598,15 +50299,6 @@ func (ec *executionContext) unmarshalInputGithub__com___kloudlite___operator___a return it, err } it.MachineType = data - case "nodes": - var err error - - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("nodes")) - data, err := ec.unmarshalOMap2map(ctx, v) - if err != nil { - return it, err - } - it.Nodes = data case "poolType": var err error @@ -49616,15 +50308,6 @@ func (ec *executionContext) unmarshalInputGithub__com___kloudlite___operator___a return it, err } it.PoolType = data - case "region": - var err error - - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("region")) - data, err := ec.unmarshalNString2string(ctx, v) - if err != nil { - return it, err - } - it.Region = data } } @@ -54747,6 +55430,39 @@ func (ec *executionContext) _CloudProviderSecret(ctx context.Context, sel ast.Se if out.Values[i] == graphql.Null { atomic.AddUint32(&out.Invalids, 1) } + case "gcp": + field := field + + innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._CloudProviderSecret_gcp(ctx, field, obj) + return res + } + + if field.Deferrable != nil { + dfs, ok := deferred[field.Deferrable.Label] + di := 0 + if ok { + dfs.AddField(field) + di = len(dfs.Values) - 1 + } else { + dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) + deferred[field.Deferrable.Label] = dfs + } + dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { + return innerFunc(ctx, dfs) + }) + + // don't run the out.Concurrently() call below + out.Values[i] = graphql.Null + continue + } + + out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) case "id": field := field @@ -56126,6 +56842,45 @@ func (ec *executionContext) _Github__com___kloudlite___api___apps___infra___inte return out } +var github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentialsImplementors = []string{"Github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentials"} + +func (ec *executionContext) _Github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentials(ctx context.Context, sel ast.SelectionSet, obj *model.GithubComKloudliteAPIAppsInfraInternalEntitiesGCPSecretCredentials) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentialsImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("Github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentials") + case "serviceAccountJSON": + out.Values[i] = ec._Github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentials_serviceAccountJSON(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + var github__com___kloudlite___api___apps___infra___internal___entities__InputFieldImplementors = []string{"Github__com___kloudlite___api___apps___infra___internal___entities__InputField"} func (ec *executionContext) _Github__com___kloudlite___api___apps___infra___internal___entities__InputField(ctx context.Context, sel ast.SelectionSet, obj *model.GithubComKloudliteAPIAppsInfraInternalEntitiesInputField) graphql.Marshaler { @@ -57264,6 +58019,8 @@ func (ec *executionContext) _Github__com___kloudlite___operator___apis___cluster out.Values[i] = ec._Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec_clusterInternalDnsHost(ctx, field, obj) case "clusterTokenRef": out.Values[i] = ec._Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec_clusterTokenRef(ctx, field, obj) + case "gcp": + out.Values[i] = ec._Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec_gcp(ctx, field, obj) case "kloudliteRelease": out.Values[i] = ec._Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec_kloudliteRelease(ctx, field, obj) if out.Values[i] == graphql.Null { @@ -57309,6 +58066,103 @@ func (ec *executionContext) _Github__com___kloudlite___operator___apis___cluster return out } +var github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfigImplementors = []string{"Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig"} + +func (ec *executionContext) _Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig(ctx context.Context, sel ast.SelectionSet, obj *model.GithubComKloudliteOperatorApisClustersV1GCPClusterConfig) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfigImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig") + case "credentialsRef": + out.Values[i] = ec._Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig_credentialsRef(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "gcpProjectID": + out.Values[i] = ec._Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig_gcpProjectID(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "masterNodes": + out.Values[i] = ec._Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig_masterNodes(ctx, field, obj) + case "region": + out.Values[i] = ec._Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig_region(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + +var github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfigImplementors = []string{"Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig"} + +func (ec *executionContext) _Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig(ctx context.Context, sel ast.SelectionSet, obj *model.GithubComKloudliteOperatorApisClustersV1GCPMasterNodesConfig) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfigImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig") + case "nodes": + out.Values[i] = ec._Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig_nodes(ctx, field, obj) + case "rootVolumeSize": + out.Values[i] = ec._Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig_rootVolumeSize(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "rootVolumeType": + out.Values[i] = ec._Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig_rootVolumeType(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + var github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfigImplementors = []string{"Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig"} func (ec *executionContext) _Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig(ctx context.Context, sel ast.SelectionSet, obj *model.GithubComKloudliteOperatorApisClustersV1GCPNodePoolConfig) graphql.Marshaler { @@ -57340,6 +58194,11 @@ func (ec *executionContext) _Github__com___kloudlite___operator___apis___cluster if out.Values[i] == graphql.Null { out.Invalids++ } + case "gcpProjectID": + out.Values[i] = ec._Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig_gcpProjectID(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } case "machineType": out.Values[i] = ec._Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig_machineType(ctx, field, obj) if out.Values[i] == graphql.Null { @@ -67133,6 +67992,21 @@ func (ec *executionContext) unmarshalOGithub__com___kloudlite___api___apps___inf return &res, graphql.ErrorOnPath(ctx, err) } +func (ec *executionContext) marshalOGithub__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentials2ᚖgithubᚗcomᚋkloudliteᚋapiᚋappsᚋinfraᚋinternalᚋappᚋgraphᚋmodelᚐGithubComKloudliteAPIAppsInfraInternalEntitiesGCPSecretCredentials(ctx context.Context, sel ast.SelectionSet, v *model.GithubComKloudliteAPIAppsInfraInternalEntitiesGCPSecretCredentials) graphql.Marshaler { + if v == nil { + return graphql.Null + } + return ec._Github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentials(ctx, sel, v) +} + +func (ec *executionContext) unmarshalOGithub__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentialsIn2ᚖgithubᚗcomᚋkloudliteᚋapiᚋappsᚋinfraᚋinternalᚋappᚋgraphᚋmodelᚐGithubComKloudliteAPIAppsInfraInternalEntitiesGCPSecretCredentialsIn(ctx context.Context, v interface{}) (*model.GithubComKloudliteAPIAppsInfraInternalEntitiesGCPSecretCredentialsIn, error) { + if v == nil { + return nil, nil + } + res, err := ec.unmarshalInputGithub__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentialsIn(ctx, v) + return &res, graphql.ErrorOnPath(ctx, err) +} + func (ec *executionContext) marshalOGithub__com___kloudlite___api___apps___infra___internal___entities__MsvcTemplateEntry2ᚖgithubᚗcomᚋkloudliteᚋapiᚋappsᚋinfraᚋinternalᚋentitiesᚐMsvcTemplateEntry(ctx context.Context, sel ast.SelectionSet, v *entities.MsvcTemplateEntry) graphql.Marshaler { if v == nil { return graphql.Null @@ -67266,6 +68140,28 @@ func (ec *executionContext) marshalOGithub__com___kloudlite___operator___apis___ return ec._Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec(ctx, sel, v) } +func (ec *executionContext) marshalOGithub__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig2ᚖgithubᚗcomᚋkloudliteᚋapiᚋappsᚋinfraᚋinternalᚋappᚋgraphᚋmodelᚐGithubComKloudliteOperatorApisClustersV1GCPClusterConfig(ctx context.Context, sel ast.SelectionSet, v *model.GithubComKloudliteOperatorApisClustersV1GCPClusterConfig) graphql.Marshaler { + if v == nil { + return graphql.Null + } + return ec._Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig(ctx, sel, v) +} + +func (ec *executionContext) unmarshalOGithub__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfigIn2ᚖgithubᚗcomᚋkloudliteᚋapiᚋappsᚋinfraᚋinternalᚋappᚋgraphᚋmodelᚐGithubComKloudliteOperatorApisClustersV1GCPClusterConfigIn(ctx context.Context, v interface{}) (*model.GithubComKloudliteOperatorApisClustersV1GCPClusterConfigIn, error) { + if v == nil { + return nil, nil + } + res, err := ec.unmarshalInputGithub__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfigIn(ctx, v) + return &res, graphql.ErrorOnPath(ctx, err) +} + +func (ec *executionContext) marshalOGithub__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig2ᚖgithubᚗcomᚋkloudliteᚋapiᚋappsᚋinfraᚋinternalᚋappᚋgraphᚋmodelᚐGithubComKloudliteOperatorApisClustersV1GCPMasterNodesConfig(ctx context.Context, sel ast.SelectionSet, v *model.GithubComKloudliteOperatorApisClustersV1GCPMasterNodesConfig) graphql.Marshaler { + if v == nil { + return graphql.Null + } + return ec._Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig(ctx, sel, v) +} + func (ec *executionContext) marshalOGithub__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig2ᚖgithubᚗcomᚋkloudliteᚋapiᚋappsᚋinfraᚋinternalᚋappᚋgraphᚋmodelᚐGithubComKloudliteOperatorApisClustersV1GCPNodePoolConfig(ctx context.Context, sel ast.SelectionSet, v *model.GithubComKloudliteOperatorApisClustersV1GCPNodePoolConfig) graphql.Marshaler { if v == nil { return graphql.Null diff --git a/apps/infra/internal/app/graph/model/models_gen.go b/apps/infra/internal/app/graph/model/models_gen.go index d080baabf..ba1205b86 100644 --- a/apps/infra/internal/app/graph/model/models_gen.go +++ b/apps/infra/internal/app/graph/model/models_gen.go @@ -104,6 +104,14 @@ type GithubComKloudliteAPIAppsInfraInternalEntitiesAWSSecretCredentialsIn struct AuthSecretKeys *GithubComKloudliteAPIAppsInfraInternalEntitiesAWSAuthSecretKeysIn `json:"authSecretKeys,omitempty"` } +type GithubComKloudliteAPIAppsInfraInternalEntitiesGCPSecretCredentials struct { + ServiceAccountJSON string `json:"serviceAccountJSON"` +} + +type GithubComKloudliteAPIAppsInfraInternalEntitiesGCPSecretCredentialsIn struct { + ServiceAccountJSON string `json:"serviceAccountJSON"` +} + type GithubComKloudliteAPIAppsInfraInternalEntitiesInputField struct { DefaultValue interface{} `json:"defaultValue,omitempty"` DisplayUnit *string `json:"displayUnit,omitempty"` @@ -265,6 +273,7 @@ type GithubComKloudliteOperatorApisClustersV1ClusterSpec struct { CloudProvider GithubComKloudliteOperatorApisCommonTypesCloudProvider `json:"cloudProvider"` ClusterInternalDNSHost *string `json:"clusterInternalDnsHost,omitempty"` ClusterTokenRef *GithubComKloudliteOperatorApisCommonTypesSecretKeyRef `json:"clusterTokenRef,omitempty"` + Gcp *GithubComKloudliteOperatorApisClustersV1GCPClusterConfig `json:"gcp,omitempty"` KloudliteRelease string `json:"kloudliteRelease"` MessageQueueTopicName string `json:"messageQueueTopicName"` Output *GithubComKloudliteOperatorApisClustersV1ClusterOutput `json:"output,omitempty"` @@ -277,6 +286,25 @@ type GithubComKloudliteOperatorApisClustersV1ClusterSpecIn struct { Aws *GithubComKloudliteOperatorApisClustersV1AWSClusterConfigIn `json:"aws,omitempty"` CloudflareEnabled *bool `json:"cloudflareEnabled,omitempty"` CloudProvider GithubComKloudliteOperatorApisCommonTypesCloudProvider `json:"cloudProvider"` + Gcp *GithubComKloudliteOperatorApisClustersV1GCPClusterConfigIn `json:"gcp,omitempty"` +} + +type GithubComKloudliteOperatorApisClustersV1GCPClusterConfig struct { + CredentialsRef *GithubComKloudliteOperatorApisCommonTypesSecretRef `json:"credentialsRef"` + GcpProjectID string `json:"gcpProjectID"` + MasterNodes *GithubComKloudliteOperatorApisClustersV1GCPMasterNodesConfig `json:"masterNodes,omitempty"` + Region string `json:"region"` +} + +type GithubComKloudliteOperatorApisClustersV1GCPClusterConfigIn struct { + CredentialsRef *GithubComKloudliteOperatorApisCommonTypesSecretRefIn `json:"credentialsRef"` + Region string `json:"region"` +} + +type GithubComKloudliteOperatorApisClustersV1GCPMasterNodesConfig struct { + Nodes map[string]interface{} `json:"nodes,omitempty"` + RootVolumeSize int `json:"rootVolumeSize"` + RootVolumeType string `json:"rootVolumeType"` } type GithubComKloudliteOperatorApisClustersV1GCPNodePoolConfig struct { @@ -284,6 +312,7 @@ type GithubComKloudliteOperatorApisClustersV1GCPNodePoolConfig struct { BootVolumeSize int `json:"bootVolumeSize"` BootVolumeType string `json:"bootVolumeType"` Credentials *GithubComKloudliteOperatorApisCommonTypesSecretRef `json:"credentials"` + GcpProjectID string `json:"gcpProjectID"` MachineType string `json:"machineType"` Nodes map[string]interface{} `json:"nodes,omitempty"` PoolType GithubComKloudliteOperatorApisClustersV1GCPPoolType `json:"poolType"` @@ -291,14 +320,9 @@ type GithubComKloudliteOperatorApisClustersV1GCPNodePoolConfig struct { } type GithubComKloudliteOperatorApisClustersV1GCPNodePoolConfigIn struct { - AvailabilityZone string `json:"availabilityZone"` - BootVolumeSize int `json:"bootVolumeSize"` - BootVolumeType string `json:"bootVolumeType"` - Credentials *GithubComKloudliteOperatorApisCommonTypesSecretRefIn `json:"credentials"` - MachineType string `json:"machineType"` - Nodes map[string]interface{} `json:"nodes,omitempty"` - PoolType GithubComKloudliteOperatorApisClustersV1GCPPoolType `json:"poolType"` - Region string `json:"region"` + AvailabilityZone string `json:"availabilityZone"` + MachineType string `json:"machineType"` + PoolType GithubComKloudliteOperatorApisClustersV1GCPPoolType `json:"poolType"` } type GithubComKloudliteOperatorApisClustersV1MasterNodeProps struct { diff --git a/apps/infra/internal/app/graph/struct-to-graphql/cloudprovidersecret.graphqls b/apps/infra/internal/app/graph/struct-to-graphql/cloudprovidersecret.graphqls index 9ec7c9d57..844fb0c71 100644 --- a/apps/infra/internal/app/graph/struct-to-graphql/cloudprovidersecret.graphqls +++ b/apps/infra/internal/app/graph/struct-to-graphql/cloudprovidersecret.graphqls @@ -5,6 +5,7 @@ type CloudProviderSecret @shareable { createdBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! creationTime: Date! displayName: String! + gcp: Github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentials id: ID! lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! markedForDeletion: Boolean @@ -28,6 +29,7 @@ input CloudProviderSecretIn { aws: Github__com___kloudlite___api___apps___infra___internal___entities__AWSSecretCredentialsIn cloudProviderName: Github__com___kloudlite___operator___apis___common____types__CloudProvider! displayName: String! + gcp: Github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentialsIn metadata: MetadataIn! } diff --git a/apps/infra/internal/app/graph/struct-to-graphql/common-types.graphqls b/apps/infra/internal/app/graph/struct-to-graphql/common-types.graphqls index c120a614d..164339be4 100644 --- a/apps/infra/internal/app/graph/struct-to-graphql/common-types.graphqls +++ b/apps/infra/internal/app/graph/struct-to-graphql/common-types.graphqls @@ -20,6 +20,10 @@ type Github__com___kloudlite___api___apps___infra___internal___entities__AWSSecr cfParamStackName: String } +type Github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentials @shareable { + serviceAccountJSON: String! +} + type Github__com___kloudlite___api___apps___infra___internal___entities__InputField @shareable { defaultValue: Any displayUnit: String @@ -165,6 +169,7 @@ type Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec @sha cloudProvider: Github__com___kloudlite___operator___apis___common____types__CloudProvider! clusterInternalDnsHost: String clusterTokenRef: Github__com___kloudlite___operator___apis___common____types__SecretKeyRef + gcp: Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig kloudliteRelease: String! messageQueueTopicName: String! output: Github__com___kloudlite___operator___apis___clusters___v1__ClusterOutput @@ -172,11 +177,25 @@ type Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpec @sha taintMasterNodes: Boolean! } +type Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfig @shareable { + credentialsRef: Github__com___kloudlite___operator___apis___common____types__SecretRef! + gcpProjectID: String! + masterNodes: Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig + region: String! +} + +type Github__com___kloudlite___operator___apis___clusters___v1__GCPMasterNodesConfig @shareable { + nodes: Map + rootVolumeSize: Int! + rootVolumeType: String! +} + type Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfig @shareable { availabilityZone: String! bootVolumeSize: Int! bootVolumeType: String! credentials: Github__com___kloudlite___operator___apis___common____types__SecretRef! + gcpProjectID: String! machineType: String! nodes: Map poolType: Github__com___kloudlite___operator___apis___clusters___v1__GCPPoolType! @@ -754,6 +773,10 @@ input Github__com___kloudlite___api___apps___infra___internal___entities__AWSSec authSecretKeys: Github__com___kloudlite___api___apps___infra___internal___entities__AWSAuthSecretKeysIn } +input Github__com___kloudlite___api___apps___infra___internal___entities__GCPSecretCredentialsIn { + serviceAccountJSON: String! +} + input Github__com___kloudlite___operator___apis___clusters___v1__AWSClusterConfigIn { credentials: Github__com___kloudlite___operator___apis___clusters___v1__AwsCredentialsIn! k3sMasters: Github__com___kloudlite___operator___apis___clusters___v1__AWSK3sMastersConfigIn @@ -803,17 +826,18 @@ input Github__com___kloudlite___operator___apis___clusters___v1__ClusterSpecIn { aws: Github__com___kloudlite___operator___apis___clusters___v1__AWSClusterConfigIn cloudflareEnabled: Boolean cloudProvider: Github__com___kloudlite___operator___apis___common____types__CloudProvider! + gcp: Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfigIn +} + +input Github__com___kloudlite___operator___apis___clusters___v1__GCPClusterConfigIn { + credentialsRef: Github__com___kloudlite___operator___apis___common____types__SecretRefIn! + region: String! } input Github__com___kloudlite___operator___apis___clusters___v1__GCPNodePoolConfigIn { availabilityZone: String! - bootVolumeSize: Int! - bootVolumeType: String! - credentials: Github__com___kloudlite___operator___apis___common____types__SecretRefIn! machineType: String! - nodes: Map poolType: Github__com___kloudlite___operator___apis___clusters___v1__GCPPoolType! - region: String! } input Github__com___kloudlite___operator___apis___clusters___v1__NodePoolSpecIn { diff --git a/apps/infra/internal/domain/clusters.go b/apps/infra/internal/domain/clusters.go index 2328f87af..b1b87183b 100644 --- a/apps/infra/internal/domain/clusters.go +++ b/apps/infra/internal/domain/clusters.go @@ -1,6 +1,7 @@ package domain import ( + "encoding/json" "fmt" iamT "github.com/kloudlite/api/apps/iam/types" @@ -139,10 +140,6 @@ func (d *domain) CreateCluster(ctx InfraContext, cluster entities.Cluster) (*ent return nil, errors.NewE(err) } - if err := d.k8sClient.ValidateObject(ctx, &cluster.Cluster); err != nil { - return nil, errors.NewE(err) - } - if err := d.applyK8sResource(ctx, tokenScrt, 1); err != nil { return nil, errors.NewE(err) } @@ -223,7 +220,67 @@ func (d *domain) CreateCluster(ctx InfraContext, cluster entities.Cluster) (*ent }, } }(), - // MessageQueueTopicName: fmt.Sprintf("kl-acc-%s-clus-%s", ctx.AccountName, cluster.Name), + GCP: func() *clustersv1.GCPClusterConfig { + if cluster.Spec.CloudProvider != ct.CloudProviderGCP { + return nil + } + + cps, err := d.findProviderSecret(ctx, cluster.Spec.GCP.CredentialsRef.Name) + if err != nil { + return nil + } + + var gcpServiceAccountJSON struct { + ProjectID string `json:"project_id"` + } + + if cps.GCP != nil { + if err := json.Unmarshal([]byte(cps.GCP.ServiceAccountJSON), &gcpServiceAccountJSON); err != nil { + return nil + } + } + + return &clustersv1.GCPClusterConfig{ + Region: cluster.Spec.GCP.Region, + GCPProjectID: gcpServiceAccountJSON.ProjectID, + CredentialsRef: ct.SecretRef{ + Name: cps.Name, + Namespace: cps.Namespace, + }, + MasterNodes: clustersv1.GCPMasterNodesConfig{ + RootVolumeType: "pd-ssd", + RootVolumeSize: 50, + Nodes: func() map[string]clustersv1.MasterNodeProps { + if cluster.Spec.AvailabilityMode == "dev" { + return map[string]clustersv1.MasterNodeProps{ + "master-1": { + Role: "primary-master", + AvailabilityZone: fmt.Sprintf("%s-a", cluster.Spec.GCP.Region), // defaults to {{.region}}-a zone + KloudliteRelease: d.env.KloudliteRelease, + }, + } + } + return map[string]clustersv1.MasterNodeProps{ + "master-1": { + Role: "primary-master", + AvailabilityZone: fmt.Sprintf("%s-a", cluster.Spec.GCP.Region), + KloudliteRelease: d.env.KloudliteRelease, + }, + "master-2": { + Role: "secondary-master", + AvailabilityZone: fmt.Sprintf("%s-a", cluster.Spec.GCP.Region), + KloudliteRelease: d.env.KloudliteRelease, + }, + "master-3": { + Role: "secondary-master", + AvailabilityZone: fmt.Sprintf("%s-a", cluster.Spec.GCP.Region), + KloudliteRelease: d.env.KloudliteRelease, + }, + } + }(), + }, + } + }(), MessageQueueTopicName: common.GetTenantClusterMessagingTopic(ctx.AccountName, cluster.Name), KloudliteRelease: d.env.KloudliteRelease, Output: nil, @@ -241,6 +298,10 @@ func (d *domain) CreateCluster(ctx InfraContext, cluster entities.Cluster) (*ent cluster.Spec.AccountName = ctx.AccountName cluster.SyncStatus = t.GenSyncStatus(t.SyncActionApply, 0) + if err := d.k8sClient.ValidateObject(ctx, &cluster.Cluster); err != nil { + return nil, errors.NewE(err) + } + nCluster, err := d.clusterRepo.Create(ctx, &cluster) if err != nil { if d.clusterRepo.ErrAlreadyExists(err) { @@ -255,14 +316,14 @@ func (d *domain) CreateCluster(ctx InfraContext, cluster entities.Cluster) (*ent d.resourceEventPublisher.PublishInfraEvent(ctx, ResourceTypeCluster, nCluster.Name, PublishAdd) - if err := d.applyHelmKloudliteAgent(ctx, nCluster.Name, string(tokenScrt.Data[keyClusterToken]), nCluster.Spec.PublicDNSHost); err != nil { + if err := d.applyHelmKloudliteAgent(ctx, nCluster.Name, string(tokenScrt.Data[keyClusterToken]), nCluster.Spec.PublicDNSHost, string(nCluster.Spec.CloudProvider)); err != nil { return nil, errors.NewE(err) } return nCluster, nil } -func (d *domain) applyHelmKloudliteAgent(ctx InfraContext, clusterName string, clusterToken string, clusterPublicHost string) error { +func (d *domain) applyHelmKloudliteAgent(ctx InfraContext, clusterName string, clusterToken string, clusterPublicHost string, cloudprovider string) error { b, err := templates.Read(templates.HelmKloudliteAgent) if err != nil { return errors.NewE(err) @@ -278,6 +339,7 @@ func (d *domain) applyHelmKloudliteAgent(ctx InfraContext, clusterName string, c "message-office-grpc-addr": d.env.MessageOfficeExternalGrpcAddr, "public-dns-host": clusterPublicHost, + "cloudprovider": cloudprovider, }) if err != nil { return errors.NewE(err) @@ -341,7 +403,7 @@ func (d *domain) UpgradeHelmKloudliteAgent(ctx InfraContext, clusterName string) return errors.NewE(err) } - if err := d.applyHelmKloudliteAgent(ctx, clusterName, out.ClusterToken, cluster.Spec.PublicDNSHost); err != nil { + if err := d.applyHelmKloudliteAgent(ctx, clusterName, out.ClusterToken, cluster.Spec.PublicDNSHost, string(cluster.Spec.CloudProvider)); err != nil { return errors.NewE(err) } @@ -495,15 +557,21 @@ func (d *domain) OnClusterUpdateMessage(ctx InfraContext, cluster entities.Clust return nil } + patchDoc := repos.Document{} + if cluster.Spec.Output != nil { + patchDoc[fc.ClusterSpecOutput] = cluster.Spec.Output + } + + if cluster.Spec.AWS != nil && cluster.Spec.AWS.VPC != nil { + patchDoc[fc.ClusterSpecAwsVpc] = cluster.Spec.AWS.VPC + } + uCluster, err := d.clusterRepo.PatchById( ctx, xCluster.Id, common.PatchForSyncFromAgent(&cluster, recordVersion, status, common.PatchOpts{ MessageTimestamp: opts.MessageTimestamp, - XPatch: repos.Document{ - fc.ClusterSpecOutput: cluster.Spec.Output, - fc.ClusterSpecAwsVpc: cluster.Spec.AWS.VPC, - }, + XPatch: patchDoc, })) d.resourceEventPublisher.PublishInfraEvent(ctx, ResourceTypeCluster, uCluster.GetName(), PublishUpdate) return errors.NewE(err) diff --git a/apps/infra/internal/domain/domain.go b/apps/infra/internal/domain/domain.go index 72216ffc0..ddd08ccf0 100644 --- a/apps/infra/internal/domain/domain.go +++ b/apps/infra/internal/domain/domain.go @@ -71,7 +71,13 @@ func addTrackingId(obj client.Object, id repos.ID) { ann = make(map[string]string, 1) } ann[constant.ObservabilityTrackingKey] = string(id) - obj.SetAnnotations(ann) + + labels := obj.GetLabels() + if labels == nil { + labels = make(map[string]string, 1) + } + labels[constant.ObservabilityTrackingKey] = string(id) + obj.SetLabels(labels) } func (d *domain) applyK8sResource(ctx InfraContext, obj client.Object, recordVersion int) error { diff --git a/apps/infra/internal/domain/nodepool.go b/apps/infra/internal/domain/nodepool.go index dd2314a7b..bd968c93f 100644 --- a/apps/infra/internal/domain/nodepool.go +++ b/apps/infra/internal/domain/nodepool.go @@ -41,7 +41,6 @@ func (d *domain) CreateNodePool(ctx InfraContext, clusterName string, nodepool e switch nodepool.Spec.CloudProvider { case ct.CloudProviderAWS: { - ps, err := d.findProviderSecret(ctx, cluster.Spec.AWS.Credentials.SecretRef.Name) if err != nil { return nil, errors.NewE(err) @@ -81,6 +80,40 @@ func (d *domain) CreateNodePool(ctx InfraContext, clusterName string, nodepool e }(), } } + case ct.CloudProviderGCP: + { + ps, err := d.findProviderSecret(ctx, cluster.Spec.GCP.CredentialsRef.Name) + if err != nil { + return nil, errors.NewE(err) + } + + k8sSecret, err := corev1SecretFromProviderSecret(ps) + if err != nil { + return nil, errors.NewE(err) + } + + // INFO: because kube-system is omnipresent on k8s + k8sSecret.Namespace = "kube-system" + + if err := d.resDispatcher.ApplyToTargetCluster(ctx, clusterName, k8sSecret, nodepool.RecordVersion); err != nil { + return nil, errors.NewE(err) + } + + nodepool.Spec.GCP = &clustersv1.GCPNodePoolConfig{ + Region: cluster.Spec.GCP.Region, + AvailabilityZone: nodepool.Spec.GCP.AvailabilityZone, + GCPProjectID: cluster.Spec.GCP.GCPProjectID, + Credentials: ct.SecretRef{ + Name: k8sSecret.Name, + Namespace: k8sSecret.Namespace, + }, + PoolType: nodepool.Spec.GCP.PoolType, + MachineType: nodepool.Spec.GCP.MachineType, + BootVolumeType: "pd-ssd", + BootVolumeSize: 50, + Nodes: map[string]clustersv1.NodeProps{}, + } + } default: { return nil, errors.Newf("cloudprovider: %s, currently not supported", nodepool.Spec.CloudProvider) diff --git a/apps/infra/internal/domain/provider-secret-aws.go b/apps/infra/internal/domain/provider-secret-aws.go index 6f0711e26..7520a38bc 100644 --- a/apps/infra/internal/domain/provider-secret-aws.go +++ b/apps/infra/internal/domain/provider-secret-aws.go @@ -153,7 +153,7 @@ func (d *domain) ValidateProviderSecretAWSAccess(ctx InfraContext, name string) return nil, errors.NewE(err) } - if err := psecret.Validate(); err != nil { + if err := psecret.AWS.Validate(); err != nil { return nil, errors.NewE(err) } diff --git a/apps/infra/internal/domain/provider-secrets.go b/apps/infra/internal/domain/provider-secrets.go index ca110d841..e5f4e2386 100644 --- a/apps/infra/internal/domain/provider-secrets.go +++ b/apps/infra/internal/domain/provider-secrets.go @@ -48,6 +48,16 @@ func corev1SecretFromProviderSecret(ps *entities.CloudProviderSecret) (*corev1.S } } } + case ct.CloudProviderGCP: + { + if err := ps.GCP.Validate(); err != nil { + return nil, err + } + + if err := fn.JsonConversion(ps.GCP.GCPCredentials, &stringData); err != nil { + return nil, err + } + } default: { return nil, fmt.Errorf("unknown cloudprovider (%s)", ps.CloudProviderName) @@ -122,15 +132,21 @@ func (d *domain) CreateProviderSecret(ctx InfraContext, psecretIn entities.Cloud return nil, fmt.Errorf("unknown aws auth mechanism (%s)", psecretIn.AWS.AuthMechanism) } } + + // if err := psecretIn.AWS.Validate(); err != nil { + // return nil, errors.NewE(err) + // } + } + case ct.CloudProviderGCP: + { + if err := psecretIn.GCP.Validate(); err != nil { + return nil, errors.NewE(err) + } } default: return nil, errors.Newf("unknown cloud provider") } - if err := psecretIn.Validate(); err != nil { - return nil, errors.NewE(err) - } - psecretIn.IncrementRecordVersion() psecretIn.CreatedBy = common.CreatedOrUpdatedBy{ UserId: ctx.UserId, @@ -162,10 +178,6 @@ func (d *domain) UpdateProviderSecret(ctx InfraContext, providerSecretIn entitie return nil, errors.NewE(err) } - if err := providerSecretIn.Validate(); err != nil { - return nil, errors.NewE(err) - } - fieldsPatch := map[string]any{} switch providerSecretIn.CloudProviderName { case ct.CloudProviderAWS: diff --git a/apps/infra/internal/domain/templates/helm-charts-kloudlite-agent.yml.tpl b/apps/infra/internal/domain/templates/helm-charts-kloudlite-agent.yml.tpl index a9654eb0e..031b8f2e7 100644 --- a/apps/infra/internal/domain/templates/helm-charts-kloudlite-agent.yml.tpl +++ b/apps/infra/internal/domain/templates/helm-charts-kloudlite-agent.yml.tpl @@ -5,7 +5,9 @@ {{- $messageOfficeGrpcAddr := get . "message-office-grpc-addr" }} {{- $clusterToken := get . "cluster-token" }} -{{- $publicDnsHost := get . "public-dns-host" }} +{{- $publicDNSHost := get . "public-dns-host" }} + +{{- $cloudprovider := get . "cloudprovider" }} --- apiVersion: crds.kloudlite.io/v1 @@ -54,7 +56,7 @@ spec: operator: "Exists" effect: "NoSchedule" - cloudProvider: "aws" + cloudProvider: "{{$cloudprovider}}" agent: enabled: true @@ -78,7 +80,7 @@ spec: nodepools: enabled: true # must be one of aws,azure,gcp - cloudprovider: "aws" + cloudprovider: "{{$cloudprovider}}" wireguard: publicDNSHost: {{$publicDNSHost}} diff --git a/apps/infra/internal/entities/field-constants/generated_constants.go b/apps/infra/internal/entities/field-constants/generated_constants.go index 3e498024d..d3acf1b3c 100644 --- a/apps/infra/internal/entities/field-constants/generated_constants.go +++ b/apps/infra/internal/entities/field-constants/generated_constants.go @@ -65,6 +65,16 @@ const ( BYOKClusterClusterTokenRefKey = "clusterTokenRef.key" BYOKClusterClusterTokenRefName = "clusterTokenRef.name" BYOKClusterClusterTokenRefNamespace = "clusterTokenRef.namespace" + BYOKClusterGcp = "gcp" + BYOKClusterGcpCredentialsRef = "gcp.credentialsRef" + BYOKClusterGcpCredentialsRefName = "gcp.credentialsRef.name" + BYOKClusterGcpCredentialsRefNamespace = "gcp.credentialsRef.namespace" + BYOKClusterGcpGcpProjectID = "gcp.gcpProjectID" + BYOKClusterGcpMasterNodes = "gcp.masterNodes" + BYOKClusterGcpMasterNodesNodes = "gcp.masterNodes.nodes" + BYOKClusterGcpMasterNodesRootVolumeSize = "gcp.masterNodes.rootVolumeSize" + BYOKClusterGcpMasterNodesRootVolumeType = "gcp.masterNodes.rootVolumeType" + BYOKClusterGcpRegion = "gcp.region" BYOKClusterKloudliteRelease = "kloudliteRelease" BYOKClusterMessageQueueTopicName = "messageQueueTopicName" BYOKClusterOutput = "output" @@ -97,6 +107,8 @@ const ( CloudProviderSecretAwsCfParamRoleName = "aws.cfParamRoleName" CloudProviderSecretAwsCfParamStackName = "aws.cfParamStackName" CloudProviderSecretCloudProviderName = "cloudProviderName" + CloudProviderSecretGcp = "gcp" + CloudProviderSecretGcpServiceAccountJSON = "gcp.serviceAccountJSON" ) // constant vars generated for struct Cluster @@ -132,6 +144,16 @@ const ( ClusterSpecClusterTokenRefKey = "spec.clusterTokenRef.key" ClusterSpecClusterTokenRefName = "spec.clusterTokenRef.name" ClusterSpecClusterTokenRefNamespace = "spec.clusterTokenRef.namespace" + ClusterSpecGcp = "spec.gcp" + ClusterSpecGcpCredentialsRef = "spec.gcp.credentialsRef" + ClusterSpecGcpCredentialsRefName = "spec.gcp.credentialsRef.name" + ClusterSpecGcpCredentialsRefNamespace = "spec.gcp.credentialsRef.namespace" + ClusterSpecGcpGcpProjectID = "spec.gcp.gcpProjectID" + ClusterSpecGcpMasterNodes = "spec.gcp.masterNodes" + ClusterSpecGcpMasterNodesNodes = "spec.gcp.masterNodes.nodes" + ClusterSpecGcpMasterNodesRootVolumeSize = "spec.gcp.masterNodes.rootVolumeSize" + ClusterSpecGcpMasterNodesRootVolumeType = "spec.gcp.masterNodes.rootVolumeType" + ClusterSpecGcpRegion = "spec.gcp.region" ClusterSpecKloudliteRelease = "spec.kloudliteRelease" ClusterSpecMessageQueueTopicName = "spec.messageQueueTopicName" ClusterSpecOutput = "spec.output" @@ -191,6 +213,11 @@ const ( DomainEntryDomainName = "domainName" ) +// constant vars generated for struct GCPSecretCredentials +const ( + GCPSecretCredentialsServiceAccountJSON = "serviceAccountJSON" +) + // constant vars generated for struct HelmRelease const ( HelmReleaseSpec = "spec" @@ -306,6 +333,7 @@ const ( NodePoolSpecGcpCredentials = "spec.gcp.credentials" NodePoolSpecGcpCredentialsName = "spec.gcp.credentials.name" NodePoolSpecGcpCredentialsNamespace = "spec.gcp.credentials.namespace" + NodePoolSpecGcpGcpProjectID = "spec.gcp.gcpProjectID" NodePoolSpecGcpMachineType = "spec.gcp.machineType" NodePoolSpecGcpNodes = "spec.gcp.nodes" NodePoolSpecGcpPoolType = "spec.gcp.poolType" diff --git a/apps/infra/internal/entities/provider-secret.go b/apps/infra/internal/entities/provider-secret.go index e772d9545..456926997 100644 --- a/apps/infra/internal/entities/provider-secret.go +++ b/apps/infra/internal/entities/provider-secret.go @@ -21,6 +21,8 @@ const ( AWSAssumeRoleExternalId string = "awsAssumeRoleExternalId" AWAssumeRoleRoleARN string = "awsAssumeRoleRoleARN" AWSInstanceProfileName string = "awsInstanceProfileName" + + KeyGCPServiceAccountJSON string = "gcp-creds.json" ) type AWSAssumeRoleParams struct { @@ -107,6 +109,22 @@ func (asc *AWSSecretCredentials) Validate() error { return nil } +type GCPSecretCredentials struct { + clustersv1.GCPCredentials `json:",inline"` +} + +func (gcp *GCPSecretCredentials) Validate() error { + if gcp == nil { + return fmt.Errorf("gcp credentials is nil") + } + + if gcp.ServiceAccountJSON == "" { + return fmt.Errorf("serviceAccountJSON must be set") + } + + return nil +} + type CloudProviderSecret struct { repos.BaseEntity `json:",inline" graphql:"noinput"` AccountName string `json:"accountName" graphql:"noinput"` @@ -117,6 +135,7 @@ type CloudProviderSecret struct { common.ResourceMetadata `json:",inline"` AWS *AWSSecretCredentials `json:"aws,omitempty"` + GCP *GCPSecretCredentials `json:"gcp,omitempty"` } func (cps *CloudProviderSecret) GetDisplayName() string { @@ -151,25 +170,3 @@ var CloudProviderSecretIndices = []repos.IndexField{ Unique: true, }, } - -func (cps *CloudProviderSecret) Validate() error { - if cps == nil { - return errors.Newf("cloud provider secret is nil") - } - - switch cps.CloudProviderName { - case ct.CloudProviderAWS: - { - if cps.AWS == nil { - return errors.Newf(".aws is nil, it must be provided when cloudproviderName is set to aws") - } - - return nil - // return cps.AWS.Validate() - } - default: - { - return fmt.Errorf("not implemented for cloudprovider (%s)", cps.CloudProviderName) - } - } -} diff --git a/apps/observability/internal/app/app.go b/apps/observability/internal/app/app.go index 85fe2e72c..eadbf0281 100644 --- a/apps/observability/internal/app/app.go +++ b/apps/observability/internal/app/app.go @@ -48,7 +48,7 @@ var Module = fx.Module( return k8s.NewClient(cfg, nil) }), - fx.Invoke(func(infraCli infra.InfraClient, iamCli iam.IAMClient, mux *http.ServeMux, sessStore SessionStore, ev *env.Env, logger logging.Logger) { + fx.Invoke(func(infraCli infra.InfraClient, kcli k8s.Client, iamCli iam.IAMClient, mux *http.ServeMux, sessStore SessionStore, ev *env.Env, logger logging.Logger) { sessionMiddleware := httpServer.NewReadSessionMiddlewareHandler(sessStore, constants.CookieName, constants.CacheSessionPrefix) mux.HandleFunc("/observability/metrics/", sessionMiddleware(func(w http.ResponseWriter, r *http.Request) { @@ -130,6 +130,7 @@ var Module = fx.Module( mux.HandleFunc("/observability/logs", sessionMiddleware(func(w http.ResponseWriter, r *http.Request) { timestart := time.Now() + logger.Infof("%s %s", r.Method, r.URL.Path) defer func() { logger.Infof("%s %s took %.2fs", r.Method, r.URL.Path, time.Since(timestart).Seconds()) }() @@ -154,28 +155,30 @@ var Module = fx.Module( clusterName := r.URL.Query().Get("cluster_name") trackingId := r.URL.Query().Get("tracking_id") - out, err := infraCli.GetClusterKubeconfig(r.Context(), &infra.GetClusterIn{ - UserId: string(sess.UserId), - UserName: sess.UserName, - UserEmail: sess.UserEmail, - AccountName: accountName, - ClusterName: clusterName, - }) - if err != nil { - http.Error(w, err.Error(), 500) - return - } + if !strings.HasPrefix(trackingId, "clus-") { + out, err := infraCli.GetClusterKubeconfig(r.Context(), &infra.GetClusterIn{ + UserId: string(sess.UserId), + UserName: sess.UserName, + UserEmail: sess.UserEmail, + AccountName: accountName, + ClusterName: clusterName, + }) + if err != nil { + http.Error(w, err.Error(), 500) + return + } - cfg, err := k8s.RestConfigFromKubeConfig(out.Kubeconfig) - if err != nil { - http.Error(w, err.Error(), 500) - return - } + cfg, err := k8s.RestConfigFromKubeConfig(out.Kubeconfig) + if err != nil { + http.Error(w, err.Error(), 500) + return + } - kcli, err := k8s.NewClient(cfg, nil) - if err != nil { - http.Error(w, err.Error(), 500) - return + kcli, err = k8s.NewClient(cfg, nil) + if err != nil { + http.Error(w, err.Error(), 500) + return + } } closed := false @@ -190,21 +193,24 @@ var Module = fx.Module( }() pr, pw := io.Pipe() - go StreamLogs(r.Context(), kcli, pw, LogParams{ - TrackingId: trackingId, - }) - b := bufio.NewReader(pr) - for !closed { - msg, err := b.ReadBytes('\n') - if err != nil { - if !errors.Is(err, io.EOF) { - http.Error(w, err.Error(), 500) + go func() { + b := bufio.NewReader(pr) + for !closed { + msg, err := b.ReadBytes('\n') + if err != nil { + if !errors.Is(err, io.EOF) { + http.Error(w, err.Error(), 500) + } + return } - return + fmt.Fprintf(w, "%s", msg) + w.(http.Flusher).Flush() } - fmt.Fprintf(w, "%s", msg) - w.(http.Flusher).Flush() + }() + + if err := StreamLogs(r.Context(), kcli, pw, LogParams{TrackingId: trackingId}, logger); err != nil { + http.Error(w, err.Error(), 500) } })) }), diff --git a/apps/observability/internal/app/logs.go b/apps/observability/internal/app/logs.go index 0203aa3ed..ea52e6607 100644 --- a/apps/observability/internal/app/logs.go +++ b/apps/observability/internal/app/logs.go @@ -2,12 +2,13 @@ package app import ( "context" - "fmt" + "errors" "io" "github.com/kloudlite/api/constants" fn "github.com/kloudlite/api/pkg/functions" "github.com/kloudlite/api/pkg/k8s" + "github.com/kloudlite/api/pkg/logging" "golang.org/x/sync/errgroup" corev1 "k8s.io/api/core/v1" apiLabels "k8s.io/apimachinery/pkg/labels" @@ -18,7 +19,7 @@ type LogParams struct { TrackingId string } -func StreamLogs(ctx context.Context, kcli k8s.Client, writer io.WriteCloser, params LogParams) error { +func StreamLogs(ctx context.Context, kcli k8s.Client, writer io.WriteCloser, params LogParams, logger logging.Logger) error { var pods corev1.PodList if err := kcli.List(ctx, &pods, &client.ListOptions{ @@ -31,22 +32,28 @@ func StreamLogs(ctx context.Context, kcli k8s.Client, writer io.WriteCloser, par g, ctx := errgroup.WithContext(ctx) + if len(pods.Items) == 0 { + return nil + } + for i := range pods.Items { pod := pods.Items[i] for j := range pod.Spec.Containers { container := pod.Spec.Containers[j] g.Go(func() error { defer func() { - fmt.Printf("\n-------disconnected for (%s/%s)---------\n", pod.Namespace, pod.Name) + logger.Infof("disconnected for (%s/%s)", pod.Namespace, pod.Name) }() + logger.Infof("streaming logs for (%s/%s)", pod.Namespace, pod.Name) if err := kcli.ReadLogs(ctx, pod.Namespace, pod.Name, writer, &k8s.ReadLogsOptions{ ContainerName: container.Name, SinceSeconds: nil, TailLines: fn.New(int64(300)), }); err != nil { - fmt.Printf("ERR: %v", err) - return err - // return err + if !errors.Is(err, io.EOF) { + return err + } + return nil } return nil }) diff --git a/apps/observability/internal/env/env.go b/apps/observability/internal/env/env.go index 092c1442e..8acd6dddb 100644 --- a/apps/observability/internal/env/env.go +++ b/apps/observability/internal/env/env.go @@ -18,7 +18,7 @@ type Env struct { IsDev bool - KubernetesApiProxy string `env:"KUBERNETES_API_PROXY" default:"localhost:8080"` + KubernetesApiProxy string `env:"KUBERNETES_API_PROXY"` } func LoadEnv() (*Env, error) { diff --git a/apps/observability/internal/framework/framework.go b/apps/observability/internal/framework/framework.go index 6d39ccfca..274fe489b 100644 --- a/apps/observability/internal/framework/framework.go +++ b/apps/observability/internal/framework/framework.go @@ -2,7 +2,6 @@ package framework import ( "context" - "fmt" "net/http" "github.com/kloudlite/api/apps/observability/internal/app" @@ -26,7 +25,7 @@ var Module = fx.Module("framework", fx.Provide(func(ev *env.Env, logger logging.Logger) (*nats.Client, error) { return nats.NewClient(ev.NatsURL, nats.ClientOpts{ - Name: "console", + Name: "observability-api", Logger: logger, }) }), @@ -51,35 +50,20 @@ var Module = fx.Module("framework", app.Module, - // fx.Provide(func(logger logging.Logger, ev *env.Env) httpServer.Server { - // return httpServer.NewServer(httpServer.ServerArgs{ - // Logger: logger, - // CorsAllowOrigins: &ev.HttpCorsOrigins, - // IsDev: ev.IsDev, - // }) - // }), - // - // fx.Invoke(func(lf fx.Lifecycle, server httpServer.Server, ev *env.Env) { - // lf.Append(fx.Hook{ - // OnStart: func(context.Context) error { - // return server.Listen(fmt.Sprintf(":%d", ev.HttpPort)) - // }, - // OnStop: func(context.Context) error { - // return server.Close() - // }, - // }) - // }), - fx.Provide(func() *http.ServeMux { return http.NewServeMux() }), fx.Invoke(func(lf fx.Lifecycle, ev *env.Env, mux *http.ServeMux) { + server := &http.Server{Addr: ":8080", Handler: mux} lf.Append(fx.Hook{ OnStart: func(context.Context) error { - go http.ListenAndServe(fmt.Sprintf(":%d", ev.HttpPort), mux) + go server.ListenAndServe() return nil }, + OnStop: func(ctx context.Context) error { + return server.Shutdown(ctx) + }, }) }), ) diff --git a/apps/websocket-server/internal/app/app.go b/apps/websocket-server/internal/app/app.go index 7509fe818..0681b43a5 100644 --- a/apps/websocket-server/internal/app/app.go +++ b/apps/websocket-server/internal/app/app.go @@ -50,11 +50,6 @@ var Module = fx.Module("app", return fiber.ErrUpgradeRequired }) - // a.Use("/ws", websocket.New(func(c *websocket.Conn) { - // if err := d.HandleWebSocket(context.TODO(), c); err != nil { - // logr.Errorf(err, "while handling websocket for resource update") - // } - // })) a.Use("/ws", func(c *fiber.Ctx) error { ctx := c.Context() diff --git a/apps/websocket-server/internal/domain/observability-logs.go b/apps/websocket-server/internal/domain/observability-logs.go index 5faaa5f7a..bd21f65a9 100644 --- a/apps/websocket-server/internal/domain/observability-logs.go +++ b/apps/websocket-server/internal/domain/observability-logs.go @@ -41,8 +41,7 @@ func (d *domain) handleObservabilityLogsMsg(ctx types.Context, subscriptions map msg.Id = "default" } - // hash := logs.LogHash(msg.Spec, ctx.Session.UserId, msg.Id) - hash := "tmp" + hash := logs.LogHash(msg.Spec, ctx.Session.UserId, msg.Id) switch msg.Event { case logs.EventSubscribe: @@ -56,7 +55,7 @@ func (d *domain) handleObservabilityLogsMsg(ctx types.Context, subscriptions map utils.WriteInfo(ctx, "subscribed to logs", msg.Id, types.ForLogs) - nctx, cf := context.WithCancel(context.TODO()) + nctx, cf := context.WithCancel(ctx.Context) req, err := http.NewRequestWithContext(nctx, http.MethodGet, fmt.Sprintf("http://%s/observability/logs", d.env.ObservabilityApiAddr), nil) if err != nil { diff --git a/go.mod b/go.mod index 12ca00a1f..a56680c82 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/go-redis/redis/v8 v8.11.5 github.com/gobuffalo/flect v1.0.2 github.com/gofiber/adaptor/v2 v2.1.23 - github.com/gofiber/fiber/v2 v2.52.1 + github.com/gofiber/fiber/v2 v2.52.2 github.com/gofiber/websocket/v2 v2.0.21 github.com/google/go-github/v43 v43.0.0 github.com/google/go-github/v45 v45.2.0 @@ -42,11 +42,10 @@ require ( require ( github.com/kloudlite/container-registry-authorizer v0.0.0-20231021122509-161dc30fde55 - github.com/kloudlite/operator v1.0.4-0.20240326121100-7a59627e6d54 + github.com/kloudlite/operator v1.0.4-0.20240409082541-b8ead24a9fad github.com/nats-io/nats.go v1.31.0 github.com/onsi/ginkgo/v2 v2.12.0 github.com/onsi/gomega v1.27.10 - github.com/shamaton/msgpack/v2 v2.2.0 github.com/stretchr/testify v1.9.0 github.com/ztrue/tracerr v0.4.0 golang.org/x/exp v0.0.0-20230905200255-921286631fa9 diff --git a/go.sum b/go.sum index 8ca962893..3e7e2b3e6 100644 --- a/go.sum +++ b/go.sum @@ -15,8 +15,6 @@ github.com/agnivade/levenshtein v1.1.1/go.mod h1:veldBMzWxcCG2ZvUTKD2kJNRdCk5hVb github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= -github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= -github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q= @@ -82,10 +80,8 @@ github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5x github.com/gofiber/adaptor/v2 v2.1.23 h1:VG0yAPnB2EJZjxy4Ul+Ra9e92PnqwXE97SUVuPGuoAA= github.com/gofiber/adaptor/v2 v2.1.23/go.mod h1:hnYEQBPF2x1JaBHygutJJF5d0+J2eYnKKsUMCSsfxKk= github.com/gofiber/fiber/v2 v2.32.0/go.mod h1:CMy5ZLiXkn6qwthrl03YMyW1NLfj0rhxz2LKl4t7ZTY= -github.com/gofiber/fiber/v2 v2.51.0 h1:JNACcZy5e2tGApWB2QrRpenTWn0fq0hkFm6k0C86gKQ= -github.com/gofiber/fiber/v2 v2.51.0/go.mod h1:xaQRZQJGqnKOQnbQw+ltvku3/h8QxvNi8o6JiJ7Ll0U= -github.com/gofiber/fiber/v2 v2.52.1 h1:1RoU2NS+b98o1L77sdl5mboGPiW+0Ypsi5oLmcYlgHI= -github.com/gofiber/fiber/v2 v2.52.1/go.mod h1:KEOE+cXMhXG0zHc9d8+E38hoX+ZN7bhOtgeF2oT6jrQ= +github.com/gofiber/fiber/v2 v2.52.2 h1:b0rYH6b06Df+4NyrbdptQL8ifuxw/Tf2DgfkZkDaxEo= +github.com/gofiber/fiber/v2 v2.52.2/go.mod h1:KEOE+cXMhXG0zHc9d8+E38hoX+ZN7bhOtgeF2oT6jrQ= github.com/gofiber/utils v0.1.2 h1:1SH2YEz4RlNS0tJlMJ0bGwO0JkqPqvq6TbHK9tXZKtk= github.com/gofiber/utils v0.1.2/go.mod h1:pacRFtghAE3UoknMOUiXh2Io/nLWSUHtQCi/3QASsOc= github.com/gofiber/websocket/v2 v2.0.21 h1:mQEiLXBqFsNNlJc5dzFgSGeoqoEXYvIcdBQzAZBdbL0= @@ -161,16 +157,12 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.14.1/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.15.0/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM= -github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/compress v1.17.7 h1:ehO88t2UGzQK66LMdE8tibEd1ErmzZjNEqWkjLAKQQg= github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/kloudlite/container-registry-authorizer v0.0.0-20231021122509-161dc30fde55 h1:YnZh3TL6AG4EfoInx1/L5zcPHd2QxgLKseJB1KtHjdQ= github.com/kloudlite/container-registry-authorizer v0.0.0-20231021122509-161dc30fde55/go.mod h1:GZj3wZmIw/qCciclRhgQTgmGiqe8wxoVzMXQjbOfnbc= -github.com/kloudlite/operator v1.0.4-0.20240320190031-57397d040302 h1:5oHaEVzE7gTnrVjbmpIWq9fIail31FRzqsPR4aqBtv0= -github.com/kloudlite/operator v1.0.4-0.20240320190031-57397d040302/go.mod h1:CnMPlG0NFL1KyhoKJj2ABdNeFF+yR3R+dzPFk3S9E3A= -github.com/kloudlite/operator v1.0.4-0.20240326121100-7a59627e6d54 h1:nsyBYLUAOQC3KETaDlGF7faAbudfDtMvVUmV21XCrGc= -github.com/kloudlite/operator v1.0.4-0.20240326121100-7a59627e6d54/go.mod h1:CnMPlG0NFL1KyhoKJj2ABdNeFF+yR3R+dzPFk3S9E3A= +github.com/kloudlite/operator v1.0.4-0.20240409082541-b8ead24a9fad h1:uJWUGbOPS72pxoFpxRpqr3bT9cBptRcNseytCWY/2KE= +github.com/kloudlite/operator v1.0.4-0.20240409082541-b8ead24a9fad/go.mod h1:ozyCDuQNCcMRu2XYZz4OtWr38IwRZ50ZCOcBsobj60c= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= @@ -241,8 +233,6 @@ github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rivo/uniseg v0.4.2 h1:YwD0ulJSJytLpiaWua0sBDusfsCZohxjxzVTYjwxfV8= -github.com/rivo/uniseg v0.4.2/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= @@ -262,8 +252,6 @@ github.com/sendgrid/sendgrid-go v3.11.1+incompatible h1:ai0+woZ3r/+tKLQExznak5Xe github.com/sendgrid/sendgrid-go v3.11.1+incompatible/go.mod h1:QRQt+LX/NmgVEvmdRw0VT/QgUn499+iza2FnDca9fg8= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= -github.com/shamaton/msgpack/v2 v2.2.0 h1:IP1m01pHwCrMa6ZccP9B3bqxEMKMSmMVAVKk54g3L/Y= -github.com/shamaton/msgpack/v2 v2.2.0/go.mod h1:6khjYnkx73f7VQU7wjcFS9DFjs+59naVWJv1TB7qdOI= github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8= github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= @@ -297,8 +285,6 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasthttp v1.33.0/go.mod h1:KJRK/MXx0J+yd0c5hlR+s1tIHD72sniU8ZJjl97LIw4= github.com/valyala/fasthttp v1.35.0/go.mod h1:t/G+3rLek+CyY9bnIE+YlMRddxVAAGjhxndDB4i4C0I= -github.com/valyala/fasthttp v1.50.0 h1:H7fweIlBm0rXLs2q0XbalvJ6r0CUPFWK3/bB4N13e9M= -github.com/valyala/fasthttp v1.50.0/go.mod h1:k2zXd82h/7UZc3VOdJ2WaUqt1uZ/XpXAfE9i+HBC3lA= github.com/valyala/fasthttp v1.52.0 h1:wqBQpxH71XW0e2g+Og4dzQM8pk34aFYlA1Ga8db7gU0= github.com/valyala/fasthttp v1.52.0/go.mod h1:hf5C4QnVMkNXMspnsUlfM3WitlgYflyhHYoKol/szxQ= github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8=