aws / amazon-sagemaker-operator-for-k8s
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
  • 71% duplication:
    • 26,055 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 18,698 duplicated lines
  • 13,210 duplicates
system71% (18,698 lines)
Duplication per Extension
yaml95% (18,027 lines)
go9% (657 lines)
tpl100% (14 lines)
Duplication per Component (primary)
release/rolebased99% (10,274 lines)
hack/charts95% (5,319 lines)
config/crd93% (2,064 lines)
api/v115% (389 lines)
config/rbac88% (194 lines)
smlogs-kubectl-plugin/pkg31% (88 lines)
config/bindings61% (82 lines)
config/installers39% (38 lines)
controllers/processingjob25% (38 lines)
controllers/trainingjob20% (38 lines)
codebuild53% (32 lines)
controllers/hyperparametertuningjob9% (28 lines)
config/base30% (25 lines)
controllers/controllertest1% (18 lines)
controllers/model9% (15 lines)
controllers/endpointconfig9% (15 lines)
controllers/hosting2% (15 lines)
config/manager28% (13 lines)
controllers/batchtransformjob3% (7 lines)
controllers/hostingautoscalingpolicy2% (6 lines)
controllers0% (0 lines)
controllers/sdkutil0% (0 lines)
config/certmanager0% (0 lines)
config/default0% (0 lines)
config/webhook0% (0 lines)
smlogs-kubectl-plugin/cmd0% (0 lines)
ROOT0% (0 lines)

Duplication Between Components (50+ lines)

G hack/charts hack/charts release/rolebased release/rolebased hack/charts--release/rolebased 15166 config/crd config/crd config/crd--hack/charts 5969 config/crd--release/rolebased 9949 config/rbac config/rbac config/rbac--hack/charts 535 config/rbac--release/rolebased 910 config/bindings config/bindings config/bindings--hack/charts 64 config/bindings--release/rolebased 96 controllers/processingjob controllers/processingjob controllers/trainingjob controllers/trainingjob controllers/processingjob--controllers/trainingjob 76 config/manager config/manager config/manager--release/rolebased 65 controllers/hyperparametertuningjob controllers/hyperparametertuningjob controllers/hyperparametertuningjob--controllers/processingjob 56 controllers/hyperparametertuningjob--controllers/trainingjob 56

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 13,210 duplicates...
Size#FoldersFilesLinesCode
2544 x 2 release/rolebased/china
release/rolebased
installer_china.yaml
installer.yaml
1:2544 (99%)
1:2544 (98%)
view
2238 x 2 release/rolebased/china
release/rolebased/namespaced/china
installer_china.yaml
crd.yaml
8:2245 (87%)
1:2238 (100%)
view
2238 x 2 hack/charts/namespaced/crd_chart/templates
release/rolebased/namespaced
crds.yaml
crd.yaml
1:2238 (100%)
1:2238 (100%)
view
2238 x 2 hack/charts/namespaced/crd_chart/templates
release/rolebased/namespaced/china
crds.yaml
crd.yaml
1:2238 (100%)
1:2238 (100%)
view
2238 x 2 release/rolebased/china
release/rolebased/namespaced
installer_china.yaml
crd.yaml
8:2245 (87%)
1:2238 (100%)
view
2238 x 2 release/rolebased
release/rolebased/namespaced/china
installer.yaml
crd.yaml
8:2245 (87%)
1:2238 (100%)
view
2238 x 2 release/rolebased
release/rolebased/namespaced
installer.yaml
crd.yaml
8:2245 (87%)
1:2238 (100%)
view
2238 x 2 hack/charts/installer/rolebased/templates
release/rolebased/china
crds.yaml
installer_china.yaml
1:2238 (100%)
8:2245 (87%)
view
2238 x 2 release/rolebased/namespaced/china
release/rolebased/namespaced
crd.yaml
crd.yaml
1:2238 (100%)
1:2238 (100%)
view
2238 x 2 hack/charts/namespaced/crd_chart/templates
release/rolebased
crds.yaml
installer.yaml
1:2238 (100%)
8:2245 (87%)
view
2238 x 2 hack/charts/installer/rolebased/templates
hack/charts/namespaced/crd_chart/templates
crds.yaml
crds.yaml
1:2238 (100%)
1:2238 (100%)
view
2238 x 2 hack/charts/installer/rolebased/templates
release/rolebased/namespaced/china
crds.yaml
crd.yaml
1:2238 (100%)
1:2238 (100%)
view
2238 x 2 hack/charts/installer/rolebased/templates
release/rolebased/namespaced
crds.yaml
crd.yaml
1:2238 (100%)
1:2238 (100%)
view
2238 x 2 hack/charts/namespaced/crd_chart/templates
release/rolebased/china
crds.yaml
installer_china.yaml
1:2238 (100%)
8:2245 (87%)
view
2238 x 2 hack/charts/installer/rolebased/templates
release/rolebased
crds.yaml
installer.yaml
1:2238 (100%)
8:2245 (87%)
view
316 x 2 release/rolebased/namespaced/china
release/rolebased/namespaced
operator_china.yaml
operator.yaml
1:316 (96%)
1:316 (93%)
view
248 x 2 config/crd/bases
hack/charts/installer/rolebased/templates
sagemaker.aws.amazon.com_trainingjobs...
crds.yaml
43:290 (59%)
1855:2102 (11%)
view
248 x 2 config/crd/bases
release/rolebased/namespaced/china
sagemaker.aws.amazon.com_trainingjobs...
crd.yaml
43:290 (59%)
1855:2102 (11%)
view
248 x 2 config/crd/bases
release/rolebased
sagemaker.aws.amazon.com_trainingjobs...
installer.yaml
43:290 (59%)
1862:2109 (9%)
view
248 x 2 config/crd/bases
release/rolebased/china
sagemaker.aws.amazon.com_trainingjobs...
installer_china.yaml
43:290 (59%)
1862:2109 (9%)
view
Duplicated Units
The list of top 9 duplicated units.
See data for all 9 unit duplicates...
Size#FoldersFilesLinesCode
19 x 2 api/v1/common
api/v1/common
zz_generated.deepcopy.go
zz_generated.deepcopy.go
26:45 
657:676 
view
17 x 2 api/v1/common
api/v1/common
zz_generated.deepcopy.go
zz_generated.deepcopy.go
275:292 
907:924 
view
11 x 2 controllers/controllertest
controllers/controllertest
mock_autoscaling_client.go
mock_sagemaker_client.go
248:260 
595:607 
view
11 x 2 controllers/processingjob
controllers/trainingjob
processingjob_controller.go
trainingjob_controller.go
57:68 
60:71 
view
7 x 2 api/v1/common
api/v1/model
zz_generated.deepcopy.go
zz_generated.deepcopy.go
1018:1025 
38:45 
view
6 x 8 api/v1/hostingautoscalingpolicy
api/v1/hostingdeployment
api/v1/model
api/v1/processingjob
api/v1/trainingjob
api/v1/endpointconfig
api/v1/hyperparametertuningjob
api/v1/batchtransformjob
zz_generated.deepcopy.go
zz_generated.deepcopy.go
zz_generated.deepcopy.go
zz_generated.deepcopy.go
zz_generated.deepcopy.go
zz_generated.deepcopy.go
zz_generated.deepcopy.go
zz_generated.deepcopy.go
29:35 
29:35 
29:35 
29:35 
29:35 
29:35 
29:35 
29:35 
view
6 x 4 api/v1/model
api/v1/processingjob
api/v1/endpointconfig
api/v1/batchtransformjob
zz_generated.deepcopy.go
zz_generated.deepcopy.go
zz_generated.deepcopy.go
zz_generated.deepcopy.go
151:157 
176:182 
127:133 
171:177 
view
6 x 2 controllers/controllertest
controllers/controllertest
mock_autoscaling_client.go
mock_autoscaling_client.go
114:120 
133:139 
view
6 x 2 controllers/hosting
controllers/hosting
model_reconciler.go
endpointconfig_reconciler.go
161:167 
140:146 
view