diff --git a/chart/kubeapps/README.md b/chart/kubeapps/README.md index e7ed4e218c8..fcf84a30085 100644 --- a/chart/kubeapps/README.md +++ b/chart/kubeapps/README.md @@ -472,7 +472,6 @@ Once you have installed Kubeapps follow the [Getting Started Guide](https://gith | `kubeappsapis.pluginConfig.kappController.packages.v1alpha1.defaultAllowDowngrades` | Default policy for allowing applications to be downgraded to previous versions | `false` | | `kubeappsapis.pluginConfig.kappController.packages.v1alpha1.globalPackagingNamespace` | Default global packaging namespace | `kapp-controller-packaging-global` | | `kubeappsapis.pluginConfig.flux.packages.v1alpha1.defaultUpgradePolicy` | Default upgrade policy generating version constraints | `none` | -| `kubeappsapis.pluginConfig.flux.packages.v1alpha1.userManagedSecrets` | Default policy for handling repository secrets, either managed by the user or by kubeapps-apis | `false` | | `kubeappsapis.pluginConfig.flux.packages.v1alpha1.noCrossNamespaceRefs` | Enable this flag to disallow cross-namespace references, useful when running Flux on multi-tenant clusters | `false` | | `kubeappsapis.pluginConfig.resources.packages.v1alpha1.trustedNamespaces.headerName` | Optional header name for trusted namespaces | `""` | | `kubeappsapis.pluginConfig.resources.packages.v1alpha1.trustedNamespaces.headerPattern` | Optional header pattern for trusted namespaces | `""` | @@ -1054,4 +1053,4 @@ 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. \ No newline at end of file +limitations under the License. diff --git a/chart/kubeapps/values.yaml b/chart/kubeapps/values.yaml index 7c5ffd2ddda..6ca003bc8a6 100644 --- a/chart/kubeapps/values.yaml +++ b/chart/kubeapps/values.yaml @@ -1537,8 +1537,6 @@ kubeappsapis: ## @param kubeappsapis.pluginConfig.flux.packages.v1alpha1.defaultUpgradePolicy Default upgrade policy generating version constraints ## enum: [ "major", "minor", "patch", "none" ] defaultUpgradePolicy: none - ## @param kubeappsapis.pluginConfig.flux.packages.v1alpha1.userManagedSecrets Default policy for handling repository secrets, either managed by the user or by kubeapps-apis - userManagedSecrets: false ## @param kubeappsapis.pluginConfig.flux.packages.v1alpha1.noCrossNamespaceRefs Enable this flag to disallow cross-namespace references, useful when running Flux on multi-tenant clusters noCrossNamespaceRefs: false resources: diff --git a/cmd/kubeapps-apis/docs/kubeapps-apis.swagger.json b/cmd/kubeapps-apis/docs/kubeapps-apis.swagger.json index ad345d22c2c..6ffb04931c6 100644 --- a/cmd/kubeapps-apis/docs/kubeapps-apis.swagger.json +++ b/cmd/kubeapps-apis/docs/kubeapps-apis.swagger.json @@ -4437,14 +4437,6 @@ ], "default": "PACKAGE_REPOSITORY_AUTH_TYPE_UNSPECIFIED" }, - "pluginsfluxv2packagesv1alpha1SetUserManagedSecretsResponse": { - "type": "object", - "properties": { - "value": { - "type": "boolean" - } - } - }, "protobufAny": { "type": "object", "properties": { diff --git a/cmd/kubeapps-apis/gen/plugins/fluxv2/packages/v1alpha1/fluxv2.pb.go b/cmd/kubeapps-apis/gen/plugins/fluxv2/packages/v1alpha1/fluxv2.pb.go index b8b041da2d1..4d38524c249 100644 --- a/cmd/kubeapps-apis/gen/plugins/fluxv2/packages/v1alpha1/fluxv2.pb.go +++ b/cmd/kubeapps-apis/gen/plugins/fluxv2/packages/v1alpha1/fluxv2.pb.go @@ -28,100 +28,6 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -type SetUserManagedSecretsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Value bool `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` -} - -func (x *SetUserManagedSecretsRequest) Reset() { - *x = SetUserManagedSecretsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SetUserManagedSecretsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetUserManagedSecretsRequest) ProtoMessage() {} - -func (x *SetUserManagedSecretsRequest) ProtoReflect() protoreflect.Message { - mi := &file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SetUserManagedSecretsRequest.ProtoReflect.Descriptor instead. -func (*SetUserManagedSecretsRequest) Descriptor() ([]byte, []int) { - return file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_rawDescGZIP(), []int{0} -} - -func (x *SetUserManagedSecretsRequest) GetValue() bool { - if x != nil { - return x.Value - } - return false -} - -type SetUserManagedSecretsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Value bool `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` -} - -func (x *SetUserManagedSecretsResponse) Reset() { - *x = SetUserManagedSecretsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SetUserManagedSecretsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetUserManagedSecretsResponse) ProtoMessage() {} - -func (x *SetUserManagedSecretsResponse) ProtoReflect() protoreflect.Message { - mi := &file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SetUserManagedSecretsResponse.ProtoReflect.Descriptor instead. -func (*SetUserManagedSecretsResponse) Descriptor() ([]byte, []int) { - return file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_rawDescGZIP(), []int{1} -} - -func (x *SetUserManagedSecretsResponse) GetValue() bool { - if x != nil { - return x.Value - } - return false -} - // Flux PackageRepositoryCustomDetail // // Custom details for a Flux Package repository @@ -146,7 +52,7 @@ type FluxPackageRepositoryCustomDetail struct { func (x *FluxPackageRepositoryCustomDetail) Reset() { *x = FluxPackageRepositoryCustomDetail{} if protoimpl.UnsafeEnabled { - mi := &file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_msgTypes[2] + mi := &file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -159,7 +65,7 @@ func (x *FluxPackageRepositoryCustomDetail) String() string { func (*FluxPackageRepositoryCustomDetail) ProtoMessage() {} func (x *FluxPackageRepositoryCustomDetail) ProtoReflect() protoreflect.Message { - mi := &file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_msgTypes[2] + mi := &file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -172,7 +78,7 @@ func (x *FluxPackageRepositoryCustomDetail) ProtoReflect() protoreflect.Message // Deprecated: Use FluxPackageRepositoryCustomDetail.ProtoReflect.Descriptor instead. func (*FluxPackageRepositoryCustomDetail) Descriptor() ([]byte, []int) { - return file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_rawDescGZIP(), []int{2} + return file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_rawDescGZIP(), []int{0} } func (x *FluxPackageRepositoryCustomDetail) GetProvider() string { @@ -208,166 +114,101 @@ var file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_rawDesc = [] 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x34, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x35, 0x0a, - 0x1d, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x53, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3f, 0x0a, 0x21, 0x46, 0x6c, 0x75, 0x78, 0x50, 0x61, 0x63, 0x6b, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x32, 0xf0, 0x16, 0x0a, 0x15, 0x46, 0x6c, 0x75, 0x78, 0x56, 0x32, - 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0xf0, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, - 0x12, 0x48, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x3f, 0x0a, 0x21, 0x46, 0x6c, 0x75, 0x78, 0x50, + 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x32, 0xf0, 0x16, 0x0a, 0x15, 0x46, 0x6c, 0x75, + 0x78, 0x56, 0x32, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0xf0, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, - 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x49, 0x2e, 0x6b, 0x75, 0x62, + 0x69, 0x65, 0x73, 0x12, 0x48, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x75, 0x6d, + 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x49, 0x2e, + 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, + 0x12, 0x33, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x66, 0x6c, 0x75, 0x78, 0x76, + 0x32, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x70, 0x61, 0x63, + 0x6b, 0x61, 0x67, 0x65, 0x73, 0x12, 0xe7, 0x02, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x12, 0x45, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x46, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x12, 0x33, 0x2f, + 0x6b, 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xba, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xb3, 0x01, 0x12, 0xb0, 0x01, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x66, 0x6c, 0x75, 0x78, 0x76, 0x32, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, - 0x65, 0x73, 0x12, 0xe7, 0x02, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x12, 0x45, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x46, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, - 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, - 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, - 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0xba, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xb3, 0x01, 0x12, 0xb0, 0x01, 0x2f, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x66, 0x6c, 0x75, 0x78, 0x76, 0x32, 0x2f, 0x70, 0x61, 0x63, 0x6b, - 0x61, 0x67, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, - 0x63, 0x2f, 0x7b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x7d, 0x2f, 0x6e, 0x73, 0x2f, 0x7b, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, - 0x72, 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x7b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3d, 0x2a, 0x2a, 0x7d, 0x12, 0xf6, 0x02, 0x0a, - 0x1b, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x47, 0x2e, 0x6b, - 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x50, - 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x48, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, - 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0xc3, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xbc, 0x01, 0x12, 0xb9, 0x01, 0x2f, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x66, 0x6c, 0x75, 0x78, 0x76, 0x32, 0x2f, 0x70, 0x61, 0x63, 0x6b, - 0x61, 0x67, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, - 0x63, 0x2f, 0x7b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x7d, 0x2f, 0x6e, 0x73, 0x2f, 0x7b, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, - 0x72, 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x7b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3d, 0x2a, 0x2a, 0x7d, 0x2f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xf0, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, - 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x75, 0x6d, - 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x12, 0x48, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, - 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x65, 0x73, 0x2f, 0x63, 0x2f, 0x7b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x7d, 0x2f, 0x6e, 0x73, 0x2f, + 0x7b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x7b, 0x61, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x66, + 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3d, 0x2a, 0x2a, 0x7d, 0x12, + 0xf6, 0x02, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x47, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x48, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, + 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, + 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xc3, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xbc, 0x01, 0x12, 0xb9, 0x01, 0x2f, + 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x66, 0x6c, 0x75, 0x78, 0x76, 0x32, 0x2f, 0x70, + 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x73, 0x2f, 0x63, 0x2f, 0x7b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x7d, 0x2f, 0x6e, 0x73, 0x2f, + 0x7b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x7b, 0x61, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x66, + 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3d, 0x2a, 0x2a, 0x7d, 0x2f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xf0, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, - 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x49, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x12, 0x48, 0x2e, 0x6b, 0x75, 0x62, 0x65, + 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, + 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, + 0x61, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x49, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x75, 0x6d, + 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x12, 0x33, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, + 0x2f, 0x66, 0x6c, 0x75, 0x78, 0x76, 0x32, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, + 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, + 0x6c, 0x65, 0x64, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x12, 0xe4, 0x02, 0x0a, 0x19, + 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, + 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x45, 0x2e, 0x6b, 0x75, 0x62, 0x65, + 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, + 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, + 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x46, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, - 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, - 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x35, 0x12, 0x33, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x66, 0x6c, - 0x75, 0x78, 0x76, 0x32, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, - 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x12, 0xe4, 0x02, 0x0a, 0x19, 0x47, 0x65, 0x74, - 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x45, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, - 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x46, 0x2e, - 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, - 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb7, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xb0, 0x01, 0x12, - 0xad, 0x01, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x66, 0x6c, 0x75, 0x78, 0x76, - 0x32, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x70, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x63, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, - 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x7d, 0x2f, - 0x6e, 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x70, 0x61, - 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, - 0x72, 0x65, 0x66, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x7d, 0x12, - 0xe1, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, - 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x42, 0x2e, 0x6b, 0x75, 0x62, - 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, - 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, - 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, - 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, - 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x3a, 0x01, 0x2a, 0x22, 0x33, - 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x66, 0x6c, 0x75, 0x78, 0x76, 0x32, 0x2f, - 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x70, 0x61, 0x63, 0x6b, 0x61, - 0x67, 0x65, 0x73, 0x12, 0xde, 0x02, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x42, - 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, - 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xba, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xb3, - 0x01, 0x3a, 0x01, 0x2a, 0x1a, 0xad, 0x01, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2f, - 0x66, 0x6c, 0x75, 0x78, 0x76, 0x32, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, - 0x65, 0x64, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x63, 0x2f, 0x7b, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, - 0x72, 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x7d, 0x2f, 0x6e, 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, - 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x7d, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x7d, 0x12, 0xdb, 0x02, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, - 0x42, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, + 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb7, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0xb0, 0x01, 0x2a, 0xad, 0x01, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x66, 0x6c, + 0xb0, 0x01, 0x12, 0xad, 0x01, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x66, 0x6c, 0x75, 0x78, 0x76, 0x32, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x63, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, @@ -378,160 +219,207 @@ var file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_rawDesc = [] 0x74, 0x65, 0x78, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x7d, 0x12, 0x83, 0x03, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, - 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x52, 0x65, 0x66, 0x73, 0x12, 0x4b, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, + 0x72, 0x7d, 0x12, 0xe1, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x42, 0x2e, + 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, + 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x43, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x3a, 0x01, + 0x2a, 0x22, 0x33, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x66, 0x6c, 0x75, 0x78, + 0x76, 0x32, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x70, 0x61, + 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x12, 0xde, 0x02, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x12, 0x42, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xba, 0x01, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0xb3, 0x01, 0x3a, 0x01, 0x2a, 0x1a, 0xad, 0x01, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x73, 0x2f, 0x66, 0x6c, 0x75, 0x78, 0x76, 0x32, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x63, 0x2f, + 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x7d, 0x2f, 0x6e, 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, + 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x69, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x7d, 0x12, 0xdb, 0x02, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x12, 0x42, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, + 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb7, 0x01, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0xb0, 0x01, 0x2a, 0xad, 0x01, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, + 0x2f, 0x66, 0x6c, 0x75, 0x78, 0x76, 0x32, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, + 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, + 0x6c, 0x65, 0x64, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x63, 0x2f, 0x7b, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, + 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x7d, 0x2f, 0x6e, 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, + 0x6c, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x2e, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x70, 0x61, + 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x7d, 0x12, 0x83, 0x03, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x73, 0x12, 0x4b, 0x2e, 0x6b, 0x75, 0x62, 0x65, + 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, + 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x4c, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x4c, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, - 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xc4, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xbd, 0x01, 0x12, 0xba, 0x01, 0x2f, 0x70, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc4, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xbd, 0x01, 0x12, 0xba, + 0x01, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x66, 0x6c, 0x75, 0x78, 0x76, 0x32, + 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x70, 0x61, 0x63, 0x6b, + 0x61, 0x67, 0x65, 0x73, 0x2f, 0x63, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, + 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x7d, 0x2f, 0x6e, + 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, + 0x65, 0x66, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x7d, 0x2f, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x72, 0x65, 0x66, 0x73, 0x32, 0xf8, 0x0d, 0x0a, 0x19, + 0x46, 0x6c, 0x75, 0x78, 0x56, 0x32, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, + 0x65, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xd6, 0x01, 0x0a, 0x14, 0x41, 0x64, + 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, + 0x72, 0x79, 0x12, 0x40, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x61, 0x63, 0x6b, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x61, + 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, + 0x01, 0x2a, 0x22, 0x2e, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x66, 0x6c, 0x75, + 0x78, 0x76, 0x32, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, + 0x65, 0x73, 0x12, 0xd6, 0x02, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x12, 0x46, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x47, 0x2e, 0x6b, 0x75, 0x62, 0x65, + 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, + 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xa6, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x9f, 0x01, 0x12, 0x9c, 0x01, 0x2f, + 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x66, 0x6c, 0x75, 0x78, 0x76, 0x32, 0x2f, 0x70, + 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x63, 0x2f, + 0x7b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x72, 0x65, + 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x7d, 0x2f, 0x6e, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, + 0x65, 0x70, 0x6f, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x7b, 0x70, 0x61, 0x63, 0x6b, + 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3d, 0x2a, 0x2a, 0x7d, 0x12, 0xee, 0x01, 0x0a, 0x1d, + 0x47, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x12, 0x49, 0x2e, + 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x4a, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, + 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, + 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x6f, 0x72, 0x79, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x66, 0x6c, 0x75, 0x78, 0x76, 0x32, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, - 0x73, 0x2f, 0x63, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x70, - 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x7d, 0x2f, 0x6e, 0x73, 0x2f, 0x7b, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, - 0x65, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, - 0x6c, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x2e, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x72, 0x65, 0x66, 0x73, 0x32, 0xaf, 0x0f, 0x0a, 0x19, 0x46, 0x6c, 0x75, - 0x78, 0x56, 0x32, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xd6, 0x01, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x50, 0x61, - 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, - 0x40, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x41, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x01, 0x2a, 0x22, - 0x2e, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x66, 0x6c, 0x75, 0x78, 0x76, 0x32, - 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, - 0xd6, 0x02, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x46, - 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x47, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, - 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, - 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0xa6, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x9f, 0x01, 0x12, 0x9c, 0x01, 0x2f, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x66, 0x6c, 0x75, 0x78, 0x76, 0x32, 0x2f, 0x70, 0x61, 0x63, 0x6b, - 0x61, 0x67, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x72, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x63, 0x2f, 0x7b, 0x70, 0x61, - 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x7d, 0x2f, - 0x6e, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, - 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x7b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, - 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x3d, 0x2a, 0x2a, 0x7d, 0x12, 0xee, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, - 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, - 0x79, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x12, 0x49, 0x2e, 0x6b, 0x75, 0x62, - 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, - 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x4a, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, - 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, - 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, - 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x70, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x73, 0x2f, 0x66, 0x6c, 0x75, 0x78, 0x76, 0x32, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, - 0x67, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x72, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0xd0, 0x02, 0x0a, 0x17, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x43, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, - 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x44, 0x2e, 0x6b, 0x75, 0x62, - 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, - 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0xa9, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xa2, 0x01, 0x3a, 0x01, 0x2a, 0x1a, 0x9c, 0x01, - 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x66, 0x6c, 0x75, 0x78, 0x76, 0x32, 0x2f, - 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x63, - 0x2f, 0x7b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x72, - 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x7d, 0x2f, 0x6e, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, - 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x7b, 0x70, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3d, 0x2a, 0x2a, 0x7d, 0x12, 0xcd, 0x02, 0x0a, - 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0xd0, 0x02, 0x0a, + 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x43, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, + 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x44, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0xa6, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x9f, 0x01, 0x2a, 0x9c, 0x01, + 0x6e, 0x73, 0x65, 0x22, 0xa9, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xa2, 0x01, 0x3a, 0x01, 0x2a, + 0x1a, 0x9c, 0x01, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x66, 0x6c, 0x75, 0x78, + 0x76, 0x32, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, + 0x73, 0x2f, 0x63, 0x2f, 0x7b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x70, + 0x6f, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x7d, 0x2f, 0x6e, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x7b, + 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x72, 0x65, 0x66, + 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3d, 0x2a, 0x2a, 0x7d, 0x12, + 0xcd, 0x02, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x43, 0x2e, 0x6b, 0x75, + 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x44, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x63, + 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa6, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x9f, 0x01, + 0x2a, 0x9c, 0x01, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x66, 0x6c, 0x75, 0x78, + 0x76, 0x32, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, + 0x73, 0x2f, 0x63, 0x2f, 0x7b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x70, + 0x6f, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x7d, 0x2f, 0x6e, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x7b, + 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x72, 0x65, 0x66, + 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3d, 0x2a, 0x2a, 0x7d, 0x12, + 0x94, 0x02, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x4b, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x63, + 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x65, + 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x4c, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x65, 0x72, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x50, 0x12, 0x4e, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, + 0x2f, 0x66, 0x6c, 0x75, 0x78, 0x76, 0x32, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, + 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x63, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x7d, 0x2f, 0x70, 0x65, 0x72, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x59, 0x5a, 0x57, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x76, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x2d, 0x74, 0x61, 0x6e, 0x7a, + 0x75, 0x2f, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x63, 0x6d, 0x64, 0x2f, 0x6b, + 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x2d, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x66, 0x6c, 0x75, 0x78, 0x76, 0x32, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x63, - 0x2f, 0x7b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x72, - 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x7d, 0x2f, 0x6e, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, - 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x7b, 0x70, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3d, 0x2a, 0x2a, 0x7d, 0x12, 0xb4, 0x01, 0x0a, - 0x15, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x53, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x4b, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2e, 0x66, 0x6c, - 0x75, 0x78, 0x76, 0x32, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x64, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x4c, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2e, 0x66, 0x6c, 0x75, 0x78, 0x76, - 0x32, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x64, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x94, 0x02, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x65, 0x72, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4b, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, - 0x70, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, - 0x61, 0x67, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, - 0x72, 0x79, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x4c, 0x2e, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, - 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, - 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, - 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x56, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x50, 0x12, 0x4e, 0x2f, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x66, 0x6c, 0x75, 0x78, 0x76, 0x32, 0x2f, 0x70, 0x61, 0x63, 0x6b, - 0x61, 0x67, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x72, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x63, 0x2f, 0x7b, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x7d, 0x2f, 0x70, - 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x59, 0x5a, 0x57, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x76, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x2d, - 0x74, 0x61, 0x6e, 0x7a, 0x75, 0x2f, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x63, - 0x6d, 0x64, 0x2f, 0x6b, 0x75, 0x62, 0x65, 0x61, 0x70, 0x70, 0x73, 0x2d, 0x61, 0x70, 0x69, 0x73, - 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x66, 0x6c, 0x75, - 0x78, 0x76, 0x32, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -546,77 +434,73 @@ func file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_rawDescGZIP return file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_rawDescData } -var file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_goTypes = []interface{}{ - (*SetUserManagedSecretsRequest)(nil), // 0: kubeappsapis.plugins.fluxv2.packages.v1alpha1.SetUserManagedSecretsRequest - (*SetUserManagedSecretsResponse)(nil), // 1: kubeappsapis.plugins.fluxv2.packages.v1alpha1.SetUserManagedSecretsResponse - (*FluxPackageRepositoryCustomDetail)(nil), // 2: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxPackageRepositoryCustomDetail - (*v1alpha1.GetAvailablePackageSummariesRequest)(nil), // 3: kubeappsapis.core.packages.v1alpha1.GetAvailablePackageSummariesRequest - (*v1alpha1.GetAvailablePackageDetailRequest)(nil), // 4: kubeappsapis.core.packages.v1alpha1.GetAvailablePackageDetailRequest - (*v1alpha1.GetAvailablePackageVersionsRequest)(nil), // 5: kubeappsapis.core.packages.v1alpha1.GetAvailablePackageVersionsRequest - (*v1alpha1.GetInstalledPackageSummariesRequest)(nil), // 6: kubeappsapis.core.packages.v1alpha1.GetInstalledPackageSummariesRequest - (*v1alpha1.GetInstalledPackageDetailRequest)(nil), // 7: kubeappsapis.core.packages.v1alpha1.GetInstalledPackageDetailRequest - (*v1alpha1.CreateInstalledPackageRequest)(nil), // 8: kubeappsapis.core.packages.v1alpha1.CreateInstalledPackageRequest - (*v1alpha1.UpdateInstalledPackageRequest)(nil), // 9: kubeappsapis.core.packages.v1alpha1.UpdateInstalledPackageRequest - (*v1alpha1.DeleteInstalledPackageRequest)(nil), // 10: kubeappsapis.core.packages.v1alpha1.DeleteInstalledPackageRequest - (*v1alpha1.GetInstalledPackageResourceRefsRequest)(nil), // 11: kubeappsapis.core.packages.v1alpha1.GetInstalledPackageResourceRefsRequest - (*v1alpha1.AddPackageRepositoryRequest)(nil), // 12: kubeappsapis.core.packages.v1alpha1.AddPackageRepositoryRequest - (*v1alpha1.GetPackageRepositoryDetailRequest)(nil), // 13: kubeappsapis.core.packages.v1alpha1.GetPackageRepositoryDetailRequest - (*v1alpha1.GetPackageRepositorySummariesRequest)(nil), // 14: kubeappsapis.core.packages.v1alpha1.GetPackageRepositorySummariesRequest - (*v1alpha1.UpdatePackageRepositoryRequest)(nil), // 15: kubeappsapis.core.packages.v1alpha1.UpdatePackageRepositoryRequest - (*v1alpha1.DeletePackageRepositoryRequest)(nil), // 16: kubeappsapis.core.packages.v1alpha1.DeletePackageRepositoryRequest - (*v1alpha1.GetPackageRepositoryPermissionsRequest)(nil), // 17: kubeappsapis.core.packages.v1alpha1.GetPackageRepositoryPermissionsRequest - (*v1alpha1.GetAvailablePackageSummariesResponse)(nil), // 18: kubeappsapis.core.packages.v1alpha1.GetAvailablePackageSummariesResponse - (*v1alpha1.GetAvailablePackageDetailResponse)(nil), // 19: kubeappsapis.core.packages.v1alpha1.GetAvailablePackageDetailResponse - (*v1alpha1.GetAvailablePackageVersionsResponse)(nil), // 20: kubeappsapis.core.packages.v1alpha1.GetAvailablePackageVersionsResponse - (*v1alpha1.GetInstalledPackageSummariesResponse)(nil), // 21: kubeappsapis.core.packages.v1alpha1.GetInstalledPackageSummariesResponse - (*v1alpha1.GetInstalledPackageDetailResponse)(nil), // 22: kubeappsapis.core.packages.v1alpha1.GetInstalledPackageDetailResponse - (*v1alpha1.CreateInstalledPackageResponse)(nil), // 23: kubeappsapis.core.packages.v1alpha1.CreateInstalledPackageResponse - (*v1alpha1.UpdateInstalledPackageResponse)(nil), // 24: kubeappsapis.core.packages.v1alpha1.UpdateInstalledPackageResponse - (*v1alpha1.DeleteInstalledPackageResponse)(nil), // 25: kubeappsapis.core.packages.v1alpha1.DeleteInstalledPackageResponse - (*v1alpha1.GetInstalledPackageResourceRefsResponse)(nil), // 26: kubeappsapis.core.packages.v1alpha1.GetInstalledPackageResourceRefsResponse - (*v1alpha1.AddPackageRepositoryResponse)(nil), // 27: kubeappsapis.core.packages.v1alpha1.AddPackageRepositoryResponse - (*v1alpha1.GetPackageRepositoryDetailResponse)(nil), // 28: kubeappsapis.core.packages.v1alpha1.GetPackageRepositoryDetailResponse - (*v1alpha1.GetPackageRepositorySummariesResponse)(nil), // 29: kubeappsapis.core.packages.v1alpha1.GetPackageRepositorySummariesResponse - (*v1alpha1.UpdatePackageRepositoryResponse)(nil), // 30: kubeappsapis.core.packages.v1alpha1.UpdatePackageRepositoryResponse - (*v1alpha1.DeletePackageRepositoryResponse)(nil), // 31: kubeappsapis.core.packages.v1alpha1.DeletePackageRepositoryResponse - (*v1alpha1.GetPackageRepositoryPermissionsResponse)(nil), // 32: kubeappsapis.core.packages.v1alpha1.GetPackageRepositoryPermissionsResponse + (*FluxPackageRepositoryCustomDetail)(nil), // 0: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxPackageRepositoryCustomDetail + (*v1alpha1.GetAvailablePackageSummariesRequest)(nil), // 1: kubeappsapis.core.packages.v1alpha1.GetAvailablePackageSummariesRequest + (*v1alpha1.GetAvailablePackageDetailRequest)(nil), // 2: kubeappsapis.core.packages.v1alpha1.GetAvailablePackageDetailRequest + (*v1alpha1.GetAvailablePackageVersionsRequest)(nil), // 3: kubeappsapis.core.packages.v1alpha1.GetAvailablePackageVersionsRequest + (*v1alpha1.GetInstalledPackageSummariesRequest)(nil), // 4: kubeappsapis.core.packages.v1alpha1.GetInstalledPackageSummariesRequest + (*v1alpha1.GetInstalledPackageDetailRequest)(nil), // 5: kubeappsapis.core.packages.v1alpha1.GetInstalledPackageDetailRequest + (*v1alpha1.CreateInstalledPackageRequest)(nil), // 6: kubeappsapis.core.packages.v1alpha1.CreateInstalledPackageRequest + (*v1alpha1.UpdateInstalledPackageRequest)(nil), // 7: kubeappsapis.core.packages.v1alpha1.UpdateInstalledPackageRequest + (*v1alpha1.DeleteInstalledPackageRequest)(nil), // 8: kubeappsapis.core.packages.v1alpha1.DeleteInstalledPackageRequest + (*v1alpha1.GetInstalledPackageResourceRefsRequest)(nil), // 9: kubeappsapis.core.packages.v1alpha1.GetInstalledPackageResourceRefsRequest + (*v1alpha1.AddPackageRepositoryRequest)(nil), // 10: kubeappsapis.core.packages.v1alpha1.AddPackageRepositoryRequest + (*v1alpha1.GetPackageRepositoryDetailRequest)(nil), // 11: kubeappsapis.core.packages.v1alpha1.GetPackageRepositoryDetailRequest + (*v1alpha1.GetPackageRepositorySummariesRequest)(nil), // 12: kubeappsapis.core.packages.v1alpha1.GetPackageRepositorySummariesRequest + (*v1alpha1.UpdatePackageRepositoryRequest)(nil), // 13: kubeappsapis.core.packages.v1alpha1.UpdatePackageRepositoryRequest + (*v1alpha1.DeletePackageRepositoryRequest)(nil), // 14: kubeappsapis.core.packages.v1alpha1.DeletePackageRepositoryRequest + (*v1alpha1.GetPackageRepositoryPermissionsRequest)(nil), // 15: kubeappsapis.core.packages.v1alpha1.GetPackageRepositoryPermissionsRequest + (*v1alpha1.GetAvailablePackageSummariesResponse)(nil), // 16: kubeappsapis.core.packages.v1alpha1.GetAvailablePackageSummariesResponse + (*v1alpha1.GetAvailablePackageDetailResponse)(nil), // 17: kubeappsapis.core.packages.v1alpha1.GetAvailablePackageDetailResponse + (*v1alpha1.GetAvailablePackageVersionsResponse)(nil), // 18: kubeappsapis.core.packages.v1alpha1.GetAvailablePackageVersionsResponse + (*v1alpha1.GetInstalledPackageSummariesResponse)(nil), // 19: kubeappsapis.core.packages.v1alpha1.GetInstalledPackageSummariesResponse + (*v1alpha1.GetInstalledPackageDetailResponse)(nil), // 20: kubeappsapis.core.packages.v1alpha1.GetInstalledPackageDetailResponse + (*v1alpha1.CreateInstalledPackageResponse)(nil), // 21: kubeappsapis.core.packages.v1alpha1.CreateInstalledPackageResponse + (*v1alpha1.UpdateInstalledPackageResponse)(nil), // 22: kubeappsapis.core.packages.v1alpha1.UpdateInstalledPackageResponse + (*v1alpha1.DeleteInstalledPackageResponse)(nil), // 23: kubeappsapis.core.packages.v1alpha1.DeleteInstalledPackageResponse + (*v1alpha1.GetInstalledPackageResourceRefsResponse)(nil), // 24: kubeappsapis.core.packages.v1alpha1.GetInstalledPackageResourceRefsResponse + (*v1alpha1.AddPackageRepositoryResponse)(nil), // 25: kubeappsapis.core.packages.v1alpha1.AddPackageRepositoryResponse + (*v1alpha1.GetPackageRepositoryDetailResponse)(nil), // 26: kubeappsapis.core.packages.v1alpha1.GetPackageRepositoryDetailResponse + (*v1alpha1.GetPackageRepositorySummariesResponse)(nil), // 27: kubeappsapis.core.packages.v1alpha1.GetPackageRepositorySummariesResponse + (*v1alpha1.UpdatePackageRepositoryResponse)(nil), // 28: kubeappsapis.core.packages.v1alpha1.UpdatePackageRepositoryResponse + (*v1alpha1.DeletePackageRepositoryResponse)(nil), // 29: kubeappsapis.core.packages.v1alpha1.DeletePackageRepositoryResponse + (*v1alpha1.GetPackageRepositoryPermissionsResponse)(nil), // 30: kubeappsapis.core.packages.v1alpha1.GetPackageRepositoryPermissionsResponse } var file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_depIdxs = []int32{ - 3, // 0: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.GetAvailablePackageSummaries:input_type -> kubeappsapis.core.packages.v1alpha1.GetAvailablePackageSummariesRequest - 4, // 1: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.GetAvailablePackageDetail:input_type -> kubeappsapis.core.packages.v1alpha1.GetAvailablePackageDetailRequest - 5, // 2: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.GetAvailablePackageVersions:input_type -> kubeappsapis.core.packages.v1alpha1.GetAvailablePackageVersionsRequest - 6, // 3: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.GetInstalledPackageSummaries:input_type -> kubeappsapis.core.packages.v1alpha1.GetInstalledPackageSummariesRequest - 7, // 4: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.GetInstalledPackageDetail:input_type -> kubeappsapis.core.packages.v1alpha1.GetInstalledPackageDetailRequest - 8, // 5: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.CreateInstalledPackage:input_type -> kubeappsapis.core.packages.v1alpha1.CreateInstalledPackageRequest - 9, // 6: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.UpdateInstalledPackage:input_type -> kubeappsapis.core.packages.v1alpha1.UpdateInstalledPackageRequest - 10, // 7: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.DeleteInstalledPackage:input_type -> kubeappsapis.core.packages.v1alpha1.DeleteInstalledPackageRequest - 11, // 8: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.GetInstalledPackageResourceRefs:input_type -> kubeappsapis.core.packages.v1alpha1.GetInstalledPackageResourceRefsRequest - 12, // 9: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.AddPackageRepository:input_type -> kubeappsapis.core.packages.v1alpha1.AddPackageRepositoryRequest - 13, // 10: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.GetPackageRepositoryDetail:input_type -> kubeappsapis.core.packages.v1alpha1.GetPackageRepositoryDetailRequest - 14, // 11: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.GetPackageRepositorySummaries:input_type -> kubeappsapis.core.packages.v1alpha1.GetPackageRepositorySummariesRequest - 15, // 12: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.UpdatePackageRepository:input_type -> kubeappsapis.core.packages.v1alpha1.UpdatePackageRepositoryRequest - 16, // 13: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.DeletePackageRepository:input_type -> kubeappsapis.core.packages.v1alpha1.DeletePackageRepositoryRequest - 0, // 14: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.SetUserManagedSecrets:input_type -> kubeappsapis.plugins.fluxv2.packages.v1alpha1.SetUserManagedSecretsRequest - 17, // 15: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.GetPackageRepositoryPermissions:input_type -> kubeappsapis.core.packages.v1alpha1.GetPackageRepositoryPermissionsRequest - 18, // 16: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.GetAvailablePackageSummaries:output_type -> kubeappsapis.core.packages.v1alpha1.GetAvailablePackageSummariesResponse - 19, // 17: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.GetAvailablePackageDetail:output_type -> kubeappsapis.core.packages.v1alpha1.GetAvailablePackageDetailResponse - 20, // 18: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.GetAvailablePackageVersions:output_type -> kubeappsapis.core.packages.v1alpha1.GetAvailablePackageVersionsResponse - 21, // 19: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.GetInstalledPackageSummaries:output_type -> kubeappsapis.core.packages.v1alpha1.GetInstalledPackageSummariesResponse - 22, // 20: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.GetInstalledPackageDetail:output_type -> kubeappsapis.core.packages.v1alpha1.GetInstalledPackageDetailResponse - 23, // 21: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.CreateInstalledPackage:output_type -> kubeappsapis.core.packages.v1alpha1.CreateInstalledPackageResponse - 24, // 22: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.UpdateInstalledPackage:output_type -> kubeappsapis.core.packages.v1alpha1.UpdateInstalledPackageResponse - 25, // 23: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.DeleteInstalledPackage:output_type -> kubeappsapis.core.packages.v1alpha1.DeleteInstalledPackageResponse - 26, // 24: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.GetInstalledPackageResourceRefs:output_type -> kubeappsapis.core.packages.v1alpha1.GetInstalledPackageResourceRefsResponse - 27, // 25: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.AddPackageRepository:output_type -> kubeappsapis.core.packages.v1alpha1.AddPackageRepositoryResponse - 28, // 26: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.GetPackageRepositoryDetail:output_type -> kubeappsapis.core.packages.v1alpha1.GetPackageRepositoryDetailResponse - 29, // 27: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.GetPackageRepositorySummaries:output_type -> kubeappsapis.core.packages.v1alpha1.GetPackageRepositorySummariesResponse - 30, // 28: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.UpdatePackageRepository:output_type -> kubeappsapis.core.packages.v1alpha1.UpdatePackageRepositoryResponse - 31, // 29: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.DeletePackageRepository:output_type -> kubeappsapis.core.packages.v1alpha1.DeletePackageRepositoryResponse - 1, // 30: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.SetUserManagedSecrets:output_type -> kubeappsapis.plugins.fluxv2.packages.v1alpha1.SetUserManagedSecretsResponse - 32, // 31: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.GetPackageRepositoryPermissions:output_type -> kubeappsapis.core.packages.v1alpha1.GetPackageRepositoryPermissionsResponse - 16, // [16:32] is the sub-list for method output_type - 0, // [0:16] is the sub-list for method input_type + 1, // 0: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.GetAvailablePackageSummaries:input_type -> kubeappsapis.core.packages.v1alpha1.GetAvailablePackageSummariesRequest + 2, // 1: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.GetAvailablePackageDetail:input_type -> kubeappsapis.core.packages.v1alpha1.GetAvailablePackageDetailRequest + 3, // 2: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.GetAvailablePackageVersions:input_type -> kubeappsapis.core.packages.v1alpha1.GetAvailablePackageVersionsRequest + 4, // 3: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.GetInstalledPackageSummaries:input_type -> kubeappsapis.core.packages.v1alpha1.GetInstalledPackageSummariesRequest + 5, // 4: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.GetInstalledPackageDetail:input_type -> kubeappsapis.core.packages.v1alpha1.GetInstalledPackageDetailRequest + 6, // 5: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.CreateInstalledPackage:input_type -> kubeappsapis.core.packages.v1alpha1.CreateInstalledPackageRequest + 7, // 6: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.UpdateInstalledPackage:input_type -> kubeappsapis.core.packages.v1alpha1.UpdateInstalledPackageRequest + 8, // 7: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.DeleteInstalledPackage:input_type -> kubeappsapis.core.packages.v1alpha1.DeleteInstalledPackageRequest + 9, // 8: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.GetInstalledPackageResourceRefs:input_type -> kubeappsapis.core.packages.v1alpha1.GetInstalledPackageResourceRefsRequest + 10, // 9: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.AddPackageRepository:input_type -> kubeappsapis.core.packages.v1alpha1.AddPackageRepositoryRequest + 11, // 10: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.GetPackageRepositoryDetail:input_type -> kubeappsapis.core.packages.v1alpha1.GetPackageRepositoryDetailRequest + 12, // 11: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.GetPackageRepositorySummaries:input_type -> kubeappsapis.core.packages.v1alpha1.GetPackageRepositorySummariesRequest + 13, // 12: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.UpdatePackageRepository:input_type -> kubeappsapis.core.packages.v1alpha1.UpdatePackageRepositoryRequest + 14, // 13: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.DeletePackageRepository:input_type -> kubeappsapis.core.packages.v1alpha1.DeletePackageRepositoryRequest + 15, // 14: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.GetPackageRepositoryPermissions:input_type -> kubeappsapis.core.packages.v1alpha1.GetPackageRepositoryPermissionsRequest + 16, // 15: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.GetAvailablePackageSummaries:output_type -> kubeappsapis.core.packages.v1alpha1.GetAvailablePackageSummariesResponse + 17, // 16: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.GetAvailablePackageDetail:output_type -> kubeappsapis.core.packages.v1alpha1.GetAvailablePackageDetailResponse + 18, // 17: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.GetAvailablePackageVersions:output_type -> kubeappsapis.core.packages.v1alpha1.GetAvailablePackageVersionsResponse + 19, // 18: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.GetInstalledPackageSummaries:output_type -> kubeappsapis.core.packages.v1alpha1.GetInstalledPackageSummariesResponse + 20, // 19: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.GetInstalledPackageDetail:output_type -> kubeappsapis.core.packages.v1alpha1.GetInstalledPackageDetailResponse + 21, // 20: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.CreateInstalledPackage:output_type -> kubeappsapis.core.packages.v1alpha1.CreateInstalledPackageResponse + 22, // 21: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.UpdateInstalledPackage:output_type -> kubeappsapis.core.packages.v1alpha1.UpdateInstalledPackageResponse + 23, // 22: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.DeleteInstalledPackage:output_type -> kubeappsapis.core.packages.v1alpha1.DeleteInstalledPackageResponse + 24, // 23: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService.GetInstalledPackageResourceRefs:output_type -> kubeappsapis.core.packages.v1alpha1.GetInstalledPackageResourceRefsResponse + 25, // 24: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.AddPackageRepository:output_type -> kubeappsapis.core.packages.v1alpha1.AddPackageRepositoryResponse + 26, // 25: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.GetPackageRepositoryDetail:output_type -> kubeappsapis.core.packages.v1alpha1.GetPackageRepositoryDetailResponse + 27, // 26: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.GetPackageRepositorySummaries:output_type -> kubeappsapis.core.packages.v1alpha1.GetPackageRepositorySummariesResponse + 28, // 27: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.UpdatePackageRepository:output_type -> kubeappsapis.core.packages.v1alpha1.UpdatePackageRepositoryResponse + 29, // 28: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.DeletePackageRepository:output_type -> kubeappsapis.core.packages.v1alpha1.DeletePackageRepositoryResponse + 30, // 29: kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService.GetPackageRepositoryPermissions:output_type -> kubeappsapis.core.packages.v1alpha1.GetPackageRepositoryPermissionsResponse + 15, // [15:30] is the sub-list for method output_type + 0, // [0:15] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name @@ -629,30 +513,6 @@ func file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_init() { } if !protoimpl.UnsafeEnabled { file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetUserManagedSecretsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetUserManagedSecretsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FluxPackageRepositoryCustomDetail); i { case 0: return &v.state @@ -671,7 +531,7 @@ func file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_kubeappsapis_plugins_fluxv2_packages_v1alpha1_fluxv2_proto_rawDesc, NumEnums: 0, - NumMessages: 3, + NumMessages: 1, NumExtensions: 0, NumServices: 2, }, diff --git a/cmd/kubeapps-apis/gen/plugins/fluxv2/packages/v1alpha1/fluxv2.pb.gw.go b/cmd/kubeapps-apis/gen/plugins/fluxv2/packages/v1alpha1/fluxv2.pb.gw.go index 86b317a5055..295eaab909d 100644 --- a/cmd/kubeapps-apis/gen/plugins/fluxv2/packages/v1alpha1/fluxv2.pb.gw.go +++ b/cmd/kubeapps-apis/gen/plugins/fluxv2/packages/v1alpha1/fluxv2.pb.gw.go @@ -15,7 +15,7 @@ import ( "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - "github.com/vmware-tanzu/kubeapps/cmd/kubeapps-apis/gen/core/packages/v1alpha1" + v1alpha1_1 "github.com/vmware-tanzu/kubeapps/cmd/kubeapps-apis/gen/core/packages/v1alpha1" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" @@ -37,7 +37,7 @@ var ( ) func request_FluxV2PackagesService_GetAvailablePackageSummaries_0(ctx context.Context, marshaler runtime.Marshaler, client FluxV2PackagesServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.GetAvailablePackageSummariesRequest + var protoReq v1alpha1_1.GetAvailablePackageSummariesRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -53,7 +53,7 @@ func request_FluxV2PackagesService_GetAvailablePackageSummaries_0(ctx context.Co } func local_request_FluxV2PackagesService_GetAvailablePackageSummaries_0(ctx context.Context, marshaler runtime.Marshaler, server FluxV2PackagesServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.GetAvailablePackageSummariesRequest + var protoReq v1alpha1_1.GetAvailablePackageSummariesRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -73,7 +73,7 @@ var ( ) func request_FluxV2PackagesService_GetAvailablePackageDetail_0(ctx context.Context, marshaler runtime.Marshaler, client FluxV2PackagesServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.GetAvailablePackageDetailRequest + var protoReq v1alpha1_1.GetAvailablePackageDetailRequest var metadata runtime.ServerMetadata var ( @@ -126,7 +126,7 @@ func request_FluxV2PackagesService_GetAvailablePackageDetail_0(ctx context.Conte } func local_request_FluxV2PackagesService_GetAvailablePackageDetail_0(ctx context.Context, marshaler runtime.Marshaler, server FluxV2PackagesServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.GetAvailablePackageDetailRequest + var protoReq v1alpha1_1.GetAvailablePackageDetailRequest var metadata runtime.ServerMetadata var ( @@ -183,7 +183,7 @@ var ( ) func request_FluxV2PackagesService_GetAvailablePackageVersions_0(ctx context.Context, marshaler runtime.Marshaler, client FluxV2PackagesServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.GetAvailablePackageVersionsRequest + var protoReq v1alpha1_1.GetAvailablePackageVersionsRequest var metadata runtime.ServerMetadata var ( @@ -236,7 +236,7 @@ func request_FluxV2PackagesService_GetAvailablePackageVersions_0(ctx context.Con } func local_request_FluxV2PackagesService_GetAvailablePackageVersions_0(ctx context.Context, marshaler runtime.Marshaler, server FluxV2PackagesServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.GetAvailablePackageVersionsRequest + var protoReq v1alpha1_1.GetAvailablePackageVersionsRequest var metadata runtime.ServerMetadata var ( @@ -293,7 +293,7 @@ var ( ) func request_FluxV2PackagesService_GetInstalledPackageSummaries_0(ctx context.Context, marshaler runtime.Marshaler, client FluxV2PackagesServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.GetInstalledPackageSummariesRequest + var protoReq v1alpha1_1.GetInstalledPackageSummariesRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -309,7 +309,7 @@ func request_FluxV2PackagesService_GetInstalledPackageSummaries_0(ctx context.Co } func local_request_FluxV2PackagesService_GetInstalledPackageSummaries_0(ctx context.Context, marshaler runtime.Marshaler, server FluxV2PackagesServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.GetInstalledPackageSummariesRequest + var protoReq v1alpha1_1.GetInstalledPackageSummariesRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -329,7 +329,7 @@ var ( ) func request_FluxV2PackagesService_GetInstalledPackageDetail_0(ctx context.Context, marshaler runtime.Marshaler, client FluxV2PackagesServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.GetInstalledPackageDetailRequest + var protoReq v1alpha1_1.GetInstalledPackageDetailRequest var metadata runtime.ServerMetadata var ( @@ -382,7 +382,7 @@ func request_FluxV2PackagesService_GetInstalledPackageDetail_0(ctx context.Conte } func local_request_FluxV2PackagesService_GetInstalledPackageDetail_0(ctx context.Context, marshaler runtime.Marshaler, server FluxV2PackagesServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.GetInstalledPackageDetailRequest + var protoReq v1alpha1_1.GetInstalledPackageDetailRequest var metadata runtime.ServerMetadata var ( @@ -435,7 +435,7 @@ func local_request_FluxV2PackagesService_GetInstalledPackageDetail_0(ctx context } func request_FluxV2PackagesService_CreateInstalledPackage_0(ctx context.Context, marshaler runtime.Marshaler, client FluxV2PackagesServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.CreateInstalledPackageRequest + var protoReq v1alpha1_1.CreateInstalledPackageRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -452,7 +452,7 @@ func request_FluxV2PackagesService_CreateInstalledPackage_0(ctx context.Context, } func local_request_FluxV2PackagesService_CreateInstalledPackage_0(ctx context.Context, marshaler runtime.Marshaler, server FluxV2PackagesServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.CreateInstalledPackageRequest + var protoReq v1alpha1_1.CreateInstalledPackageRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -469,7 +469,7 @@ func local_request_FluxV2PackagesService_CreateInstalledPackage_0(ctx context.Co } func request_FluxV2PackagesService_UpdateInstalledPackage_0(ctx context.Context, marshaler runtime.Marshaler, client FluxV2PackagesServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.UpdateInstalledPackageRequest + var protoReq v1alpha1_1.UpdateInstalledPackageRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -523,7 +523,7 @@ func request_FluxV2PackagesService_UpdateInstalledPackage_0(ctx context.Context, } func local_request_FluxV2PackagesService_UpdateInstalledPackage_0(ctx context.Context, marshaler runtime.Marshaler, server FluxV2PackagesServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.UpdateInstalledPackageRequest + var protoReq v1alpha1_1.UpdateInstalledPackageRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -581,7 +581,7 @@ var ( ) func request_FluxV2PackagesService_DeleteInstalledPackage_0(ctx context.Context, marshaler runtime.Marshaler, client FluxV2PackagesServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.DeleteInstalledPackageRequest + var protoReq v1alpha1_1.DeleteInstalledPackageRequest var metadata runtime.ServerMetadata var ( @@ -634,7 +634,7 @@ func request_FluxV2PackagesService_DeleteInstalledPackage_0(ctx context.Context, } func local_request_FluxV2PackagesService_DeleteInstalledPackage_0(ctx context.Context, marshaler runtime.Marshaler, server FluxV2PackagesServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.DeleteInstalledPackageRequest + var protoReq v1alpha1_1.DeleteInstalledPackageRequest var metadata runtime.ServerMetadata var ( @@ -691,7 +691,7 @@ var ( ) func request_FluxV2PackagesService_GetInstalledPackageResourceRefs_0(ctx context.Context, marshaler runtime.Marshaler, client FluxV2PackagesServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.GetInstalledPackageResourceRefsRequest + var protoReq v1alpha1_1.GetInstalledPackageResourceRefsRequest var metadata runtime.ServerMetadata var ( @@ -744,7 +744,7 @@ func request_FluxV2PackagesService_GetInstalledPackageResourceRefs_0(ctx context } func local_request_FluxV2PackagesService_GetInstalledPackageResourceRefs_0(ctx context.Context, marshaler runtime.Marshaler, server FluxV2PackagesServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.GetInstalledPackageResourceRefsRequest + var protoReq v1alpha1_1.GetInstalledPackageResourceRefsRequest var metadata runtime.ServerMetadata var ( @@ -797,7 +797,7 @@ func local_request_FluxV2PackagesService_GetInstalledPackageResourceRefs_0(ctx c } func request_FluxV2RepositoriesService_AddPackageRepository_0(ctx context.Context, marshaler runtime.Marshaler, client FluxV2RepositoriesServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.AddPackageRepositoryRequest + var protoReq v1alpha1_1.AddPackageRepositoryRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -814,7 +814,7 @@ func request_FluxV2RepositoriesService_AddPackageRepository_0(ctx context.Contex } func local_request_FluxV2RepositoriesService_AddPackageRepository_0(ctx context.Context, marshaler runtime.Marshaler, server FluxV2RepositoriesServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.AddPackageRepositoryRequest + var protoReq v1alpha1_1.AddPackageRepositoryRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -835,7 +835,7 @@ var ( ) func request_FluxV2RepositoriesService_GetPackageRepositoryDetail_0(ctx context.Context, marshaler runtime.Marshaler, client FluxV2RepositoriesServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.GetPackageRepositoryDetailRequest + var protoReq v1alpha1_1.GetPackageRepositoryDetailRequest var metadata runtime.ServerMetadata var ( @@ -888,7 +888,7 @@ func request_FluxV2RepositoriesService_GetPackageRepositoryDetail_0(ctx context. } func local_request_FluxV2RepositoriesService_GetPackageRepositoryDetail_0(ctx context.Context, marshaler runtime.Marshaler, server FluxV2RepositoriesServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.GetPackageRepositoryDetailRequest + var protoReq v1alpha1_1.GetPackageRepositoryDetailRequest var metadata runtime.ServerMetadata var ( @@ -945,7 +945,7 @@ var ( ) func request_FluxV2RepositoriesService_GetPackageRepositorySummaries_0(ctx context.Context, marshaler runtime.Marshaler, client FluxV2RepositoriesServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.GetPackageRepositorySummariesRequest + var protoReq v1alpha1_1.GetPackageRepositorySummariesRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -961,7 +961,7 @@ func request_FluxV2RepositoriesService_GetPackageRepositorySummaries_0(ctx conte } func local_request_FluxV2RepositoriesService_GetPackageRepositorySummaries_0(ctx context.Context, marshaler runtime.Marshaler, server FluxV2RepositoriesServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.GetPackageRepositorySummariesRequest + var protoReq v1alpha1_1.GetPackageRepositorySummariesRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -977,7 +977,7 @@ func local_request_FluxV2RepositoriesService_GetPackageRepositorySummaries_0(ctx } func request_FluxV2RepositoriesService_UpdatePackageRepository_0(ctx context.Context, marshaler runtime.Marshaler, client FluxV2RepositoriesServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.UpdatePackageRepositoryRequest + var protoReq v1alpha1_1.UpdatePackageRepositoryRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -1031,7 +1031,7 @@ func request_FluxV2RepositoriesService_UpdatePackageRepository_0(ctx context.Con } func local_request_FluxV2RepositoriesService_UpdatePackageRepository_0(ctx context.Context, marshaler runtime.Marshaler, server FluxV2RepositoriesServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.UpdatePackageRepositoryRequest + var protoReq v1alpha1_1.UpdatePackageRepositoryRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -1089,7 +1089,7 @@ var ( ) func request_FluxV2RepositoriesService_DeletePackageRepository_0(ctx context.Context, marshaler runtime.Marshaler, client FluxV2RepositoriesServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.DeletePackageRepositoryRequest + var protoReq v1alpha1_1.DeletePackageRepositoryRequest var metadata runtime.ServerMetadata var ( @@ -1142,7 +1142,7 @@ func request_FluxV2RepositoriesService_DeletePackageRepository_0(ctx context.Con } func local_request_FluxV2RepositoriesService_DeletePackageRepository_0(ctx context.Context, marshaler runtime.Marshaler, server FluxV2RepositoriesServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.DeletePackageRepositoryRequest + var protoReq v1alpha1_1.DeletePackageRepositoryRequest var metadata runtime.ServerMetadata var ( @@ -1199,7 +1199,7 @@ var ( ) func request_FluxV2RepositoriesService_GetPackageRepositoryPermissions_0(ctx context.Context, marshaler runtime.Marshaler, client FluxV2RepositoriesServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.GetPackageRepositoryPermissionsRequest + var protoReq v1alpha1_1.GetPackageRepositoryPermissionsRequest var metadata runtime.ServerMetadata var ( @@ -1232,7 +1232,7 @@ func request_FluxV2RepositoriesService_GetPackageRepositoryPermissions_0(ctx con } func local_request_FluxV2RepositoriesService_GetPackageRepositoryPermissions_0(ctx context.Context, marshaler runtime.Marshaler, server FluxV2RepositoriesServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1alpha1.GetPackageRepositoryPermissionsRequest + var protoReq v1alpha1_1.GetPackageRepositoryPermissionsRequest var metadata runtime.ServerMetadata var ( @@ -1276,22 +1276,20 @@ func RegisterFluxV2PackagesServiceHandlerServer(ctx context.Context, mux *runtim var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/GetAvailablePackageSummaries", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/availablepackages")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/GetAvailablePackageSummaries", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/availablepackages")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_FluxV2PackagesService_GetAvailablePackageSummaries_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_FluxV2PackagesService_GetAvailablePackageSummaries_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2PackagesService_GetAvailablePackageSummaries_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2PackagesService_GetAvailablePackageSummaries_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1301,22 +1299,20 @@ func RegisterFluxV2PackagesServiceHandlerServer(ctx context.Context, mux *runtim var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/GetAvailablePackageDetail", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/availablepackages/c/{available_package_ref.context.cluster}/ns/{available_package_ref.context.namespace}/{available_package_ref.identifier=**}")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/GetAvailablePackageDetail", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/availablepackages/c/{available_package_ref.context.cluster}/ns/{available_package_ref.context.namespace}/{available_package_ref.identifier=**}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_FluxV2PackagesService_GetAvailablePackageDetail_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_FluxV2PackagesService_GetAvailablePackageDetail_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2PackagesService_GetAvailablePackageDetail_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2PackagesService_GetAvailablePackageDetail_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1326,22 +1322,20 @@ func RegisterFluxV2PackagesServiceHandlerServer(ctx context.Context, mux *runtim var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/GetAvailablePackageVersions", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/availablepackages/c/{available_package_ref.context.cluster}/ns/{available_package_ref.context.namespace}/{available_package_ref.identifier=**}/versions")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/GetAvailablePackageVersions", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/availablepackages/c/{available_package_ref.context.cluster}/ns/{available_package_ref.context.namespace}/{available_package_ref.identifier=**}/versions")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_FluxV2PackagesService_GetAvailablePackageVersions_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_FluxV2PackagesService_GetAvailablePackageVersions_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2PackagesService_GetAvailablePackageVersions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2PackagesService_GetAvailablePackageVersions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1351,22 +1345,20 @@ func RegisterFluxV2PackagesServiceHandlerServer(ctx context.Context, mux *runtim var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/GetInstalledPackageSummaries", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/installedpackages")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/GetInstalledPackageSummaries", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/installedpackages")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_FluxV2PackagesService_GetInstalledPackageSummaries_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_FluxV2PackagesService_GetInstalledPackageSummaries_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2PackagesService_GetInstalledPackageSummaries_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2PackagesService_GetInstalledPackageSummaries_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1376,22 +1368,20 @@ func RegisterFluxV2PackagesServiceHandlerServer(ctx context.Context, mux *runtim var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/GetInstalledPackageDetail", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/installedpackages/c/{installed_package_ref.context.cluster}/ns/{installed_package_ref.context.namespace}/{installed_package_ref.identifier}")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/GetInstalledPackageDetail", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/installedpackages/c/{installed_package_ref.context.cluster}/ns/{installed_package_ref.context.namespace}/{installed_package_ref.identifier}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_FluxV2PackagesService_GetInstalledPackageDetail_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_FluxV2PackagesService_GetInstalledPackageDetail_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2PackagesService_GetInstalledPackageDetail_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2PackagesService_GetInstalledPackageDetail_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1401,22 +1391,20 @@ func RegisterFluxV2PackagesServiceHandlerServer(ctx context.Context, mux *runtim var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/CreateInstalledPackage", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/installedpackages")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/CreateInstalledPackage", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/installedpackages")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_FluxV2PackagesService_CreateInstalledPackage_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_FluxV2PackagesService_CreateInstalledPackage_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2PackagesService_CreateInstalledPackage_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2PackagesService_CreateInstalledPackage_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1426,22 +1414,20 @@ func RegisterFluxV2PackagesServiceHandlerServer(ctx context.Context, mux *runtim var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/UpdateInstalledPackage", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/installedpackages/c/{installed_package_ref.context.cluster}/ns/{installed_package_ref.context.namespace}/{installed_package_ref.identifier}")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/UpdateInstalledPackage", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/installedpackages/c/{installed_package_ref.context.cluster}/ns/{installed_package_ref.context.namespace}/{installed_package_ref.identifier}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_FluxV2PackagesService_UpdateInstalledPackage_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_FluxV2PackagesService_UpdateInstalledPackage_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2PackagesService_UpdateInstalledPackage_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2PackagesService_UpdateInstalledPackage_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1451,22 +1437,20 @@ func RegisterFluxV2PackagesServiceHandlerServer(ctx context.Context, mux *runtim var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/DeleteInstalledPackage", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/installedpackages/c/{installed_package_ref.context.cluster}/ns/{installed_package_ref.context.namespace}/{installed_package_ref.identifier}")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/DeleteInstalledPackage", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/installedpackages/c/{installed_package_ref.context.cluster}/ns/{installed_package_ref.context.namespace}/{installed_package_ref.identifier}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_FluxV2PackagesService_DeleteInstalledPackage_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_FluxV2PackagesService_DeleteInstalledPackage_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2PackagesService_DeleteInstalledPackage_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2PackagesService_DeleteInstalledPackage_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1476,22 +1460,20 @@ func RegisterFluxV2PackagesServiceHandlerServer(ctx context.Context, mux *runtim var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/GetInstalledPackageResourceRefs", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/installedpackages/c/{installed_package_ref.context.cluster}/ns/{installed_package_ref.context.namespace}/{installed_package_ref.identifier}/resourcerefs")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/GetInstalledPackageResourceRefs", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/installedpackages/c/{installed_package_ref.context.cluster}/ns/{installed_package_ref.context.namespace}/{installed_package_ref.identifier}/resourcerefs")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_FluxV2PackagesService_GetInstalledPackageResourceRefs_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_FluxV2PackagesService_GetInstalledPackageResourceRefs_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2PackagesService_GetInstalledPackageResourceRefs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2PackagesService_GetInstalledPackageResourceRefs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1510,22 +1492,20 @@ func RegisterFluxV2RepositoriesServiceHandlerServer(ctx context.Context, mux *ru var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/AddPackageRepository", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/repositories")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/AddPackageRepository", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/repositories")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_FluxV2RepositoriesService_AddPackageRepository_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_FluxV2RepositoriesService_AddPackageRepository_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2RepositoriesService_AddPackageRepository_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2RepositoriesService_AddPackageRepository_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1535,22 +1515,20 @@ func RegisterFluxV2RepositoriesServiceHandlerServer(ctx context.Context, mux *ru var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/GetPackageRepositoryDetail", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/repositories/c/{package_repo_ref.context.cluster}/ns/{package_repo_ref.context.namespace}/{package_repo_ref.identifier=**}")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/GetPackageRepositoryDetail", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/repositories/c/{package_repo_ref.context.cluster}/ns/{package_repo_ref.context.namespace}/{package_repo_ref.identifier=**}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_FluxV2RepositoriesService_GetPackageRepositoryDetail_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_FluxV2RepositoriesService_GetPackageRepositoryDetail_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2RepositoriesService_GetPackageRepositoryDetail_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2RepositoriesService_GetPackageRepositoryDetail_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1560,22 +1538,20 @@ func RegisterFluxV2RepositoriesServiceHandlerServer(ctx context.Context, mux *ru var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/GetPackageRepositorySummaries", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/repositories")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/GetPackageRepositorySummaries", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/repositories")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_FluxV2RepositoriesService_GetPackageRepositorySummaries_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_FluxV2RepositoriesService_GetPackageRepositorySummaries_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2RepositoriesService_GetPackageRepositorySummaries_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2RepositoriesService_GetPackageRepositorySummaries_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1585,22 +1561,20 @@ func RegisterFluxV2RepositoriesServiceHandlerServer(ctx context.Context, mux *ru var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/UpdatePackageRepository", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/repositories/c/{package_repo_ref.context.cluster}/ns/{package_repo_ref.context.namespace}/{package_repo_ref.identifier=**}")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/UpdatePackageRepository", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/repositories/c/{package_repo_ref.context.cluster}/ns/{package_repo_ref.context.namespace}/{package_repo_ref.identifier=**}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_FluxV2RepositoriesService_UpdatePackageRepository_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_FluxV2RepositoriesService_UpdatePackageRepository_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2RepositoriesService_UpdatePackageRepository_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2RepositoriesService_UpdatePackageRepository_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1610,22 +1584,20 @@ func RegisterFluxV2RepositoriesServiceHandlerServer(ctx context.Context, mux *ru var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/DeletePackageRepository", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/repositories/c/{package_repo_ref.context.cluster}/ns/{package_repo_ref.context.namespace}/{package_repo_ref.identifier=**}")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/DeletePackageRepository", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/repositories/c/{package_repo_ref.context.cluster}/ns/{package_repo_ref.context.namespace}/{package_repo_ref.identifier=**}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_FluxV2RepositoriesService_DeletePackageRepository_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_FluxV2RepositoriesService_DeletePackageRepository_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2RepositoriesService_DeletePackageRepository_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2RepositoriesService_DeletePackageRepository_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1635,22 +1607,20 @@ func RegisterFluxV2RepositoriesServiceHandlerServer(ctx context.Context, mux *ru var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/GetPackageRepositoryPermissions", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/repositories/c/{context.cluster}/permissions")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/GetPackageRepositoryPermissions", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/repositories/c/{context.cluster}/permissions")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_FluxV2RepositoriesService_GetPackageRepositoryPermissions_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_FluxV2RepositoriesService_GetPackageRepositoryPermissions_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2RepositoriesService_GetPackageRepositoryPermissions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2RepositoriesService_GetPackageRepositoryPermissions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1699,21 +1669,19 @@ func RegisterFluxV2PackagesServiceHandlerClient(ctx context.Context, mux *runtim ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/GetAvailablePackageSummaries", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/availablepackages")) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/GetAvailablePackageSummaries", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/availablepackages")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_FluxV2PackagesService_GetAvailablePackageSummaries_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + resp, md, err := request_FluxV2PackagesService_GetAvailablePackageSummaries_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2PackagesService_GetAvailablePackageSummaries_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2PackagesService_GetAvailablePackageSummaries_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1721,21 +1689,19 @@ func RegisterFluxV2PackagesServiceHandlerClient(ctx context.Context, mux *runtim ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/GetAvailablePackageDetail", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/availablepackages/c/{available_package_ref.context.cluster}/ns/{available_package_ref.context.namespace}/{available_package_ref.identifier=**}")) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/GetAvailablePackageDetail", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/availablepackages/c/{available_package_ref.context.cluster}/ns/{available_package_ref.context.namespace}/{available_package_ref.identifier=**}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_FluxV2PackagesService_GetAvailablePackageDetail_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + resp, md, err := request_FluxV2PackagesService_GetAvailablePackageDetail_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2PackagesService_GetAvailablePackageDetail_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2PackagesService_GetAvailablePackageDetail_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1743,21 +1709,19 @@ func RegisterFluxV2PackagesServiceHandlerClient(ctx context.Context, mux *runtim ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/GetAvailablePackageVersions", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/availablepackages/c/{available_package_ref.context.cluster}/ns/{available_package_ref.context.namespace}/{available_package_ref.identifier=**}/versions")) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/GetAvailablePackageVersions", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/availablepackages/c/{available_package_ref.context.cluster}/ns/{available_package_ref.context.namespace}/{available_package_ref.identifier=**}/versions")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_FluxV2PackagesService_GetAvailablePackageVersions_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + resp, md, err := request_FluxV2PackagesService_GetAvailablePackageVersions_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2PackagesService_GetAvailablePackageVersions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2PackagesService_GetAvailablePackageVersions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1765,21 +1729,19 @@ func RegisterFluxV2PackagesServiceHandlerClient(ctx context.Context, mux *runtim ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/GetInstalledPackageSummaries", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/installedpackages")) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/GetInstalledPackageSummaries", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/installedpackages")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_FluxV2PackagesService_GetInstalledPackageSummaries_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + resp, md, err := request_FluxV2PackagesService_GetInstalledPackageSummaries_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2PackagesService_GetInstalledPackageSummaries_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2PackagesService_GetInstalledPackageSummaries_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1787,21 +1749,19 @@ func RegisterFluxV2PackagesServiceHandlerClient(ctx context.Context, mux *runtim ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/GetInstalledPackageDetail", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/installedpackages/c/{installed_package_ref.context.cluster}/ns/{installed_package_ref.context.namespace}/{installed_package_ref.identifier}")) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/GetInstalledPackageDetail", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/installedpackages/c/{installed_package_ref.context.cluster}/ns/{installed_package_ref.context.namespace}/{installed_package_ref.identifier}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_FluxV2PackagesService_GetInstalledPackageDetail_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + resp, md, err := request_FluxV2PackagesService_GetInstalledPackageDetail_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2PackagesService_GetInstalledPackageDetail_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2PackagesService_GetInstalledPackageDetail_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1809,21 +1769,19 @@ func RegisterFluxV2PackagesServiceHandlerClient(ctx context.Context, mux *runtim ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/CreateInstalledPackage", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/installedpackages")) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/CreateInstalledPackage", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/installedpackages")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_FluxV2PackagesService_CreateInstalledPackage_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + resp, md, err := request_FluxV2PackagesService_CreateInstalledPackage_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2PackagesService_CreateInstalledPackage_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2PackagesService_CreateInstalledPackage_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1831,21 +1789,19 @@ func RegisterFluxV2PackagesServiceHandlerClient(ctx context.Context, mux *runtim ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/UpdateInstalledPackage", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/installedpackages/c/{installed_package_ref.context.cluster}/ns/{installed_package_ref.context.namespace}/{installed_package_ref.identifier}")) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/UpdateInstalledPackage", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/installedpackages/c/{installed_package_ref.context.cluster}/ns/{installed_package_ref.context.namespace}/{installed_package_ref.identifier}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_FluxV2PackagesService_UpdateInstalledPackage_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + resp, md, err := request_FluxV2PackagesService_UpdateInstalledPackage_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2PackagesService_UpdateInstalledPackage_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2PackagesService_UpdateInstalledPackage_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1853,21 +1809,19 @@ func RegisterFluxV2PackagesServiceHandlerClient(ctx context.Context, mux *runtim ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/DeleteInstalledPackage", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/installedpackages/c/{installed_package_ref.context.cluster}/ns/{installed_package_ref.context.namespace}/{installed_package_ref.identifier}")) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/DeleteInstalledPackage", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/installedpackages/c/{installed_package_ref.context.cluster}/ns/{installed_package_ref.context.namespace}/{installed_package_ref.identifier}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_FluxV2PackagesService_DeleteInstalledPackage_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + resp, md, err := request_FluxV2PackagesService_DeleteInstalledPackage_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2PackagesService_DeleteInstalledPackage_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2PackagesService_DeleteInstalledPackage_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1875,21 +1829,19 @@ func RegisterFluxV2PackagesServiceHandlerClient(ctx context.Context, mux *runtim ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/GetInstalledPackageResourceRefs", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/installedpackages/c/{installed_package_ref.context.cluster}/ns/{installed_package_ref.context.namespace}/{installed_package_ref.identifier}/resourcerefs")) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2PackagesService/GetInstalledPackageResourceRefs", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/installedpackages/c/{installed_package_ref.context.cluster}/ns/{installed_package_ref.context.namespace}/{installed_package_ref.identifier}/resourcerefs")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_FluxV2PackagesService_GetInstalledPackageResourceRefs_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + resp, md, err := request_FluxV2PackagesService_GetInstalledPackageResourceRefs_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2PackagesService_GetInstalledPackageResourceRefs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2PackagesService_GetInstalledPackageResourceRefs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1978,21 +1930,19 @@ func RegisterFluxV2RepositoriesServiceHandlerClient(ctx context.Context, mux *ru ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/AddPackageRepository", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/repositories")) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/AddPackageRepository", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/repositories")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_FluxV2RepositoriesService_AddPackageRepository_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + resp, md, err := request_FluxV2RepositoriesService_AddPackageRepository_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2RepositoriesService_AddPackageRepository_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2RepositoriesService_AddPackageRepository_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2000,21 +1950,19 @@ func RegisterFluxV2RepositoriesServiceHandlerClient(ctx context.Context, mux *ru ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/GetPackageRepositoryDetail", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/repositories/c/{package_repo_ref.context.cluster}/ns/{package_repo_ref.context.namespace}/{package_repo_ref.identifier=**}")) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/GetPackageRepositoryDetail", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/repositories/c/{package_repo_ref.context.cluster}/ns/{package_repo_ref.context.namespace}/{package_repo_ref.identifier=**}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_FluxV2RepositoriesService_GetPackageRepositoryDetail_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + resp, md, err := request_FluxV2RepositoriesService_GetPackageRepositoryDetail_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2RepositoriesService_GetPackageRepositoryDetail_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2RepositoriesService_GetPackageRepositoryDetail_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2022,21 +1970,19 @@ func RegisterFluxV2RepositoriesServiceHandlerClient(ctx context.Context, mux *ru ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/GetPackageRepositorySummaries", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/repositories")) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/GetPackageRepositorySummaries", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/repositories")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_FluxV2RepositoriesService_GetPackageRepositorySummaries_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + resp, md, err := request_FluxV2RepositoriesService_GetPackageRepositorySummaries_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2RepositoriesService_GetPackageRepositorySummaries_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2RepositoriesService_GetPackageRepositorySummaries_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2044,21 +1990,19 @@ func RegisterFluxV2RepositoriesServiceHandlerClient(ctx context.Context, mux *ru ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/UpdatePackageRepository", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/repositories/c/{package_repo_ref.context.cluster}/ns/{package_repo_ref.context.namespace}/{package_repo_ref.identifier=**}")) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/UpdatePackageRepository", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/repositories/c/{package_repo_ref.context.cluster}/ns/{package_repo_ref.context.namespace}/{package_repo_ref.identifier=**}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_FluxV2RepositoriesService_UpdatePackageRepository_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + resp, md, err := request_FluxV2RepositoriesService_UpdatePackageRepository_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2RepositoriesService_UpdatePackageRepository_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2RepositoriesService_UpdatePackageRepository_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2066,21 +2010,19 @@ func RegisterFluxV2RepositoriesServiceHandlerClient(ctx context.Context, mux *ru ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/DeletePackageRepository", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/repositories/c/{package_repo_ref.context.cluster}/ns/{package_repo_ref.context.namespace}/{package_repo_ref.identifier=**}")) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/DeletePackageRepository", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/repositories/c/{package_repo_ref.context.cluster}/ns/{package_repo_ref.context.namespace}/{package_repo_ref.identifier=**}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_FluxV2RepositoriesService_DeletePackageRepository_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + resp, md, err := request_FluxV2RepositoriesService_DeletePackageRepository_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2RepositoriesService_DeletePackageRepository_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2RepositoriesService_DeletePackageRepository_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2088,21 +2030,19 @@ func RegisterFluxV2RepositoriesServiceHandlerClient(ctx context.Context, mux *ru ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/GetPackageRepositoryPermissions", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/repositories/c/{context.cluster}/permissions")) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/GetPackageRepositoryPermissions", runtime.WithHTTPPathPattern("/plugins/fluxv2/packages/v1alpha1/repositories/c/{context.cluster}/permissions")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_FluxV2RepositoriesService_GetPackageRepositoryPermissions_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + resp, md, err := request_FluxV2RepositoriesService_GetPackageRepositoryPermissions_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FluxV2RepositoriesService_GetPackageRepositoryPermissions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FluxV2RepositoriesService_GetPackageRepositoryPermissions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) diff --git a/cmd/kubeapps-apis/gen/plugins/fluxv2/packages/v1alpha1/fluxv2_grpc.pb.go b/cmd/kubeapps-apis/gen/plugins/fluxv2/packages/v1alpha1/fluxv2_grpc.pb.go index e9df377d1f0..3828b3a8a4e 100644 --- a/cmd/kubeapps-apis/gen/plugins/fluxv2/packages/v1alpha1/fluxv2_grpc.pb.go +++ b/cmd/kubeapps-apis/gen/plugins/fluxv2/packages/v1alpha1/fluxv2_grpc.pb.go @@ -422,8 +422,6 @@ type FluxV2RepositoriesServiceClient interface { GetPackageRepositorySummaries(ctx context.Context, in *v1alpha1.GetPackageRepositorySummariesRequest, opts ...grpc.CallOption) (*v1alpha1.GetPackageRepositorySummariesResponse, error) UpdatePackageRepository(ctx context.Context, in *v1alpha1.UpdatePackageRepositoryRequest, opts ...grpc.CallOption) (*v1alpha1.UpdatePackageRepositoryResponse, error) DeletePackageRepository(ctx context.Context, in *v1alpha1.DeletePackageRepositoryRequest, opts ...grpc.CallOption) (*v1alpha1.DeletePackageRepositoryResponse, error) - // this endpoint only exists for the purpose of integration tests - SetUserManagedSecrets(ctx context.Context, in *SetUserManagedSecretsRequest, opts ...grpc.CallOption) (*SetUserManagedSecretsResponse, error) GetPackageRepositoryPermissions(ctx context.Context, in *v1alpha1.GetPackageRepositoryPermissionsRequest, opts ...grpc.CallOption) (*v1alpha1.GetPackageRepositoryPermissionsResponse, error) } @@ -480,15 +478,6 @@ func (c *fluxV2RepositoriesServiceClient) DeletePackageRepository(ctx context.Co return out, nil } -func (c *fluxV2RepositoriesServiceClient) SetUserManagedSecrets(ctx context.Context, in *SetUserManagedSecretsRequest, opts ...grpc.CallOption) (*SetUserManagedSecretsResponse, error) { - out := new(SetUserManagedSecretsResponse) - err := c.cc.Invoke(ctx, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/SetUserManagedSecrets", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *fluxV2RepositoriesServiceClient) GetPackageRepositoryPermissions(ctx context.Context, in *v1alpha1.GetPackageRepositoryPermissionsRequest, opts ...grpc.CallOption) (*v1alpha1.GetPackageRepositoryPermissionsResponse, error) { out := new(v1alpha1.GetPackageRepositoryPermissionsResponse) err := c.cc.Invoke(ctx, "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/GetPackageRepositoryPermissions", in, out, opts...) @@ -509,8 +498,6 @@ type FluxV2RepositoriesServiceServer interface { GetPackageRepositorySummaries(context.Context, *v1alpha1.GetPackageRepositorySummariesRequest) (*v1alpha1.GetPackageRepositorySummariesResponse, error) UpdatePackageRepository(context.Context, *v1alpha1.UpdatePackageRepositoryRequest) (*v1alpha1.UpdatePackageRepositoryResponse, error) DeletePackageRepository(context.Context, *v1alpha1.DeletePackageRepositoryRequest) (*v1alpha1.DeletePackageRepositoryResponse, error) - // this endpoint only exists for the purpose of integration tests - SetUserManagedSecrets(context.Context, *SetUserManagedSecretsRequest) (*SetUserManagedSecretsResponse, error) GetPackageRepositoryPermissions(context.Context, *v1alpha1.GetPackageRepositoryPermissionsRequest) (*v1alpha1.GetPackageRepositoryPermissionsResponse, error) } @@ -533,9 +520,6 @@ func (UnimplementedFluxV2RepositoriesServiceServer) UpdatePackageRepository(cont func (UnimplementedFluxV2RepositoriesServiceServer) DeletePackageRepository(context.Context, *v1alpha1.DeletePackageRepositoryRequest) (*v1alpha1.DeletePackageRepositoryResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method DeletePackageRepository not implemented") } -func (UnimplementedFluxV2RepositoriesServiceServer) SetUserManagedSecrets(context.Context, *SetUserManagedSecretsRequest) (*SetUserManagedSecretsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method SetUserManagedSecrets not implemented") -} func (UnimplementedFluxV2RepositoriesServiceServer) GetPackageRepositoryPermissions(context.Context, *v1alpha1.GetPackageRepositoryPermissionsRequest) (*v1alpha1.GetPackageRepositoryPermissionsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetPackageRepositoryPermissions not implemented") } @@ -641,24 +625,6 @@ func _FluxV2RepositoriesService_DeletePackageRepository_Handler(srv interface{}, return interceptor(ctx, in, info, handler) } -func _FluxV2RepositoriesService_SetUserManagedSecrets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SetUserManagedSecretsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(FluxV2RepositoriesServiceServer).SetUserManagedSecrets(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/kubeappsapis.plugins.fluxv2.packages.v1alpha1.FluxV2RepositoriesService/SetUserManagedSecrets", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FluxV2RepositoriesServiceServer).SetUserManagedSecrets(ctx, req.(*SetUserManagedSecretsRequest)) - } - return interceptor(ctx, in, info, handler) -} - func _FluxV2RepositoriesService_GetPackageRepositoryPermissions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(v1alpha1.GetPackageRepositoryPermissionsRequest) if err := dec(in); err != nil { @@ -704,10 +670,6 @@ var FluxV2RepositoriesService_ServiceDesc = grpc.ServiceDesc{ MethodName: "DeletePackageRepository", Handler: _FluxV2RepositoriesService_DeletePackageRepository_Handler, }, - { - MethodName: "SetUserManagedSecrets", - Handler: _FluxV2RepositoriesService_SetUserManagedSecrets_Handler, - }, { MethodName: "GetPackageRepositoryPermissions", Handler: _FluxV2RepositoriesService_GetPackageRepositoryPermissions_Handler, diff --git a/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/chart_integration_test.go b/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/chart_integration_test.go index 293ed076e4c..aabebe8a4bd 100644 --- a/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/chart_integration_test.go +++ b/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/chart_integration_test.go @@ -782,8 +782,6 @@ func testKindClusterAvailablePackageEndpointsForOCIHelper( } } - setUserManagedSecretsAndCleanup(t, fluxPluginReposClient, true) - if err := kubeAddHelmRepositoryAndCleanup( t, repoName, "oci", tc.registryUrl, secretName, 0); err != nil { t.Fatal(err) @@ -925,7 +923,7 @@ func testKindClusterAvailablePackageEndpointsForOCIHelper( } func TestKindClusterAvailablePackageEndpointsOCIRepo2Charts(t *testing.T) { - fluxPluginClient, fluxPluginReposClient, err := checkEnv(t) + fluxPluginClient, _, err := checkEnv(t) if err != nil { t.Fatal(err) } @@ -966,8 +964,6 @@ func TestKindClusterAvailablePackageEndpointsOCIRepo2Charts(t *testing.T) { } } - setUserManagedSecretsAndCleanup(t, fluxPluginReposClient, true) - if err := kubeAddHelmRepositoryAndCleanup( t, repoName, "oci", tc.registryUrl, secretName, 0); err != nil { t.Fatal(err) diff --git a/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/common/utils.go b/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/common/utils.go index a70084d5e9a..fe10bc8782e 100644 --- a/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/common/utils.go +++ b/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/common/utils.go @@ -34,7 +34,6 @@ import ( "google.golang.org/grpc/status" "helm.sh/helm/v3/pkg/getter" apiv1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/wait" @@ -95,7 +94,7 @@ func NewDefaultPluginConfig() *FluxPluginConfig { VersionsInSummary: pkgutils.GetDefaultVersionsInSummary(), TimeoutSeconds: int32(-1), DefaultUpgradePolicy: pkgutils.UpgradePolicyNone, - UserManagedSecrets: false, + NoCrossNamespaceRefs: false, } } @@ -132,28 +131,6 @@ func NamespacedName(obj ctrlclient.Object) (*types.NamespacedName, error) { } } -// "Local" in the sense of no namespace is specified -func NewLocalOpaqueSecret(ownerRepo types.NamespacedName) *apiv1.Secret { - return &apiv1.Secret{ - ObjectMeta: metav1.ObjectMeta{ - GenerateName: ownerRepo.Name + "-", - }, - Type: apiv1.SecretTypeOpaque, - Data: map[string][]byte{}, - } -} - -// "Local" in the sense of no namespace is specified -func NewLocalDockerConfigJsonSecret(ownerRepo types.NamespacedName) *apiv1.Secret { - return &apiv1.Secret{ - ObjectMeta: metav1.ObjectMeta{ - GenerateName: ownerRepo.Name + "-", - }, - Type: apiv1.SecretTypeDockerConfigJson, - Data: map[string][]byte{}, - } -} - // ref: https://blog.trailofbits.com/2020/06/09/how-to-check-if-a-mutex-is-locked-in-go/ // I understand this is not really "kosher" in general for production usage, // but in one specific case (cache populateWith() func) it's okay as a confidence test @@ -449,10 +426,6 @@ type FluxPluginConfig struct { VersionsInSummary pkgutils.VersionsInSummary TimeoutSeconds int32 DefaultUpgradePolicy pkgutils.UpgradePolicy - // whether or not secrets are fully managed by user or kubeapps - // see comments in design spec under AddPackageRepository. - // false (i.e. kubeapps manages secrets) by default - UserManagedSecrets bool // ref https://github.com/vmware-tanzu/kubeapps/issues/5541 NoCrossNamespaceRefs bool } @@ -477,7 +450,6 @@ func ParsePluginConfig(pluginConfigPath string) (*FluxPluginConfig, error) { Packages struct { V1alpha1 struct { DefaultUpgradePolicy string `json:"defaultUpgradePolicy"` - UserManagedSecrets bool `json:"userManagedSecrets"` NoCrossNamespaceRefs bool `json:"noCrossNamespaceRefs"` } `json:"v1alpha1"` } `json:"packages"` @@ -504,7 +476,6 @@ func ParsePluginConfig(pluginConfigPath string) (*FluxPluginConfig, error) { VersionsInSummary: config.Core.Packages.V1alpha1.VersionsInSummary, TimeoutSeconds: config.Core.Packages.V1alpha1.TimeoutSeconds, DefaultUpgradePolicy: defaultUpgradePolicy, - UserManagedSecrets: config.Flux.Packages.V1alpha1.UserManagedSecrets, NoCrossNamespaceRefs: config.Flux.Packages.V1alpha1.NoCrossNamespaceRefs, }, nil } diff --git a/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/global_vars_test.go b/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/global_vars_test.go index 09e7a004474..c1b235400ed 100644 --- a/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/global_vars_test.go +++ b/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/global_vars_test.go @@ -1505,6 +1505,32 @@ var ( } } + add_repo_req_30 = &corev1.AddPackageRepositoryRequest{ + Name: "bar", + Context: &corev1.Context{Namespace: "foo"}, + Type: "helm", + NamespaceScoped: true, + Url: "http://example.com", + Auth: &corev1.PackageRepositoryAuth{ + Type: corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_BASIC_AUTH, + PackageRepoAuthOneOf: &corev1.PackageRepositoryAuth_UsernamePassword{ + UsernamePassword: &corev1.UsernamePassword{ + Username: "foo", + Password: "bar", + }, + }, + }, + TlsConfig: &corev1.PackageRepositoryTlsConfig{ + InsecureSkipVerify: false, + PackageRepoTlsConfigOneOf: &corev1.PackageRepositoryTlsConfig_SecretRef{ + SecretRef: &corev1.SecretKeyReference{ + Name: "secret-1", + Key: "caFile", + }, + }, + }, + } + add_repo_expected_resp = &corev1.AddPackageRepositoryResponse{ PackageRepoRef: repoRef("bar", "foo"), } @@ -3117,6 +3143,7 @@ var ( Username: redactedString, Password: redactedString, Server: redactedString, + Email: redactedString, }, }, }, @@ -3158,6 +3185,7 @@ var ( Username: redactedString, Password: redactedString, Server: redactedString, + Email: redactedString, }, }, }, @@ -3447,6 +3475,49 @@ var ( } } + update_repo_req_19 = &corev1.UpdatePackageRepositoryRequest{ + PackageRepoRef: repoRefInReq("repo-1", "namespace-1"), + Url: "http://newurl.com", + Auth: &corev1.PackageRepositoryAuth{ + Type: corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_BASIC_AUTH, + PackageRepoAuthOneOf: &corev1.PackageRepositoryAuth_UsernamePassword{ + UsernamePassword: &corev1.UsernamePassword{ + Username: "foo", + Password: "bar", + }, + }, + }, + TlsConfig: &corev1.PackageRepositoryTlsConfig{ + InsecureSkipVerify: false, + PackageRepoTlsConfigOneOf: &corev1.PackageRepositoryTlsConfig_SecretRef{ + SecretRef: &corev1.SecretKeyReference{ + Name: "secret-1", + Key: "caFile", + }, + }, + }, + } + + update_repo_req_20 = &corev1.UpdatePackageRepositoryRequest{ + PackageRepoRef: repoRefInReq("repo-1", "namespace-1"), + Url: "http://newurl.com", + Auth: &corev1.PackageRepositoryAuth{ + Type: corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_BASIC_AUTH, + PackageRepoAuthOneOf: &corev1.PackageRepositoryAuth_UsernamePassword{ + UsernamePassword: &corev1.UsernamePassword{ + Username: "foo", + Password: "bar", + }, + }, + }, + } + + update_repo_req_21 = &corev1.UpdatePackageRepositoryRequest{ + PackageRepoRef: repoRefInReq("repo-1", "namespace-1"), + Url: "http://newurl.com", + Auth: secret_1_auth, + } + update_repo_resp_1 = &corev1.UpdatePackageRepositoryResponse{ PackageRepoRef: repoRef("repo-1", "namespace-1"), } diff --git a/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/integration_utils_test.go b/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/integration_utils_test.go index ca210515570..b1e79362fb6 100644 --- a/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/integration_utils_test.go +++ b/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/integration_utils_test.go @@ -824,8 +824,8 @@ func kubeCreateSecret(t *testing.T, secret *apiv1.Secret) error { return err } -func kubeSetSecretOwnerRef(t *testing.T, secretName types.NamespacedName, ownerRepo *sourcev1.HelmRepository) error { - t.Logf("+kubeSetSecretOwnerRef(%s, %s)", secretName, ownerRepo.Name) +func kubeSetKubeappsManagedSecretOwnerRef(t *testing.T, secretName types.NamespacedName, ownerRepo *sourcev1.HelmRepository) error { + t.Logf("+kubeSetKubeappsManagedSecretOwnerRef(%s, %s)", secretName, ownerRepo.Name) typedClient, err := kubeGetTypedClient() if err != nil { return err @@ -843,6 +843,9 @@ func kubeSetSecretOwnerRef(t *testing.T, secretName types.NamespacedName, ownerR return err } + // also sets managed-By annotation + setSecretManagedByKubeapps(secret) + secret.OwnerReferences = []metav1.OwnerReference{ *metav1.NewControllerRef( ownerRepo, diff --git a/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/release_integration_test.go b/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/release_integration_test.go index feac8fc203d..ae8fea70e92 100644 --- a/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/release_integration_test.go +++ b/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/release_integration_test.go @@ -1524,8 +1524,6 @@ func createAndWaitForHelmRelease( } } - setUserManagedSecretsAndCleanup(t, fluxPluginReposClient, true) - err := kubeAddHelmRepositoryAndCleanup(t, name, tc.repoType, tc.repoUrl, secretName, tc.repoInterval) if err != nil { t.Fatal(err) diff --git a/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/repo.go b/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/repo.go index 181401f3a7f..013cfae359c 100644 --- a/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/repo.go +++ b/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/repo.go @@ -6,7 +6,6 @@ package main import ( "bytes" "context" - "encoding/base64" "encoding/gob" "fmt" "regexp" @@ -31,7 +30,6 @@ import ( apiv1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/sets" log "k8s.io/klog/v2" @@ -42,7 +40,6 @@ const ( // see docs at https://fluxcd.io/docs/components/source/ and // https://fluxcd.io/docs/components/helm/api/ fluxHelmRepositories = "helmrepositories" - redactedString = "REDACTED" ) var ( @@ -254,20 +251,10 @@ func (s *Server) newRepo(ctx context.Context, request *corev1.AddPackageReposito name := types.NamespacedName{Name: request.Name, Namespace: request.Context.Namespace} auth := request.GetAuth() - var secret *apiv1.Secret - var err error - if s.pluginConfig.UserManagedSecrets { - if secret, err = s.validateUserManagedRepoSecret(ctx, name, typ, tlsConfig, auth); err != nil { - return nil, err - } - } else { - // a bit of catch 22: I need to create a secret first, so that I can create a repo that references it - // but then I need to set the owner reference on this secret to the repo. In has to be done - // in that order because to set an owner ref you need object (i.e. repo) UID, which you only get - // once the object's been created - if secret, err = s.createKubeappsManagedRepoSecret(ctx, name, typ, tlsConfig, auth); err != nil { - return nil, err - } + // Get or validate secret resource for auth, not yet stored in K8s + secret, isSecretKubeappsManaged, err := s.handleRepoSecretForCreate(ctx, name, typ, tlsConfig, auth) + if err != nil { + return nil, err } passCredentials := auth != nil && auth.PassCredentials @@ -281,7 +268,6 @@ func (s *Server) newRepo(ctx context.Context, request *corev1.AddPackageReposito if err := request.CustomDetail.UnmarshalTo(customDetail); err != nil { return nil, status.Errorf(codes.InvalidArgument, "customDetail could not be parsed due to: %v", err) } - log.Infof("fluxv2 customDetail: [%v]", customDetail) provider = customDetail.Provider } @@ -292,7 +278,7 @@ func (s *Server) newRepo(ctx context.Context, request *corev1.AddPackageReposito } else if err = client.Create(ctx, fluxRepo); err != nil { return nil, statuserror.FromK8sError("create", "HelmRepository", name.String(), err) } else { - if !s.pluginConfig.UserManagedSecrets { + if isSecretKubeappsManaged { if err = s.setOwnerReferencesForRepoSecret(ctx, secret, fluxRepo); err != nil { return nil, err } @@ -316,37 +302,10 @@ func (s *Server) repoDetail(ctx context.Context, repoRef *corev1.PackageReposito return nil, err } - var tlsConfig *corev1.PackageRepositoryTlsConfig - var auth *corev1.PackageRepositoryAuth - if repo.Spec.SecretRef != nil { - secretName := repo.Spec.SecretRef.Name - if s == nil || s.clientGetter == nil { - return nil, status.Errorf(codes.Internal, "unexpected state in clientGetterHolder instance") - } - typedClient, err := s.clientGetter.Typed(ctx, s.kubeappsCluster) - if err != nil { - return nil, err - } - secret, err := typedClient.CoreV1().Secrets(repo.Namespace).Get(ctx, secretName, metav1.GetOptions{}) - if err != nil { - return nil, statuserror.FromK8sError("get", "secret", secretName, err) - } - - if s.pluginConfig.UserManagedSecrets { - if tlsConfig, auth, err = getRepoTlsConfigAndAuthWithUserManagedSecrets(secret); err != nil { - return nil, err - } - } else { - if tlsConfig, auth, err = getRepoTlsConfigAndAuthWithKubeappsManagedSecrets(secret); err != nil { - return nil, err - } - } - } else { - auth = &corev1.PackageRepositoryAuth{ - Type: corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_UNSPECIFIED, - } + tlsConfig, auth, err := s.getRepoTlsConfigAndAuth(ctx, *repo) + if err != nil { + return nil, err } - auth.PassCredentials = repo.Spec.PassCredentials typ := repo.Spec.Type if typ == "" { typ = "helm" @@ -447,205 +406,6 @@ func (s *Server) repoSummaries(ctx context.Context, ns string) ([]*corev1.Packag return summaries, nil } -func (s *Server) validateUserManagedRepoSecret( - ctx context.Context, - repoName types.NamespacedName, - repoType string, - tlsConfig *corev1.PackageRepositoryTlsConfig, - auth *corev1.PackageRepositoryAuth) (*apiv1.Secret, error) { - var secretRefTls, secretRefAuth string - if tlsConfig != nil { - if tlsConfig.GetCertAuthority() != "" { - return nil, status.Errorf(codes.InvalidArgument, "Secret Ref must be used with user managed secrets") - } else if tlsConfig.GetSecretRef().GetName() != "" { - secretRefTls = tlsConfig.GetSecretRef().GetName() - } - } - - if auth != nil { - if auth.GetDockerCreds() != nil || - auth.GetHeader() != "" || - auth.GetTlsCertKey() != nil || - auth.GetUsernamePassword() != nil { - return nil, status.Errorf(codes.InvalidArgument, "Secret Ref must be used with user managed secrets") - } else if auth.GetSecretRef().GetName() != "" { - secretRefAuth = auth.GetSecretRef().GetName() - } - } - - var secretRef string - if secretRefTls != "" && secretRefAuth != "" && secretRefTls != secretRefAuth { - // flux repo spec only allows one secret per HelmRepository CRD - return nil, status.Errorf( - codes.InvalidArgument, "TLS config secret and Auth secret must be the same") - } else if secretRefTls != "" { - secretRef = secretRefTls - } else if secretRefAuth != "" { - secretRef = secretRefAuth - } - - var secret *apiv1.Secret - if secretRef != "" { - // check that the specified secret exists - if typedClient, err := s.clientGetter.Typed(ctx, s.kubeappsCluster); err != nil { - return nil, err - } else if secret, err = typedClient.CoreV1().Secrets(repoName.Namespace).Get(ctx, secretRef, metav1.GetOptions{}); err != nil { - return nil, statuserror.FromK8sError("get", "secret", secretRef, err) - } else { - // also check that the data in the opaque secret corresponds - // to specified auth type, e.g. if AuthType is - // PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_BASIC_AUTH, - // check that the secret has "username" and "password" fields, etc. - // it appears flux does not care about the k8s secret type (opaque vs tls vs basic-auth, etc.) - // https://github.com/fluxcd/source-controller/blob/bc5a47e821562b1c4f9731acd929b8d9bd23b3a8/controllers/helmrepository_controller.go#L357 - if secretRefTls != "" && secret.Data["caFile"] == nil { - return nil, status.Errorf(codes.Internal, "Specified secret [%s] missing field 'caFile'", secretRef) - } - if secretRefAuth != "" { - switch auth.Type { - case corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_BASIC_AUTH: - if secret.Data["username"] == nil || secret.Data["password"] == nil { - return nil, status.Errorf(codes.Internal, "Specified secret [%s] missing fields 'username' and/or 'password'", secretRef) - } - case corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_TLS: - if secret.Data["keyFile"] == nil || secret.Data["certFile"] == nil { - return nil, status.Errorf(codes.Internal, "Specified secret [%s] missing fields 'keyFile' and/or 'certFile'", secretRef) - } - case corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_DOCKER_CONFIG_JSON: - if repoType == sourcev1.HelmRepositoryTypeOCI { - if secret.Data[apiv1.DockerConfigJsonKey] == nil { - return nil, status.Errorf(codes.Internal, "Specified secret [%s] missing field '%s'", secretRef, apiv1.DockerConfigJsonKey) - } - } else { - return nil, status.Errorf(codes.Internal, "Package repository authentication type %q is not supported", auth.Type) - } - default: - return nil, status.Errorf(codes.Internal, "Package repository authentication type %q is not supported", auth.Type) - } - } - } - - // ref https://github.com/vmware-tanzu/kubeapps/pull/4353#discussion_r816332595 - // check whether flux supports typed secrets in addition to opaque secrets - // https://kubernetes.io/docs/concepts/configuration/secret/#secret-types - // update: flux currently does not care about secret type, just what is in the data map. - } - return secret, nil -} - -func (s *Server) createKubeappsManagedRepoSecret( - ctx context.Context, - repoName types.NamespacedName, - typ string, - tlsConfig *corev1.PackageRepositoryTlsConfig, - auth *corev1.PackageRepositoryAuth) (*apiv1.Secret, error) { - - secret, _, err := newSecretFromTlsConfigAndAuth(repoName, typ, tlsConfig, auth) - if err != nil { - return nil, err - } - - if secret != nil { - // create a secret first, if applicable - if typedClient, err := s.clientGetter.Typed(ctx, s.kubeappsCluster); err != nil { - return nil, err - } else if secret, err = typedClient.CoreV1().Secrets(repoName.Namespace).Create(ctx, secret, metav1.CreateOptions{}); err != nil { - return nil, statuserror.FromK8sError("create", "secret", secret.GetName(), err) - } - } - return secret, nil -} - -// using owner references on the secret so that it can be -// (1) cleaned up automatically and/or -// (2) enable some control (ie. if I add a secret manually -// -// via kubectl before running kubeapps, it won't get deleted just -// -// because Kubeapps is deleting it)? -// see https://github.com/vmware-tanzu/kubeapps/pull/4630#discussion_r861446394 for details -func (s *Server) setOwnerReferencesForRepoSecret( - ctx context.Context, - secret *apiv1.Secret, - repo *sourcev1.HelmRepository) error { - - if repo.Spec.SecretRef != nil && secret != nil { - if typedClient, err := s.clientGetter.Typed(ctx, s.kubeappsCluster); err != nil { - return err - } else { - secretsInterface := typedClient.CoreV1().Secrets(repo.Namespace) - secret.OwnerReferences = []metav1.OwnerReference{ - *metav1.NewControllerRef( - repo, - schema.GroupVersionKind{ - Group: sourcev1.GroupVersion.Group, - Version: sourcev1.GroupVersion.Version, - Kind: sourcev1.HelmRepositoryKind, - }), - } - if _, err := secretsInterface.Update(ctx, secret, metav1.UpdateOptions{}); err != nil { - return statuserror.FromK8sError("update", "secrets", secret.Name, err) - } - } - } - return nil -} - -// returns 3 things: -// secret - either an existing or newly created secret, or nil if there should -// be no secret associated with a repository -// updateRepo - boolean indicating whether or not a HelmRepository CRD needs to be updated -// err - when bad things happen - -func (s *Server) updateKubeappsManagedRepoSecret( - ctx context.Context, - repoName types.NamespacedName, - typ string, - tlsConfig *corev1.PackageRepositoryTlsConfig, - auth *corev1.PackageRepositoryAuth, - existingSecretRef *fluxmeta.LocalObjectReference) (secret *apiv1.Secret, updateRepo bool, err error) { - - secret, isSameSecret, err := newSecretFromTlsConfigAndAuth(repoName, typ, tlsConfig, auth) - if err != nil { - return nil, false, err - } else if isSameSecret { - return nil, false, nil - } - - typedClient, err := s.clientGetter.Typed(ctx, s.kubeappsCluster) - if err != nil { - return nil, false, err - } - secretInterface := typedClient.CoreV1().Secrets(repoName.Namespace) - if secret != nil { - if existingSecretRef == nil { - // create a secret first - newSecret, err := secretInterface.Create(ctx, secret, metav1.CreateOptions{}) - if err != nil { - return nil, false, statuserror.FromK8sError("create", "secret", secret.GetGenerateName(), err) - } - return newSecret, true, nil - } else { - // TODO (gfichtenholt) we should optimize this to somehow tell if the existing secret - // is the same (data-wise) as the new one and if so skip all this - if err = secretInterface.Delete(ctx, existingSecretRef.Name, metav1.DeleteOptions{}); err != nil { - return nil, false, statuserror.FromK8sError("delete", "secret", existingSecretRef.Name, err) - } - // create a new one - newSecret, err := secretInterface.Create(ctx, secret, metav1.CreateOptions{}) - if err != nil { - return nil, false, statuserror.FromK8sError("create", "secret", secret.GetGenerateName(), err) - } - return newSecret, true, nil - } - } else if existingSecretRef != nil { - if err = secretInterface.Delete(ctx, existingSecretRef.Name, metav1.DeleteOptions{}); err != nil { - log.Errorf("Error deleting existing secret: [%s] due to %v", err) - } - } - return secret, true, nil -} - func (s *Server) updateRepo(ctx context.Context, repoRef *corev1.PackageRepositoryReference, url string, interval string, tlsConfig *corev1.PackageRepositoryTlsConfig, auth *corev1.PackageRepositoryAuth) (*corev1.PackageRepositoryReference, error) { key := types.NamespacedName{Namespace: repoRef.GetContext().GetNamespace(), Name: repoRef.GetIdentifier()} repo, err := s.getRepoInCluster(ctx, key) @@ -667,7 +427,7 @@ func (s *Server) updateRepo(ctx context.Context, repoRef *corev1.PackageReposito repo.Spec.URL = url // flux does not grok repository description yet - // the only field in customdetail is "provider" and I don't see the need to + // the only field in customDetail is "provider" and I don't see the need to // have the user update that. Its not like one repository is going to move from // GCP to AWS. @@ -687,20 +447,14 @@ func (s *Server) updateRepo(ctx context.Context, repoRef *corev1.PackageReposito return nil, status.Errorf(codes.InvalidArgument, "TLS flag insecureSkipVerify is not supported") } - var secret *apiv1.Secret - var updateRepoSecret bool - if s.pluginConfig.UserManagedSecrets { - if secret, err = s.validateUserManagedRepoSecret(ctx, key, repo.Spec.Type, tlsConfig, auth); err != nil { - return nil, err - } - } else { - if secret, updateRepoSecret, err = s.updateKubeappsManagedRepoSecret( - ctx, key, repo.Spec.Type, tlsConfig, auth, repo.Spec.SecretRef); err != nil { - return nil, err - } + // validate and get updated (or newly created) secret + secret, isKubeappsManagedSecret, isSecretUpdated, err := + s.handleRepoSecretForUpdate(ctx, repo, tlsConfig, auth) + if err != nil { + return nil, err } - if s.pluginConfig.UserManagedSecrets || updateRepoSecret { + if isSecretUpdated { if secret != nil { repo.Spec.SecretRef = &fluxmeta.LocalObjectReference{Name: secret.Name} } else { @@ -720,23 +474,25 @@ func (s *Server) updateRepo(ctx context.Context, repoRef *corev1.PackageReposito return nil, err } else if err = client.Update(ctx, repo); err != nil { return nil, statuserror.FromK8sError("update", "HelmRepository", key.String(), err) - } else if updateRepoSecret && secret != nil { - // new secret => will need to set the owner - if err = s.setOwnerReferencesForRepoSecret(ctx, secret, repo); err != nil { - return nil, err - } - } + } else { - log.V(4).Infof("Updated repository: %s", common.PrettyPrint(repo)) + if isKubeappsManagedSecret && isSecretUpdated { + // new secret => will need to set the owner + if err = s.setOwnerReferencesForRepoSecret(ctx, secret, repo); err != nil { + return nil, err + } + } + log.V(4).Infof("Updated repository: %s", common.PrettyPrint(repo)) - return &corev1.PackageRepositoryReference{ - Context: &corev1.Context{ - Namespace: key.Namespace, - Cluster: s.kubeappsCluster, - }, - Identifier: key.Name, - Plugin: GetPluginDetail(), - }, nil + return &corev1.PackageRepositoryReference{ + Context: &corev1.Context{ + Namespace: key.Namespace, + Cluster: s.kubeappsCluster, + }, + Identifier: key.Name, + Plugin: GetPluginDetail(), + }, nil + } } func (s *Server) deleteRepo(ctx context.Context, repoRef *corev1.PackageRepositoryReference) error { @@ -773,7 +529,7 @@ type repoEventSink struct { // all struct fields are capitalized so they're exported by gob encoding type repoCacheEntryValue struct { Checksum string // SHA256 - Type string // "http" or "oci". If not set, repo is assumed to be regular old HTTP + Type string // "default" or "oci". If not set, repo is assumed to be regular old HTTP Charts []models.Chart OCIRepoLister string // only applicable for OCIRepos, "" otherwise } @@ -1171,179 +927,3 @@ func newFluxHelmRepo( } return fluxRepo, nil } - -// this func is only used with kubeapps-managed secrets -func newSecretFromTlsConfigAndAuth(repoName types.NamespacedName, - typ string, - tlsConfig *corev1.PackageRepositoryTlsConfig, - auth *corev1.PackageRepositoryAuth) (secret *apiv1.Secret, isSameSecret bool, err error) { - if tlsConfig != nil { - if tlsConfig.GetSecretRef() != nil { - return nil, false, status.Errorf(codes.InvalidArgument, "SecretRef may not be used with kubeapps managed secrets") - } - caCert := tlsConfig.GetCertAuthority() - if caCert == redactedString { - isSameSecret = true - } else if caCert != "" { - secret = common.NewLocalOpaqueSecret(repoName) - secret.Data["caFile"] = []byte(caCert) - } - } - if auth != nil { - if auth.GetSecretRef() != nil { - return nil, false, status.Errorf(codes.InvalidArgument, "SecretRef may not be used with kubeapps managed secrets") - } - if secret == nil { - if auth.Type == corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_DOCKER_CONFIG_JSON { - secret = common.NewLocalDockerConfigJsonSecret(repoName) - } else { - secret = common.NewLocalOpaqueSecret(repoName) - } - } - switch auth.Type { - case corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_BASIC_AUTH: - if unp := auth.GetUsernamePassword(); unp != nil { - if unp.Username == redactedString && unp.Password == redactedString { - isSameSecret = true - } else { - secret.Data["username"] = []byte(unp.Username) - secret.Data["password"] = []byte(unp.Password) - } - } else { - return nil, false, status.Errorf(codes.Internal, "Username/Password configuration is missing") - } - case corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_TLS: - if ck := auth.GetTlsCertKey(); ck != nil { - if ck.Cert == redactedString && ck.Key == redactedString { - isSameSecret = true - } else { - secret.Data["certFile"] = []byte(ck.Cert) - secret.Data["keyFile"] = []byte(ck.Key) - } - } else { - return nil, false, status.Errorf(codes.Internal, "TLS Cert/Key configuration is missing") - } - case corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_DOCKER_CONFIG_JSON: - if typ == sourcev1.HelmRepositoryTypeOCI { - if dc := auth.GetDockerCreds(); dc != nil { - if dc.Username == redactedString && dc.Password == redactedString && dc.Server == redactedString { - isSameSecret = true - } else { - secret.Data = map[string][]byte{ - apiv1.DockerConfigJsonKey: []byte(`{"auths":{"` + - dc.Server + `":{"` + - `auth":"` + base64.StdEncoding.EncodeToString([]byte(dc.Username+":"+dc.Password)) + `"}}}`), - } - } - } else { - return nil, false, status.Errorf(codes.Internal, "Docker credentials configuration is missing") - } - } else { - return nil, false, status.Errorf(codes.Internal, "Unsupported package repository authentication type: %q", auth.Type) - } - case corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_BEARER, - corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_AUTHORIZATION_HEADER: - return nil, false, status.Errorf(codes.Internal, "Package repository authentication type %q is not supported", auth.Type) - case corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_UNSPECIFIED: - return nil, true, nil - default: - return nil, false, status.Errorf(codes.Internal, "Unsupported package repository authentication type: %q", auth.Type) - } - } - return secret, isSameSecret, nil -} - -func getRepoTlsConfigAndAuthWithUserManagedSecrets(secret *apiv1.Secret) (*corev1.PackageRepositoryTlsConfig, *corev1.PackageRepositoryAuth, error) { - var tlsConfig *corev1.PackageRepositoryTlsConfig - auth := &corev1.PackageRepositoryAuth{ - Type: corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_UNSPECIFIED, - } - - if _, ok := secret.Data["caFile"]; ok { - tlsConfig = &corev1.PackageRepositoryTlsConfig{ - // flux plug in doesn't support this option - InsecureSkipVerify: false, - PackageRepoTlsConfigOneOf: &corev1.PackageRepositoryTlsConfig_SecretRef{ - SecretRef: &corev1.SecretKeyReference{ - Name: secret.Name, - Key: "caFile", - }, - }, - } - } - if _, ok := secret.Data["certFile"]; ok { - if _, ok = secret.Data["keyFile"]; ok { - auth.Type = corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_TLS - auth.PackageRepoAuthOneOf = &corev1.PackageRepositoryAuth_SecretRef{ - SecretRef: &corev1.SecretKeyReference{Name: secret.Name}, - } - } - } else if _, ok := secret.Data["username"]; ok { - if _, ok = secret.Data["password"]; ok { - auth.Type = corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_BASIC_AUTH - auth.PackageRepoAuthOneOf = &corev1.PackageRepositoryAuth_SecretRef{ - SecretRef: &corev1.SecretKeyReference{Name: secret.Name}, - } - } - } else { - log.Warning("Unrecognized type of secret [%s]", secret.Name) - } - return tlsConfig, auth, nil -} - -// TODO (gfichtenolt) Per slack discussion -// In fact, keeping the existing API might mean we could return exactly what it already does today -// (i.e. all secrets) if called with an extra explicit option (includeSecrets=true in the request -// message, not sure, similar to kubectl config view --raw) and by default the secrets are REDACTED -// as you mention? This would mean clients will by default see only REDACTED secrets, -// but can request the full sensitive data when necessary? -func getRepoTlsConfigAndAuthWithKubeappsManagedSecrets(secret *apiv1.Secret) (*corev1.PackageRepositoryTlsConfig, *corev1.PackageRepositoryAuth, error) { - var tlsConfig *corev1.PackageRepositoryTlsConfig - auth := &corev1.PackageRepositoryAuth{ - Type: corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_UNSPECIFIED, - } - - if _, ok := secret.Data["caFile"]; ok { - tlsConfig = &corev1.PackageRepositoryTlsConfig{ - // flux plug in doesn't support InsecureSkipVerify option - InsecureSkipVerify: false, - PackageRepoTlsConfigOneOf: &corev1.PackageRepositoryTlsConfig_CertAuthority{ - CertAuthority: redactedString, - }, - } - } - - if _, ok := secret.Data["certFile"]; ok { - if _, ok := secret.Data["keyFile"]; ok { - auth.Type = corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_TLS - auth.PackageRepoAuthOneOf = &corev1.PackageRepositoryAuth_TlsCertKey{ - TlsCertKey: &corev1.TlsCertKey{ - Cert: redactedString, - Key: redactedString, - }, - } - } - } else if _, ok := secret.Data["username"]; ok { - if _, ok := secret.Data["password"]; ok { - auth.Type = corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_BASIC_AUTH - auth.PackageRepoAuthOneOf = &corev1.PackageRepositoryAuth_UsernamePassword{ - UsernamePassword: &corev1.UsernamePassword{ - Username: redactedString, - Password: redactedString, - }, - } - } - } else if _, ok := secret.Data[apiv1.DockerConfigJsonKey]; ok { - auth.Type = corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_DOCKER_CONFIG_JSON - auth.PackageRepoAuthOneOf = &corev1.PackageRepositoryAuth_DockerCreds{ - DockerCreds: &corev1.DockerCredentials{ - Username: redactedString, - Password: redactedString, - Server: redactedString, - }, - } - } else { - log.Warning("Unrecognized type of secret: [%s]", secret.Name) - } - return tlsConfig, auth, nil -} diff --git a/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/repo_auth.go b/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/repo_auth.go new file mode 100644 index 00000000000..3811584e4d2 --- /dev/null +++ b/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/repo_auth.go @@ -0,0 +1,548 @@ +// Copyright 2021-2022 the Kubeapps contributors. +// SPDX-License-Identifier: Apache-2.0 + +package main + +import ( + "context" + "encoding/json" + + sourcev1 "github.com/fluxcd/source-controller/api/v1beta2" + corev1 "github.com/vmware-tanzu/kubeapps/cmd/kubeapps-apis/gen/core/packages/v1alpha1" + "github.com/vmware-tanzu/kubeapps/cmd/kubeapps-apis/plugins/pkg/statuserror" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + apiv1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/types" + log "k8s.io/klog/v2" + "k8s.io/kubernetes/pkg/credentialprovider" +) + +const ( + redactedString = "REDACTED" + // to be consistent with carvel and helm plug-in + annotationManagedByKey = "kubeapps.dev/managed-by" + annotationManagedByValue = "plugin:flux" +) + +func (s *Server) handleRepoSecretForCreate( + ctx context.Context, + repoName types.NamespacedName, + repoType string, + tlsConfig *corev1.PackageRepositoryTlsConfig, + auth *corev1.PackageRepositoryAuth) (*apiv1.Secret, bool, error) { + + hasCaRef := tlsConfig != nil && tlsConfig.GetSecretRef() != nil + hasCaData := tlsConfig != nil && tlsConfig.GetCertAuthority() != "" + hasAuthRef := auth != nil && auth.GetSecretRef() != nil + hasAuthData := auth != nil && auth.GetSecretRef() == nil && auth.GetType() != corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_UNSPECIFIED + + // if we have both ref config and data config, it is an invalid mixed configuration + if (hasCaRef || hasAuthRef) && (hasCaData || hasAuthData) { + return nil, false, status.Errorf(codes.InvalidArgument, "Package repository cannot mix referenced secrets and user provided secret data") + } + + // create/get secret + if hasCaRef || hasAuthRef { + // user-managed + secret, err := s.validateUserManagedRepoSecret(ctx, repoName, repoType, tlsConfig, auth) + return secret, false, err + } else if hasCaData || hasAuthData { + // kubeapps managed + secret, _, err := newSecretFromTlsConfigAndAuth(repoName, repoType, tlsConfig, auth) + if err != nil { + return nil, false, err + } + // a bit of catch 22: I need to create a secret first, so that I can create a repo that references it + // but then I need to set the owner reference on this secret to the repo. In has to be done + // in that order because to set an owner ref you need object (i.e. repo) UID, which you only get + // once the object's been created + // create a secret first, if applicable + if typedClient, err := s.clientGetter.Typed(ctx, s.kubeappsCluster); err != nil { + return nil, false, err + } else if secret, err = typedClient.CoreV1().Secrets(repoName.Namespace).Create(ctx, secret, metav1.CreateOptions{}); err != nil { + return nil, false, statuserror.FromK8sError("create", "secret", secret.GetGenerateName(), err) + } else { + return secret, true, err + } + } else { + return nil, false, nil + } +} + +// isSecretUpdated is a boolean indicating whether or not the secret ref for a repository +// has been updated as a result of this call. +func (s *Server) handleRepoSecretForUpdate( + ctx context.Context, + repo *sourcev1.HelmRepository, + newTlsConfig *corev1.PackageRepositoryTlsConfig, + newAuth *corev1.PackageRepositoryAuth) (updatedSecret *apiv1.Secret, isKubeappsManagedSecret bool, isSecretUpdated bool, err error) { + + hasCaRef := newTlsConfig != nil && newTlsConfig.GetSecretRef() != nil + hasCaData := newTlsConfig != nil && newTlsConfig.GetCertAuthority() != "" + hasAuthRef := newAuth != nil && newAuth.GetSecretRef() != nil + hasAuthData := newAuth != nil && newAuth.GetSecretRef() == nil && newAuth.GetType() != corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_UNSPECIFIED + + // if we have both ref config and data config, it is an invalid mixed configuration + if (hasCaRef || hasAuthRef) && (hasCaData || hasAuthData) { + return nil, false, false, status.Errorf(codes.InvalidArgument, "Package repository cannot mix referenced secrets and user provided secret data") + } + + typedClient, err := s.clientGetter.Typed(ctx, s.kubeappsCluster) + if err != nil { + return nil, false, false, err + } + secretInterface := typedClient.CoreV1().Secrets(repo.Namespace) + + var existingSecret *apiv1.Secret + if repo.Spec.SecretRef != nil { + if existingSecret, err = secretInterface.Get(ctx, repo.Spec.SecretRef.Name, metav1.GetOptions{}); err != nil { + return nil, false, false, statuserror.FromK8sError("get", "secret", repo.Spec.SecretRef.Name, err) + } + } + + // check we cannot change mode (per design spec) + if existingSecret != nil && (hasCaRef || hasCaData || hasAuthRef || hasAuthData) { + if isSecretKubeappsManaged(existingSecret, repo) != (hasAuthData || hasCaData) { + return nil, false, false, status.Errorf(codes.InvalidArgument, "Auth management mode cannot be changed") + } + } + + repoName := types.NamespacedName{Name: repo.Name, Namespace: repo.Namespace} + repoType := repo.Spec.Type + + // handle user managed secret + if hasCaRef || hasAuthRef { + updatedSecret, err := s.validateUserManagedRepoSecret(ctx, repoName, repoType, newTlsConfig, newAuth) + return updatedSecret, false, true, err + } + + // handle kubeapps managed secret + var isSameSecret bool + updatedSecret, isSameSecret, err = newSecretFromTlsConfigAndAuth(repoName, repoType, newTlsConfig, newAuth) + if err != nil { + return nil, true, false, err + } else if isSameSecret { + // Do nothing if repo auth data came redacted + return nil, true, false, nil + } else { + // either we have no secret, or it has changed. in both cases, we try to delete any existing secret + if existingSecret != nil { + if err = secretInterface.Delete(ctx, existingSecret.Name, metav1.DeleteOptions{}); err != nil { + log.Errorf("Error deleting existing secret: [%s] due to %v", err) + } + } + if updatedSecret != nil { + if updatedSecret, err = typedClient.CoreV1().Secrets(repoName.Namespace).Create(ctx, updatedSecret, metav1.CreateOptions{}); err != nil { + return nil, false, false, statuserror.FromK8sError("create", "secret", updatedSecret.GetGenerateName(), err) + } + } + return updatedSecret, true, true, nil + } +} + +func (s *Server) validateUserManagedRepoSecret( + ctx context.Context, + repoName types.NamespacedName, + repoType string, + tlsConfig *corev1.PackageRepositoryTlsConfig, + auth *corev1.PackageRepositoryAuth) (*apiv1.Secret, error) { + var secretRefTls, secretRefAuth string + if tlsConfig != nil { + if tlsConfig.GetCertAuthority() != "" { + return nil, status.Errorf(codes.InvalidArgument, "Secret Ref must be used with user managed secrets") + } else if tlsConfig.GetSecretRef().GetName() != "" { + secretRefTls = tlsConfig.GetSecretRef().GetName() + } + } + + if auth != nil { + if auth.GetDockerCreds() != nil || + auth.GetHeader() != "" || + auth.GetTlsCertKey() != nil || + auth.GetUsernamePassword() != nil { + return nil, status.Errorf(codes.InvalidArgument, "Secret Ref must be used with user managed secrets") + } else if auth.GetSecretRef().GetName() != "" { + secretRefAuth = auth.GetSecretRef().GetName() + } + } + + var secretRef string + if secretRefTls != "" && secretRefAuth != "" && secretRefTls != secretRefAuth { + // flux repo spec only allows one secret per HelmRepository CRD + return nil, status.Errorf( + codes.InvalidArgument, "TLS config secret and Auth secret must be the same") + } else if secretRefTls != "" { + secretRef = secretRefTls + } else if secretRefAuth != "" { + secretRef = secretRefAuth + } + + var secret *apiv1.Secret + if secretRef != "" { + // check that the specified secret exists + if typedClient, err := s.clientGetter.Typed(ctx, s.kubeappsCluster); err != nil { + return nil, err + } else if secret, err = typedClient.CoreV1().Secrets(repoName.Namespace).Get(ctx, secretRef, metav1.GetOptions{}); err != nil { + return nil, statuserror.FromK8sError("get", "secret", secretRef, err) + } else { + // also check that the data in the opaque secret corresponds + // to specified auth type, e.g. if AuthType is + // PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_BASIC_AUTH, + // check that the secret has "username" and "password" fields, etc. + // it appears flux does not care about the k8s secret type (opaque vs tls vs basic-auth, etc.) + // https://github.com/fluxcd/source-controller/blob/bc5a47e821562b1c4f9731acd929b8d9bd23b3a8/controllers/helmrepository_controller.go#L357 + if secretRefTls != "" && secret.Data["caFile"] == nil { + return nil, status.Errorf(codes.Internal, "Specified secret [%s] missing field 'caFile'", secretRef) + } + if secretRefAuth != "" { + switch auth.Type { + case corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_BASIC_AUTH: + if secret.Data["username"] == nil || secret.Data["password"] == nil { + return nil, status.Errorf(codes.Internal, "Specified secret [%s] missing fields 'username' and/or 'password'", secretRef) + } + case corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_TLS: + if repoType == sourcev1.HelmRepositoryTypeOCI { + // ref https://fluxcd.io/flux/components/source/helmrepositories/#tls-authentication + // Note: TLS authentication is not yet supported by OCI Helm repositories. + return nil, status.Errorf(codes.Internal, "Package repository authentication type %q is not supported for OCI repositories", auth.Type) + } else { + if secret.Data["keyFile"] == nil || secret.Data["certFile"] == nil { + return nil, status.Errorf(codes.Internal, "Specified secret [%s] missing fields 'keyFile' and/or 'certFile'", secretRef) + } + } + case corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_DOCKER_CONFIG_JSON: + if repoType == sourcev1.HelmRepositoryTypeOCI { + if secret.Data[apiv1.DockerConfigJsonKey] == nil { + return nil, status.Errorf(codes.Internal, "Specified secret [%s] missing field '%s'", secretRef, apiv1.DockerConfigJsonKey) + } + } else { + return nil, status.Errorf(codes.Internal, "Package repository authentication type %q is not supported", auth.Type) + } + default: + return nil, status.Errorf(codes.Internal, "Package repository authentication type %q is not supported", auth.Type) + } + } + } + + // ref https://github.com/vmware-tanzu/kubeapps/pull/4353#discussion_r816332595 + // check whether flux supports typed secrets in addition to opaque secrets + // https://kubernetes.io/docs/concepts/configuration/secret/#secret-types + // update: flux currently does not care about secret type, just what is in the data map. + } + return secret, nil +} + +// using owner references on the secret so that it can be +// (1) cleaned up automatically and/or +// (2) enable some control (ie. if I add a secret manually +// +// via kubectl before running kubeapps, it won't get deleted just +// +// because Kubeapps is deleting it)? +// see https://github.com/vmware-tanzu/kubeapps/pull/4630#discussion_r861446394 for details +func (s *Server) setOwnerReferencesForRepoSecret( + ctx context.Context, + secret *apiv1.Secret, + repo *sourcev1.HelmRepository) error { + + if repo.Spec.SecretRef != nil && secret != nil { + if typedClient, err := s.clientGetter.Typed(ctx, s.kubeappsCluster); err != nil { + return err + } else { + secretsInterface := typedClient.CoreV1().Secrets(repo.Namespace) + secret.OwnerReferences = []metav1.OwnerReference{ + *metav1.NewControllerRef( + repo, + schema.GroupVersionKind{ + Group: sourcev1.GroupVersion.Group, + Version: sourcev1.GroupVersion.Version, + Kind: sourcev1.HelmRepositoryKind, + }), + } + if _, err := secretsInterface.Update(ctx, secret, metav1.UpdateOptions{}); err != nil { + return statuserror.FromK8sError("update", "secret", secret.Name, err) + } + } + } + return nil +} + +func (s *Server) getRepoTlsConfigAndAuth(ctx context.Context, repo sourcev1.HelmRepository) (*corev1.PackageRepositoryTlsConfig, *corev1.PackageRepositoryAuth, error) { + var tlsConfig *corev1.PackageRepositoryTlsConfig + var auth *corev1.PackageRepositoryAuth + + if repo.Spec.SecretRef != nil { + secretName := repo.Spec.SecretRef.Name + if s == nil || s.clientGetter == nil { + return nil, nil, status.Errorf(codes.Internal, "unexpected state in clientGetterHolder instance") + } + typedClient, err := s.clientGetter.Typed(ctx, s.kubeappsCluster) + if err != nil { + return nil, nil, err + } + secret, err := typedClient.CoreV1().Secrets(repo.Namespace).Get(ctx, secretName, metav1.GetOptions{}) + if err != nil { + return nil, nil, statuserror.FromK8sError("get", "secret", secretName, err) + } + + if isSecretKubeappsManaged(secret, &repo) { + if tlsConfig, auth, err = getRepoTlsConfigAndAuthWithKubeappsManagedSecrets(secret); err != nil { + return nil, nil, err + } + } else { + if tlsConfig, auth, err = getRepoTlsConfigAndAuthWithUserManagedSecrets(secret); err != nil { + return nil, nil, err + } + } + } else { + auth = &corev1.PackageRepositoryAuth{ + Type: corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_UNSPECIFIED, + PassCredentials: repo.Spec.PassCredentials, + } + } + + if repo.Spec.PassCredentials { + if auth == nil { + auth = &corev1.PackageRepositoryAuth{ + PassCredentials: repo.Spec.PassCredentials, + } + } + } + + return tlsConfig, auth, nil +} + +// this func is only used with kubeapps-managed secrets +func newSecretFromTlsConfigAndAuth(repoName types.NamespacedName, + repoType string, + tlsConfig *corev1.PackageRepositoryTlsConfig, + auth *corev1.PackageRepositoryAuth) (secret *apiv1.Secret, isSameSecret bool, err error) { + if tlsConfig != nil { + if tlsConfig.GetSecretRef() != nil { + return nil, false, status.Errorf(codes.InvalidArgument, "SecretRef may not be used with kubeapps managed secrets") + } + caCert := tlsConfig.GetCertAuthority() + if caCert == redactedString { + isSameSecret = true + } else if caCert != "" { + secret = newLocalOpaqueSecret(repoName) + secret.Data["caFile"] = []byte(caCert) + } + } + if auth != nil { + if auth.GetSecretRef() != nil { + return nil, false, status.Errorf(codes.InvalidArgument, "SecretRef may not be used with kubeapps managed secrets") + } + if secret == nil { + if auth.Type == corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_DOCKER_CONFIG_JSON { + secret = newLocalDockerConfigJsonSecret(repoName) + } else { + secret = newLocalOpaqueSecret(repoName) + } + } + switch auth.Type { + case corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_BASIC_AUTH: + if unp := auth.GetUsernamePassword(); unp != nil { + if unp.Username == redactedString && unp.Password == redactedString { + isSameSecret = true + } else { + secret.Data["username"] = []byte(unp.Username) + secret.Data["password"] = []byte(unp.Password) + } + } else { + return nil, false, status.Errorf(codes.Internal, "Username/Password configuration is missing") + } + case corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_TLS: + if repoType == sourcev1.HelmRepositoryTypeOCI { + // ref https://fluxcd.io/flux/components/source/helmrepositories/#tls-authentication + // Note: TLS authentication is not yet supported by OCI Helm repositories. + return nil, false, status.Errorf(codes.Internal, "Package repository authentication type %q is not supported for OCI repositories", auth.Type) + } else { + if ck := auth.GetTlsCertKey(); ck != nil { + if ck.Cert == redactedString && ck.Key == redactedString { + isSameSecret = true + } else { + secret.Data["certFile"] = []byte(ck.Cert) + secret.Data["keyFile"] = []byte(ck.Key) + } + } else { + return nil, false, status.Errorf(codes.Internal, "TLS Cert/Key configuration is missing") + } + } + + case corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_DOCKER_CONFIG_JSON: + if repoType == sourcev1.HelmRepositoryTypeOCI { + if dc := auth.GetDockerCreds(); dc != nil { + if dc.Password == redactedString { + isSameSecret = true + } else { + secret.Type = apiv1.SecretTypeDockerConfigJson + dockerConfig := &credentialprovider.DockerConfigJSON{ + Auths: map[string]credentialprovider.DockerConfigEntry{ + dc.Server: { + Username: dc.Username, + Password: dc.Password, + Email: dc.Email, + }, + }, + } + dockerConfigJson, err := json.Marshal(dockerConfig) + if err != nil { + return nil, false, status.Errorf(codes.InvalidArgument, "Docker credentials are wrong") + } + secret.Data[apiv1.DockerConfigJsonKey] = dockerConfigJson + } + } else { + return nil, false, status.Errorf(codes.Internal, "Docker credentials configuration is missing") + } + } else { + return nil, false, status.Errorf(codes.Internal, "Unsupported package repository authentication type: %q", auth.Type) + } + case corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_BEARER, + corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_AUTHORIZATION_HEADER: + return nil, false, status.Errorf(codes.Internal, "Package repository authentication type %q is not supported", auth.Type) + case corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_UNSPECIFIED: + return nil, true, nil + default: + return nil, false, status.Errorf(codes.Internal, "Unsupported package repository authentication type: %q", auth.Type) + } + } + return secret, isSameSecret, nil +} + +func getRepoTlsConfigAndAuthWithUserManagedSecrets(secret *apiv1.Secret) (*corev1.PackageRepositoryTlsConfig, *corev1.PackageRepositoryAuth, error) { + var tlsConfig *corev1.PackageRepositoryTlsConfig + auth := &corev1.PackageRepositoryAuth{ + Type: corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_UNSPECIFIED, + } + + if _, ok := secret.Data["caFile"]; ok { + tlsConfig = &corev1.PackageRepositoryTlsConfig{ + // flux plug in doesn't support this option + InsecureSkipVerify: false, + PackageRepoTlsConfigOneOf: &corev1.PackageRepositoryTlsConfig_SecretRef{ + SecretRef: &corev1.SecretKeyReference{ + Name: secret.Name, + Key: "caFile", + }, + }, + } + } + if _, ok := secret.Data["certFile"]; ok { + if _, ok = secret.Data["keyFile"]; ok { + auth.Type = corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_TLS + auth.PackageRepoAuthOneOf = &corev1.PackageRepositoryAuth_SecretRef{ + SecretRef: &corev1.SecretKeyReference{Name: secret.Name}, + } + } + } else if _, ok := secret.Data["username"]; ok { + if _, ok = secret.Data["password"]; ok { + auth.Type = corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_BASIC_AUTH + auth.PackageRepoAuthOneOf = &corev1.PackageRepositoryAuth_SecretRef{ + SecretRef: &corev1.SecretKeyReference{Name: secret.Name}, + } + } + } else { + log.Warning("Unrecognized type of secret [%s]", secret.Name) + } + return tlsConfig, auth, nil +} + +// TODO (gfichtenolt) Per slack discussion +// In fact, keeping the existing API might mean we could return exactly what it already does today +// (i.e. all secrets) if called with an extra explicit option (includeSecrets=true in the request +// message, not sure, similar to kubectl config view --raw) and by default the secrets are REDACTED +// as you mention? This would mean clients will by default see only REDACTED secrets, +// but can request the full sensitive data when necessary? +func getRepoTlsConfigAndAuthWithKubeappsManagedSecrets(secret *apiv1.Secret) (*corev1.PackageRepositoryTlsConfig, *corev1.PackageRepositoryAuth, error) { + var tlsConfig *corev1.PackageRepositoryTlsConfig + auth := &corev1.PackageRepositoryAuth{ + Type: corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_UNSPECIFIED, + } + + if _, ok := secret.Data["caFile"]; ok { + tlsConfig = &corev1.PackageRepositoryTlsConfig{ + // flux plug in doesn't support InsecureSkipVerify option + InsecureSkipVerify: false, + PackageRepoTlsConfigOneOf: &corev1.PackageRepositoryTlsConfig_CertAuthority{ + CertAuthority: redactedString, + }, + } + } + + if _, ok := secret.Data["certFile"]; ok { + if _, ok := secret.Data["keyFile"]; ok { + auth.Type = corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_TLS + auth.PackageRepoAuthOneOf = &corev1.PackageRepositoryAuth_TlsCertKey{ + TlsCertKey: &corev1.TlsCertKey{ + Cert: redactedString, + Key: redactedString, + }, + } + } + } else if _, ok := secret.Data["username"]; ok { + if _, ok := secret.Data["password"]; ok { + auth.Type = corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_BASIC_AUTH + auth.PackageRepoAuthOneOf = &corev1.PackageRepositoryAuth_UsernamePassword{ + UsernamePassword: &corev1.UsernamePassword{ + Username: redactedString, + Password: redactedString, + }, + } + } + } else if _, ok := secret.Data[apiv1.DockerConfigJsonKey]; ok { + auth.Type = corev1.PackageRepositoryAuth_PACKAGE_REPOSITORY_AUTH_TYPE_DOCKER_CONFIG_JSON + auth.PackageRepoAuthOneOf = &corev1.PackageRepositoryAuth_DockerCreds{ + DockerCreds: &corev1.DockerCredentials{ + Username: redactedString, + Password: redactedString, + Server: redactedString, + Email: redactedString, + }, + } + } else { + log.Warning("Unrecognized type of secret: [%s]", secret.Name) + } + return tlsConfig, auth, nil +} + +func isSecretKubeappsManaged(secret *apiv1.Secret, repo *sourcev1.HelmRepository) bool { + if !metav1.IsControlledBy(secret, repo) { + return false + } + if managedby := secret.GetAnnotations()[annotationManagedByKey]; managedby != annotationManagedByValue { + return false + } + return true +} + +// "Local" in the sense of no namespace is specified +func newLocalOpaqueSecret(ownerRepo types.NamespacedName) *apiv1.Secret { + return &apiv1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + GenerateName: ownerRepo.Name + "-", + Annotations: map[string]string{ + annotationManagedByKey: annotationManagedByValue, + }, + }, + Type: apiv1.SecretTypeOpaque, + Data: map[string][]byte{}, + } +} + +// "Local" in the sense of no namespace is specified +func newLocalDockerConfigJsonSecret(ownerRepo types.NamespacedName) *apiv1.Secret { + return &apiv1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + GenerateName: ownerRepo.Name + "-", + Annotations: map[string]string{ + annotationManagedByKey: annotationManagedByValue, + }, + }, + Type: apiv1.SecretTypeDockerConfigJson, + Data: map[string][]byte{}, + } +} diff --git a/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/repo_integration_test.go b/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/repo_integration_test.go index 47b56bcbbb9..1d30430f503 100644 --- a/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/repo_integration_test.go +++ b/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/repo_integration_test.go @@ -191,10 +191,7 @@ func TestKindClusterAddPackageRepository(t *testing.T) { t.Fatalf("Environment variables GITHUB_USER and GITHUB_TOKEN need to be set to run this test") } - // TODO: probably requires TLS - gcp_host := "us-west1-docker.pkg.dev" - gcp_user := "" - gcp_pwd := "" + gcp_host, gcp_user, gcp_pwd := "us-west1-docker.pkg.dev", "", "" testCases := []struct { testName string @@ -203,7 +200,6 @@ func TestKindClusterAddPackageRepository(t *testing.T) { expectedResponse *corev1.AddPackageRepositoryResponse expectedStatusCode codes.Code expectedReconcileFailure bool - userManagedSecrets bool }{ { testName: "add repo test (simplest case)", @@ -233,16 +229,6 @@ func TestKindClusterAddPackageRepository(t *testing.T) { }, "foo", "bar"), expectedResponse: add_repo_expected_resp_5, expectedStatusCode: codes.OK, - userManagedSecrets: true, - }, - { - testName: "package repository with basic auth and existing secret (kubeapps managed secrets)", - request: add_repo_req_18, - existingSecret: newBasicAuthSecret(types.NamespacedName{ - Name: "secret-1", - Namespace: "default", - }, "foo", "bar"), - expectedStatusCode: codes.InvalidArgument, }, { testName: "package repository with TLS", @@ -253,16 +239,6 @@ func TestKindClusterAddPackageRepository(t *testing.T) { }, pub, priv, ca), expectedResponse: add_repo_expected_resp_5, expectedStatusCode: codes.OK, - userManagedSecrets: true, - }, - { - testName: "package repository with TLS (kubeapps managed secrets)", - request: add_repo_req_19, - existingSecret: newTlsSecret(types.NamespacedName{ - Name: "secret-2", - Namespace: "default", - }, pub, priv, ca), - expectedStatusCode: codes.InvalidArgument, }, { testName: "add OCI repo test (simplest case)", @@ -285,7 +261,6 @@ func TestKindClusterAddPackageRepository(t *testing.T) { }, ghUser, ghToken), expectedResponse: add_repo_expected_resp_8, expectedStatusCode: codes.OK, - userManagedSecrets: true, }, { testName: "test add OCI repo with dockerconfigjson secret (kubeapps managed)", @@ -302,7 +277,6 @@ func TestKindClusterAddPackageRepository(t *testing.T) { }, "ghcr.io", ghUser, ghToken), expectedResponse: add_repo_expected_resp_10, expectedStatusCode: codes.OK, - userManagedSecrets: true, }, { testName: "test add OCI repo from harbor registry with dockerconfigjson secret (kubeapps managed)", @@ -336,12 +310,21 @@ func TestKindClusterAddPackageRepository(t *testing.T) { } } - setUserManagedSecretsAndCleanup(t, fluxPluginReposClient, tc.userManagedSecrets) - grpcContext, cancel := context.WithTimeout(grpcContext, defaultContextTimeout) defer cancel() resp, err := fluxPluginReposClient.AddPackageRepository(grpcContext, tc.request) + if err == nil { + t.Cleanup(func() { + err := kubeDeleteHelmRepository(t, types.NamespacedName{ + Name: tc.request.Name, + Namespace: tc.request.Context.Namespace, + }) + if err != nil { + t.Logf("Failed to delete helm source due to [%v]", err) + } + }) + } if tc.expectedStatusCode != codes.OK { if status.Code(err) != tc.expectedStatusCode { t.Fatalf("Expected %v, got: %v", tc.expectedStatusCode, err) @@ -350,15 +333,7 @@ func TestKindClusterAddPackageRepository(t *testing.T) { } else if err != nil { t.Fatal(err) } - t.Cleanup(func() { - err := kubeDeleteHelmRepository(t, types.NamespacedName{ - Name: tc.request.Name, - Namespace: tc.request.Context.Namespace, - }) - if err != nil { - t.Logf("Failed to delete helm source due to [%v]", err) - } - }) + opt1 := cmpopts.IgnoreUnexported( corev1.AddPackageRepositoryResponse{}, corev1.Context{}, @@ -395,16 +370,16 @@ func TestKindClusterGetPackageRepositoryDetail(t *testing.T) { } testCases := []struct { - testName string - request *corev1.GetPackageRepositoryDetailRequest - repoName string - repoType string - repoUrl string - unauthorized bool - expectedResponse *corev1.GetPackageRepositoryDetailResponse - expectedStatusCode codes.Code - existingSecret *apiv1.Secret - userManagedSecrets bool + testName string + request *corev1.GetPackageRepositoryDetailRequest + repoName string + repoType string + repoUrl string + unauthorized bool + expectedResponse *corev1.GetPackageRepositoryDetailResponse + expectedStatusCode codes.Code + existingSecret *apiv1.Secret + isSecretKubeappsManaged bool }{ { testName: "gets detail for podinfo package repository", @@ -441,7 +416,6 @@ func TestKindClusterGetPackageRepositoryDetail(t *testing.T) { Name: "secret-1", Namespace: "TBD", }, "foo", "bar"), - userManagedSecrets: true, }, { testName: "get detail succeeds for podinfo basic auth package repository with creds (kubeapps managed secrets)", @@ -452,8 +426,8 @@ func TestKindClusterGetPackageRepositoryDetail(t *testing.T) { expectedResponse: get_repo_detail_resp_14a, existingSecret: newBasicAuthSecret(types.NamespacedName{ Name: "secret-1", - Namespace: "TBD", - }, "foo", "bar"), + Namespace: "TBD"}, "foo", "bar"), + isSecretKubeappsManaged: true, }, { testName: "get detail returns NotFound error for wrong repo", @@ -497,8 +471,9 @@ func TestKindClusterGetPackageRepositoryDetail(t *testing.T) { Name: "secret-1", Namespace: "TBD", }, ghUser, ghToken), - expectedStatusCode: codes.OK, - expectedResponse: get_repo_detail_resp_17, + expectedStatusCode: codes.OK, + expectedResponse: get_repo_detail_resp_17, + isSecretKubeappsManaged: true, }, { testName: "get details for OCI repo hosted on github with docker config json cred", @@ -510,8 +485,9 @@ func TestKindClusterGetPackageRepositoryDetail(t *testing.T) { Name: "secret-1", Namespace: "TBD", }, "ghcr.io", ghUser, ghToken), - expectedStatusCode: codes.OK, - expectedResponse: get_repo_detail_resp_18, + expectedStatusCode: codes.OK, + expectedResponse: get_repo_detail_resp_18, + isSecretKubeappsManaged: true, }, { testName: "get details for OCI repo hosted on harbor with docker config json cred", @@ -523,8 +499,9 @@ func TestKindClusterGetPackageRepositoryDetail(t *testing.T) { Name: "secret-1", Namespace: "TBD", }, harbor_host, harbor_admin_user, harbor_admin_pwd), - expectedStatusCode: codes.OK, - expectedResponse: get_repo_detail_resp_20, + expectedStatusCode: codes.OK, + expectedResponse: get_repo_detail_resp_20, + isSecretKubeappsManaged: true, }, } @@ -562,13 +539,26 @@ func TestKindClusterGetPackageRepositoryDetail(t *testing.T) { secretName = tc.existingSecret.Name } - if err = kubeAddHelmRepositoryAndCleanup(t, types.NamespacedName{ + repoName := types.NamespacedName{ Name: tc.repoName, Namespace: repoNamespace, - }, tc.repoType, tc.repoUrl, secretName, 0); err != nil { + } + + if err = kubeAddHelmRepositoryAndCleanup(t, repoName, tc.repoType, tc.repoUrl, secretName, 0); err != nil { t.Fatal(err) } + if tc.existingSecret != nil && tc.isSecretKubeappsManaged { + if repo, err := kubeGetHelmRepository(t, repoName); err != nil { + t.Fatal(err) + } else if err = kubeSetKubeappsManagedSecretOwnerRef( + t, + types.NamespacedName{Name: secretName, Namespace: repoNamespace}, + repo); err != nil { + t.Fatal(err) + } + } + tc.request.PackageRepoRef.Context.Namespace = repoNamespace if tc.expectedResponse != nil { tc.expectedResponse.Detail.PackageRepoRef.Context.Namespace = repoNamespace @@ -581,8 +571,6 @@ func TestKindClusterGetPackageRepositoryDetail(t *testing.T) { grpcCtx = grpcAdmin } - setUserManagedSecretsAndCleanup(t, fluxPluginReposClient, tc.userManagedSecrets) - var resp *corev1.GetPackageRepositoryDetailResponse for { grpcCtx, cancel := context.WithTimeout(grpcCtx, defaultContextTimeout) @@ -973,6 +961,18 @@ func TestKindClusterUpdatePackageRepository(t *testing.T) { tc.repoType, tc.repoUrl, oldSecretName, 0); err != nil { t.Fatal(err) } + + if !tc.userManagedSecrets && tc.oldSecret != nil { + if repo, err := kubeGetHelmRepository(t, name); err != nil { + t.Fatal(err) + } else if err = kubeSetKubeappsManagedSecretOwnerRef( + t, + types.NamespacedName{Name: oldSecretName, Namespace: repoNamespace}, + repo); err != nil { + t.Fatal(err) + } + } + // wait until this repo reaches 'Ready' state so that long indexation process kicks in err := kubeWaitUntilHelmRepositoryIsReady(t, name) if err != nil { @@ -993,8 +993,6 @@ func TestKindClusterUpdatePackageRepository(t *testing.T) { grpcCtx = grpcAdmin } - setUserManagedSecretsAndCleanup(t, fluxPluginReposClient, tc.userManagedSecrets) - tc.request.PackageRepoRef.Context.Namespace = repoNamespace if tc.expectedResponse != nil { tc.expectedResponse.PackageRepoRef.Context.Namespace = repoNamespace @@ -1162,7 +1160,7 @@ func TestKindClusterDeletePackageRepository(t *testing.T) { } else if !tc.userManagedSecrets && tc.oldSecret != nil { if repo, err := kubeGetHelmRepository(t, name); err != nil { t.Fatal(err) - } else if err = kubeSetSecretOwnerRef(t, types.NamespacedName{ + } else if err = kubeSetKubeappsManagedSecretOwnerRef(t, types.NamespacedName{ Namespace: tc.oldSecret.Namespace, Name: tc.oldSecret.Name}, repo); err != nil { t.Fatal(err) @@ -1185,8 +1183,6 @@ func TestKindClusterDeletePackageRepository(t *testing.T) { grpcCtx = grpcAdmin } - setUserManagedSecretsAndCleanup(t, fluxPluginReposClient, tc.userManagedSecrets) - tc.request.PackageRepoRef.Context.Namespace = repoNamespace grpcCtx, cancel := context.WithTimeout(grpcCtx, defaultContextTimeout) @@ -1256,6 +1252,7 @@ func TestKindClusterUpdatePackageRepoSecretUnchanged(t *testing.T) { request := update_repo_req_17 repoName := "my-podinfo-6" repoUrl := podinfo_basic_auth_repo_url + // this is a kubeapps managed secret oldSecret := newBasicAuthSecret(types.NamespacedName{ Name: "secret-1", Namespace: "TBD"}, "foo", "bar") @@ -1295,7 +1292,14 @@ func TestKindClusterUpdatePackageRepoSecretUnchanged(t *testing.T) { t.Fatal(err) } - setUserManagedSecretsAndCleanup(t, fluxPluginReposClient, false) + if repo, err := kubeGetHelmRepository(t, name); err != nil { + t.Fatal(err) + } else if err = kubeSetKubeappsManagedSecretOwnerRef( + t, + types.NamespacedName{Name: oldSecretName, Namespace: repoNamespace}, + repo); err != nil { + t.Fatal(err) + } request.PackageRepoRef.Context.Namespace = repoNamespace expectedResponse.PackageRepoRef.Context.Namespace = repoNamespace @@ -1491,36 +1495,6 @@ func TestKindClusterAddTagsToOciRepository(t *testing.T) { }) } -func setUserManagedSecrets(t *testing.T, fluxPluginReposClient v1alpha1.FluxV2RepositoriesServiceClient, value bool) bool { - ctx, cancel := context.WithTimeout(context.Background(), defaultContextTimeout) - defer cancel() - - oldValue, err := fluxPluginReposClient.SetUserManagedSecrets( - ctx, &v1alpha1.SetUserManagedSecretsRequest{Value: value}) - if err != nil { - t.Fatal(err) - } - return oldValue.Value -} - -func setUserManagedSecretsAndCleanup(t *testing.T, fluxPluginReposClient v1alpha1.FluxV2RepositoriesServiceClient, value bool) { - ctx, cancel := context.WithTimeout(context.Background(), defaultContextTimeout) - defer cancel() - - oldValue := setUserManagedSecrets(t, fluxPluginReposClient, value) - - t.Cleanup(func() { - ctx, cancel = context.WithTimeout(context.Background(), defaultContextTimeout) - defer cancel() - - _, err := fluxPluginReposClient.SetUserManagedSecrets( - ctx, &v1alpha1.SetUserManagedSecretsRequest{Value: oldValue}) - if err != nil { - t.Fatalf("Failed to reset user managed secrets flag back to [%t] due to: %+v", oldValue, err) - } - }) -} - func waitForRepoToReconcileWithSuccess(t *testing.T, fluxPluginReposClient v1alpha1.FluxV2RepositoriesServiceClient, ctx context.Context, name, namespace string) *corev1.GetPackageRepositoryDetailResponse { var actualDetail *corev1.GetPackageRepositoryDetailResponse var err error diff --git a/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/repo_test.go b/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/repo_test.go index 8270b155c46..7b4fd2bcc5c 100644 --- a/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/repo_test.go +++ b/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/repo_test.go @@ -6,8 +6,6 @@ package main import ( "context" "fmt" - authorizationv1 "k8s.io/api/authorization/v1" - k8stesting "k8s.io/client-go/testing" "net/http" "net/http/httptest" "os" @@ -15,6 +13,9 @@ import ( "testing" "time" + authorizationv1 "k8s.io/api/authorization/v1" + k8stesting "k8s.io/client-go/testing" + fluxmeta "github.com/fluxcd/pkg/apis/meta" sourcev1 "github.com/fluxcd/source-controller/api/v1beta2" redismock "github.com/go-redis/redismock/v8" @@ -1226,16 +1227,17 @@ func TestAddPackageRepository(t *testing.T) { request: add_repo_req_6(ca), expectedResponse: add_repo_expected_resp, expectedRepo: &add_repo_2, - expectedCreatedSecret: setSecretOwnerRef("bar", + expectedCreatedSecret: setSecretManagedByKubeapps(setSecretOwnerRef( + "bar", newTlsSecret(types.NamespacedName{ Name: "bar-", - Namespace: "foo"}, nil, nil, ca)), + Namespace: "foo"}, nil, nil, ca))), statusCode: codes.OK, }, { name: "errors when package repository with secret key reference (kubeapps managed secrets)", request: add_repo_req_7, - statusCode: codes.InvalidArgument, + statusCode: codes.NotFound, }, { name: "package repository with secret key reference", @@ -1257,17 +1259,18 @@ func TestAddPackageRepository(t *testing.T) { { name: "fails when package repository links to non-existing secret (kubeapps managed secrets)", request: add_repo_req_7, - statusCode: codes.InvalidArgument, + statusCode: codes.NotFound, }, { name: "package repository with basic auth and pass_credentials flag", request: add_repo_req_8, expectedResponse: add_repo_expected_resp, expectedRepo: &add_repo_4, - expectedCreatedSecret: setSecretOwnerRef("bar", + expectedCreatedSecret: setSecretManagedByKubeapps(setSecretOwnerRef( + "bar", newBasicAuthSecret(types.NamespacedName{ Name: "bar-", - Namespace: "foo"}, "baz", "zot")), + Namespace: "foo"}, "baz", "zot"))), statusCode: codes.OK, }, { @@ -1275,10 +1278,10 @@ func TestAddPackageRepository(t *testing.T) { request: add_repo_req_9(pub, priv), expectedResponse: add_repo_expected_resp, expectedRepo: &add_repo_2, - expectedCreatedSecret: setSecretOwnerRef("bar", + expectedCreatedSecret: setSecretManagedByKubeapps(setSecretOwnerRef("bar", newTlsSecret(types.NamespacedName{ Name: "bar-", - Namespace: "foo"}, pub, priv, nil)), + Namespace: "foo"}, pub, priv, nil))), statusCode: codes.OK, }, { @@ -1310,7 +1313,7 @@ func TestAddPackageRepository(t *testing.T) { { name: "package repository with basic auth and existing secret (kubeapps managed secrets)", request: add_repo_req_13, - statusCode: codes.InvalidArgument, + statusCode: codes.NotFound, }, { name: "errors when package repository with 1 secret for TLS CA and a different secret for basic auth (kubeapps managed secrets)", @@ -1344,6 +1347,11 @@ func TestAddPackageRepository(t *testing.T) { expectedRepo: &add_repo_7, statusCode: codes.OK, }, + { + name: "returns error when mix referenced secrets and user provided secret data", + request: add_repo_req_30, + statusCode: codes.InvalidArgument, + }, } for _, tc := range testCases { @@ -1356,7 +1364,6 @@ func TestAddPackageRepository(t *testing.T) { if err != nil { t.Fatalf("error instantiating the server: %v", err) } - s.pluginConfig.UserManagedSecrets = tc.userManagedSecrets nsname := types.NamespacedName{Namespace: tc.request.Context.Namespace, Name: tc.request.Name} if tc.statusCode == codes.OK { @@ -1526,9 +1533,11 @@ func TestGetPackageRepositoryDetail(t *testing.T) { repoIndex: testYaml("valid-index.yaml"), repoName: "repo-1", repoNamespace: "namespace-1", - repoSecret: newTlsSecret(types.NamespacedName{ - Name: "secret-1", - Namespace: "namespace-1"}, nil, nil, ca), + repoSecret: setSecretManagedByKubeapps(setSecretOwnerRef( + "repo1", + newTlsSecret(types.NamespacedName{ + Name: "secret-1", + Namespace: "namespace-1"}, nil, nil, ca))), request: get_repo_detail_req_1, expectedStatusCode: codes.OK, expectedResponse: get_repo_detail_resp_6a, @@ -1571,9 +1580,11 @@ func TestGetPackageRepositoryDetail(t *testing.T) { repoIndex: testYaml("valid-index.yaml"), repoName: "repo-1", repoNamespace: "namespace-1", - repoSecret: newTlsSecret(types.NamespacedName{ - Name: "secret-1", - Namespace: "namespace-1"}, pub, priv, nil), + repoSecret: setSecretManagedByKubeapps(setSecretOwnerRef( + "repo-1", + newTlsSecret(types.NamespacedName{ + Name: "secret-1", + Namespace: "namespace-1"}, pub, priv, nil))), request: get_repo_detail_req_1, expectedStatusCode: codes.OK, expectedResponse: get_repo_detail_resp_9a, @@ -1596,9 +1607,11 @@ func TestGetPackageRepositoryDetail(t *testing.T) { repoIndex: testYaml("valid-index.yaml"), repoName: "repo-1", repoNamespace: "namespace-1", - repoSecret: newBasicAuthSecret(types.NamespacedName{ - Name: "secret-1", - Namespace: "namespace-1"}, "foo", "bar"), + repoSecret: setSecretManagedByKubeapps(setSecretOwnerRef( + "repo-1", + newBasicAuthSecret(types.NamespacedName{ + Name: "secret-1", + Namespace: "namespace-1"}, "foo", "bar"))), request: get_repo_detail_req_1, expectedStatusCode: codes.OK, expectedResponse: get_repo_detail_resp_10a, @@ -1666,7 +1679,6 @@ func TestGetPackageRepositoryDetail(t *testing.T) { if err != nil { t.Fatalf("error instantiating the server: %v", err) } - s.pluginConfig.UserManagedSecrets = tc.userManagedSecrets ctx := context.Background() actualResp, err := s.GetPackageRepositoryDetail(ctx, tc.request) @@ -1953,9 +1965,11 @@ func TestUpdatePackageRepository(t *testing.T) { repoIndex: testYaml("valid-index.yaml"), repoName: "repo-1", repoNamespace: "namespace-1", - oldRepoSecret: newTlsSecret(types.NamespacedName{ - Name: "secret-1", - Namespace: "namespace-1"}, pub, priv, nil), + oldRepoSecret: setSecretManagedByKubeapps(setSecretOwnerRef( + "repo-1", + newTlsSecret(types.NamespacedName{ + Name: "secret-1", + Namespace: "namespace-1"}, pub, priv, nil))), request: update_repo_req_9, expectedStatusCode: codes.OK, expectedResponse: update_repo_resp_1, @@ -1966,9 +1980,11 @@ func TestUpdatePackageRepository(t *testing.T) { repoIndex: testYaml("valid-index.yaml"), repoName: "repo-1", repoNamespace: "namespace-1", - oldRepoSecret: newTlsSecret(types.NamespacedName{ - Name: "secret-1", - Namespace: "namespace-1"}, pub, priv, nil), + oldRepoSecret: setSecretManagedByKubeapps(setSecretOwnerRef( + "repo-1", + newTlsSecret(types.NamespacedName{ + Name: "secret-1", + Namespace: "namespace-1"}, pub, priv, nil))), request: update_repo_req_10, expectedStatusCode: codes.OK, expectedResponse: update_repo_resp_1, @@ -1988,14 +2004,49 @@ func TestUpdatePackageRepository(t *testing.T) { repoIndex: testYaml("valid-index.yaml"), repoName: "repo-1", repoNamespace: "namespace-1", - oldRepoSecret: newBasicAuthSecret(types.NamespacedName{ - Name: "secret-1", - Namespace: "namespace-1"}, "foo", "bar"), + oldRepoSecret: setSecretManagedByKubeapps(setSecretOwnerRef( + "repo-1", + newBasicAuthSecret(types.NamespacedName{ + Name: "secret-1", + Namespace: "namespace-1"}, "foo", "bar"))), request: update_repo_req_16, expectedStatusCode: codes.OK, expectedResponse: update_repo_resp_1, expectedDetail: update_repo_detail_15, }, + { + name: "returns error when mix referenced secrets and user provided secret data", + repoIndex: testYaml("valid-index.yaml"), + repoName: "repo-1", + repoNamespace: "namespace-1", + request: update_repo_req_19, + expectedStatusCode: codes.InvalidArgument, + }, + { + name: "update repository change Auth management mode (user-managed secrets)", + repoIndex: testYaml("valid-index.yaml"), + repoName: "repo-1", + repoNamespace: "namespace-1", + oldRepoSecret: newBasicAuthSecret(types.NamespacedName{ + Name: "secret-1", + Namespace: "namespace-1"}, "foo", "bar"), + request: update_repo_req_20, + expectedStatusCode: codes.InvalidArgument, + userManagedSecrets: true, + }, + { + name: "update repository change Auth management mode (kubeapps-managed secrets)", + repoIndex: testYaml("valid-index.yaml"), + repoName: "repo-1", + repoNamespace: "namespace-1", + oldRepoSecret: setSecretManagedByKubeapps(setSecretOwnerRef( + "repo-1", + newBasicAuthSecret(types.NamespacedName{ + Name: "secret-1", + Namespace: "namespace-1"}, "foo", "bar"))), + request: update_repo_req_21, + expectedStatusCode: codes.InvalidArgument, + }, } for _, tc := range testCases { @@ -2045,7 +2096,6 @@ func TestUpdatePackageRepository(t *testing.T) { if err != nil { t.Fatalf("error instantiating the server: %v", err) } - s.pluginConfig.UserManagedSecrets = tc.userManagedSecrets ctx := context.Background() actualResp, err := s.UpdatePackageRepository(ctx, tc.request) @@ -2175,7 +2225,6 @@ func TestDeletePackageRepository(t *testing.T) { if err != nil { t.Fatalf("error instantiating the server: %v", err) } - s.pluginConfig.UserManagedSecrets = tc.userManagedSecrets ctx := context.Background() ctrlClient, err := s.clientGetter.ControllerRuntime(ctx, s.kubeappsCluster) diff --git a/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/server.go b/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/server.go index 9bdddee17b3..78e40512380 100644 --- a/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/server.go +++ b/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/server.go @@ -6,6 +6,7 @@ package main import ( "context" "fmt" + "github.com/vmware-tanzu/kubeapps/cmd/kubeapps-apis/plugins/pkg/resources" "github.com/vmware-tanzu/kubeapps/cmd/kubeapps-apis/plugins/pkg/helm" @@ -679,16 +680,6 @@ func (s *Server) GetPackageRepositoryPermissions(ctx context.Context, request *c }, nil } -// This endpoint exists only for integration unit tests -func (s *Server) SetUserManagedSecrets(ctx context.Context, request *v1alpha1.SetUserManagedSecretsRequest) (*v1alpha1.SetUserManagedSecretsResponse, error) { - log.Infof("+fluxv2 SetUserManagedSecrets [%t]", request.Value) - oldVal := s.pluginConfig.UserManagedSecrets - s.pluginConfig.UserManagedSecrets = request.Value - return &v1alpha1.SetUserManagedSecretsResponse{ - Value: oldVal, - }, nil -} - // makes the server look like a repo event sink. Facilitates code reuse between // use cases when something happens in background as a result of a watch event, // aka an "out-of-band" interaction and use cases when the user wants something diff --git a/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/test_util_test.go b/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/test_util_test.go index 1c8da0f75a4..cd4f5464b55 100644 --- a/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/test_util_test.go +++ b/cmd/kubeapps-apis/plugins/fluxv2/packages/v1alpha1/test_util_test.go @@ -10,7 +10,6 @@ import ( "encoding/base64" "encoding/json" "fmt" - k8stesting "k8s.io/client-go/testing" "net/http" "os" "reflect" @@ -18,6 +17,8 @@ import ( "strings" "testing" + k8stesting "k8s.io/client-go/testing" + helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" sourcev1 "github.com/fluxcd/source-controller/api/v1beta2" "github.com/google/go-cmp/cmp" @@ -274,6 +275,20 @@ func newDockerConfigJsonSecret(name types.NamespacedName, server, user, password return s } +func setSecretManagedByKubeapps(secret *apiv1.Secret) *apiv1.Secret { + m := secret.GetAnnotations() + if m == nil { + m = make(map[string]string) + secret.SetAnnotations(m) + } + m[annotationManagedByKey] = annotationManagedByValue + return secret +} + +// TODO (gfichenholt) technically speaking this isn't quite right for a test case +// that actually involves non-fake k8s environment. +// In order for this to be 100% right, we need a repo object with a UID set up. But +// its good enough for a fake k8s environment, which is where this is used func setSecretOwnerRef(repoName string, secret *apiv1.Secret) *apiv1.Secret { tRue := true secret.OwnerReferences = []metav1.OwnerReference{ diff --git a/cmd/kubeapps-apis/proto/kubeappsapis/plugins/fluxv2/packages/v1alpha1/fluxv2.proto b/cmd/kubeapps-apis/proto/kubeappsapis/plugins/fluxv2/packages/v1alpha1/fluxv2.proto index bfc4e278ac0..e4898198f48 100644 --- a/cmd/kubeapps-apis/proto/kubeappsapis/plugins/fluxv2/packages/v1alpha1/fluxv2.proto +++ b/cmd/kubeapps-apis/proto/kubeappsapis/plugins/fluxv2/packages/v1alpha1/fluxv2.proto @@ -115,10 +115,6 @@ service FluxV2RepositoriesService { }; } - // this endpoint only exists for the purpose of integration tests - rpc SetUserManagedSecrets(SetUserManagedSecretsRequest) returns (SetUserManagedSecretsResponse) { - } - rpc GetPackageRepositoryPermissions(kubeappsapis.core.packages.v1alpha1.GetPackageRepositoryPermissionsRequest) returns (kubeappsapis.core.packages.v1alpha1.GetPackageRepositoryPermissionsResponse) { option (google.api.http) = { get: "/plugins/fluxv2/packages/v1alpha1/repositories/c/{context.cluster}/permissions" @@ -126,14 +122,6 @@ service FluxV2RepositoriesService { } } -message SetUserManagedSecretsRequest { - bool value = 1; -} - -message SetUserManagedSecretsResponse { - bool value = 1; -} - // Flux PackageRepositoryCustomDetail // // Custom details for a Flux Package repository diff --git a/dashboard/src/gen/kubeappsapis/plugins/fluxv2/packages/v1alpha1/fluxv2.ts b/dashboard/src/gen/kubeappsapis/plugins/fluxv2/packages/v1alpha1/fluxv2.ts index e7389e67272..4be3a0915ed 100644 --- a/dashboard/src/gen/kubeappsapis/plugins/fluxv2/packages/v1alpha1/fluxv2.ts +++ b/dashboard/src/gen/kubeappsapis/plugins/fluxv2/packages/v1alpha1/fluxv2.ts @@ -1,52 +1,45 @@ /* eslint-disable */ +import Long from "long"; import { grpc } from "@improbable-eng/grpc-web"; -import { BrowserHeaders } from "browser-headers"; import _m0 from "protobufjs/minimal"; import { - CreateInstalledPackageRequest, - CreateInstalledPackageResponse, - DeleteInstalledPackageRequest, - DeleteInstalledPackageResponse, - GetAvailablePackageDetailRequest, - GetAvailablePackageDetailResponse, GetAvailablePackageSummariesRequest, - GetAvailablePackageSummariesResponse, + GetAvailablePackageDetailRequest, GetAvailablePackageVersionsRequest, - GetAvailablePackageVersionsResponse, + GetInstalledPackageSummariesRequest, GetInstalledPackageDetailRequest, - GetInstalledPackageDetailResponse, + CreateInstalledPackageRequest, + UpdateInstalledPackageRequest, + DeleteInstalledPackageRequest, GetInstalledPackageResourceRefsRequest, - GetInstalledPackageResourceRefsResponse, - GetInstalledPackageSummariesRequest, + GetAvailablePackageSummariesResponse, + GetAvailablePackageDetailResponse, + GetAvailablePackageVersionsResponse, GetInstalledPackageSummariesResponse, - UpdateInstalledPackageRequest, + GetInstalledPackageDetailResponse, + CreateInstalledPackageResponse, UpdateInstalledPackageResponse, -} from "../../../../core/packages/v1alpha1/packages"; + DeleteInstalledPackageResponse, + GetInstalledPackageResourceRefsResponse, +} from "../../../../../kubeappsapis/core/packages/v1alpha1/packages"; import { AddPackageRepositoryRequest, - AddPackageRepositoryResponse, - DeletePackageRepositoryRequest, - DeletePackageRepositoryResponse, GetPackageRepositoryDetailRequest, - GetPackageRepositoryDetailResponse, - GetPackageRepositoryPermissionsRequest, - GetPackageRepositoryPermissionsResponse, GetPackageRepositorySummariesRequest, - GetPackageRepositorySummariesResponse, UpdatePackageRepositoryRequest, + DeletePackageRepositoryRequest, + GetPackageRepositoryPermissionsRequest, + AddPackageRepositoryResponse, + GetPackageRepositoryDetailResponse, + GetPackageRepositorySummariesResponse, UpdatePackageRepositoryResponse, -} from "../../../../core/packages/v1alpha1/repositories"; + DeletePackageRepositoryResponse, + GetPackageRepositoryPermissionsResponse, +} from "../../../../../kubeappsapis/core/packages/v1alpha1/repositories"; +import { BrowserHeaders } from "browser-headers"; export const protobufPackage = "kubeappsapis.plugins.fluxv2.packages.v1alpha1"; -export interface SetUserManagedSecretsRequest { - value: boolean; -} - -export interface SetUserManagedSecretsResponse { - value: boolean; -} - /** * Flux PackageRepositoryCustomDetail * @@ -67,113 +60,7 @@ export interface FluxPackageRepositoryCustomDetail { provider: string; } -function createBaseSetUserManagedSecretsRequest(): SetUserManagedSecretsRequest { - return { value: false }; -} - -export const SetUserManagedSecretsRequest = { - encode( - message: SetUserManagedSecretsRequest, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.value === true) { - writer.uint32(8).bool(message.value); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SetUserManagedSecretsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSetUserManagedSecretsRequest(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.value = reader.bool(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - - fromJSON(object: any): SetUserManagedSecretsRequest { - return { value: isSet(object.value) ? Boolean(object.value) : false }; - }, - - toJSON(message: SetUserManagedSecretsRequest): unknown { - const obj: any = {}; - message.value !== undefined && (obj.value = message.value); - return obj; - }, - - fromPartial, I>>( - object: I, - ): SetUserManagedSecretsRequest { - const message = createBaseSetUserManagedSecretsRequest(); - message.value = object.value ?? false; - return message; - }, -}; - -function createBaseSetUserManagedSecretsResponse(): SetUserManagedSecretsResponse { - return { value: false }; -} - -export const SetUserManagedSecretsResponse = { - encode( - message: SetUserManagedSecretsResponse, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.value === true) { - writer.uint32(8).bool(message.value); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SetUserManagedSecretsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSetUserManagedSecretsResponse(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.value = reader.bool(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - - fromJSON(object: any): SetUserManagedSecretsResponse { - return { value: isSet(object.value) ? Boolean(object.value) : false }; - }, - - toJSON(message: SetUserManagedSecretsResponse): unknown { - const obj: any = {}; - message.value !== undefined && (obj.value = message.value); - return obj; - }, - - fromPartial, I>>( - object: I, - ): SetUserManagedSecretsResponse { - const message = createBaseSetUserManagedSecretsResponse(); - message.value = object.value ?? false; - return message; - }, -}; - -function createBaseFluxPackageRepositoryCustomDetail(): FluxPackageRepositoryCustomDetail { - return { provider: "" }; -} +const baseFluxPackageRepositoryCustomDetail: object = { provider: "" }; export const FluxPackageRepositoryCustomDetail = { encode( @@ -189,7 +76,9 @@ export const FluxPackageRepositoryCustomDetail = { decode(input: _m0.Reader | Uint8Array, length?: number): FluxPackageRepositoryCustomDetail { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseFluxPackageRepositoryCustomDetail(); + const message = { + ...baseFluxPackageRepositoryCustomDetail, + } as FluxPackageRepositoryCustomDetail; while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { @@ -205,7 +94,15 @@ export const FluxPackageRepositoryCustomDetail = { }, fromJSON(object: any): FluxPackageRepositoryCustomDetail { - return { provider: isSet(object.provider) ? String(object.provider) : "" }; + const message = { + ...baseFluxPackageRepositoryCustomDetail, + } as FluxPackageRepositoryCustomDetail; + if (object.provider !== undefined && object.provider !== null) { + message.provider = String(object.provider); + } else { + message.provider = ""; + } + return message; }, toJSON(message: FluxPackageRepositoryCustomDetail): unknown { @@ -214,11 +111,17 @@ export const FluxPackageRepositoryCustomDetail = { return obj; }, - fromPartial, I>>( - object: I, + fromPartial( + object: DeepPartial, ): FluxPackageRepositoryCustomDetail { - const message = createBaseFluxPackageRepositoryCustomDetail(); - message.provider = object.provider ?? ""; + const message = { + ...baseFluxPackageRepositoryCustomDetail, + } as FluxPackageRepositoryCustomDetail; + if (object.provider !== undefined && object.provider !== null) { + message.provider = object.provider; + } else { + message.provider = ""; + } return message; }, }; @@ -617,11 +520,6 @@ export interface FluxV2RepositoriesService { request: DeepPartial, metadata?: grpc.Metadata, ): Promise; - /** this endpoint only exists for the purpose of integration tests */ - SetUserManagedSecrets( - request: DeepPartial, - metadata?: grpc.Metadata, - ): Promise; GetPackageRepositoryPermissions( request: DeepPartial, metadata?: grpc.Metadata, @@ -638,7 +536,6 @@ export class FluxV2RepositoriesServiceClientImpl implements FluxV2RepositoriesSe this.GetPackageRepositorySummaries = this.GetPackageRepositorySummaries.bind(this); this.UpdatePackageRepository = this.UpdatePackageRepository.bind(this); this.DeletePackageRepository = this.DeletePackageRepository.bind(this); - this.SetUserManagedSecrets = this.SetUserManagedSecrets.bind(this); this.GetPackageRepositoryPermissions = this.GetPackageRepositoryPermissions.bind(this); } @@ -697,17 +594,6 @@ export class FluxV2RepositoriesServiceClientImpl implements FluxV2RepositoriesSe ); } - SetUserManagedSecrets( - request: DeepPartial, - metadata?: grpc.Metadata, - ): Promise { - return this.rpc.unary( - FluxV2RepositoriesServiceSetUserManagedSecretsDesc, - SetUserManagedSecretsRequest.fromPartial(request), - metadata, - ); - } - GetPackageRepositoryPermissions( request: DeepPartial, metadata?: grpc.Metadata, @@ -835,28 +721,6 @@ export const FluxV2RepositoriesServiceDeletePackageRepositoryDesc: UnaryMethodDe } as any, }; -export const FluxV2RepositoriesServiceSetUserManagedSecretsDesc: UnaryMethodDefinitionish = { - methodName: "SetUserManagedSecrets", - service: FluxV2RepositoriesServiceDesc, - requestStream: false, - responseStream: false, - requestType: { - serializeBinary() { - return SetUserManagedSecretsRequest.encode(this).finish(); - }, - } as any, - responseType: { - deserializeBinary(data: Uint8Array) { - return { - ...SetUserManagedSecretsResponse.decode(data), - toObject() { - return this; - }, - }; - }, - } as any, -}; - export const FluxV2RepositoriesServiceGetPackageRepositoryPermissionsDesc: UnaryMethodDefinitionish = { methodName: "GetPackageRepositoryPermissions", @@ -902,7 +766,6 @@ export class GrpcWebImpl { debug?: boolean; metadata?: grpc.Metadata; - upStreamRetryCodes?: number[]; }; constructor( @@ -912,7 +775,6 @@ export class GrpcWebImpl { debug?: boolean; metadata?: grpc.Metadata; - upStreamRetryCodes?: number[]; }, ) { this.host = host; @@ -927,7 +789,10 @@ export class GrpcWebImpl { const request = { ..._request, ...methodDesc.requestType }; const maybeCombinedMetadata = metadata && this.options.metadata - ? new BrowserHeaders({ ...this.options?.metadata.headersMap, ...metadata?.headersMap }) + ? new BrowserHeaders({ + ...this.options?.metadata.headersMap, + ...metadata?.headersMap, + }) : metadata || this.options.metadata; return new Promise((resolve, reject) => { grpc.unary(methodDesc, { @@ -940,11 +805,9 @@ export class GrpcWebImpl { if (response.status === grpc.Code.OK) { resolve(response.message); } else { - const err = new GrpcWebError( - response.statusMessage, - response.status, - response.trailers, - ); + const err = new Error(response.statusMessage) as any; + err.code = response.status; + err.metadata = response.trailers; reject(err); } }, @@ -954,7 +817,6 @@ export class GrpcWebImpl { } type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; - export type DeepPartial = T extends Builtin ? T : T extends Array @@ -965,17 +827,7 @@ export type DeepPartial = T extends Builtin ? { [K in keyof T]?: DeepPartial } : Partial; -type KeysOfUnion = T extends T ? keyof T : never; -export type Exact = P extends Builtin - ? P - : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never }; - -function isSet(value: any): boolean { - return value !== null && value !== undefined; -} - -export class GrpcWebError extends Error { - constructor(message: string, public code: grpc.Code, public metadata: grpc.Metadata) { - super(message); - } +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); }