Skip to content
This repository was archived by the owner on Dec 6, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
153 commits
Select commit Hold shift + click to select a range
999cf37
Initial commit
nikhita Jul 22, 2020
0542d4a
Update template files to include repo-specific info
nikhita Jul 22, 2020
740003b
added issue templates to COSI sidecar
Sep 15, 2020
d4a4bcf
adds security policy to COSI sidecar
Sep 28, 2020
748df93
added provisioner line to bug_report
Sep 28, 2020
2d348d0
Merge pull request #1 from krishchow/master
k8s-ci-robot Oct 6, 2020
094f1d2
Add approvers to facilitate project management
brahmaroutu Oct 23, 2020
9dbbf25
Merge pull request #2 from brahmaroutu/add_approvers
k8s-ci-robot Oct 26, 2020
171e493
Added grpc client and server modules
Dec 7, 2020
d029403
Merge pull request #3 from rrati/grpc-tools
k8s-ci-robot Dec 8, 2020
7caa605
Add BucketAccess Controller
Dec 9, 2020
b6d0053
Updates for latest api changes
Dec 10, 2020
ca6aaa7
updated README.md
somersbmatthews Dec 14, 2020
c65fe98
Merge pull request #15 from somersbmatthews/update-readme
k8s-ci-robot Dec 16, 2020
e59238a
Merge pull request #10 from rrati/bucketaccess-controller
k8s-ci-robot Dec 17, 2020
00b8480
Fix make and make test
brahmaroutu Dec 18, 2020
51c9a23
pass rsp by-ref instead of by-value
wlan0 Dec 18, 2020
d74d9ce
Merge pull request #1 from wlan0/fix-bug
brahmaroutu Dec 18, 2020
02bb4f4
Merge pull request #19 from brahmaroutu/fix_build
k8s-ci-robot Dec 18, 2020
1a84ac5
Fixes to bucket controller and tests
Dec 18, 2020
45858ea
Merge pull request #20 from rrati/bac-fixes
k8s-ci-robot Dec 19, 2020
9195ed3
Added bucket controller
Dec 9, 2020
f3f77c7
Merge pull request #9 from rrati/bucket-controller
k8s-ci-robot Dec 20, 2020
28f6e63
Added binary source and build target
Dec 19, 2020
754296b
Merge pull request #21 from rrati/binaries
k8s-ci-robot Dec 22, 2020
6c20b0b
Added Dockerfile for sidecar
Jan 6, 2021
f1b073f
Merge pull request #22 from rrati/dockerfile
k8s-ci-robot Jan 6, 2021
3001d3e
added kustomize template & k8s resources for provisioner
tparikh Jan 11, 2021
a6e9768
Merge pull request #24 from tparikh/kustomize
k8s-ci-robot Jan 11, 2021
0aa0efa
Fix context definition
Jan 12, 2021
52d17f0
Merge pull request #25 from rrati/context-fix
k8s-ci-robot Jan 12, 2021
bc87759
fix sidecar image name
wlan0 Jan 12, 2021
48ba30b
Merge pull request #26 from wlan0/master
k8s-ci-robot Jan 12, 2021
f8b5c04
add sample driver
sajanjswl Jan 12, 2021
1dc1f7c
fix go module and import paths
wlan0 Jan 12, 2021
6e083f2
Merge pull request #27 from wlan0/master
k8s-ci-robot Jan 12, 2021
3a4debe
Fix handling of nil parameters in B and BA
Jan 13, 2021
d90fa19
Remove log levels and use klog v2
Jan 12, 2021
d8ce2f9
Merge pull request #28 from rrati/remove-log-levels
k8s-ci-robot Jan 13, 2021
64d9a87
Merge pull request #29 from rrati/bucket-context-nil-fix
k8s-ci-robot Jan 13, 2021
00a85b1
Added Dockerfile to build sidecar as well as sample driver
brahmaroutu Jan 14, 2021
6d60964
Merge pull request #31 from brahmaroutu/fix_dockerbuilds
k8s-ci-robot Jan 14, 2021
bd03a4a
removed limits for containers
YiannisGkoufas Feb 8, 2021
7241882
Merge pull request #33 from YiannisGkoufas/master
k8s-ci-robot Feb 22, 2021
03c6934
remove hardcoded namesapces from resources
tparikh Feb 24, 2021
1f821ec
Merge pull request #34 from tparikh/resource-cleanup
k8s-ci-robot Feb 24, 2021
83cc0ad
Add Deployment documentation
Mar 4, 2021
e691f8d
update dependencies to sigs.k8s.*, update mod versions
Mar 4, 2021
7be94a6
update controllers, test and sample driver to use updated api/spec
Mar 4, 2021
59ab667
Merge pull request #39 from krishchow/update-spec-api
k8s-ci-robot Mar 10, 2021
1a57cde
updated README.md
YiannisGkoufas Mar 11, 2021
a6539f5
add identity server to sample-driver
Mar 18, 2021
b714cd3
Merge pull request #41 from krishchow/id-server
k8s-ci-robot Mar 19, 2021
c602192
add minio.yaml
wlan0 Mar 20, 2021
2f3a2d6
Merge pull request #42 from wlan0/temp
k8s-ci-robot Mar 22, 2021
9e978b4
Merge pull request #40 from YiannisGkoufas/master
k8s-ci-robot Mar 22, 2021
2a7cab4
added image registry name and tag
tparikh Mar 23, 2021
a4c6097
Merge pull request #45 from tparikh/makefile-update
k8s-ci-robot Mar 23, 2021
88931d8
Merge pull request #37 from mengjiao-liu/add-deploy-guide
k8s-ci-robot Mar 23, 2021
ef755ad
added cloudbuiild.yaml
tparikh Mar 24, 2021
8457bbc
Merge pull request #47 from tparikh/cloudbuild
k8s-ci-robot Mar 24, 2021
067e55f
Major refactor and bugfixes
wlan0 Apr 5, 2021
42975ae
Merge pull request #49 from wlan0/master
k8s-ci-robot Apr 6, 2021
a5ee06e
Sample driver: Implement ProvisionerCreateBucket
wlan0 Apr 7, 2021
3deeeb6
Merge pull request #50 from wlan0/master
k8s-ci-robot Apr 9, 2021
9589721
updates rbac and properties for deployment
Apr 15, 2021
fd32723
move minio into kustomize
Apr 15, 2021
cb8b128
Merge pull request #53 from krishchow/master
k8s-ci-robot Apr 15, 2021
795a718
RBAC cleaning, minor bug fixes, adds minimal logic for grant access
Apr 17, 2021
a24e527
removes minio sample driver, see: sigs.k8s.io/cosi-driver-minio
Apr 20, 2021
e6139cd
Merge pull request #55 from krishchow/master
k8s-ci-robot Apr 21, 2021
a041988
updates api/controller version, adds br/bar finalizer logic
May 11, 2021
45b8a4e
Merge pull request #58 from krishchow/br-bar-finalizer
k8s-ci-robot May 19, 2021
bc0d5e4
backoff increase
YiannisGkoufas May 21, 2021
602cef6
updated README.md
tparikh May 25, 2021
a5d1df7
Merge pull request #60 from tparikh/readme-updates
k8s-ci-robot May 26, 2021
b46634c
Merge pull request #59 from YiannisGkoufas/backoff-increase
k8s-ci-robot May 28, 2021
a992b3c
Adding the flow for bucket creation
mukhoakash Jul 26, 2022
7b1e178
Adding the flow for bucket creation
mukhoakash Jul 26, 2022
2f6e183
Bulk of changes to bucketaccess and bucket controller
mukhoakash Jul 28, 2022
66c02fe
Merge branch 'bucket-create' of github.com:mukhoakash/container-objec…
mukhoakash Jul 28, 2022
4f9bc73
Handling secrets creation
mukhoakash Jul 28, 2022
ddf76aa
Added push step to cloudbuild.yaml and replaced quay repository with …
aarongalang Aug 1, 2022
4c257ad
Adding Update and Delete logic for Bucket and BucketAccess
mukhoakash Aug 4, 2022
76e0ae5
Introducing the const pkg
mukhoakash Aug 4, 2022
3f32188
Merge pull request #66 from aarongalang/pipeline
k8s-ci-robot Aug 4, 2022
88a51a1
Fixing a bunch of issues
mukhoakash Aug 5, 2022
dc392d9
Fixing the go mod and sum file
mukhoakash Aug 6, 2022
2657768
Test fixes and compilation fixes
mukhoakash Aug 6, 2022
367aa59
Merge pull request #64 from mukhoakash/bucket-create
k8s-ci-robot Aug 6, 2022
448a75a
Fixing the build image push
mukhoakash Aug 11, 2022
fd2cd71
Merge pull request #68 from mukhoakash/build-fix
k8s-ci-robot Aug 11, 2022
5ddf407
Create CHANGELOG-0.1.md
wlan0 Aug 15, 2022
4e2f9b0
Merge pull request #69 from kubernetes-sigs/changelog
wlan0 Aug 15, 2022
fabb667
fix test file path in README.md
Sep 2, 2022
e3a8c80
Update Makefile
wlan0 Sep 15, 2022
e22acf6
Update cloudbuild.yaml
wlan0 Sep 15, 2022
4e9bec3
Merge pull request #72 from kubernetes-sigs/wlan0-patch-2
wlan0 Sep 15, 2022
c6e1a0c
Merge pull request #71 from kubernetes-sigs/wlan0-patch-1
wlan0 Sep 15, 2022
20e7fae
Merge pull request #70 from niulechuan/fix-test-file-path
wlan0 Sep 15, 2022
a853d9b
Adding a few logs and some fixes
mukhoakash Sep 19, 2022
8cb88ab
Fixing the update of bucketclaim to updatestatus
mukhoakash Sep 19, 2022
9a139ce
Improving logs and fixing a delete scenario
mukhoakash Sep 19, 2022
8271dbe
Merge pull request #73 from mukhoakash/bug-fix
k8s-ci-robot Sep 21, 2022
7fbbdbe
Adding the bucket finalizer removal
mukhoakash Sep 22, 2022
8b8d222
Fixing the finalizer of bucketclaim in bucket delete
mukhoakash Sep 28, 2022
c3f21e9
Fixing some logs and adding bucket paramaters
mukhoakash Sep 28, 2022
68082cc
Remove the secret on deletion of the bucketAccess
mukhoakash Sep 28, 2022
d8cfa95
Adding unittests
mukhoakash Sep 29, 2022
7cef856
Introducing the RevokeBucketAccess call in the delete bucket access o…
mukhoakash Oct 10, 2022
80ba720
Updating the DriverDeleteBucket call with the DeleteContext
mukhoakash Oct 10, 2022
459c723
Merge pull request #74 from mukhoakash/finalizer_fix
k8s-ci-robot Oct 13, 2022
e5d4dd2
Modifying owners
mukhoakash Oct 21, 2022
655cc76
Merge pull request #75 from mukhoakash/fix_owner
k8s-ci-robot Oct 27, 2022
0d93cb0
Fix : Use value for endpoint and region from driver
thotz Nov 17, 2022
0e67387
Merge pull request #77 from thotz/fix-endpoint-region-for-s3
k8s-ci-robot Nov 17, 2022
1ac71f2
Migrate away from google.com gcp project k8s-testimages
cpanato Jan 30, 2023
c0cf995
Merge pull request #79 from cpanato/GH-1523-k8sio
k8s-ci-robot Jan 30, 2023
dca1efe
Update build configs to mirror controller
BlaineEXE Sep 21, 2023
924d1cd
add dependabot config
BlaineEXE Sep 21, 2023
8e23092
Merge pull request #81 from BlaineEXE/update-build-and-packaging
k8s-ci-robot Sep 21, 2023
7e971c9
Bump library/golang from 1.21.1 to 1.21.5
dependabot[bot] Dec 11, 2023
8022a94
Merge pull request #104 from kubernetes-sigs/dependabot/docker/librar…
k8s-ci-robot Feb 5, 2024
adeb010
feat(bucket|bucketaccess): added EventRecorder
shanduur May 11, 2023
17e08b2
feat: replace API
shanduur Oct 18, 2023
c2438fa
fix: rename the tag
shanduur Oct 18, 2023
2cceac4
feat: API registration
shanduur Oct 18, 2023
621cf91
chore: update API
shanduur Nov 16, 2023
37e4348
fix(review/1): added event constants
shanduur Nov 30, 2023
41812bd
fix(review/1): format message
shanduur Dec 8, 2023
0092bea
chore: errors cleanup
shanduur Dec 8, 2023
958ba19
fix(deps): updated api
shanduur Feb 13, 2024
029a5ae
test: added scaffolding for testing events
shanduur Feb 13, 2024
edad614
test: extended scaffolding
shanduur Feb 14, 2024
b6505b7
test(bucket): added event tests
shanduur Feb 22, 2024
ac094de
chore: streamline errors
shanduur Feb 22, 2024
172591d
test(bucketaccess): added event tests
shanduur Feb 22, 2024
b95108e
test(bucket): added unwrap to internals
shanduur Feb 22, 2024
d4a1a67
fix: added events to each error
shanduur Mar 14, 2024
a807c31
Bump library/golang from 1.21.5 to 1.22.2
dependabot[bot] Apr 8, 2024
454154d
Bump google.golang.org/grpc from 1.46.2 to 1.63.2
dependabot[bot] Apr 15, 2024
e776030
Merge pull request #124 from kubernetes-sigs/dependabot/docker/librar…
k8s-ci-robot Apr 23, 2024
1339039
Merge pull request #125 from kubernetes-sigs/dependabot/go_modules/go…
k8s-ci-robot Apr 23, 2024
b58387f
Add BlaineEXE to the owners file
BlaineEXE May 13, 2024
efb3255
Merge pull request #127 from BlaineEXE/patch-1
k8s-ci-robot May 13, 2024
fdfae45
Bump library/golang from 1.22.2 to 1.22.3
dependabot[bot] May 13, 2024
5b9f71a
Merge pull request #92 from shanduur/feat-event-recorder
k8s-ci-robot May 16, 2024
9f7a984
chore: added shanduur
shanduur May 17, 2024
bf5ff2a
Merge pull request #130 from shanduur/add-owner-shanduur
k8s-ci-robot May 20, 2024
c6639d0
Bump the github-dependencies group with 2 updates
dependabot[bot] Jun 3, 2024
967d450
Merge pull request #128 from kubernetes-sigs/dependabot/docker/librar…
k8s-ci-robot Jun 4, 2024
80979e8
Merge pull request #132 from kubernetes-sigs/dependabot/go_modules/gi…
k8s-ci-robot Jun 4, 2024
91b299a
Add 'pkg/imported-sidecar/' from commit '80979e8992a6a2b2166f3ff1e7d3…
BlaineEXE Jun 14, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions pkg/imported-sidecar/.github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
name: Bug Report
about: Use this template for reporting bugs or issues.
title: "[DATE] - Title"
labels: bug
---
# Bug Report

<!-- Please use this template while reporting a bug and provide as much info as possible. Not doing so may result in your bug not being addressed in a timely manner. Thanks!

If the matter is security related, please disclose it privately via https://kubernetes.io/security/
-->

**What happened**:

**What you expected to happen**:

**How to reproduce this bug (as minimally and precisely as possible)**:

**Anything else relevant for this bug report?**:

**Environment**:

- Kubernetes version (use `kubectl version`), please list client and server:
- Sidecar version (provide the release tag or commit hash):
- Provisoner name and version (provide the release tag or commit hash):
- Cloud provider or hardware configuration:
- OS (e.g: `cat /etc/os-release`):
- Kernel (e.g. `uname -a`):
- Install tools:
- Network plugin and version (if this is a network-related bug):
- Others:
18 changes: 18 additions & 0 deletions pkg/imported-sidecar/.github/ISSUE_TEMPLATE/enhancement.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
name: Enhancement/Feature Request
about: Use this template to request a new feature or enhancement for the COSI sidecar
title: "[DATE] - Title"
---
# Enhancement

**Is your feature request related to a problem?/Why is this needed**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->

**Describe the solution you'd like in detail**
<!-- A clear and concise description of what you want to happen. -->

**Describe alternatives you've considered**
<!-- A clear and concise description of any alternative solutions or features you've considered. -->

**Additional context**
<!-- Add any other context or screenshots about the feature request or enhancement here. -->
14 changes: 14 additions & 0 deletions pkg/imported-sidecar/.github/SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Security Policy

## Supported Versions

Information about supported Kubernetes versions can be found on the
[Kubernetes version and version skew support policy] page on the Kubernetes website.

## Reporting a Vulnerability

Instructions for reporting a vulnerability can be found on the
[Kubernetes Security and Disclosure Information] page.

[Kubernetes version and version skew support policy]: https://kubernetes.io/docs/setup/release/version-skew-policy/#supported-versions
[Kubernetes Security and Disclosure Information]: https://kubernetes.io/docs/reference/issues-security/security/#report-a-vulnerability
27 changes: 27 additions & 0 deletions pkg/imported-sidecar/.github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
version: 2
enable-beta-ecosystems: true
updates:

- package-ecosystem: "gomod"
directory: "/"
schedule:
interval: "weekly"
groups: # batch updates together for fewer dependabot PRs
golang-dependencies:
patterns:
- "github.com/golang*"
k8s-dependencies:
patterns:
- "k8s.io*"
- "sigs.k8s.io*"
exclude-patterns:
# controller-runtime has history of breaking API changes more often than other k8s projects
- "sigs.k8s.io/controller-runtime"
github-dependencies:
patterns:
- "github.com*"

- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "weekly"
9 changes: 9 additions & 0 deletions pkg/imported-sidecar/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
*.tmp
.DS_Store
.build
*.swp
travis.yml
release-tools
bin
.idea
vendor
7 changes: 7 additions & 0 deletions pkg/imported-sidecar/CHANGELOG/CHANGELOG-0.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# First Release v0.1.0

### New Features

- Listen for Bucket* resources
- Call driver APIs to create and manage buckets
- Call driver APIs to create and manage credentials
26 changes: 26 additions & 0 deletions pkg/imported-sidecar/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Contributing Guidelines

Welcome to Kubernetes. We are excited about the prospect of you joining our [community](https://git.k8s.io/community)! The Kubernetes community abides by the CNCF [code of conduct](code-of-conduct.md). Here is an excerpt:

_As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities._

## Getting Started

We have full documentation on how to get started contributing here:

<!---
If your repo has certain guidelines for contribution, put them here ahead of the general k8s resources
-->

- [Contributor License Agreement](https://git.k8s.io/community/CLA.md) Kubernetes projects require that you sign a Contributor License Agreement (CLA) before we can accept your pull requests
- [Kubernetes Contributor Guide](https://git.k8s.io/community/contributors/guide) - Main contributor documentation, or you can just jump directly to the [contributing section](https://git.k8s.io/community/contributors/guide#contributing)
- [Contributor Cheat Sheet](https://git.k8s.io/community/contributors/guide/contributor-cheatsheet) - Common resources for existing developers

## Mentorship

- [Mentoring Initiatives](https://git.k8s.io/community/mentoring) - We have a diverse set of mentorship programs available that are always looking for volunteers!

## Contact Information

- [Slack](https://kubernetes.slack.com/messages/sig-storage-cosi)
- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-storage)
36 changes: 36 additions & 0 deletions pkg/imported-sidecar/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#
# BUILDER
#
FROM docker.io/library/golang:1.22.3 AS builder

WORKDIR /buildroot

# Cache deps before building and copying source, so that we don't need to re-download
# as much and so that source changes don't invalidate our downloaded layer.
COPY go.mod go.mod
COPY go.sum go.sum
RUN go mod download

COPY cmd/ cmd/
COPY pkg/ pkg/

ENV CGO_ENABLED=0

RUN go build -o artifacts/objectstorage-sidecar cmd/objectstorage-sidecar/*.go


#
# FINAL IMAGE
#
FROM gcr.io/distroless/static:latest

LABEL maintainers="Kubernetes Authors"
LABEL description="COSI Storage Sidecar"

LABEL org.opencontainers.image.title="COSI Storage Sidecar"
LABEL org.opencontainers.image.description="Container Object Storage Interface (COSI) Storage Provisioner Sidecar"
LABEL org.opencontainers.image.source="https://github.com/kubernetes-sigs/container-object-storage-interface-provisioner-sidecar"
LABEL org.opencontainers.image.licenses="APACHE-2.0"

COPY --from=builder /buildroot/artifacts/objectstorage-sidecar .
ENTRYPOINT ["/objectstorage-sidecar"]
201 changes: 201 additions & 0 deletions pkg/imported-sidecar/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.

"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:

(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.

You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright {yyyy} {name of copyright owner}

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Loading