Skip to content

Releases: clusterpedia-io/clusterpedia

Clusterpedia v0.9.0

07 Jul 07:49
264a1b3
Compare
Choose a tag to compare

Notable Changes since v0.8.0

Global Features

Associated Storage and Querying of Resource-Specific Events

The related PRs: (@Iceber, #783, #785, #786, #788, #787)

This feature implements the basic functionality for storing and retrieving event associations. It will be continuously iterated on based on user needs in the future.

apiVersion: cluster.clusterpedia.io/v1alpha2
kind: PediaCluster
metadata:
  name: cluster-example
spec:
  kubeconfig: "**base64**"
  syncResources:
    - group: ""
      resources:
      - "*"
      eventsInvolvedResources:
      - "pods"
      - "nodes"

Use spec.syncResources.[].eventsInvolvedResources to specify the resources whose events need to be synchronized.
Note: If eventsInvolvedResources includes resources that have already been synchronized, you'll need to restart the clustersynchro-manager. This behavior will be optimized in the future based on user needs.

Get Events

Use the search label search.clusterpedia.io/inject-events=true to request that the returned data includes events.
The events will be injected into the shadow.clusterpedia.io/events annotation.

Note: The events are not currently sorted. Event filtering and sorting may be added in the future.

$ kubectl --cluster kpanda-global -n kpanda-system get po -l "search.clusterpedia.io/inject-events=true" -o yaml
...
- apiVersion: v1
  kind: Pod
  metadata:
    annotations:
      shadow.clusterpedia.io/cluster-name: kpanda-global
      shadow.clusterpedia.io/events: '[{"kind":"Event","apiVersion":"v1","metadata":{"name":"kpanda-clusterpedia-controller-manager-67758bb46d-mpl49.1843f13522e37ad9","namespace":"kpanda-system","uid":"2220a44a-5414-4698-bc89-16ae411f5dc1","resourceVersion":"23444068","creationTimestamp":"2025-06-23T01:49:12Z"},"involvedObject":{"kind":"Pod","namespace":"kpanda-system","name":"kpanda-clusterpedia-controller-manager-67758bb46d-mpl49","uid":"1918b3fb-cf36-4a2f-8f35-2e105210c38c","apiVersion":"v1","resourceVersion":"7019","fieldPath":"spec.containers{kpanda-clusterpedia-controller-manager}"},"reason":"Created","message":"Created container: kpanda-clusterpedia-controller-manager","source":{"component":"kubelet","host":"g-master68"},"firstTimestamp":"2025-05-29T08:11:30Z","lastTimestamp":"2025-06-23T02:57:05Z","count":393,"type":"Normal","eventTime":null,"reportingComponent":"kubelet","reportingInstance":"g-master68"},{"kind":"Event","apiVersion":"v1","metadata":{"name":"kpanda-clusterpedia-controller-manager-67758bb46d-mpl49.1843f215c90791e6","namespace":"kpanda-system","uid":"3e1417e9-68df-4b2a-947e-f8a37178429b","resourceVersion":"23444060","creationTimestamp":"2025-06-23T01:49:12Z"},"involvedObject":{"kind":"Pod","namespace":"kpanda-system","name":"kpanda-clusterpedia-controller-manager-67758bb46d-mpl49","uid":"1918b3fb-cf36-4a2f-8f35-2e105210c38c","apiVersion":"v1","resourceVersion":"7019","fieldPath":"spec.containers{kpanda-clusterpedia-controller-manager}"},"reason":"Pulled","message":"Container ....'
...

Historical Events and Cleanup Policy

Associated stored events will not be deleted when the corresponding events in the cluster are cleaned up. This means historical events will be retained permanently until the related resource itself is deleted.

Get Cluster Authentication Info from Secrets

The related PRs: (@Iceber @scydas, #753, #747)

You need to enable the feature gate --feature-gates=ClusterAuthenticationFromSecret=true for both clusterpedia-apiserver and clustersynchro-manager.

Then, configure the PediaCluster and its corresponding authentication Secrets.

apiVersion: cluster.clusterpedia.io/v1alpha2
kind: PediaCluster
metadata:
  name: cluster-example
spec:
  apiserver: "https://cluster-example.io:8080"
  authenticationFrom:
    kubeconfig:
      name: "cluster-example-auth-kubeconfig"
      key: "kubeconfig"
    ca:
      name: "cluster-example-auth"
      key: "ca.crt"
    cert:
      name: "cluster-example-auth"
      key: "client.crt"
    key:
      name: "cluster-example-auth"
      key: "client.key"
    token:
      name: "cluster-example-auth"
      key: "token"
  syncResources:
    - group: ""
      resources:
      - "*"
---
apiVersion: v1
data:
  ca.crt: LS0tLS1...base64
  client.crt: LS0tLS1...base64
  client.key: LS0tLS1...base64
kind: Secret
metadata:
  name: cluster-example-cert
  namespace: clusterpedia-system
type: Opaque

Note: You don’t need to configure every field in spec.authenticationFrom. Just provide a valid combination, such as: 1. Only kubeconfig 2. ca + cert + key 3. ca + token

Authentication Priority:

  1. spec.kubeconfig > spec.cert & spec.key&spec.token > spec.authenticationFrom
  2. spec.authenticationFrom: .kubeconfig > .cert & .key & .token

The namespace of the cluster authentication secrets must match the namespace where the Clusterpedia components are deployed.

Clusterpedia Apiserver

  • apiserver: remove admission middleware (@Iceber, #674)

Request Forwarding

In this version, Clusterpedia supports request forwarding to member clusters. This feature is divided into two categories:

  1. Proxy specific subresource requests
  2. Pass through all requests directly

Stricter authentication configurations have also been introduced for this feature.

To enable it, you need to turn on the AllowProxyRequestToClusters feature gate and set the appropriate flags in the Clusterpedia API server.

$ ./bin/apiserver --help
Resource server flags:

      --allow-forward-unsync-resource-request
                Allow forwarding requests for unsynchronized resource types.By default, only requests for resource types configured in PediaCluster can be forwarded.
      --allow-pediacluster-config-for-proxy-request
                Allow proxy requests to use the cluster configuration from PediaCluster when authentication information cannot be got from the header.
      --allowed-proxy-subresources strings
                List of subresources that support proxying requests to the specified cluster, formatted as '[resource/subresource],[subresource],...'. Supported proxy subresources include
                "services/proxy,pods/proxy,pods/log,pods/exec,pods/attach,pods/portfowrd,nodes/proxy".
      --enable-proxy-path-for-forward-request
                Add a '/proxy' path in the API to proxy any request.

Proxying Subresource Requests

The related PRs: (@Iceber @scydas, #715, #717, #723 , #719)

Enable this by setting the --allowed-proxy-subresources flag in the Clusterpedia API server.

$ # Enable the proxy subresources for all resources and the exec subresources of the pods.
$ ./bin/apiserver --allowed-proxy-subresources "pods/exec,proxy"

Currently supported subresource requests include:

  • pods/log
  • pods/exec
  • pods/attach
  • pods/portfowrd
  • pods/proxy
  • nodes/proxy
  • services/proxy

The usage is consistent with native Kubernetes behavior. You can use kubectl to make calls. For example:

$ kubectl --cluster cluster-example logs nginx
$ kubectl --cluster cluster-example exec -ti nginx bash

Request Forwarding

The related PRs: (@Iceber @scydas, #716, #741, #748, #752)

Clusterpedia supports three ways to forward requests directly to member clusters:

  1. Enable the --enable-proxy-path-for-forward-request flag. The API server will support proxy-style paths like:
    /apis/clusterpedia.io/v1beta1/resources/clusters//proxy/
  2. Use the HTTP header: X-CLUSTERPEDIA-FORWARD: true
  3. For list requests, use the search label —— search.clusterpedia.io/forward to enable forwarding.
# kubeconfig
- cluster:
    insecure-skip-tls-verify: true
    server: https://127.0.0.1:8443/apis/clusterpedia.io/v1beta1/resources/clusters/cluster-example/
  name: cluster-example
- cluster:
    insecure-skip-tls-verify: true
    server: https://127.0.0.1:8443/apis/clusterpedia.io/v1beta1/resources/clusters/cluster-example/proxy
  name: cluster-example-proxy
$ kubectl --cluster cluster-example-proxy get po -A

$ kubectl --cluster cluster-example get po -l search.clusterpedia.io/forward=true

$ curl -v -k --cert-type P12 --cert client.p12:password  -H "X-CLUSTERPEDIA-FORWARD: true" "https://localhost:8443/apis/clusterpedia.io/v1beta1/resources/clusters/cluster-example/api/v1/namespaces/clusterpedia-system/pods"

You can enable a more relaxed mode by setting the --allow-forward-unsync-resource-request flag to allow forwarding requests for unsynchronized resources.

Authentication for Proxy Requests

  • apiserver: set proxy auth info via request header (@Iceber, #727)

By default, proxy requests require authentication headers to be passed in the request for the target cluster. These headers include the necessary credentials.

  1. X-Clusterpedia-Proxy-CA
  2. X-Clusterpedia-Proxy-Token
  3. X-Clusterpedia-Proxy-Client-Cert
  4. X-Clusterpedi...
Read more

Clusterpedia v0.9.0-beta.3

02 Jul 08:32
6658030
Compare
Choose a tag to compare
Pre-release

What's Changed

  • fix MySQL not allowing default values for JSON column by @scydas in #805
  • internalstorage: fix json builder func for mysql by @Iceber in #806

Full Changelog: v0.9.0-beta.2...v0.9.0-beta.3

Clusterpedia v0.9.0-beta.2

25 Jun 06:34
e43da8f
Compare
Choose a tag to compare
Pre-release
Merge pull request #802 from Iceber/fix_hack_script

fix hack/verify-forked-code.sh

Clusterpedia v0.9.0-beta.1

25 Jun 06:00
2ede293
Compare
Choose a tag to compare
Pre-release

Notable Changes since v0.8.0

Global Features

Associated Storage and Querying of Resource-Specific Events

The related PRs: (@Iceber, #783, #785, #786, #788, #787)

This feature implements the basic functionality for storing and retrieving event associations. It will be continuously iterated on based on user needs in the future.

apiVersion: cluster.clusterpedia.io/v1alpha2
kind: PediaCluster
metadata:
  name: cluster-example
spec:
  kubeconfig: "**base64**"
  syncResources:
    - group: ""
      resources:
      - "*"
      eventsInvolvedResources:
      - "pods"
      - "nodes"

Use spec.syncResources.[].eventsInvolvedResources to specify the resources whose events need to be synchronized.
Note: If eventsInvolvedResources includes resources that have already been synchronized, you'll need to restart the clustersynchro-manager. This behavior will be optimized in the future based on user needs.

Get Events

Use the search label search.clusterpedia.io/inject-events=true to request that the returned data includes events.
The events will be injected into the shadow.clusterpedia.io/events annotation.

Note: The events are not currently sorted. Event filtering and sorting may be added in the future.

$ kubectl --cluster kpanda-global -n kpanda-system get po -l "search.clusterpedia.io/inject-events=true" -o yaml
...
- apiVersion: v1
  kind: Pod
  metadata:
    annotations:
      shadow.clusterpedia.io/cluster-name: kpanda-global
      shadow.clusterpedia.io/events: '[{"kind":"Event","apiVersion":"v1","metadata":{"name":"kpanda-clusterpedia-controller-manager-67758bb46d-mpl49.1843f13522e37ad9","namespace":"kpanda-system","uid":"2220a44a-5414-4698-bc89-16ae411f5dc1","resourceVersion":"23444068","creationTimestamp":"2025-06-23T01:49:12Z"},"involvedObject":{"kind":"Pod","namespace":"kpanda-system","name":"kpanda-clusterpedia-controller-manager-67758bb46d-mpl49","uid":"1918b3fb-cf36-4a2f-8f35-2e105210c38c","apiVersion":"v1","resourceVersion":"7019","fieldPath":"spec.containers{kpanda-clusterpedia-controller-manager}"},"reason":"Created","message":"Created container: kpanda-clusterpedia-controller-manager","source":{"component":"kubelet","host":"g-master68"},"firstTimestamp":"2025-05-29T08:11:30Z","lastTimestamp":"2025-06-23T02:57:05Z","count":393,"type":"Normal","eventTime":null,"reportingComponent":"kubelet","reportingInstance":"g-master68"},{"kind":"Event","apiVersion":"v1","metadata":{"name":"kpanda-clusterpedia-controller-manager-67758bb46d-mpl49.1843f215c90791e6","namespace":"kpanda-system","uid":"3e1417e9-68df-4b2a-947e-f8a37178429b","resourceVersion":"23444060","creationTimestamp":"2025-06-23T01:49:12Z"},"involvedObject":{"kind":"Pod","namespace":"kpanda-system","name":"kpanda-clusterpedia-controller-manager-67758bb46d-mpl49","uid":"1918b3fb-cf36-4a2f-8f35-2e105210c38c","apiVersion":"v1","resourceVersion":"7019","fieldPath":"spec.containers{kpanda-clusterpedia-controller-manager}"},"reason":"Pulled","message":"Container ....'
...

Historical Events and Cleanup Policy

Associated stored events will not be deleted when the corresponding events in the cluster are cleaned up. This means historical events will be retained permanently until the related resource itself is deleted.

Get Cluster Authentication Info from Secrets

The related PRs: (@Iceber @scydas, #753, #747)

You need to enable the feature gate --feature-gates=ClusterAuthenticationFromSecret=true for both clusterpedia-apiserver and clustersynchro-manager.

Then, configure the PediaCluster and its corresponding authentication Secrets.

apiVersion: cluster.clusterpedia.io/v1alpha2
kind: PediaCluster
metadata:
  name: cluster-example
spec:
  apiserver: "https://cluster-example.io:8080"
  authenticationFrom:
    kubeconfig:
      name: "cluster-example-auth-kubeconfig"
      key: "kubeconfig"
    ca:
      name: "cluster-example-auth"
      key: "ca.crt"
    cert:
      name: "cluster-example-auth"
      key: "client.crt"
    key:
      name: "cluster-example-auth"
      key: "client.key"
    token:
      name: "cluster-example-auth"
      key: "token"
  syncResources:
    - group: ""
      resources:
      - "*"
---
apiVersion: v1
data:
  ca.crt: LS0tLS1...base64
  client.crt: LS0tLS1...base64
  client.key: LS0tLS1...base64
kind: Secret
metadata:
  name: cluster-example-cert
  namespace: clusterpedia-system
type: Opaque

Note: You don’t need to configure every field in spec.authenticationFrom. Just provide a valid combination, such as: 1. Only kubeconfig 2. ca + cert + key 3. ca + token

Authentication Priority:

  1. spec.kubeconfig > spec.cert & spec.key&spec.token > spec.authenticationFrom
  2. spec.authenticationFrom: .kubeconfig > .cert & .key & .token

The namespace of the cluster authentication secrets must match the namespace where the Clusterpedia components are deployed.

Clusterpedia Apiserver

  • apiserver: remove admission middleware (@Iceber, #674)

Request Forwarding

In this version, Clusterpedia supports request forwarding to member clusters. This feature is divided into two categories:

  1. Proxy specific subresource requests
  2. Pass through all requests directly

Stricter authentication configurations have also been introduced for this feature.

To enable it, you need to turn on the AllowProxyRequestToClusters feature gate and set the appropriate flags in the Clusterpedia API server.

$ ./bin/apiserver --help
Resource server flags:

      --allow-forward-unsync-resource-request
                Allow forwarding requests for unsynchronized resource types.By default, only requests for resource types configured in PediaCluster can be forwarded.
      --allow-pediacluster-config-for-proxy-request
                Allow proxy requests to use the cluster configuration from PediaCluster when authentication information cannot be got from the header.
      --allowed-proxy-subresources strings
                List of subresources that support proxying requests to the specified cluster, formatted as '[resource/subresource],[subresource],...'. Supported proxy subresources include
                "services/proxy,pods/proxy,pods/log,pods/exec,pods/attach,pods/portfowrd,nodes/proxy".
      --enable-proxy-path-for-forward-request
                Add a '/proxy' path in the API to proxy any request.

Proxying Subresource Requests

The related PRs: (@Iceber @scydas, #715, #717, #723 , #719)

Enable this by setting the --allowed-proxy-subresources flag in the Clusterpedia API server.

$ # Enable the proxy subresources for all resources and the exec subresources of the pods.
$ ./bin/apiserver --allowed-proxy-subresources "pods/exec,proxy"

Currently supported subresource requests include:

  • pods/log
  • pods/exec
  • pods/attach
  • pods/portfowrd
  • pods/proxy
  • nodes/proxy
  • services/proxy

The usage is consistent with native Kubernetes behavior. You can use kubectl to make calls. For example:

$ kubectl --cluster cluster-example logs nginx
$ kubectl --cluster cluster-example exec -ti nginx bash

Request Forwarding

The related PRs: (@Iceber @scydas, #716, #741, #748, #752)

Clusterpedia supports three ways to forward requests directly to member clusters:

  1. Enable the --enable-proxy-path-for-forward-request flag. The API server will support proxy-style paths like:
    /apis/clusterpedia.io/v1beta1/resources/clusters//proxy/
  2. Use the HTTP header: X-CLUSTERPEDIA-FORWARD: true
  3. For list requests, use the search label —— search.clusterpedia.io/forward to enable forwarding.
# kubeconfig
- cluster:
    insecure-skip-tls-verify: true
    server: https://127.0.0.1:8443/apis/clusterpedia.io/v1beta1/resources/clusters/cluster-example/
  name: cluster-example
- cluster:
    insecure-skip-tls-verify: true
    server: https://127.0.0.1:8443/apis/clusterpedia.io/v1beta1/resources/clusters/cluster-example/proxy
  name: cluster-example-proxy
$ kubectl --cluster cluster-example-proxy get po -A

$ kubectl --cluster cluster-example get po -l search.clusterpedia.io/forward=true

$ curl -v -k --cert-type P12 --cert client.p12:password  -H "X-CLUSTERPEDIA-FORWARD: true" "https://localhost:8443/apis/clusterpedia.io/v1beta1/resources/clusters/cluster-example/api/v1/namespaces/clusterpedia-system/pods"

You can enable a more relaxed mode by setting the --allow-forward-unsync-resource-request flag to allow forwarding requests for unsynchronized resources.

Authentication for Proxy Requests

  • apiserver: set proxy auth info via request header (@Iceber, #727)

By default, proxy requests require authentication headers to be passed in the request for the target cluster. These headers include the necessary credentials.

  1. X-Clusterpedia-Proxy-CA
  2. X-Clusterpedia-Proxy-Token
  3. X-Clusterpedia-Proxy-Client-Cert
  4. X-Clusterpedi...
Read more

Clusterpedia v0.9.0-beta.0

17 Jun 07:00
ee85edb
Compare
Choose a tag to compare
Pre-release

What's Changed

  • build(deps): bump golang from 1.21.5 to 1.21.6 by @dependabot in #640
  • Change the storage plugin name to sample-storage by @mayur-tolexo in #641
  • feat: add pprof router by @jiuker in #646
  • fix otel trace handler WithTracing, use another func by @KubeKyrie in #638
  • remove useless code and fix typo error by @googs1025 in #653
  • build(deps): bump golangci/golangci-lint-action from 3 to 4 by @dependabot in #652
  • support cluster filter when use memory storage by @huiwq1990 in #649
  • build(deps): bump golangci/golangci-lint-action from 4 to 5 by @dependabot in #658
  • fix the version order of 'discovery.k8s.io' by @Iceber in #659
  • build(deps): bump golangci/golangci-lint-action from 5 to 6 by @dependabot in #664
  • use a separate action to validate the forked code by @Iceber in #669
  • Bump kubernetes to v1.30.2 by @Iceber in #668
  • update hack/.import-aliases by @Iceber in #670
  • golangci-lint: remove deprecated linters by @Iceber in #671
  • install storagemigration group to LegacyResourceScheme by @Iceber in #672
  • apiserver: remove admission middleware by @Iceber in #674
  • apiserver: unlock the RemainingItemCount feature gate by @Iceber in #675
  • e2e: add test for several control plane versions by @Iceber in #676
  • Use actions to install kwokctl by @wzshiming in #596
  • fix the memory version returned by storageconfig factory by @Iceber in #679
  • move discovery, scheme and informer to pkg/runtime by @Iceber in #682
  • add pkg/runtime/resourceconfig.ResourceConfig by @Iceber in #678
  • bump alpine from 3.18.5 to 3.18.8 by @Iceber in #688
  • bump golang from 1.22.4 to 1.22.6 by @Iceber in #689
  • dependabot: ignore minor version for golang and alpine images by @Iceber in #690
  • Bump kubernetes to v1.31.0 by @Iceber in #691
  • bump controller-runtime and controller-tools by @Iceber in #692
  • metrics: use legacyregister instead of new registry by @Iceber in #694
  • kustomize: remove traces config by @Iceber in #693
  • metrics: register clusterpedia and kubernetes build info by @Iceber in #695
  • metrics: add component-base/metrics.Options by @scydas in #696
  • support for storage to implement custom resource synchro by @Iceber in #677
  • build(deps): bump alpine from 3.18.8 to 3.18.9 by @dependabot in #698
  • build(deps): bump golang from 1.22.6 to 1.22.7 by @dependabot in #697
  • build(deps): bump golang from 1.22.7 to 1.22.8 by @dependabot in #701
  • bump kubernetes to v1.31.2 by @Iceber in #704
  • test: check the clusterpedia apiserver before test cases by @Iceber in #705
  • build(deps): bump golang from 1.22.8 to 1.22.9 by @dependabot in #702
  • memorystorage: fix deleting cluster info when cleaning a resource by @Iceber in #706
  • add kubeVela and vCluster in Readme by @pacoxu in #707
  • add memory storage layer v2 by @Iceber in #708
  • internalstorage: add gorm database metrics by @Iceber in #711
  • build(deps): bump golang from 1.22.9 to 1.22.10 by @dependabot in #710
  • internalstorage: add metrics config by @Iceber in #712
  • internalstorage: change the prefix of the db stats metrics by @scydas in #713
  • internalstorage: add trace by @scydas in #714
  • support pod subresources by @Iceber in #715
  • apiserver: Adding RemoteProxyREST for pass-through any requests by @Iceber in #716
  • apiserver: add proxy the proxy subresources of pod/node/service by @scydas in #717
  • apiserver: fix covert connect methods to kube verbs by @scydas in #719
  • build(deps): bump alpine from 3.18.9 to 3.18.10 by @dependabot in #720
  • build(deps): bump alpine from 3.18.10 to 3.18.11 by @dependabot in #721
  • build(deps): bump golang from 1.22.10 to 1.22.11 by @dependabot in #722
  • ci: bump upload artifact to v4 by @Iceber in #726
  • build(deps): bump golang from 1.22.11 to 1.22.12 by @dependabot in #725
  • Support shutting down storage factory by @learner0810 in #724
  • apiserver: add enable subresource options by @Iceber in #723
  • apiserver: set proxy auth info via request header by @Iceber in #727
  • clustersynchro: add resource synchro metrics by @Iceber in #718
  • build(deps): bump alpine from 3.18.11 to 3.18.12 by @dependabot in #728
  • bump go.uber.org/atomic from 1.10.0 to 1.11.0 by @Iceber in #737
  • apiserver: forward request with prefix path or header by @Iceber in #741
  • fix shutdown the storage factory by @scydas in #749
  • apiserver: forward list request with labelselector by @scydas in #748
  • apiserver: fix the query param in proxy requests by @scydas in #750
  • support referencing cluster authentication info from secrets by @Iceber in #747
  • apiserver: add feature gate AllowProxyRequestToClusters by @scydas in #752
  • add feature gate ClusterAuthenticationFromSecret by @scydas in #753
  • bump github.com/stretchr/testify from 1.9.0 to 1.10.0 by @Iceber in #757
  • bump github.com/jinzhu/configor from 1.2.1 to 1.2.2 by @Iceber in #758
  • bump gorm.io dependencies and fix conflicts by @Iceber in #767
  • bump gorm.io/driver/sqlite to v1.5.7 by @Iceber in #769
  • bump github.com/DATA-DOG/go-sqlmock to v1.5.2 by @Iceber in #768
  • bump github.com/jackc/pgx/v5 from 5.5.5 to 5.7.2 by @Iceber in #772
  • kubeapiserver: allow using the storage version in request handling by @Iceber in #771
  • bump golangci-lint to v2 by @Iceber in #784
  • record events for resources by @Iceber in #783
  • internalstorage: add methods for getting resource events by @Iceber in #785
  • add search label to inject events annotation by @Iceber in #786
  • EventsSynchro: handle orphan events by @Iceber in #788
  • EventsSynchro: delete cached event key by @Iceber in #787
  • kubeapiserver: fix typo by @Iceber in #790
  • clustersynchro: check the fields of resourceversions from storage by @Iceber in https://github.com/cl...
Read more

Clusterpedia v0.9.0-alpha.2

19 May 06:33
332a26e
Compare
Choose a tag to compare
Pre-release

What's Changed

  • bump gorm.io dependencies and fix conflicts by @Iceber in #767
  • bump gorm.io/driver/sqlite to v1.5.7 by @Iceber in #769
  • bump github.com/DATA-DOG/go-sqlmock to v1.5.2 by @Iceber in #768
  • bump github.com/jackc/pgx/v5 from 5.5.5 to 5.7.2 by @Iceber in #772
  • kubeapiserver: allow using the storage version in request handling by @Iceber in #771
  • bump golangci-lint to v2 by @Iceber in #784
  • record events for resources by @Iceber in #783
  • internalstorage: add methods for getting resource events by @Iceber in #785
  • add search label to inject events annotation by @Iceber in #786
  • EventsSynchro: handle orphan events by @Iceber in #788
  • EventsSynchro: delete cached event key by @Iceber in #787

Full Changelog: v0.9.0-alpha.1...v0.9.0-alpha.2

Clusterpedia v0.9.0-alpha.1

18 Mar 03:32
7248c78
Compare
Choose a tag to compare
Pre-release

What's Changed

  • build(deps): bump golang from 1.21.5 to 1.21.6 by @dependabot in #640
  • Change the storage plugin name to sample-storage by @mayur-tolexo in #641
  • feat: add pprof router by @jiuker in #646
  • fix otel trace handler WithTracing, use another func by @KubeKyrie in #638
  • remove useless code and fix typo error by @googs1025 in #653
  • build(deps): bump golangci/golangci-lint-action from 3 to 4 by @dependabot in #652
  • support cluster filter when use memory storage by @huiwq1990 in #649
  • build(deps): bump golangci/golangci-lint-action from 4 to 5 by @dependabot in #658
  • fix the version order of 'discovery.k8s.io' by @Iceber in #659
  • build(deps): bump golangci/golangci-lint-action from 5 to 6 by @dependabot in #664
  • use a separate action to validate the forked code by @Iceber in #669
  • Bump kubernetes to v1.30.2 by @Iceber in #668
  • update hack/.import-aliases by @Iceber in #670
  • golangci-lint: remove deprecated linters by @Iceber in #671
  • install storagemigration group to LegacyResourceScheme by @Iceber in #672
  • apiserver: remove admission middleware by @Iceber in #674
  • apiserver: unlock the RemainingItemCount feature gate by @Iceber in #675
  • e2e: add test for several control plane versions by @Iceber in #676
  • Use actions to install kwokctl by @wzshiming in #596
  • fix the memory version returned by storageconfig factory by @Iceber in #679
  • move discovery, scheme and informer to pkg/runtime by @Iceber in #682
  • add pkg/runtime/resourceconfig.ResourceConfig by @Iceber in #678
  • bump alpine from 3.18.5 to 3.18.8 by @Iceber in #688
  • bump golang from 1.22.4 to 1.22.6 by @Iceber in #689
  • dependabot: ignore minor version for golang and alpine images by @Iceber in #690
  • Bump kubernetes to v1.31.0 by @Iceber in #691
  • bump controller-runtime and controller-tools by @Iceber in #692
  • metrics: use legacyregister instead of new registry by @Iceber in #694
  • kustomize: remove traces config by @Iceber in #693
  • metrics: register clusterpedia and kubernetes build info by @Iceber in #695
  • metrics: add component-base/metrics.Options by @scydas in #696
  • support for storage to implement custom resource synchro by @Iceber in #677
  • build(deps): bump alpine from 3.18.8 to 3.18.9 by @dependabot in #698
  • build(deps): bump golang from 1.22.6 to 1.22.7 by @dependabot in #697
  • build(deps): bump golang from 1.22.7 to 1.22.8 by @dependabot in #701
  • bump kubernetes to v1.31.2 by @Iceber in #704
  • test: check the clusterpedia apiserver before test cases by @Iceber in #705
  • build(deps): bump golang from 1.22.8 to 1.22.9 by @dependabot in #702
  • memorystorage: fix deleting cluster info when cleaning a resource by @Iceber in #706
  • add kubeVela and vCluster in Readme by @pacoxu in #707
  • add memory storage layer v2 by @Iceber in #708
  • internalstorage: add gorm database metrics by @Iceber in #711
  • build(deps): bump golang from 1.22.9 to 1.22.10 by @dependabot in #710
  • internalstorage: add metrics config by @Iceber in #712
  • internalstorage: change the prefix of the db stats metrics by @scydas in #713
  • internalstorage: add trace by @scydas in #714
  • support pod subresources by @Iceber in #715
  • apiserver: Adding RemoteProxyREST for pass-through any requests by @Iceber in #716
  • apiserver: add proxy the proxy subresources of pod/node/service by @scydas in #717
  • apiserver: fix covert connect methods to kube verbs by @scydas in #719
  • build(deps): bump alpine from 3.18.9 to 3.18.10 by @dependabot in #720
  • build(deps): bump alpine from 3.18.10 to 3.18.11 by @dependabot in #721
  • build(deps): bump golang from 1.22.10 to 1.22.11 by @dependabot in #722
  • ci: bump upload artifact to v4 by @Iceber in #726
  • build(deps): bump golang from 1.22.11 to 1.22.12 by @dependabot in #725
  • Support shutting down storage factory by @learner0810 in #724
  • apiserver: add enable subresource options by @Iceber in #723
  • apiserver: set proxy auth info via request header by @Iceber in #727
  • clustersynchro: add resource synchro metrics by @Iceber in #718
  • build(deps): bump alpine from 3.18.11 to 3.18.12 by @dependabot in #728
  • bump go.uber.org/atomic from 1.10.0 to 1.11.0 by @Iceber in #737
  • apiserver: forward request with prefix path or header by @Iceber in #741
  • fix shutdown the storage factory by @scydas in #749
  • apiserver: forward list request with labelselector by @scydas in #748
  • apiserver: fix the query param in proxy requests by @scydas in #750
  • support referencing cluster authentication info from secrets by @Iceber in #747
  • apiserver: add feature gate AllowProxyRequestToClusters by @scydas in #752
  • add feature gate ClusterAuthenticationFromSecret by @scydas in #753
  • bump github.com/stretchr/testify from 1.9.0 to 1.10.0 by @Iceber in #757
  • bump github.com/jinzhu/configor from 1.2.1 to 1.2.2 by @Iceber in #758

New Contributors

Full Changelog: v0.8.0...v0.9.0-alpha.1

Clusterpedia v0.8.1

30 Apr 01:41
12744a1
Compare
Choose a tag to compare

What's Changed

  • [release/0.8] fix the version order of 'discovery.k8s.io' by @Iceber in #660

Full Changelog: v0.8.0...v0.8.1

Clusterpedia v0.7.2

29 Apr 10:09
a9d7bba
Compare
Choose a tag to compare

What's Changed

  • [release/0.7] fix the version order of 'discovery.k8s.io' by @Iceber in #661

Full Changelog: v0.7.1...v0.7.2

Clusterpedia v0.7.2-rc.0

29 Apr 06:20
a9d7bba
Compare
Choose a tag to compare
Pre-release

What's Changed

  • [release/0.7] fix the version order of 'discovery.k8s.io' by @Iceber in #661

Full Changelog: v0.7.1...v0.7.2-rc.0