Skip to content
This repository was archived by the owner on Jun 11, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .tools/nvim/__http__/console/environments.graphql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ global:
label: List Environments
query: |+ #graphql
query Core_listEnvironments {
core_listEnvironments() {
core_listEnvironments {
edges {
cursor
node {
Expand Down Expand Up @@ -46,7 +46,7 @@ query: |+ #graphql
pageInfo {
endCursor
hasNextPage
hasPreviousPage
hasPrevPage
startCursor
}
totalCount
Expand Down
72 changes: 72 additions & 0 deletions .tools/nvim/__http__/console/registry-image.graphql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
---
global:
image: "test-image:t1.0.0"
---

label: List Registry Images
query: |+ #graphql
query Core_listRegistryImages {
core_listRegistryImages {
edges {
cursor
node {
id
accountName
imageName
imageTag
meta
}
}
pageInfo {
endCursor
hasNextPage
hasPrevPage
startCursor
}
totalCount
}
}

---

label: Get Registry Image
query: |+
query Core_getRegistryImage($image: String!) {
core_getRegistryImage(image: $image) {
accountName
imageName
imageTag
meta
}
}
variables:
image: "{{.image}}"

---

label: Delete Registry Image
query: |+
mutation Core_deleteRegistryImage($image: String!) {
core_deleteRegistryImage(image: $image)
}
variables:
image: "{{.image}}"

---

label: Get Registry Image URL
query: |+
query Core_getRegistryImageURL($image: String!, $meta: Map!) {
core_getRegistryImageURL(image: $image, meta: $meta) {
url
scriptUrl
}
}
variables:
image: "{{.image}}"
meta:
registry: "github"
repository: "kloudlite/kloudlite-console"
tag: "latest"

---
4 changes: 3 additions & 1 deletion apps/console/Taskfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,14 @@ tasks:
--struct github.com/kloudlite/api/apps/console/internal/entities.ClusterManagedService
--struct github.com/kloudlite/api/apps/console/internal/entities.ImportedManagedResource
--struct github.com/kloudlite/api/apps/console/internal/entities.ImagePullSecret
--struct github.com/kloudlite/api/apps/console/internal/entities.RegistryImage
--struct github.com/kloudlite/api/apps/console/internal/entities.RegistryImageURL
--struct github.com/kloudlite/api/pkg/repos.MatchFilter
--struct github.com/kloudlite/api/pkg/repos.CursorPagination
> ./internal/app/_struct-to-graphql/main.go
- |+
pushd ./internal/app/_struct-to-graphql
go run main.go --dev --out-dir ../graph/struct-to-graphql --with-pagination Environment,App,ExternalApp,Secret,Config,Router,ManagedResource,ImportedManagedResource,ImagePullSecret,ClusterManagedService
go run main.go --dev --out-dir ../graph/struct-to-graphql --with-pagination Environment,App,ExternalApp,Secret,Config,Router,ManagedResource,ImportedManagedResource,ImagePullSecret,ClusterManagedService,RegistryImage
popd
- rm -rf ./internal/app/_struct-to-graphql

Expand Down
32 changes: 32 additions & 0 deletions apps/console/internal/app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ var Module = fx.Module("app",
repos.NewFxMongoRepo[*entities.ResourceMapping]("resource_mappings", "rmap", entities.ResourceMappingIndices),
repos.NewFxMongoRepo[*entities.ServiceBinding]("service_bindings", "svcb", entities.ServiceBindingIndexes),
repos.NewFxMongoRepo[*entities.ClusterManagedService]("cluster_managed_services", "cmsvc", entities.ClusterManagedServiceIndices),
repos.NewFxMongoRepo[*entities.RegistryImage]("registry_images", "reg_img", entities.RegistryImageIndexes),

fx.Provide(
func(conn IAMGrpcClient) iam.IAMClient {
Expand Down Expand Up @@ -190,6 +191,37 @@ var Module = fx.Module("app",
})
}),

fx.Provide(func(jc *nats.JetstreamClient, ev *env.Env, logger logging.Logger) (WebhookConsumer, error) {
topic := string(common.ImageRegistryHookTopicName)
consumerName := "console:webhook"
return msg_nats.NewJetstreamConsumer(context.TODO(), jc, msg_nats.JetstreamConsumerArgs{
Stream: ev.EventsNatsStream,
ConsumerConfig: msg_nats.ConsumerConfig{
Name: consumerName,
Durable: consumerName,
Description: "this consumer reads message from a subject dedicated to console registry webhooks",
FilterSubjects: []string{topic},
},
})
}),

fx.Invoke(func(lf fx.Lifecycle, consumer WebhookConsumer, d domain.Domain, logger logging.Logger) {
lf.Append(fx.Hook{
OnStart: func(context.Context) error {
go func() {
err := processWebhooks(consumer, d, logger)
if err != nil {
logger.Errorf(err, "could not process webhooks")
}
}()
return nil
},
OnStop: func(ctx context.Context) error {
return consumer.Stop(ctx)
},
})
}),

fx.Provide(func(jc *nats.JetstreamClient, ev *env.Env, logger logging.Logger) (ResourceUpdateConsumer, error) {
topic := common.ReceiveFromAgentSubjectName(common.ReceiveFromAgentArgs{AccountName: "*", ClusterName: "*"}, common.ConsoleReceiver, common.EventResourceUpdate)

Expand Down
4 changes: 4 additions & 0 deletions apps/console/internal/app/gqlgen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,10 @@ models:
model: github.com/kloudlite/api/apps/console/internal/entities.Environment
EnvironmentIn: *environment-model

RegistryImage: &registry-image-model
model: github.com/kloudlite/api/apps/console/internal/entities.RegistryImage
RegistryImageIn: *registry-image-model

Secret: &secret-model
model: github.com/kloudlite/api/apps/console/internal/entities.Secret
SecretIn: *secret-model
Expand Down
9 changes: 3 additions & 6 deletions apps/console/internal/app/graph/environment.resolvers.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading