aws / eks-anywhere
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 33% duplication:
    • 36,994 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 12,370 duplicated lines
  • 15,921 duplicates
system33% (12,370 lines)
Duplication per Extension
yaml80% (9,853 lines)
go9% (2,432 lines)
yml46% (85 lines)
Duplication per Component (primary)
config/manifest95% (3,341 lines)
config/crd98% (2,904 lines)
release/config96% (2,020 lines)
pkg/providers30% (1,558 lines)
release/pkg29% (1,090 lines)
config/rbac78% (323 lines)
cmd/eksctl-anywhere14% (153 lines)
config/webhook77% (139 lines)
pkg/api3% (105 lines)
cmd/integration_test25% (84 lines)
controllers/controllers5% (58 lines)
pkg/executables2% (54 lines)
pkg/git4% (50 lines)
pkg/cluster10% (49 lines)
conformance/template41% (44 lines)
pkg/clustermanager4% (44 lines)
pkg/bootstrapper22% (44 lines)
pkg/networking7% (38 lines)
pkg/diagnostics2% (33 lines)
config/manager44% (31 lines)
pkg/clusterapi7% (30 lines)
config/default24% (29 lines)
pkg/workflows2% (24 lines)
release/buildspecs87% (21 lines)
pkg/awsiamauth6% (18 lines)
cmd/eks-a-tool4% (14 lines)
pkg/crypto7% (14 lines)
pkg/addonmanager1% (12 lines)
release/api1% (12 lines)
pkg/retrier20% (11 lines)
pkg/validations1% (11 lines)
config/tilt75% (6 lines)
config/prod54% (6 lines)
pkg/files0% (0 lines)
pkg/semver0% (0 lines)
pkg/constants0% (0 lines)
pkg/logger0% (0 lines)
pkg/features0% (0 lines)
pkg/networkutils0% (0 lines)
pkg/task0% (0 lines)
pkg/version0% (0 lines)
pkg/eksctl0% (0 lines)
pkg/templater0% (0 lines)
pkg/types0% (0 lines)
pkg/filewriter0% (0 lines)
pkg/clustermarshaller0% (0 lines)
pkg/clients0% (0 lines)
controllers0% (0 lines)
config/certmanager0% (0 lines)
release/cmd0% (0 lines)
release0% (0 lines)
internal/pkg0% (0 lines)

Duplication Between Components (50+ lines)

G config/crd config/crd config/manifest config/manifest config/crd--config/manifest 5801 release/config release/config config/crd--release/config 4174 config/manifest--release/config 4174 config/rbac config/rbac config/manifest--config/rbac 517 config/webhook config/webhook config/manifest--config/webhook 230 pkg/providers pkg/providers config/manifest--pkg/providers 155 config/rbac--pkg/providers 104 pkg/bootstrapper pkg/bootstrapper pkg/clustermanager pkg/clustermanager pkg/bootstrapper--pkg/clustermanager 88 pkg/clusterapi pkg/clusterapi pkg/networking pkg/networking pkg/clusterapi--pkg/networking 57

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 15,921 duplicates...
Size#FoldersFilesLinesCode
1922 x 2 config/manifest
release/config/crd/bases
eksa-components.yaml
anywhere.eks.amazonaws.com_bundles.yaml
170:2091 (54%)
2:1923 (100%)
view
1922 x 2 config/crd/bases
config/manifest
anywhere.eks.amazonaws.com_bundles.yaml
eksa-components.yaml
2:1923 (100%)
170:2091 (54%)
view
1922 x 2 config/crd/bases
release/config/crd/bases
anywhere.eks.amazonaws.com_bundles.yaml
anywhere.eks.amazonaws.com_bundles.yaml
2:1923 (100%)
2:1923 (100%)
view
253 x 2 config/crd/bases
config/manifest
anywhere.eks.amazonaws.com_clusters.yaml
eksa-components.yaml
11:263 (96%)
2112:2364 (7%)
view
105 x 2 config/crd/bases
config/manifest
anywhere.eks.amazonaws.com_awsiamconf...
eksa-components.yaml
2:106 (100%)
65:169 (2%)
view
101 x 2 config/crd/bases
release/config/crd/bases
anywhere.eks.amazonaws.com_bundles.yaml
anywhere.eks.amazonaws.com_bundles.yaml
928:1028 (5%)
826:926 (5%)
view
101 x 2 config/crd/bases
config/manifest
anywhere.eks.amazonaws.com_bundles.yaml
eksa-components.yaml
826:926 (5%)
1096:1196 (2%)
view
101 x 2 config/crd/bases
config/manifest
anywhere.eks.amazonaws.com_bundles.yaml
eksa-components.yaml
928:1028 (5%)
994:1094 (2%)
view
101 x 2 config/manifest
release/config/crd/bases
eksa-components.yaml
anywhere.eks.amazonaws.com_bundles.yaml
994:1094 (2%)
928:1028 (5%)
view
101 x 2 config/manifest
release/config/crd/bases
eksa-components.yaml
anywhere.eks.amazonaws.com_bundles.yaml
1096:1196 (2%)
826:926 (5%)
view
101 x 2 config/manifest
config/manifest
eksa-components.yaml
eksa-components.yaml
994:1094 (2%)
1096:1196 (2%)
view
101 x 2 config/crd/bases
release/config/crd/bases
anywhere.eks.amazonaws.com_bundles.yaml
anywhere.eks.amazonaws.com_bundles.yaml
826:926 (5%)
928:1028 (5%)
view
101 x 2 config/crd/bases
config/crd/bases
anywhere.eks.amazonaws.com_bundles.yaml
anywhere.eks.amazonaws.com_bundles.yaml
826:926 (5%)
928:1028 (5%)
view
101 x 2 release/config/crd/bases
release/config/crd/bases
anywhere.eks.amazonaws.com_bundles.yaml
anywhere.eks.amazonaws.com_bundles.yaml
826:926 (5%)
928:1028 (5%)
view
95 x 2 config/crd/bases
config/manifest
anywhere.eks.amazonaws.com_vspheremac...
eksa-components.yaml
2:96 (100%)
2827:2921 (2%)
view
90 x 2 config/crd/bases
config/manifest
anywhere.eks.amazonaws.com_oidcconfig...
eksa-components.yaml
2:91 (100%)
2505:2594 (2%)
view
87 x 2 config/crd/bases
config/manifest
anywhere.eks.amazonaws.com_gitopsconf...
eksa-components.yaml
2:88 (100%)
2418:2504 (2%)
view
85 x 2 config/crd/bases
config/manifest
anywhere.eks.amazonaws.com_vspheredat...
eksa-components.yaml
2:86 (100%)
2742:2826 (2%)
view
80 x 2 config/crd/bases
release/config/crd/bases
anywhere.eks.amazonaws.com_bundles.yaml
anywhere.eks.amazonaws.com_bundles.yaml
1216:1295 (4%)
1135:1214 (4%)
view
80 x 2 config/manifest
config/manifest
eksa-components.yaml
eksa-components.yaml
306:385 (2%)
1303:1382 (2%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 49 unit duplicates...
Size#FoldersFilesLinesCode
14 x 2 pkg/executables
pkg/executables
flux.go
flux.go
92:109 
111:128 
view
11 x 2 pkg/awsiamauth
pkg/awsiamauth
awsiamauth.go
awsiamauth.go
108:120 
122:134 
view
10 x 2 pkg/crypto
pkg/crypto
keygen.go
certificategen.go
60:74 
49:63 
view
10 x 2 pkg/bootstrapper/mocks
pkg/filewriter/mocks
client.go
filewriter.go
70:80 
91:101 
view
10 x 2 pkg/executables
pkg/executables
kubectl.go
kubectl.go
132:142 
168:178 
view
10 x 2 pkg/executables/mocks
pkg/executables/mocks
executables.go
executables.go
79:89 
99:109 
view
10 x 2 pkg/providers/tinkerbell
pkg/providers/vsphere
tinkerbell.go
vsphere.go
279:289 
1019:1029 
view
10 x 2 pkg/providers/tinkerbell
pkg/providers/vsphere
tinkerbell.go
vsphere.go
300:311 
1065:1075 
view
10 x 2 pkg/providers/vsphere/mocks
pkg/providers/docker/mocks
client.go
client.go
516:526 
97:107 
view
10 x 2 pkg/providers/vsphere/mocks
pkg/providers/docker/mocks
client.go
client.go
536:546 
117:127 
view
10 x 2 pkg/providers/vsphere/mocks
pkg/providers/docker/mocks
client.go
client.go
556:566 
137:147 
view
9 x 3 pkg/api/v1alpha1
pkg/api/v1alpha1
pkg/api/v1alpha1
awsiamconfig_webhook.go
oidcconfig_webhook.go
gitopsconfig_webhook.go
62:73 
62:73 
63:74 
view
9 x 2 pkg/api/v1alpha1
pkg/api/v1alpha1
zz_generated.deepcopy.go
zz_generated.deepcopy.go
1131:1140 
1341:1350 
view
9 x 2 pkg/providers/vsphere/mocks
pkg/providers/docker/mocks
client.go
client.go
668:677 
157:166 
view
8 x 2 pkg/providers/vsphere
pkg/providers/vsphere
vsphere.go
vsphere.go
534:542 
544:552 
view
8 x 8 cmd/eksctl-anywhere/cmd
cmd/eksctl-anywhere/cmd
cmd/eksctl-anywhere/cmd
cmd/eksctl-anywhere/cmd
cmd/eksctl-anywhere/cmd
cmd/eksctl-anywhere/cmd
cmd/eksctl-anywhere/cmd
cmd/eksctl-anywhere/cmd
supportbundle.go
listovas.go
importimages.go
createcluster.go
deletecluster.go
upgradeplancluster.go
upgradecluster.go
generatebundleconfig.go
80:88 
83:91 
94:102 
62:70 
45:53 
47:55 
51:59 
55:63 
view
7 x 2 pkg/api/v1alpha1
pkg/api/v1alpha1
zz_generated.deepcopy.go
zz_generated.deepcopy.go
357:364 
1262:1269 
view
7 x 2 pkg/api/v1alpha1
pkg/api/v1alpha1
zz_generated.deepcopy.go
zz_generated.deepcopy.go
692:699 
712:719 
view
7 x 2 pkg/api/v1alpha1
pkg/api/v1alpha1
zz_generated.deepcopy.go
zz_generated.deepcopy.go
878:885 
963:970 
view
7 x 2 pkg/git/gogithub/mocks
pkg/git/gogithub/mocks
client.go
client.go
39:46 
103:110 
view