Skip to content

Commit c6b840a

Browse files
authored
Rollouts gitlab support (#3853)
* rollouts: Add support for GitLab as package source
1 parent 2c097c1 commit c6b840a

File tree

13 files changed

+820
-144
lines changed

13 files changed

+820
-144
lines changed

rollouts/Makefile

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,3 +174,13 @@ $(CONTROLLER_GEN): $(LOCALBIN)
174174
envtest: $(ENVTEST) ## Download envtest-setup locally if necessary.
175175
$(ENVTEST): $(LOCALBIN)
176176
test -s $(LOCALBIN)/setup-envtest || GOBIN=$(LOCALBIN) go install sigs.k8s.io/controller-runtime/tools/setup-envtest@latest
177+
178+
.PHONY: github_test
179+
github_test:
180+
go test -v -tags=github ./pkg/packagediscovery/...
181+
182+
# GitLab test requires an access token, so run these tests with:
183+
# GITLAB_TOKEN=<YOUR_TOKEN> make gitlab_test
184+
.PHONY: gitlab_test
185+
gitlab_test:
186+
go test -v -tags=gitlab ./pkg/packagediscovery/...

rollouts/api/v1alpha1/rollout_types.go

Lines changed: 37 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,32 +78,57 @@ type ClusterSourceGCPFleet struct {
7878

7979
const (
8080
GitHub PackageSourceType = "GitHub"
81+
GitLab PackageSourceType = "GitLab"
8182
)
8283

83-
// +kubebuilder:validation:Enum=GitHub
84+
// +kubebuilder:validation:Enum=GitHub;GitLab
8485
type PackageSourceType string
8586

8687
// PackagesConfig defines the packages the Rollout should deploy.
8788
type PackagesConfig struct {
8889
SourceType PackageSourceType `json:"sourceType"`
8990

90-
GitHub GitHubSource `json:"github"`
91+
GitHub GitHubSource `json:"github,omitempty"`
92+
GitLab GitLabSource `json:"gitlab,omitempty"`
9193
}
9294

93-
// GitHubSource defines the packages source in Git.
95+
// GitHubSource defines the packages source in GitHub.
9496
type GitHubSource struct {
9597
Selector GitHubSelector `json:"selector"`
9698
}
9799

98-
// GitHubSelector defines the selector to apply to Git.
100+
// GitHubSelector defines the selector to apply to packages in GitHub.
99101
type GitHubSelector struct {
100102
Org string `json:"org"`
101103
Repo string `json:"repo"`
102104
Directory string `json:"directory,omitempty"`
103-
Revision string `json:"revision"`
105+
Revision string `json:"revision,omitempty"`
106+
Branch string `json:"branch,omitempty"`
104107
SecretRef SecretReference `json:"secretRef,omitempty"`
105108
}
106109

110+
// GitLabSource defines the packages source in GitLab.
111+
type GitLabSource struct {
112+
// SecretReference is the reference to a kubernetes secret
113+
// that contains GitLab access token
114+
SecretRef SecretReference `json:"secretRef,omitempty"`
115+
// Selector defines the package selector in GitLab.
116+
Selector GitLabSelector `json:"selector"`
117+
}
118+
119+
// GitLabSelector defines how to select packages in GitLab.
120+
type GitLabSelector struct {
121+
// ProjectID is the numerical identifier of the GitLab project
122+
// It will not be specified if selection involves multiple projects
123+
ProjectID string `json:"projectID,omitempty"`
124+
// Directory refers to the subdirectory path in the project
125+
Directory string `json:"directory,omitempty"`
126+
// Revision refers to the branch, tag of the GitLab repo
127+
Revision string `json:"revision,omitempty"`
128+
// Branch refers to the branch
129+
Branch string `json:"branch,omitempty"`
130+
}
131+
107132
// SecretReference contains the reference to the secret
108133
type SecretReference struct {
109134
// Name represents the secret name
@@ -235,6 +260,13 @@ type Rollout struct {
235260
Status RolloutStatus `json:"status,omitempty"`
236261
}
237262

263+
func (rollout *Rollout) GetSyncTemplateType() SyncTemplateType {
264+
if rollout.Spec.SyncTemplate == nil {
265+
return TemplateTypeRootSync
266+
}
267+
return rollout.Spec.SyncTemplate.Type
268+
}
269+
238270
//+kubebuilder:object:root=true
239271

240272
// RolloutList contains a list of Rollout

rollouts/api/v1alpha1/zz_generated.deepcopy.go

Lines changed: 33 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

rollouts/config/crd/bases/gitops.kpt.dev_rollouts.yaml

Lines changed: 39 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,12 +92,14 @@ spec:
9292
description: Packages source for this Rollout.
9393
properties:
9494
github:
95-
description: GitHubSource defines the packages source in Git.
95+
description: GitHubSource defines the packages source in GitHub.
9696
properties:
9797
selector:
9898
description: GitHubSelector defines the selector to apply
99-
to Git.
99+
to packages in GitHub.
100100
properties:
101+
branch:
102+
type: string
101103
directory:
102104
type: string
103105
org:
@@ -117,17 +119,50 @@ spec:
117119
required:
118120
- org
119121
- repo
120-
- revision
122+
type: object
123+
required:
124+
- selector
125+
type: object
126+
gitlab:
127+
description: GitLabSource defines the packages source in GitLab.
128+
properties:
129+
secretRef:
130+
description: SecretReference is the reference to a kubernetes
131+
secret that contains GitLab access token
132+
properties:
133+
name:
134+
description: Name represents the secret name
135+
type: string
136+
type: object
137+
selector:
138+
description: Selector defines the package selector in GitLab.
139+
properties:
140+
branch:
141+
description: Branch refers to the branch
142+
type: string
143+
directory:
144+
description: Directory refers to the subdirectory path
145+
in the project
146+
type: string
147+
projectID:
148+
description: ProjectID is the numerical identifier of
149+
the GitLab project It will not be specified if selection
150+
involves multiple projects
151+
type: string
152+
revision:
153+
description: Revision refers to the branch, tag of the
154+
GitLab repo
155+
type: string
121156
type: object
122157
required:
123158
- selector
124159
type: object
125160
sourceType:
126161
enum:
127162
- GitHub
163+
- GitLab
128164
type: string
129165
required:
130-
- github
131166
- sourceType
132167
type: object
133168
strategy:

rollouts/controllers/rollout_controller.go

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -291,12 +291,17 @@ func (r *RolloutReconciler) reconcileRollout(ctx context.Context, rollout *gitop
291291
logger := klog.FromContext(ctx)
292292

293293
targetClusters, err := r.store.ListClusters(ctx, &rollout.Spec.Clusters, rollout.Spec.Targets.Selector)
294+
if err != nil {
295+
logger.Error(err, "Failed to list clusters")
296+
return client.IgnoreNotFound(err)
297+
}
298+
294299
discoveredPackages, err := packageDiscoveryClient.GetPackages(ctx, rollout.Spec.Packages)
295300
if err != nil {
296301
logger.Error(err, "Failed to discover packages")
297302
return client.IgnoreNotFound(err)
298303
}
299-
logger.Info("Discovered packages", "packagesCount", len(discoveredPackages), "packages", discoveredPackages)
304+
logger.Info("Discovered packages", "packagesCount", len(discoveredPackages), "packages", packagediscovery.ToStr(discoveredPackages))
300305

301306
packageClusterMatcherClient := packageclustermatcher.NewPackageClusterMatcher(targetClusters, discoveredPackages)
302307
clusterPackages, err := packageClusterMatcherClient.GetClusterPackages(rollout.Spec.PackageToTargetMatcher)
@@ -427,7 +432,7 @@ func (r *RolloutReconciler) computeTargets(ctx context.Context,
427432
}
428433
} else {
429434
// remoterootsync already exists
430-
updated, needsUpdate := pkgNeedsUpdate(rollout, rrs, pkg)
435+
updated, needsUpdate := pkgNeedsUpdate(ctx, rollout, rrs, pkg)
431436
if needsUpdate {
432437
targets.ToBeUpdated = append(targets.ToBeUpdated, updated)
433438
} else {
@@ -443,13 +448,16 @@ func (r *RolloutReconciler) computeTargets(ctx context.Context,
443448
return targets, nil
444449
}
445450

446-
func pkgNeedsUpdate(rollout *gitopsv1alpha1.Rollout, rrs gitopsv1alpha1.RemoteRootSync, pkg *packagediscovery.DiscoveredPackage) (*gitopsv1alpha1.RemoteRootSync, bool) {
451+
func pkgNeedsUpdate(ctx context.Context, rollout *gitopsv1alpha1.Rollout, rrs gitopsv1alpha1.RemoteRootSync, pkg *packagediscovery.DiscoveredPackage) (*gitopsv1alpha1.RemoteRootSync, bool) {
447452
// TODO: We need to check other things here besides git.Revision and metadata
448453
metadata := getSpecMetadata(rollout)
449-
if pkg.Revision != rrs.Spec.Template.Spec.Git.Revision || !reflect.DeepEqual(metadata, rrs.Spec.Template.Metadata) || rrs.Spec.Type != rollout.Spec.SyncTemplate.Type {
454+
if pkg.Revision != rrs.Spec.Template.Spec.Git.Revision ||
455+
!reflect.DeepEqual(metadata, rrs.Spec.Template.Metadata) ||
456+
rrs.Spec.Type != rollout.GetSyncTemplateType() {
457+
450458
rrs.Spec.Template.Spec.Git.Revision = pkg.Revision
451459
rrs.Spec.Template.Metadata = metadata
452-
rrs.Spec.Type = rollout.Spec.SyncTemplate.Type
460+
rrs.Spec.Type = rollout.GetSyncTemplateType()
453461
return &rrs, true
454462
}
455463
return nil, false
@@ -756,21 +764,19 @@ func toRootSyncSpec(dpkg *packagediscovery.DiscoveredPackage) *gitopsv1alpha1.Ro
756764
return &gitopsv1alpha1.RootSyncSpec{
757765
SourceFormat: "unstructured",
758766
Git: &gitopsv1alpha1.GitInfo{
759-
Repo: fmt.Sprintf("https://github.com/%s/%s.git", dpkg.Org, dpkg.Repo),
767+
// TODO(droot): Repo URL can be an HTTP, GIT or SSH based URL
768+
// Need to make it configurable
769+
Repo: dpkg.HTTPURL(),
760770
Revision: dpkg.Revision,
761771
Dir: dpkg.Directory,
762-
Branch: "main",
772+
Branch: dpkg.Branch,
763773
Auth: "none",
764774
},
765775
}
766776
}
767777

768778
func pkgID(dpkg *packagediscovery.DiscoveredPackage) string {
769-
if dpkg.Directory == "" || dpkg.Directory == "." || dpkg.Directory == "/" {
770-
return fmt.Sprintf("%s-%s", dpkg.Org, dpkg.Repo)
771-
}
772-
773-
return fmt.Sprintf("%s-%s-%s", dpkg.Org, dpkg.Repo, dpkg.Directory)
779+
return dpkg.ID()
774780
}
775781

776782
// SetupWithManager sets up the controller with the Manager.

rollouts/go.mod

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ require (
1111
github.com/google/go-github/v48 v48.2.0
1212
github.com/onsi/ginkgo/v2 v2.2.0
1313
github.com/onsi/gomega v1.20.2
14-
golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783
14+
github.com/stretchr/testify v1.8.1
15+
github.com/xanzy/go-gitlab v0.80.2
16+
golang.org/x/oauth2 v0.3.0
1517
google.golang.org/api v0.103.0
1618
google.golang.org/genproto v0.0.0-20221201164419-0e50fba7f41c
1719
k8s.io/api v0.25.3
@@ -20,6 +22,7 @@ require (
2022
k8s.io/klog/v2 v2.80.1
2123
sigs.k8s.io/cli-utils v0.34.0
2224
sigs.k8s.io/controller-runtime v0.13.1
25+
sigs.k8s.io/kustomize/kyaml v0.13.9
2326
)
2427

2528
require (
@@ -52,6 +55,8 @@ require (
5255
github.com/google/uuid v1.3.0 // indirect
5356
github.com/googleapis/enterprise-certificate-proxy v0.2.0 // indirect
5457
github.com/googleapis/gax-go/v2 v2.7.0 // indirect
58+
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
59+
github.com/hashicorp/go-retryablehttp v0.7.1 // indirect
5560
github.com/imdario/mergo v0.3.12 // indirect
5661
github.com/josharian/intern v1.0.0 // indirect
5762
github.com/json-iterator/go v1.1.12 // indirect
@@ -61,6 +66,7 @@ require (
6166
github.com/modern-go/reflect2 v1.0.2 // indirect
6267
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
6368
github.com/pkg/errors v0.9.1 // indirect
69+
github.com/pmezard/go-difflib v1.0.0 // indirect
6470
github.com/prometheus/client_golang v1.12.2 // indirect
6571
github.com/prometheus/client_model v0.2.0 // indirect
6672
github.com/prometheus/common v0.32.1 // indirect
@@ -76,7 +82,7 @@ require (
7682
golang.org/x/sys v0.5.0 // indirect
7783
golang.org/x/term v0.5.0 // indirect
7884
golang.org/x/text v0.7.0 // indirect
79-
golang.org/x/time v0.0.0-20220609170525-579cf78fd858 // indirect
85+
golang.org/x/time v0.3.0 // indirect
8086
gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect
8187
google.golang.org/appengine v1.6.7 // indirect
8288
google.golang.org/grpc v1.50.1 // indirect

rollouts/go.sum

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ github.com/evanphx/json-patch v0.5.2/go.mod h1:ZWS5hhDbVDyob71nXKNL0+PWn6ToqBHMi
104104
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
105105
github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww=
106106
github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4=
107+
github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
107108
github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM0rVwpMwimd3F3N0=
108109
github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI=
109110
github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU=
@@ -216,6 +217,13 @@ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5m
216217
github.com/googleapis/gax-go/v2 v2.7.0 h1:IcsPKeInNvYi7eqSaDjiZqDDKu5rsmunY0Y1YupQSSQ=
217218
github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8=
218219
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
220+
github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
221+
github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
222+
github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
223+
github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=
224+
github.com/hashicorp/go-hclog v1.2.1 h1:YQsLlGDJgwhXFpucSPyVbCBviQtjlHv3jLTlp8YmtEw=
225+
github.com/hashicorp/go-retryablehttp v0.7.1 h1:sUiuQAnLlbvmExtFQs72iFW/HXeUn8Z1aJLQ4LJJbTQ=
226+
github.com/hashicorp/go-retryablehttp v0.7.1/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY=
219227
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
220228
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
221229
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
@@ -250,6 +258,8 @@ github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN
250258
github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
251259
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
252260
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
261+
github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40=
262+
github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y=
253263
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
254264
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI=
255265
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
@@ -325,6 +335,8 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
325335
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
326336
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
327337
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
338+
github.com/xanzy/go-gitlab v0.80.2 h1:CH1Q7NDklqZllox4ICVF4PwlhQGfPtE+w08Jsb74ZX0=
339+
github.com/xanzy/go-gitlab v0.80.2/go.mod h1:DlByVTSXhPsJMYL6+cm8e8fTJjeBmhrXdC/yvkKKt6M=
328340
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
329341
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ=
330342
github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y=
@@ -437,8 +449,8 @@ golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4Iltr
437449
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
438450
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
439451
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
440-
golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783 h1:nt+Q6cXKz4MosCSpnbMtqiQ8Oz0pxTef2B4Vca2lvfk=
441-
golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
452+
golang.org/x/oauth2 v0.3.0 h1:6l90koy8/LaBLmLu8jpHeHexzMwEita0zFfYlggy2F8=
453+
golang.org/x/oauth2 v0.3.0/go.mod h1:rQrIauxkUhJ6CuwEXwymO2/eh4xz2ZWF1nBkcxS+tGk=
442454
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
443455
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
444456
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -508,8 +520,8 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
508520
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
509521
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
510522
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
511-
golang.org/x/time v0.0.0-20220609170525-579cf78fd858 h1:Dpdu/EMxGMFgq0CeYMh4fazTD2vtlZRYE7wyynxJb9U=
512-
golang.org/x/time v0.0.0-20220609170525-579cf78fd858/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
523+
golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
524+
golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
513525
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
514526
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
515527
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
@@ -713,6 +725,7 @@ sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 h1:iXTIw73aPyC+oRdyqqvVJuloN
713725
sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
714726
sigs.k8s.io/kustomize/api v0.12.1 h1:7YM7gW3kYBwtKvoY216ZzY+8hM+lV53LUayghNRJ0vM=
715727
sigs.k8s.io/kustomize/kyaml v0.13.9 h1:Qz53EAaFFANyNgyOEJbT/yoIHygK40/ZcvU3rgry2Tk=
728+
sigs.k8s.io/kustomize/kyaml v0.13.9/go.mod h1:QsRbD0/KcU+wdk0/L0fIp2KLnohkVzs6fQ85/nOXac4=
716729
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
717730
sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
718731
sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=

0 commit comments

Comments
 (0)