diff --git a/DEPENDENCIES.md b/DEPENDENCIES.md index 540284523..a93b9e4cb 100644 --- a/DEPENDENCIES.md +++ b/DEPENDENCIES.md @@ -458,6 +458,6 @@ | [golang.org/x/xerrors@5ec99f83aff198f5fbd629d6c8d8eb38a04218ca](https://cs.opensource.google/go) | BSD-3-Clause | N/A | | [golang.org/x/oauth2@bf48bf16ab8d622ce64ec6ce98d2c98f916b6303](https://cs.opensource.google/go) | BSD-3-Clause | N/A | | [golang.org/x/mobile@d3739f865fa66d07c1f506505c18aac71a8ead6e](https://cs.opensource.google/go) | BSD-3-Clause | N/A | -| [github.com/devfile/api/v2@03e023e7078b64884216d8e6dce8f0cf8b7e74d2](https://github.com/devfile/api.git) | Apache-2.0 | [CQ](https://dev.eclipse.org/ipzilla/show_bug.cgi?id=23680) | +| [github.com/devfile/api/v2@32cae1f8e42c22035138ef6ee93080bc47d751c6](https://github.com/devfile/api.git) | Apache-2.0 | [clearlydefined](https://clearlydefined.io/definitions/git/github/devfile/api/32cae1f8e42c22035138ef6ee93080bc47d751c6) | | [github.com/che-incubator/kubernetes-image-puller-operator@0128446f5af78587c0427a35d693bbb8d24036bc](https://github.com/che-incubator/kubernetes-image-puller-operator.git) | EPL-2.0 | todo | -| [github.com/devfile/devworkspace-operator@aaa430987417c980001c7ae19932f78991fe9707](https://github.com/devfile/devworkspace-operator.git) | Apache-2.0 | [clearlydefined](https://clearlydefined.io/definitions/git/github/devfile/devworkspace-operator/aaa430987417c980001c7ae19932f78991fe9707) | +| [github.com/devfile/devworkspace-operator@98a40388f09122ed6c9c1b7b92aaf83b2f9e2d48](https://github.com/devfile/devworkspace-operator.git) | Apache-2.0 | [clearlydefined](https://clearlydefined.io/definitions/git/github/devfile/devworkspace-operator/98a40388f09122ed6c9c1b7b92aaf83b2f9e2d48) | diff --git a/Dockerfile b/Dockerfile index 47a30d847..1d24e1be0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,7 @@ # https://access.redhat.com/containers/?tab=tags#/registry.access.redhat.com/ubi8/go-toolset FROM registry.access.redhat.com/ubi8/go-toolset:1.16.12-10 as builder ENV GOPATH=/go/ -ARG DEV_WORKSPACE_CONTROLLER_VERSION="v0.13.0" +ARG DEV_WORKSPACE_CONTROLLER_VERSION="v0.14.1" ARG DEV_HEADER_REWRITE_TRAEFIK_PLUGIN="main" ARG TESTS="true" USER root diff --git a/Makefile b/Makefile index 4abe0eb75..ade41be1e 100644 --- a/Makefile +++ b/Makefile @@ -59,7 +59,7 @@ ECLIPSE_CHE_CRD_V1="$(CRD_FOLDER)/org_v1_che_crd.yaml" # default crd names used operator-sdk from the box ECLIPSE_CHE_CRD="$(CRD_FOLDER)/org.eclipse.che_checlusters.yaml" -DEV_WORKSPACE_CONTROLLER_VERSION="v0.13.0" +DEV_WORKSPACE_CONTROLLER_VERSION="v0.14.1" DEV_HEADER_REWRITE_TRAEFIK_PLUGIN="main" # Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set) diff --git a/bundle/next/eclipse-che-preview-openshift/manifests/che-operator.clusterserviceversion.yaml b/bundle/next/eclipse-che-preview-openshift/manifests/che-operator.clusterserviceversion.yaml index 64f5d2549..136a80c1f 100644 --- a/bundle/next/eclipse-che-preview-openshift/manifests/che-operator.clusterserviceversion.yaml +++ b/bundle/next/eclipse-che-preview-openshift/manifests/che-operator.clusterserviceversion.yaml @@ -75,7 +75,7 @@ metadata: operators.operatorframework.io/project_layout: go.kubebuilder.io/v3 repository: https://github.com/eclipse-che/che-operator support: Eclipse Foundation - name: eclipse-che-preview-openshift.v7.48.0-443.next + name: eclipse-che-preview-openshift.v7.48.0-444.next namespace: placeholder spec: apiservicedefinitions: {} @@ -982,7 +982,7 @@ spec: - name: RELATED_IMAGE_single_host_gateway_config_sidecar value: quay.io/che-incubator/configbump:0.1.4 - name: RELATED_IMAGE_devworkspace_controller - value: quay.io/devfile/devworkspace-controller:v0.13.0 + value: quay.io/devfile/devworkspace-controller:v0.14.1 - name: RELATED_IMAGE_gateway_authentication_sidecar value: quay.io/openshift/origin-oauth-proxy:4.7 - name: RELATED_IMAGE_gateway_authorization_sidecar @@ -1278,4 +1278,4 @@ spec: maturity: stable provider: name: Eclipse Foundation - version: 7.48.0-443.next + version: 7.48.0-444.next diff --git a/config/manager/manager.yaml b/config/manager/manager.yaml index d0d9f99d3..3fc32e462 100644 --- a/config/manager/manager.yaml +++ b/config/manager/manager.yaml @@ -82,7 +82,7 @@ spec: - name: RELATED_IMAGE_single_host_gateway_config_sidecar value: quay.io/che-incubator/configbump:0.1.4 - name: RELATED_IMAGE_devworkspace_controller - value: quay.io/devfile/devworkspace-controller:v0.13.0 + value: quay.io/devfile/devworkspace-controller:v0.14.1 - name: RELATED_IMAGE_gateway_authentication_sidecar value: quay.io/openshift/origin-oauth-proxy:4.7 - name: RELATED_IMAGE_gateway_authorization_sidecar diff --git a/go.mod b/go.mod index 941435b26..69c683131 100644 --- a/go.mod +++ b/go.mod @@ -5,8 +5,8 @@ go 1.16 require ( github.com/Shopify/logrus-bugsnag v0.0.0-00010101000000-000000000000 // indirect github.com/che-incubator/kubernetes-image-puller-operator v0.0.0-20210929175054-0128446f5af7 - github.com/devfile/api/v2 v2.0.0-20210917193329-089a48011460 - github.com/devfile/devworkspace-operator v0.13.0 + github.com/devfile/api/v2 v2.0.0-20220414122024-32cae1f8e42c + github.com/devfile/devworkspace-operator v0.14.1 github.com/go-logr/logr v0.4.0 github.com/golang/mock v1.5.0 github.com/google/go-cmp v0.5.6 diff --git a/go.sum b/go.sum index 38771720d..8ab0bad2d 100644 --- a/go.sum +++ b/go.sum @@ -112,10 +112,10 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= github.com/deislabs/oras v0.8.1/go.mod h1:Mx0rMSbBNaNfY9hjpccEnxkOqJL6KGjtxNHPLC4G4As= github.com/denisenkom/go-mssqldb v0.0.0-20190204142019-df6d76eb9289/go.mod h1:xN/JuLBIz4bjkxNmByTiV1IbhfnYb6oo99phBn4Eqhc= -github.com/devfile/api/v2 v2.0.0-20210917193329-089a48011460 h1:cmd+3poyUwevcWchYdvE02YT1nQU4SJpA5/wrdLrpWE= -github.com/devfile/api/v2 v2.0.0-20210917193329-089a48011460/go.mod h1:kLX/nW93gigOHXK3NLeJL2fSS/sgEe+OHu8bo3aoOi4= -github.com/devfile/devworkspace-operator v0.13.0 h1:s/jFTfqKmVM8UizgCcS5icZ+w3LV+iRtDDkeYqVk+os= -github.com/devfile/devworkspace-operator v0.13.0/go.mod h1:33uEtRwYsox/Jsuh5oqNc4iPNKtprazz15Jc0iX9aTU= +github.com/devfile/api/v2 v2.0.0-20220414122024-32cae1f8e42c h1:yyidoxal8ngJWDxRuVZMNh4PBwqDIzOkTeOagtmRiy0= +github.com/devfile/api/v2 v2.0.0-20220414122024-32cae1f8e42c/go.mod h1:kLX/nW93gigOHXK3NLeJL2fSS/sgEe+OHu8bo3aoOi4= +github.com/devfile/devworkspace-operator v0.14.1 h1:y7Z9Bh15Y4RFf4tf68W7ComOLH0nlUTqDtIWmcuSIQQ= +github.com/devfile/devworkspace-operator v0.14.1/go.mod h1:fM3/GhPWEL8JZOEImCnpyxTYEf9dN6PsjzJq+ffcD1k= github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dhui/dktest v0.3.2/go.mod h1:l1/ib23a/CmxAe7yixtrYPc8Iy90Zy2udyaHINM5p58= diff --git a/helmcharts/next/templates/manager.yaml b/helmcharts/next/templates/manager.yaml index d0d9f99d3..3fc32e462 100644 --- a/helmcharts/next/templates/manager.yaml +++ b/helmcharts/next/templates/manager.yaml @@ -82,7 +82,7 @@ spec: - name: RELATED_IMAGE_single_host_gateway_config_sidecar value: quay.io/che-incubator/configbump:0.1.4 - name: RELATED_IMAGE_devworkspace_controller - value: quay.io/devfile/devworkspace-controller:v0.13.0 + value: quay.io/devfile/devworkspace-controller:v0.14.1 - name: RELATED_IMAGE_gateway_authentication_sidecar value: quay.io/openshift/origin-oauth-proxy:4.7 - name: RELATED_IMAGE_gateway_authorization_sidecar diff --git a/vendor/github.com/devfile/api/v2/LICENSE b/vendor/github.com/devfile/api/v2/LICENSE index d3087e4c5..261eeb9e9 100644 --- a/vendor/github.com/devfile/api/v2/LICENSE +++ b/vendor/github.com/devfile/api/v2/LICENSE @@ -1,277 +1,201 @@ -Eclipse Public License - v 2.0 + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ - THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE - PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION - OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION -1. DEFINITIONS + 1. Definitions. -"Contribution" means: + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. - a) in the case of the initial Contributor, the initial content - Distributed under this Agreement, and + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. - b) in the case of each subsequent Contributor: - i) changes to the Program, and - ii) additions to the Program; - where such changes and/or additions to the Program originate from - and are Distributed by that particular Contributor. A Contribution - "originates" from a Contributor if it was added to the Program by - such Contributor itself or anyone acting on such Contributor's behalf. - Contributions do not include changes or additions to the Program that - are not Modified Works. + "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. -"Contributor" means any person or entity that Distributes the Program. + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. -"Licensed Patents" mean patent claims licensable by a Contributor which -are necessarily infringed by the use or sale of its Contribution alone -or when combined with the Program. + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. -"Program" means the Contributions Distributed in accordance with this -Agreement. + "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. -"Recipient" means anyone who receives the Program under this Agreement -or any Secondary License (as applicable), including Contributors. + "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 Code or other -form, that is based on (or derived from) the Program and for which the -editorial revisions, annotations, elaborations, or other modifications -represent, as a whole, an original work of authorship. + "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. -"Modified Works" shall mean any work in Source Code or other form that -results from an addition to, deletion from, or modification of the -contents of the Program, including, for purposes of clarity any new file -in Source Code form that contains any contents of the Program. Modified -Works shall not include works that contain only declarations, -interfaces, types, classes, structures, or files of the Program solely -in each case in order to link to, bind by name, or subclass the Program -or Modified 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." -"Distribute" means the acts of a) distributing or b) making available -in any manner that enables the transfer of a copy. + "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. -"Source Code" means the form of a Program preferred for making -modifications, including but not limited to software source code, -documentation source, and configuration files. + 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. -"Secondary License" means either the GNU General Public License, -Version 2.0, or any later versions of that license, including any -exceptions or additional permissions as identified by the initial -Contributor. + 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. -2. GRANT OF RIGHTS + 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) Subject to the terms of this Agreement, each Contributor hereby - grants Recipient a non-exclusive, worldwide, royalty-free copyright - license to reproduce, prepare Derivative Works of, publicly display, - publicly perform, Distribute and sublicense the Contribution of such - Contributor, if any, and such Derivative Works. + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and - b) Subject to the terms of this Agreement, each Contributor hereby - grants Recipient a non-exclusive, worldwide, royalty-free patent - license under Licensed Patents to make, use, sell, offer to sell, - import and otherwise transfer the Contribution of such Contributor, - if any, in Source Code or other form. This patent license shall - apply to the combination of the Contribution and the Program if, at - the time the Contribution is added by the Contributor, such addition - of the Contribution causes such combination to be covered by the - Licensed Patents. The patent license shall not apply to any other - combinations which include the Contribution. No hardware per se is - licensed hereunder. + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and - c) Recipient understands that although each Contributor grants the - licenses to its Contributions set forth herein, no assurances are - provided by any Contributor that the Program does not infringe the - patent or other intellectual property rights of any other entity. - Each Contributor disclaims any liability to Recipient for claims - brought by any other entity based on infringement of intellectual - property rights or otherwise. As a condition to exercising the - rights and licenses granted hereunder, each Recipient hereby - assumes sole responsibility to secure any other intellectual - property rights needed, if any. For example, if a third party - patent license is required to allow Recipient to Distribute the - Program, it is Recipient's responsibility to acquire that license - before distributing the Program. + (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) Each Contributor represents that to its knowledge it has - sufficient copyright rights in its Contribution, if any, to grant - the copyright license set forth in this Agreement. + (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. - e) Notwithstanding the terms of any Secondary License, no - Contributor makes additional grants to any Recipient (other than - those set forth in this Agreement) as a result of such Recipient's - receipt of the Program under the terms of a Secondary License - (if permitted under the terms of Section 3). + 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. -3. REQUIREMENTS + 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. -3.1 If a Contributor Distributes the Program in any form, then: + 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. - a) the Program must also be made available as Source Code, in - accordance with section 3.2, and the Contributor must accompany - the Program with a statement that the Source Code for the Program - is available under this Agreement, and informs Recipients how to - obtain it in a reasonable manner on or through a medium customarily - used for software exchange; and + 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. - b) the Contributor may Distribute the Program under a license - different than this Agreement, provided that such license: - i) effectively disclaims on behalf of all other Contributors all - warranties and conditions, express and implied, including - warranties or conditions of title and non-infringement, and - implied warranties or conditions of merchantability and fitness - for a particular purpose; + 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. - ii) effectively excludes on behalf of all other Contributors all - liability for damages, including direct, indirect, special, - incidental and consequential damages, such as lost profits; + 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. - iii) does not attempt to limit or alter the recipients' rights - in the Source Code under section 3.2; and + END OF TERMS AND CONDITIONS - iv) requires any subsequent distribution of the Program by any - party to be under a license that satisfies the requirements - of this section 3. + APPENDIX: How to apply the Apache License to your work. -3.2 When the Program is Distributed as Source Code: + 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. - a) it must be made available under this Agreement, or if the - Program (i) is combined with other material in a separate file or - files made available under a Secondary License, and (ii) the initial - Contributor attached to the Source Code the notice described in - Exhibit A of this Agreement, then the Program may be made available - under the terms of such Secondary Licenses, and + Copyright [yyyy] [name of copyright owner] - b) a copy of this Agreement must be included with each copy of - the Program. + 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 -3.3 Contributors may not remove or alter any copyright, patent, -trademark, attribution notices, disclaimers of warranty, or limitations -of liability ("notices") contained within the Program from any copy of -the Program which they Distribute, provided that Contributors may add -their own appropriate notices. + http://www.apache.org/licenses/LICENSE-2.0 -4. COMMERCIAL DISTRIBUTION - -Commercial distributors of software may accept certain responsibilities -with respect to end users, business partners and the like. While this -license is intended to facilitate the commercial use of the Program, -the Contributor who includes the Program in a commercial product -offering should do so in a manner which does not create potential -liability for other Contributors. Therefore, if a Contributor includes -the Program in a commercial product offering, such Contributor -("Commercial Contributor") hereby agrees to defend and indemnify every -other Contributor ("Indemnified Contributor") against any losses, -damages and costs (collectively "Losses") arising from claims, lawsuits -and other legal actions brought by a third party against the Indemnified -Contributor to the extent caused by the acts or omissions of such -Commercial Contributor in connection with its distribution of the Program -in a commercial product offering. The obligations in this section do not -apply to any claims or Losses relating to any actual or alleged -intellectual property infringement. In order to qualify, an Indemnified -Contributor must: a) promptly notify the Commercial Contributor in -writing of such claim, and b) allow the Commercial Contributor to control, -and cooperate with the Commercial Contributor in, the defense and any -related settlement negotiations. The Indemnified Contributor may -participate in any such claim at its own expense. - -For example, a Contributor might include the Program in a commercial -product offering, Product X. That Contributor is then a Commercial -Contributor. If that Commercial Contributor then makes performance -claims, or offers warranties related to Product X, those performance -claims and warranties are such Commercial Contributor's responsibility -alone. Under this section, the Commercial Contributor would have to -defend claims against the other Contributors related to those performance -claims and warranties, and if a court requires any other Contributor to -pay any damages as a result, the Commercial Contributor must pay -those damages. - -5. NO WARRANTY - -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT -PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED 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. Each Recipient is solely responsible for determining the -appropriateness of using and distributing the Program and assumes all -risks associated with its exercise of rights under this Agreement, -including but not limited to the risks and costs of program errors, -compliance with applicable laws, damage to or loss of data, programs -or equipment, and unavailability or interruption of operations. - -6. DISCLAIMER OF LIABILITY - -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT -PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS -SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST -PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE -EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - -7. GENERAL - -If any provision of this Agreement is invalid or unenforceable under -applicable law, it shall not affect the validity or enforceability of -the remainder of the terms of this Agreement, and without further -action by the parties hereto, such provision shall be reformed to the -minimum extent necessary to make such provision valid and enforceable. - -If Recipient institutes patent litigation against any entity -(including a cross-claim or counterclaim in a lawsuit) alleging that the -Program itself (excluding combinations of the Program with other software -or hardware) infringes such Recipient's patent(s), then such Recipient's -rights granted under Section 2(b) shall terminate as of the date such -litigation is filed. - -All Recipient's rights under this Agreement shall terminate if it -fails to comply with any of the material terms or conditions of this -Agreement and does not cure such failure in a reasonable period of -time after becoming aware of such noncompliance. If all Recipient's -rights under this Agreement terminate, Recipient agrees to cease use -and distribution of the Program as soon as reasonably practicable. -However, Recipient's obligations under this Agreement and any licenses -granted by Recipient relating to the Program shall continue and survive. - -Everyone is permitted to copy and distribute copies of this Agreement, -but in order to avoid inconsistency the Agreement is copyrighted and -may only be modified in the following manner. The Agreement Steward -reserves the right to publish new versions (including revisions) of -this Agreement from time to time. No one other than the Agreement -Steward has the right to modify this Agreement. The Eclipse Foundation -is the initial Agreement Steward. The Eclipse Foundation may assign the -responsibility to serve as the Agreement Steward to a suitable separate -entity. Each new version of the Agreement will be given a distinguishing -version number. The Program (including Contributions) may always be -Distributed subject to the version of the Agreement under which it was -received. In addition, after a new version of the Agreement is published, -Contributor may elect to Distribute the Program (including its -Contributions) under the new version. - -Except as expressly stated in Sections 2(a) and 2(b) above, Recipient -receives no rights or licenses to the intellectual property of any -Contributor under this Agreement, whether expressly, by implication, -estoppel or otherwise. All rights in the Program not expressly granted -under this Agreement are reserved. Nothing in this Agreement is intended -to be enforceable by any entity that is not a Contributor or Recipient. -No third-party beneficiary rights are created under this Agreement. - -Exhibit A - Form of Secondary Licenses Notice - -"This Source Code may also be made available under the following -Secondary Licenses when the conditions for such availability set forth -in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), -version(s), and exceptions or additional permissions here}." - - Simply including a copy of this Agreement, including this Exhibit A - is not sufficient to license the Source Code under Secondary Licenses. - - If it is not possible or desirable to put the notice in a particular - file, then You may include the notice in a location (such as a LICENSE - file in a relevant directory) where a recipient would be likely to - look for such a notice. - - You may add additional accurate notices of copyright ownership. + 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. diff --git a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/commands.go b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/commands.go index 6698a1d30..3d136af0c 100644 --- a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/commands.go +++ b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/commands.go @@ -29,12 +29,14 @@ const ( DeployCommandGroupKind CommandGroupKind = "deploy" ) +// +devfile:getter:generate type CommandGroup struct { // Kind of group the command is part of Kind CommandGroupKind `json:"kind"` // +optional // Identifies the default command for a given group kind + // +devfile:default:value=false IsDefault *bool `json:"isDefault,omitempty"` } @@ -90,7 +92,7 @@ type CommandUnion struct { // // When no `apply` command exist for a given component, // it is assumed the component will be applied at devworkspace start - // by default. + // by default, unless `deployByDefault` for that component is set to false. // +optional Apply *ApplyCommand `json:"apply,omitempty"` @@ -107,6 +109,7 @@ type CommandUnion struct { Custom *CustomCommand `json:"custom,omitempty"` } +// +devfile:getter:generate type ExecCommand struct { LabeledCommand `json:",inline"` @@ -145,6 +148,7 @@ type ExecCommand struct { // If set to `true` the command won't be restarted and it is expected to handle file changes on its own. // // Default value is `false` + // +devfile:default:value=false HotReloadCapable *bool `json:"hotReloadCapable,omitempty"` } @@ -156,6 +160,7 @@ type ApplyCommand struct { Component string `json:"component"` } +// +devfile:getter:generate type CompositeCommand struct { LabeledCommand `json:",inline"` @@ -164,6 +169,7 @@ type CompositeCommand struct { // Indicates if the sub-commands should be executed concurrently // +optional + // +devfile:default:value=false Parallel *bool `json:"parallel,omitempty"` } diff --git a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/component_container.go b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/component_container.go index f6168c356..c913ca268 100644 --- a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/component_container.go +++ b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/component_container.go @@ -7,6 +7,18 @@ type ContainerComponent struct { Endpoints []Endpoint `json:"endpoints,omitempty" patchStrategy:"merge" patchMergeKey:"name"` } +// Annotation specifies the annotations to be added to specific resources +type Annotation struct { + // +optional + // Annotations to be added to deployment + Deployment map[string]string `json:"deployment,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + + // +optional + // Annotations to be added to service + Service map[string]string `json:"service,omitempty" patchStrategy:"merge" patchMergeKey:"name"` +} + +// +devfile:getter:generate type Container struct { Image string `json:"image"` @@ -22,6 +34,10 @@ type Container struct { // - `$PROJECT_SOURCE` Env []EnvVar `json:"env,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + // +optional + // Annotations that should be added to specific resources for this container + Annotation *Annotation `json:"annotation,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + // +optional // List of volumes mounts that should be mounted is this container. VolumeMounts []VolumeMount `json:"volumeMounts,omitempty" patchStrategy:"merge" patchMergeKey:"name"` @@ -69,9 +85,22 @@ type Container struct { // // Default value is `false` // +optional + // +devfile:default:value=false DedicatedPod *bool `json:"dedicatedPod,omitempty"` } +//GetMountSources returns the value of the boolean property. If it's unset, the default value is true for all component types except plugins and components that set `dedicatedPod` to true. +func (in *Container) GetMountSources() bool { + if in.MountSources != nil { + return *in.MountSources + } else { + if in.GetDedicatedPod() { + return false + } + return true + } +} + type EnvVar struct { Name string `json:"name" yaml:"name"` Value string `json:"value" yaml:"value"` diff --git a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/component_image.go b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/component_image.go index c6e7e6b77..59ac2174a 100644 --- a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/component_image.go +++ b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/component_image.go @@ -25,6 +25,7 @@ type Image struct { } // +union +// +devfile:getter:generate type ImageUnion struct { // Type of image // @@ -35,4 +36,11 @@ type ImageUnion struct { // Allows specifying dockerfile type build // +optional Dockerfile *DockerfileImage `json:"dockerfile,omitempty"` + + // Defines if the image should be built during startup. + // + // Default value is `false` + // +optional + // +devfile:default:value=false + AutoBuild *bool `json:"autoBuild,omitempty"` } diff --git a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/component_image_dockerfile.go b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/component_image_dockerfile.go index 4743825e2..87f43a83c 100644 --- a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/component_image_dockerfile.go +++ b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/component_image_dockerfile.go @@ -41,8 +41,9 @@ type DockerfileSrc struct { Git *DockerfileGitProjectSource `json:"git,omitempty"` } +// +devfile:getter:generate type Dockerfile struct { - // Path of source directory to establish build context. Defaults to ${PROJECT_ROOT} in the container + // Path of source directory to establish build context. Defaults to ${PROJECT_SOURCE} in the container // +optional BuildContext string `json:"buildContext,omitempty"` @@ -54,6 +55,7 @@ type Dockerfile struct { // // Default value is `false` // +optional + // +devfile:default:value=false RootRequired *bool `json:"rootRequired,omitempty"` } diff --git a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/component_kubernetes_like.go b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/component_kubernetes_like.go index 483735c0f..941900a85 100644 --- a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/component_kubernetes_like.go +++ b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/component_kubernetes_like.go @@ -28,10 +28,19 @@ type K8sLikeComponentLocation struct { Inlined string `json:"inlined,omitempty"` } +// +devfile:getter:generate type K8sLikeComponent struct { BaseComponent `json:",inline"` K8sLikeComponentLocation `json:",inline"` - Endpoints []Endpoint `json:"endpoints,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + + // Defines if the component should be deployed during startup. + // + // Default value is `false` + // +optional + // +devfile:default:value=false + DeployByDefault *bool `json:"deployByDefault,omitempty"` + + Endpoints []Endpoint `json:"endpoints,omitempty" patchStrategy:"merge" patchMergeKey:"name"` } // Component that allows partly importing Kubernetes resources into the devworkspace POD diff --git a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/component_volume.go b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/component_volume.go index b2517499d..c3bd69280 100644 --- a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/component_volume.go +++ b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/component_volume.go @@ -7,6 +7,7 @@ type VolumeComponent struct { } // Volume that should be mounted to a component container +// +devfile:getter:generate type Volume struct { // +optional // Size of the volume @@ -15,5 +16,6 @@ type Volume struct { // +optional // Ephemeral volumes are not stored persistently across restarts. Defaults // to false + // +devfile:default:value=false Ephemeral *bool `json:"ephemeral,omitempty"` } diff --git a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/devfile.go b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/devfile.go index 050399a40..4785ce11b 100644 --- a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/devfile.go +++ b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/devfile.go @@ -6,7 +6,7 @@ import ( // Devfile describes the structure of a cloud-native devworkspace and development environment. // +k8s:deepcopy-gen=false -// +devfile:jsonschema:generate:omitCustomUnionMembers=true,omitPluginUnionMembers=true +// +devfile:jsonschema:generate:omitCustomUnionMembers=true,omitPluginUnionMembers=true,shortenEndpointNameLength=true type Devfile struct { devfile.DevfileHeader `json:",inline"` diff --git a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/endpoint.go b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/endpoint.go index 8599a6e4f..92f7f9e14 100644 --- a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/endpoint.go +++ b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/endpoint.go @@ -1,8 +1,6 @@ package v1alpha2 -import ( - attributes "github.com/devfile/api/v2/pkg/attributes" -) +import "github.com/devfile/api/v2/pkg/attributes" // EndpointProtocol defines the application and transport protocols of the traffic that will go through this endpoint. // Only one of the following protocols may be specified: http, ws, tcp, udp. @@ -46,11 +44,14 @@ const ( NoneEndpointExposure EndpointExposure = "none" ) +// +devfile:getter:generate type Endpoint struct { // +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ // +kubebuilder:validation:MaxLength=63 Name string `json:"name"` + // Port number to be used within the container component. The same port cannot + // be used by two different container components. TargetPort int `json:"targetPort"` // Describes how the endpoint should be exposed on the network. @@ -94,6 +95,7 @@ type Endpoint struct { // Describes whether the endpoint should be secured and protected by some // authentication process. This requires a protocol of `https` or `wss`. // +optional + // +devfile:default:value=false Secure *bool `json:"secure,omitempty"` // Path of the endpoint URL @@ -112,4 +114,8 @@ type Endpoint struct { // +kubebuilder:pruning:PreserveUnknownFields // +kubebuilder:validation:Schemaless Attributes attributes.Attributes `json:"attributes,omitempty"` + + // +optional + // Annotations to be added to Kubernetes Ingress or Openshift Route + Annotations map[string]string `json:"annotation,omitempty" patchStrategy:"merge" patchMergeKey:"name"` } diff --git a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/import_reference.go b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/import_reference.go index 342b7975c..65414c10a 100644 --- a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/import_reference.go +++ b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/import_reference.go @@ -50,4 +50,12 @@ type ImportReference struct { // it is recommended to always specify the `registryUrl` when `id` is used. // +optional RegistryUrl string `json:"registryUrl,omitempty"` + + // Specific stack/sample version to pull the parent devfile from, when using id in the parent reference. + // To specify `version`, `id` must be defined and used as the import reference source. + // `version` can be either a specific stack version, or `latest`. + // If no `version` specified, default version will be used. + // +optional + // +kubebuilder:validation:Pattern=^(latest)|(([1-9])\.([0-9]+)\.([0-9]+)(\-[0-9a-z-]+(\.[0-9a-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?)$ + Version string `json:"version,omitempty"` } diff --git a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/zz_generated.deepcopy.go b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/zz_generated.deepcopy.go index ee9afdfbb..01ac606ac 100644 --- a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/zz_generated.deepcopy.go +++ b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated // Code generated by controller-gen. DO NOT EDIT. @@ -9,6 +10,122 @@ import ( "k8s.io/apimachinery/pkg/runtime" ) +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Annotation) DeepCopyInto(out *Annotation) { + *out = *in + if in.Deployment != nil { + in, out := &in.Deployment, &out.Deployment + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Service != nil { + in, out := &in.Service, &out.Service + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Annotation. +func (in *Annotation) DeepCopy() *Annotation { + if in == nil { + return nil + } + out := new(Annotation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AnnotationParentOverride) DeepCopyInto(out *AnnotationParentOverride) { + *out = *in + if in.Deployment != nil { + in, out := &in.Deployment, &out.Deployment + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Service != nil { + in, out := &in.Service, &out.Service + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnnotationParentOverride. +func (in *AnnotationParentOverride) DeepCopy() *AnnotationParentOverride { + if in == nil { + return nil + } + out := new(AnnotationParentOverride) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AnnotationPluginOverride) DeepCopyInto(out *AnnotationPluginOverride) { + *out = *in + if in.Deployment != nil { + in, out := &in.Deployment, &out.Deployment + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Service != nil { + in, out := &in.Service, &out.Service + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnnotationPluginOverride. +func (in *AnnotationPluginOverride) DeepCopy() *AnnotationPluginOverride { + if in == nil { + return nil + } + out := new(AnnotationPluginOverride) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AnnotationPluginOverrideParentOverride) DeepCopyInto(out *AnnotationPluginOverrideParentOverride) { + *out = *in + if in.Deployment != nil { + in, out := &in.Deployment, &out.Deployment + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Service != nil { + in, out := &in.Service, &out.Service + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnnotationPluginOverrideParentOverride. +func (in *AnnotationPluginOverrideParentOverride) DeepCopy() *AnnotationPluginOverrideParentOverride { + if in == nil { + return nil + } + out := new(AnnotationPluginOverrideParentOverride) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ApplyCommand) DeepCopyInto(out *ApplyCommand) { *out = *in @@ -1069,6 +1186,11 @@ func (in *Container) DeepCopyInto(out *Container) { *out = make([]EnvVar, len(*in)) copy(*out, *in) } + if in.Annotation != nil { + in, out := &in.Annotation, &out.Annotation + *out = new(Annotation) + (*in).DeepCopyInto(*out) + } if in.VolumeMounts != nil { in, out := &in.VolumeMounts, &out.VolumeMounts *out = make([]VolumeMount, len(*in)) @@ -1210,6 +1332,11 @@ func (in *ContainerParentOverride) DeepCopyInto(out *ContainerParentOverride) { *out = make([]EnvVarParentOverride, len(*in)) copy(*out, *in) } + if in.Annotation != nil { + in, out := &in.Annotation, &out.Annotation + *out = new(AnnotationParentOverride) + (*in).DeepCopyInto(*out) + } if in.VolumeMounts != nil { in, out := &in.VolumeMounts, &out.VolumeMounts *out = make([]VolumeMountParentOverride, len(*in)) @@ -1255,6 +1382,11 @@ func (in *ContainerPluginOverride) DeepCopyInto(out *ContainerPluginOverride) { *out = make([]EnvVarPluginOverride, len(*in)) copy(*out, *in) } + if in.Annotation != nil { + in, out := &in.Annotation, &out.Annotation + *out = new(AnnotationPluginOverride) + (*in).DeepCopyInto(*out) + } if in.VolumeMounts != nil { in, out := &in.VolumeMounts, &out.VolumeMounts *out = make([]VolumeMountPluginOverride, len(*in)) @@ -1300,6 +1432,11 @@ func (in *ContainerPluginOverrideParentOverride) DeepCopyInto(out *ContainerPlug *out = make([]EnvVarPluginOverrideParentOverride, len(*in)) copy(*out, *in) } + if in.Annotation != nil { + in, out := &in.Annotation, &out.Annotation + *out = new(AnnotationPluginOverrideParentOverride) + (*in).DeepCopyInto(*out) + } if in.VolumeMounts != nil { in, out := &in.VolumeMounts, &out.VolumeMounts *out = make([]VolumeMountPluginOverrideParentOverride, len(*in)) @@ -2086,6 +2223,13 @@ func (in *Endpoint) DeepCopyInto(out *Endpoint) { (*out)[key] = *val.DeepCopy() } } + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Endpoint. @@ -2113,6 +2257,13 @@ func (in *EndpointParentOverride) DeepCopyInto(out *EndpointParentOverride) { (*out)[key] = *val.DeepCopy() } } + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointParentOverride. @@ -2140,6 +2291,13 @@ func (in *EndpointPluginOverride) DeepCopyInto(out *EndpointPluginOverride) { (*out)[key] = *val.DeepCopy() } } + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointPluginOverride. @@ -2167,6 +2325,13 @@ func (in *EndpointPluginOverrideParentOverride) DeepCopyInto(out *EndpointPlugin (*out)[key] = *val.DeepCopy() } } + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointPluginOverrideParentOverride. @@ -2675,6 +2840,11 @@ func (in *ImageUnion) DeepCopyInto(out *ImageUnion) { *out = new(DockerfileImage) (*in).DeepCopyInto(*out) } + if in.AutoBuild != nil { + in, out := &in.AutoBuild, &out.AutoBuild + *out = new(bool) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageUnion. @@ -2695,6 +2865,11 @@ func (in *ImageUnionParentOverride) DeepCopyInto(out *ImageUnionParentOverride) *out = new(DockerfileImageParentOverride) (*in).DeepCopyInto(*out) } + if in.AutoBuild != nil { + in, out := &in.AutoBuild, &out.AutoBuild + *out = new(bool) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageUnionParentOverride. @@ -2715,6 +2890,11 @@ func (in *ImageUnionPluginOverride) DeepCopyInto(out *ImageUnionPluginOverride) *out = new(DockerfileImagePluginOverride) (*in).DeepCopyInto(*out) } + if in.AutoBuild != nil { + in, out := &in.AutoBuild, &out.AutoBuild + *out = new(bool) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageUnionPluginOverride. @@ -2735,6 +2915,11 @@ func (in *ImageUnionPluginOverrideParentOverride) DeepCopyInto(out *ImageUnionPl *out = new(DockerfileImagePluginOverrideParentOverride) (*in).DeepCopyInto(*out) } + if in.AutoBuild != nil { + in, out := &in.AutoBuild, &out.AutoBuild + *out = new(bool) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageUnionPluginOverrideParentOverride. @@ -2824,6 +3009,11 @@ func (in *K8sLikeComponent) DeepCopyInto(out *K8sLikeComponent) { *out = *in out.BaseComponent = in.BaseComponent out.K8sLikeComponentLocation = in.K8sLikeComponentLocation + if in.DeployByDefault != nil { + in, out := &in.DeployByDefault, &out.DeployByDefault + *out = new(bool) + **out = **in + } if in.Endpoints != nil { in, out := &in.Endpoints, &out.Endpoints *out = make([]Endpoint, len(*in)) @@ -2908,6 +3098,11 @@ func (in *K8sLikeComponentParentOverride) DeepCopyInto(out *K8sLikeComponentPare *out = *in out.BaseComponentParentOverride = in.BaseComponentParentOverride out.K8sLikeComponentLocationParentOverride = in.K8sLikeComponentLocationParentOverride + if in.DeployByDefault != nil { + in, out := &in.DeployByDefault, &out.DeployByDefault + *out = new(bool) + **out = **in + } if in.Endpoints != nil { in, out := &in.Endpoints, &out.Endpoints *out = make([]EndpointParentOverride, len(*in)) @@ -2932,6 +3127,11 @@ func (in *K8sLikeComponentPluginOverride) DeepCopyInto(out *K8sLikeComponentPlug *out = *in out.BaseComponentPluginOverride = in.BaseComponentPluginOverride out.K8sLikeComponentLocationPluginOverride = in.K8sLikeComponentLocationPluginOverride + if in.DeployByDefault != nil { + in, out := &in.DeployByDefault, &out.DeployByDefault + *out = new(bool) + **out = **in + } if in.Endpoints != nil { in, out := &in.Endpoints, &out.Endpoints *out = make([]EndpointPluginOverride, len(*in)) @@ -2956,6 +3156,11 @@ func (in *K8sLikeComponentPluginOverrideParentOverride) DeepCopyInto(out *K8sLik *out = *in out.BaseComponentPluginOverrideParentOverride = in.BaseComponentPluginOverrideParentOverride out.K8sLikeComponentLocationPluginOverrideParentOverride = in.K8sLikeComponentLocationPluginOverrideParentOverride + if in.DeployByDefault != nil { + in, out := &in.DeployByDefault, &out.DeployByDefault + *out = new(bool) + **out = **in + } if in.Endpoints != nil { in, out := &in.Endpoints, &out.Endpoints *out = make([]EndpointPluginOverrideParentOverride, len(*in)) diff --git a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/zz_generated.getters.go b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/zz_generated.getters.go new file mode 100644 index 000000000..e6a5a0ac7 --- /dev/null +++ b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/zz_generated.getters.go @@ -0,0 +1,53 @@ +package v1alpha2 + +// GetIsDefault returns the value of the boolean property. If unset, it's the default value specified in the devfile:default:value marker +func (in *CommandGroup) GetIsDefault() bool { + return getBoolOrDefault(in.IsDefault, false) +} + +// GetHotReloadCapable returns the value of the boolean property. If unset, it's the default value specified in the devfile:default:value marker +func (in *ExecCommand) GetHotReloadCapable() bool { + return getBoolOrDefault(in.HotReloadCapable, false) +} + +// GetParallel returns the value of the boolean property. If unset, it's the default value specified in the devfile:default:value marker +func (in *CompositeCommand) GetParallel() bool { + return getBoolOrDefault(in.Parallel, false) +} + +// GetDedicatedPod returns the value of the boolean property. If unset, it's the default value specified in the devfile:default:value marker +func (in *Container) GetDedicatedPod() bool { + return getBoolOrDefault(in.DedicatedPod, false) +} + +// GetAutoBuild returns the value of the boolean property. If unset, it's the default value specified in the devfile:default:value marker +func (in *ImageUnion) GetAutoBuild() bool { + return getBoolOrDefault(in.AutoBuild, false) +} + +// GetRootRequired returns the value of the boolean property. If unset, it's the default value specified in the devfile:default:value marker +func (in *Dockerfile) GetRootRequired() bool { + return getBoolOrDefault(in.RootRequired, false) +} + +// GetDeployByDefault returns the value of the boolean property. If unset, it's the default value specified in the devfile:default:value marker +func (in *K8sLikeComponent) GetDeployByDefault() bool { + return getBoolOrDefault(in.DeployByDefault, false) +} + +// GetEphemeral returns the value of the boolean property. If unset, it's the default value specified in the devfile:default:value marker +func (in *Volume) GetEphemeral() bool { + return getBoolOrDefault(in.Ephemeral, false) +} + +// GetSecure returns the value of the boolean property. If unset, it's the default value specified in the devfile:default:value marker +func (in *Endpoint) GetSecure() bool { + return getBoolOrDefault(in.Secure, false) +} + +func getBoolOrDefault(input *bool, defaultVal bool) bool { + if input != nil { + return *input + } + return defaultVal +} diff --git a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/zz_generated.parent_overrides.go b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/zz_generated.parent_overrides.go index 4886db49e..af9775945 100644 --- a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/zz_generated.parent_overrides.go +++ b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/zz_generated.parent_overrides.go @@ -229,7 +229,7 @@ type CommandUnionParentOverride struct { // // When no `apply` command exist for a given component, // it is assumed the component will be applied at devworkspace start - // by default. + // by default, unless `deployByDefault` for that component is set to false. // +optional Apply *ApplyCommandParentOverride `json:"apply,omitempty"` @@ -384,6 +384,10 @@ type ContainerParentOverride struct { // - `$PROJECT_SOURCE` Env []EnvVarParentOverride `json:"env,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + // +optional + // Annotations that should be added to specific resources for this container + Annotation *AnnotationParentOverride `json:"annotation,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + // +optional // List of volumes mounts that should be mounted is this container. VolumeMounts []VolumeMountParentOverride `json:"volumeMounts,omitempty" patchStrategy:"merge" patchMergeKey:"name"` @@ -440,6 +444,8 @@ type EndpointParentOverride struct { Name string `json:"name"` // +optional + // Port number to be used within the container component. The same port cannot + // be used by two different container components. TargetPort int `json:"targetPort,omitempty"` // Describes how the endpoint should be exposed on the network. @@ -499,12 +505,23 @@ type EndpointParentOverride struct { // +kubebuilder:pruning:PreserveUnknownFields // +kubebuilder:validation:Schemaless Attributes attributes.Attributes `json:"attributes,omitempty"` + + // +optional + // Annotations to be added to Kubernetes Ingress or Openshift Route + Annotations map[string]string `json:"annotation,omitempty" patchStrategy:"merge" patchMergeKey:"name"` } type K8sLikeComponentParentOverride struct { BaseComponentParentOverride `json:",inline"` K8sLikeComponentLocationParentOverride `json:",inline"` - Endpoints []EndpointParentOverride `json:"endpoints,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + + // Defines if the component should be deployed during startup. + // + // Default value is `false` + // +optional + DeployByDefault *bool `json:"deployByDefault,omitempty"` + + Endpoints []EndpointParentOverride `json:"endpoints,omitempty" patchStrategy:"merge" patchMergeKey:"name"` } // Volume that should be mounted to a component container @@ -536,6 +553,14 @@ type ImportReferenceParentOverride struct { // it is recommended to always specify the `registryUrl` when `id` is used. // +optional RegistryUrl string `json:"registryUrl,omitempty"` + + // Specific stack/sample version to pull the parent devfile from, when using id in the parent reference. + // To specify `version`, `id` must be defined and used as the import reference source. + // `version` can be either a specific stack version, or `latest`. + // If no `version` specified, default version will be used. + // +optional + // +kubebuilder:validation:Pattern=^(latest)|(([1-9])\.([0-9]+)\.([0-9]+)(\-[0-9a-z-]+(\.[0-9a-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?)$ + Version string `json:"version,omitempty"` } type PluginOverridesParentOverride struct { @@ -589,6 +614,18 @@ type EnvVarParentOverride struct { Value string `json:"value,omitempty" yaml:"value"` } +// Annotation specifies the annotations to be added to specific resources +type AnnotationParentOverride struct { + + // +optional + // Annotations to be added to deployment + Deployment map[string]string `json:"deployment,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + + // +optional + // Annotations to be added to service + Service map[string]string `json:"service,omitempty" patchStrategy:"merge" patchMergeKey:"name"` +} + // Volume that should be mounted to a component container type VolumeMountParentOverride struct { @@ -637,7 +674,7 @@ type K8sLikeComponentLocationParentOverride struct { // +union type ImageUnionParentOverride struct { - // +kubebuilder:validation:Enum=Dockerfile + // +kubebuilder:validation:Enum=Dockerfile;AutoBuild // Type of image // // +unionDiscriminator @@ -647,6 +684,12 @@ type ImageUnionParentOverride struct { // Allows specifying dockerfile type build // +optional Dockerfile *DockerfileImageParentOverride `json:"dockerfile,omitempty"` + + // Defines if the image should be built during startup. + // + // Default value is `false` + // +optional + AutoBuild *bool `json:"autoBuild,omitempty"` } // Location from where the an import reference is retrieved @@ -824,7 +867,7 @@ type CommandUnionPluginOverrideParentOverride struct { // // When no `apply` command exist for a given component, // it is assumed the component will be applied at devworkspace start - // by default. + // by default, unless `deployByDefault` for that component is set to false. // +optional Apply *ApplyCommandPluginOverrideParentOverride `json:"apply,omitempty"` @@ -874,7 +917,7 @@ type DockerfileSrcParentOverride struct { type DockerfileParentOverride struct { - // Path of source directory to establish build context. Defaults to ${PROJECT_ROOT} in the container + // Path of source directory to establish build context. Defaults to ${PROJECT_SOURCE} in the container // +optional BuildContext string `json:"buildContext,omitempty"` @@ -1046,6 +1089,10 @@ type ContainerPluginOverrideParentOverride struct { // - `$PROJECT_SOURCE` Env []EnvVarPluginOverrideParentOverride `json:"env,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + // +optional + // Annotations that should be added to specific resources for this container + Annotation *AnnotationPluginOverrideParentOverride `json:"annotation,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + // +optional // List of volumes mounts that should be mounted is this container. VolumeMounts []VolumeMountPluginOverrideParentOverride `json:"volumeMounts,omitempty" patchStrategy:"merge" patchMergeKey:"name"` @@ -1102,6 +1149,8 @@ type EndpointPluginOverrideParentOverride struct { Name string `json:"name"` // +optional + // Port number to be used within the container component. The same port cannot + // be used by two different container components. TargetPort int `json:"targetPort,omitempty"` // Describes how the endpoint should be exposed on the network. @@ -1161,12 +1210,23 @@ type EndpointPluginOverrideParentOverride struct { // +kubebuilder:pruning:PreserveUnknownFields // +kubebuilder:validation:Schemaless Attributes attributes.Attributes `json:"attributes,omitempty"` + + // +optional + // Annotations to be added to Kubernetes Ingress or Openshift Route + Annotations map[string]string `json:"annotation,omitempty" patchStrategy:"merge" patchMergeKey:"name"` } type K8sLikeComponentPluginOverrideParentOverride struct { BaseComponentPluginOverrideParentOverride `json:",inline"` K8sLikeComponentLocationPluginOverrideParentOverride `json:",inline"` - Endpoints []EndpointPluginOverrideParentOverride `json:"endpoints,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + + // Defines if the component should be deployed during startup. + // + // Default value is `false` + // +optional + DeployByDefault *bool `json:"deployByDefault,omitempty"` + + Endpoints []EndpointPluginOverrideParentOverride `json:"endpoints,omitempty" patchStrategy:"merge" patchMergeKey:"name"` } // Volume that should be mounted to a component container @@ -1206,6 +1266,18 @@ type EnvVarPluginOverrideParentOverride struct { Value string `json:"value,omitempty" yaml:"value"` } +// Annotation specifies the annotations to be added to specific resources +type AnnotationPluginOverrideParentOverride struct { + + // +optional + // Annotations to be added to deployment + Deployment map[string]string `json:"deployment,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + + // +optional + // Annotations to be added to service + Service map[string]string `json:"service,omitempty" patchStrategy:"merge" patchMergeKey:"name"` +} + // Volume that should be mounted to a component container type VolumeMountPluginOverrideParentOverride struct { @@ -1254,7 +1326,7 @@ type K8sLikeComponentLocationPluginOverrideParentOverride struct { // +union type ImageUnionPluginOverrideParentOverride struct { - // +kubebuilder:validation:Enum=Dockerfile + // +kubebuilder:validation:Enum=Dockerfile;AutoBuild // Type of image // // +unionDiscriminator @@ -1264,6 +1336,12 @@ type ImageUnionPluginOverrideParentOverride struct { // Allows specifying dockerfile type build // +optional Dockerfile *DockerfileImagePluginOverrideParentOverride `json:"dockerfile,omitempty"` + + // Defines if the image should be built during startup. + // + // Default value is `false` + // +optional + AutoBuild *bool `json:"autoBuild,omitempty"` } type BaseCommandPluginOverrideParentOverride struct { @@ -1329,7 +1407,7 @@ type DockerfileSrcPluginOverrideParentOverride struct { type DockerfilePluginOverrideParentOverride struct { - // Path of source directory to establish build context. Defaults to ${PROJECT_ROOT} in the container + // Path of source directory to establish build context. Defaults to ${PROJECT_SOURCE} in the container // +optional BuildContext string `json:"buildContext,omitempty"` diff --git a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/zz_generated.plugin_overrides.go b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/zz_generated.plugin_overrides.go index 93ccf8102..65056ab92 100644 --- a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/zz_generated.plugin_overrides.go +++ b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/zz_generated.plugin_overrides.go @@ -123,7 +123,7 @@ type CommandUnionPluginOverride struct { // // When no `apply` command exist for a given component, // it is assumed the component will be applied at devworkspace start - // by default. + // by default, unless `deployByDefault` for that component is set to false. // +optional Apply *ApplyCommandPluginOverride `json:"apply,omitempty"` @@ -254,6 +254,10 @@ type ContainerPluginOverride struct { // - `$PROJECT_SOURCE` Env []EnvVarPluginOverride `json:"env,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + // +optional + // Annotations that should be added to specific resources for this container + Annotation *AnnotationPluginOverride `json:"annotation,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + // +optional // List of volumes mounts that should be mounted is this container. VolumeMounts []VolumeMountPluginOverride `json:"volumeMounts,omitempty" patchStrategy:"merge" patchMergeKey:"name"` @@ -310,6 +314,8 @@ type EndpointPluginOverride struct { Name string `json:"name"` // +optional + // Port number to be used within the container component. The same port cannot + // be used by two different container components. TargetPort int `json:"targetPort,omitempty"` // Describes how the endpoint should be exposed on the network. @@ -369,12 +375,23 @@ type EndpointPluginOverride struct { // +kubebuilder:pruning:PreserveUnknownFields // +kubebuilder:validation:Schemaless Attributes attributes.Attributes `json:"attributes,omitempty"` + + // +optional + // Annotations to be added to Kubernetes Ingress or Openshift Route + Annotations map[string]string `json:"annotation,omitempty" patchStrategy:"merge" patchMergeKey:"name"` } type K8sLikeComponentPluginOverride struct { BaseComponentPluginOverride `json:",inline"` K8sLikeComponentLocationPluginOverride `json:",inline"` - Endpoints []EndpointPluginOverride `json:"endpoints,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + + // Defines if the component should be deployed during startup. + // + // Default value is `false` + // +optional + DeployByDefault *bool `json:"deployByDefault,omitempty"` + + Endpoints []EndpointPluginOverride `json:"endpoints,omitempty" patchStrategy:"merge" patchMergeKey:"name"` } // Volume that should be mounted to a component container @@ -413,6 +430,18 @@ type EnvVarPluginOverride struct { Value string `json:"value,omitempty" yaml:"value"` } +// Annotation specifies the annotations to be added to specific resources +type AnnotationPluginOverride struct { + + // +optional + // Annotations to be added to deployment + Deployment map[string]string `json:"deployment,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + + // +optional + // Annotations to be added to service + Service map[string]string `json:"service,omitempty" patchStrategy:"merge" patchMergeKey:"name"` +} + // Volume that should be mounted to a component container type VolumeMountPluginOverride struct { @@ -461,7 +490,7 @@ type K8sLikeComponentLocationPluginOverride struct { // +union type ImageUnionPluginOverride struct { - // +kubebuilder:validation:Enum=Dockerfile + // +kubebuilder:validation:Enum=Dockerfile;AutoBuild // Type of image // // +unionDiscriminator @@ -471,6 +500,12 @@ type ImageUnionPluginOverride struct { // Allows specifying dockerfile type build // +optional Dockerfile *DockerfileImagePluginOverride `json:"dockerfile,omitempty"` + + // Defines if the image should be built during startup. + // + // Default value is `false` + // +optional + AutoBuild *bool `json:"autoBuild,omitempty"` } type BaseCommandPluginOverride struct { @@ -536,7 +571,7 @@ type DockerfileSrcPluginOverride struct { type DockerfilePluginOverride struct { - // Path of source directory to establish build context. Defaults to ${PROJECT_ROOT} in the container + // Path of source directory to establish build context. Defaults to ${PROJECT_SOURCE} in the container // +optional BuildContext string `json:"buildContext,omitempty"` diff --git a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/zz_generated.union_definitions.go b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/zz_generated.union_definitions.go index 3efd841ae..417d47e12 100644 --- a/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/zz_generated.union_definitions.go +++ b/vendor/github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2/zz_generated.union_definitions.go @@ -45,6 +45,7 @@ func (union *ImageUnion) Simplify() { // +k8s:deepcopy-gen=false type ImageUnionVisitor struct { Dockerfile func(*DockerfileImage) error + AutoBuild func(*bool) error } var dockerfileSrc reflect.Type = reflect.TypeOf(DockerfileSrcVisitor{}) @@ -267,6 +268,7 @@ func (union *ImageUnionParentOverride) Simplify() { // +k8s:deepcopy-gen=false type ImageUnionParentOverrideVisitor struct { Dockerfile func(*DockerfileImageParentOverride) error + AutoBuild func(*bool) error } var importReferenceUnionParentOverride reflect.Type = reflect.TypeOf(ImportReferenceUnionParentOverrideVisitor{}) @@ -398,6 +400,7 @@ func (union *ImageUnionPluginOverrideParentOverride) Simplify() { // +k8s:deepcopy-gen=false type ImageUnionPluginOverrideParentOverrideVisitor struct { Dockerfile func(*DockerfileImagePluginOverrideParentOverride) error + AutoBuild func(*bool) error } var dockerfileSrcPluginOverrideParentOverride reflect.Type = reflect.TypeOf(DockerfileSrcPluginOverrideParentOverrideVisitor{}) @@ -507,6 +510,7 @@ func (union *ImageUnionPluginOverride) Simplify() { // +k8s:deepcopy-gen=false type ImageUnionPluginOverrideVisitor struct { Dockerfile func(*DockerfileImagePluginOverride) error + AutoBuild func(*bool) error } var dockerfileSrcPluginOverride reflect.Type = reflect.TypeOf(DockerfileSrcPluginOverrideVisitor{}) diff --git a/vendor/github.com/devfile/devworkspace-operator/pkg/constants/attributes.go b/vendor/github.com/devfile/devworkspace-operator/pkg/constants/attributes.go index c3c54d4d6..9ce5f65fe 100644 --- a/vendor/github.com/devfile/devworkspace-operator/pkg/constants/attributes.go +++ b/vendor/github.com/devfile/devworkspace-operator/pkg/constants/attributes.go @@ -27,6 +27,10 @@ const ( // stopped. DevWorkspaceStorageTypeAttribute = "controller.devfile.io/storage-type" + // RuntimeClassNameAttribute is an attribute added to a DevWorkspace to specify a runtimeClassName for container + // components in the DevWorkspace (pod.spec.runtimeClassName). If empty, no runtimeClassName is added. + RuntimeClassNameAttribute = "controller.devfile.io/runtime-class" + // WorkspaceEnvAttribute is an attribute that specifies a set of environment variables provided by a component // that should be added to all workspace containers. The structure of the attribute value should be a list of // Devfile 2.0 EnvVar, e.g. diff --git a/vendor/github.com/devfile/devworkspace-operator/pkg/constants/metadata.go b/vendor/github.com/devfile/devworkspace-operator/pkg/constants/metadata.go index e36d0c903..4e99b4bba 100644 --- a/vendor/github.com/devfile/devworkspace-operator/pkg/constants/metadata.go +++ b/vendor/github.com/devfile/devworkspace-operator/pkg/constants/metadata.go @@ -75,6 +75,15 @@ const ( // If mountAs is not provided, the default behaviour will be to mount as a file. DevWorkspaceMountAsAnnotation = "controller.devfile.io/mount-as" + // DevWorkspaceMountAsEnv is the annotation value for DevWorkspaceMountAsAnnotation to mount the resource as environment variables + // via envFrom + DevWorkspaceMountAsEnv = "env" + // DevWorkspaceMountAsFile is the annotation value for DevWorkspaceMountAsAnnotation to mount the resource as files + DevWorkspaceMountAsFile = "file" + // DevWorkspaceMountAsSubpath is the annotation value for DevWorkspaceMountAsAnnotation to mount the resource as files using subpath + // mounts + DevWorkspaceMountAsSubpath = "subpath" + // DevWorkspaceMountReadyOnlyAnnotation is an annotation to configure whether a mounted volume is as read-write or // as read-only. If "true", the volume is mounted as read-only. PersistentVolumeClaims are by default mounted // read-write. Automounted configmaps and secrets are always mounted read-only and this annotation is ignored. diff --git a/vendor/github.com/devfile/devworkspace-operator/pkg/provision/sync/sync.go b/vendor/github.com/devfile/devworkspace-operator/pkg/provision/sync/sync.go index d67c87e3c..94aeb1791 100644 --- a/vendor/github.com/devfile/devworkspace-operator/pkg/provision/sync/sync.go +++ b/vendor/github.com/devfile/devworkspace-operator/pkg/provision/sync/sync.go @@ -136,6 +136,8 @@ func printDiff(specObj, clusterObj crclient.Object, log logr.Logger) { diffOpts = deploymentDiffOpts case *corev1.ConfigMap: diffOpts = configmapDiffOpts + case *corev1.Secret: + diffOpts = secretDiffOpts case *v1alpha1.DevWorkspaceRouting: diffOpts = routingDiffOpts case *networkingv1.Ingress: diff --git a/vendor/modules.txt b/vendor/modules.txt index a9b064322..35fc5cb66 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -30,12 +30,12 @@ github.com/cespare/xxhash/v2 github.com/che-incubator/kubernetes-image-puller-operator/api/v1alpha1 # github.com/davecgh/go-spew v1.1.1 => github.com/davecgh/go-spew v1.1.1 github.com/davecgh/go-spew/spew -# github.com/devfile/api/v2 v2.0.0-20210917193329-089a48011460 +# github.com/devfile/api/v2 v2.0.0-20220414122024-32cae1f8e42c ## explicit github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2 github.com/devfile/api/v2/pkg/attributes github.com/devfile/api/v2/pkg/devfile -# github.com/devfile/devworkspace-operator v0.13.0 +# github.com/devfile/devworkspace-operator v0.14.1 ## explicit github.com/devfile/devworkspace-operator/apis/controller/v1alpha1 github.com/devfile/devworkspace-operator/controllers/controller/devworkspacerouting