kubernetes-sigs / cloud-provider-equinix-metal

Kubernetes Cloud Provider for Equinix Metal (formerly Packet Cloud Controller Manager)
https://deploy.equinix.com/labs/cloud-provider-equinix-metal
Apache License 2.0
73 stars 26 forks source link

Add license boilerplate to .go files and add boilerplate checking scripts from kubernetes projects. #564

Open cprivitere opened 1 week ago

cprivitere commented 1 week ago

Many of our .go files are missing required Apache 2.0 boilerplate text required by the Kubernetes project standards. Proposed solution:

1) Add the text. 2) Look at a kubernetes project like cluster-api and add the boilerplate verification scripts they use to this project to ensure future commits have the required text.

cprivitere commented 1 week ago

/triage accepted

displague commented 1 week ago

The EMLB openapitools-cli generated SDK files (#476) may stand as an exception to the Apache licenses that would be applied on the files in this project (also relevant for CAPP). This generated SDK has been artifacted in other projects ahead of and alongside CPEM and CAPP, including https://github.com/equinix/metal-cli/pull/362/files and private repos in my personal GitHub org under an MIT license - https://github.com/displague/metal-lbaas-go (not published to avoid dependency).

The long-term intent with the ELMB SDK files is that they would be imported into this project from an outside repository where the files are licensed under a compatible license (very likely MIT, following the equinix-sdk-go pattern).

https://github.com/equinix/equinix-sdk-go/blob/main/LICENSE

If necessary, the files can be dual licensed AS MIT and Apache. Or, until these files are sources from equinix-sdk-go (or similar) the Copyright may be assigned to Equinix SDK Authors primarily and Kubernetes Authors secondarily for the SDK files modified within CAPP and CPEM.

displague commented 1 week ago

If the files can coexist in both repositories with alternate Copyright holders, a single author should also be fine.