Skip to content

Commit e0da528

Browse files
authored
Merge pull request #283 from devtron-labs/feat-manual-canary
feat: feat manual canary
2 parents 228c55b + ef08274 commit e0da528

23 files changed

Lines changed: 97 additions & 61 deletions

File tree

chart-sync/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ go 1.22.4
55
toolchain go1.22.6
66

77
replace (
8-
github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521130159-a5d26dc2ab8d
8+
github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521133250-228c55be30a2
99
helm.sh/helm/v3 v3.14.3 => github.com/devtron-labs/helm/v3 v3.14.1-0.20240401080259-90238cf69e42
1010
)
1111

chart-sync/go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr
5454
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
5555
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
5656
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
57-
github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521130159-a5d26dc2ab8d h1:q0a5FgU3HowrydPq+BjIMHCF0izHjl1oPc71JDLsv+8=
58-
github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521130159-a5d26dc2ab8d/go.mod h1:CXQGEo+kZc7JPX5hn4jJf1msal9q/ExSdAYGkHNPnQw=
57+
github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521133250-228c55be30a2 h1:mLbnHEC6F+/eWa4PkhIc4yQQHkPxcglMgdFoqv6c3nQ=
58+
github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521133250-228c55be30a2/go.mod h1:CXQGEo+kZc7JPX5hn4jJf1msal9q/ExSdAYGkHNPnQw=
5959
github.com/devtron-labs/helm/v3 v3.14.1-0.20240401080259-90238cf69e42 h1:pJmK44QaSztOiZe0iQHNf0sdy5KwkAeceydyhOG4RaY=
6060
github.com/devtron-labs/helm/v3 v3.14.1-0.20240401080259-90238cf69e42/go.mod h1:v6myVbyseSBJTzhmeE39UcPLNv6cQK6qss3dvgAySaE=
6161
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=

chart-sync/vendor/modules.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ github.com/containerd/platforms
9393
# github.com/davecgh/go-spew v1.1.1
9494
## explicit
9595
github.com/davecgh/go-spew/spew
96-
# github.com/devtron-labs/common-lib v0.0.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521130159-a5d26dc2ab8d
96+
# github.com/devtron-labs/common-lib v0.0.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521133250-228c55be30a2
9797
## explicit; go 1.21
9898
github.com/devtron-labs/common-lib/constants
9999
github.com/devtron-labs/common-lib/fetchAllEnv
@@ -791,4 +791,4 @@ sigs.k8s.io/structured-merge-diff/v4/value
791791
# sigs.k8s.io/yaml v1.3.0
792792
## explicit; go 1.12
793793
sigs.k8s.io/yaml
794-
# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521130159-a5d26dc2ab8d
794+
# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521133250-228c55be30a2

ci-runner/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ go 1.21
44

55
toolchain go1.21.8
66

7-
replace github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521130159-a5d26dc2ab8d
7+
replace github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521133250-228c55be30a2
88

99
require (
1010
github.com/Knetic/govaluate v3.0.0+incompatible

ci-runner/go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
9595
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
9696
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
9797
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
98-
github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521130159-a5d26dc2ab8d h1:q0a5FgU3HowrydPq+BjIMHCF0izHjl1oPc71JDLsv+8=
99-
github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521130159-a5d26dc2ab8d/go.mod h1:CXQGEo+kZc7JPX5hn4jJf1msal9q/ExSdAYGkHNPnQw=
98+
github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521133250-228c55be30a2 h1:mLbnHEC6F+/eWa4PkhIc4yQQHkPxcglMgdFoqv6c3nQ=
99+
github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521133250-228c55be30a2/go.mod h1:CXQGEo+kZc7JPX5hn4jJf1msal9q/ExSdAYGkHNPnQw=
100100
github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk=
101101
github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
102102
github.com/docker/cli v24.0.6+incompatible h1:fF+XCQCgJjjQNIMjzaSmiKJSCcfcXb3TWTcc7GAneOY=

ci-runner/vendor/modules.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ github.com/cespare/xxhash/v2
248248
# github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
249249
## explicit
250250
github.com/davecgh/go-spew/spew
251-
# github.com/devtron-labs/common-lib v0.19.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521130159-a5d26dc2ab8d
251+
# github.com/devtron-labs/common-lib v0.19.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521133250-228c55be30a2
252252
## explicit; go 1.21
253253
github.com/devtron-labs/common-lib/blob-storage
254254
github.com/devtron-labs/common-lib/constants
@@ -991,4 +991,4 @@ sigs.k8s.io/structured-merge-diff/v4/value
991991
# sigs.k8s.io/yaml v1.3.0
992992
## explicit; go 1.12
993993
sigs.k8s.io/yaml
994-
# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521130159-a5d26dc2ab8d
994+
# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521133250-228c55be30a2

common-lib/utils/k8s/K8sUtil.go

Lines changed: 61 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import (
3131
v1beta12 "k8s.io/api/policy/v1beta1"
3232
"k8s.io/apimachinery/pkg/util/validation"
3333
"k8s.io/client-go/dynamic"
34+
"k8s.io/client-go/kubernetes/scheme"
3435
"k8s.io/kubernetes/pkg/api/legacyscheme"
3536
"k8s.io/metrics/pkg/apis/metrics/v1beta1"
3637
metrics "k8s.io/metrics/pkg/client/clientset/versioned"
@@ -151,6 +152,8 @@ type K8sService interface {
151152
GetResourceByGVR(ctx context.Context, config *rest.Config, GVR schema.GroupVersionResource, resourceName, namespace string) (*unstructured.Unstructured, error)
152153
PatchResourceByGVR(ctx context.Context, config *rest.Config, GVR schema.GroupVersionResource, resourceName, namespace string, patchType types.PatchType, patchData []byte) (*unstructured.Unstructured, error)
153154
DeleteResourceByGVR(ctx context.Context, config *rest.Config, GVR schema.GroupVersionResource, resourceName, namespace string, forceDelete bool) error
155+
GetRestClientForCRD(config *ClusterConfig, groupVersion *schema.GroupVersion) (*rest.RESTClient, error)
156+
PatchResourceByRestClient(restClient *rest.RESTClient, resource, name, namespace string, pt types.PatchType, data []byte, subresources ...string) rest.Result
154157
}
155158

156159
func NewK8sUtil(logger *zap.SugaredLogger, runTimeConfig *RuntimeConfig) (*K8sServiceImpl, error) {
@@ -1911,31 +1914,6 @@ func (impl *K8sServiceImpl) CreateOrUpdateSecretByName(client *v12.CoreV1Client,
19111914
return nil
19121915
}
19131916

1914-
func (impl *K8sServiceImpl) GetGVRForCRD(config *rest.Config, CRDName string) (schema.GroupVersionResource, error) {
1915-
apiExtClient, err := apiextensionsclient.NewForConfig(config)
1916-
if err != nil {
1917-
impl.logger.Error("error in getting api extension client", "err", err)
1918-
return schema.GroupVersionResource{}, err
1919-
}
1920-
crd, err := apiExtClient.ApiextensionsV1().CustomResourceDefinitions().Get(context.TODO(), CRDName, metav1.GetOptions{})
1921-
if err != nil {
1922-
impl.logger.Error("error in getting terraform crd", "err", err)
1923-
return schema.GroupVersionResource{}, err
1924-
}
1925-
var servedVersion string
1926-
for _, v := range crd.Spec.Versions {
1927-
if v.Served {
1928-
servedVersion = v.Name
1929-
break
1930-
}
1931-
}
1932-
return schema.GroupVersionResource{
1933-
Group: crd.Spec.Group,
1934-
Version: servedVersion,
1935-
Resource: crd.Spec.Names.Plural,
1936-
}, nil
1937-
}
1938-
19391917
func (impl *K8sServiceImpl) GetResourceByGVR(ctx context.Context, config *rest.Config, GVR schema.GroupVersionResource, resourceName, namespace string) (*unstructured.Unstructured, error) {
19401918
dynClient, err := dynamic.NewForConfig(config)
19411919
if err != nil {
@@ -1981,3 +1959,61 @@ func (impl *K8sServiceImpl) DeleteResourceByGVR(ctx context.Context, config *res
19811959
}
19821960
return nil
19831961
}
1962+
1963+
func (impl *K8sServiceImpl) GetGVRForCRD(config *rest.Config, CRDName string) (schema.GroupVersionResource, error) {
1964+
apiExtClient, err := apiextensionsclient.NewForConfig(config)
1965+
if err != nil {
1966+
impl.logger.Error("error in getting api extension client", "err", err)
1967+
return schema.GroupVersionResource{}, err
1968+
}
1969+
crd, err := apiExtClient.ApiextensionsV1().CustomResourceDefinitions().Get(context.TODO(), CRDName, metav1.GetOptions{})
1970+
if err != nil {
1971+
impl.logger.Error("error in getting terraform crd", "err", err)
1972+
return schema.GroupVersionResource{}, err
1973+
}
1974+
var servedVersion string
1975+
for _, v := range crd.Spec.Versions {
1976+
if v.Served {
1977+
servedVersion = v.Name
1978+
break
1979+
}
1980+
}
1981+
return schema.GroupVersionResource{
1982+
Group: crd.Spec.Group,
1983+
Version: servedVersion,
1984+
Resource: crd.Spec.Names.Plural,
1985+
}, nil
1986+
}
1987+
1988+
func (impl *K8sServiceImpl) GetRestClientForCRD(config *ClusterConfig, groupVersion *schema.GroupVersion) (*rest.RESTClient, error) {
1989+
1990+
restConfig, err := impl.GetRestConfigByCluster(config)
1991+
if err != nil {
1992+
return nil, err
1993+
}
1994+
1995+
restConfig.ContentConfig = rest.ContentConfig{
1996+
GroupVersion: groupVersion,
1997+
NegotiatedSerializer: scheme.Codecs.WithoutConversion(),
1998+
}
1999+
restConfig.APIPath = "/apis"
2000+
2001+
restClient, err := rest.RESTClientFor(restConfig)
2002+
if err != nil {
2003+
impl.logger.Errorw("error in getting rest client", "gvr", groupVersion.String(), "err", err)
2004+
return nil, err
2005+
}
2006+
2007+
return restClient, nil
2008+
}
2009+
2010+
func (impl *K8sServiceImpl) PatchResourceByRestClient(restClient *rest.RESTClient, resource, name, namespace string, pt types.PatchType, data []byte, subresources ...string) rest.Result {
2011+
result := restClient.Patch(pt).
2012+
Namespace(namespace).
2013+
Resource(resource).
2014+
Name(name).
2015+
SubResource(subresources...).
2016+
Body(data).
2017+
Do(context.Background())
2018+
return result
2019+
}

git-sensor/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ go 1.21
44

55
toolchain go1.22.4
66

7-
replace github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521130159-a5d26dc2ab8d
7+
replace github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521133250-228c55be30a2
88

99
require (
1010
github.com/caarlos0/env v3.5.0+incompatible

git-sensor/go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ github.com/cyphar/filepath-securejoin v0.3.6/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGL
2727
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
2828
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
2929
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
30-
github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521130159-a5d26dc2ab8d h1:q0a5FgU3HowrydPq+BjIMHCF0izHjl1oPc71JDLsv+8=
31-
github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521130159-a5d26dc2ab8d/go.mod h1:CXQGEo+kZc7JPX5hn4jJf1msal9q/ExSdAYGkHNPnQw=
30+
github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521133250-228c55be30a2 h1:mLbnHEC6F+/eWa4PkhIc4yQQHkPxcglMgdFoqv6c3nQ=
31+
github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521133250-228c55be30a2/go.mod h1:CXQGEo+kZc7JPX5hn4jJf1msal9q/ExSdAYGkHNPnQw=
3232
github.com/devtron-labs/protos v0.0.3-0.20250323220609-ecf8a0f7305e h1:U6UdYbW8a7xn5IzFPd8cywjVVPfutGJCudjePAfL/Hs=
3333
github.com/devtron-labs/protos v0.0.3-0.20250323220609-ecf8a0f7305e/go.mod h1:1TqULGlTey+VNhAu/ag7NJuUvByJemkqodsc9L5PHJk=
3434
github.com/docker/cli v24.0.6+incompatible h1:fF+XCQCgJjjQNIMjzaSmiKJSCcfcXb3TWTcc7GAneOY=

git-sensor/vendor/modules.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ github.com/cyphar/filepath-securejoin
6666
# github.com/davecgh/go-spew v1.1.1
6767
## explicit
6868
github.com/davecgh/go-spew/spew
69-
# github.com/devtron-labs/common-lib v0.0.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521130159-a5d26dc2ab8d
69+
# github.com/devtron-labs/common-lib v0.0.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521133250-228c55be30a2
7070
## explicit; go 1.21
7171
github.com/devtron-labs/common-lib/constants
7272
github.com/devtron-labs/common-lib/fetchAllEnv
@@ -488,4 +488,4 @@ gopkg.in/yaml.v3
488488
# mellium.im/sasl v0.3.2
489489
## explicit; go 1.20
490490
mellium.im/sasl
491-
# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521130159-a5d26dc2ab8d
491+
# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250521133250-228c55be30a2

0 commit comments

Comments
 (0)