webhook config
diff --git a/test/control-plane/cp.yaml b/test/control-plane/cp.yaml
new file mode 100644
index 0000000..f8f113c
--- /dev/null
+++ b/test/control-plane/cp.yaml
@@ -0,0 +1,182 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+apiVersion: v1
+kind: Namespace
+metadata:
+ name: dubbo-system
+ labels:
+ dubbo.io/system-namespace: "true"
+
+---
+apiVersion: v1
+kind: Secret
+type: kubernetes.io/tls
+metadata:
+ name: dubbo-tls-cert
+ namespace: dubbo-system
+ labels:
+ app: dubbo-control-plane
+ app.kubernetes.io/name: dubbo
+ app.kubernetes.io/instance: dubbo
+data:
+ tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURhakNDQWxLZ0F3SUJBZ0lRYkRDREFhT29MVzlna0hvR2Nhb3VZVEFOQmdrcWhraUc5dzBCQVFzRkFEQVMKTVJBd0RnWURWUVFERXdkcmRXMWhMV05oTUI0WERUSTBNRE15TkRBM01qa3hNbG9YRFRNME1ETXlNakEzTWpreApNbG93SFRFYk1Ca0dBMVVFQXhNU2EzVnRZUzFqYjI1MGNtOXNMWEJzWVc1bE1JSUJJakFOQmdrcWhraUc5dzBCCkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTVCM0dzNjNSTEIrdnMycUlEM2N0N0t1dHZJYk5wWG5TOFhCVGhub1MKVkdoZlpiY0IzeXhGb0F2T1VqbHVSVkxyb3NiOGlDY1pmWGQ0eXFtRlVMNEFiZ1hHenUvRFMzcHdJZnZYTm50QwpaaFNWMDB3WTJvTWRMVXBHdERJOXRPVG1SQ3hqdlhnUWRHT0k1WHpiNi9JaStReDNjd0FxRDhNYnBZZUUzOVQ2CnQwZTJiWFRIUUE3SHdOQjNBV3dvMm1WQndZam9OY29YN1djUFdFeFM5TVM1cmxKOUo0elQwNURKVlZHdk5CcGkKb1ZoMExyWHVnanZnQjNZNDBxVUJ3aHpqS1VvVGhzeElMYVM2bFh5Q3p0TEJlZEx5dDJiU05kMnNETk02RWFnUgp4VkFPSDFuR25ZbjRSZVpuM0dvdmFyRlVaSjVrSVFBb2JXeUlqSm5Kc1F2bzlRSURBUUFCbzRHd01JR3RNQTRHCkExVWREd0VCL3dRRUF3SUZvREFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RBWUQKVlIwVEFRSC9CQUl3QURBZkJnTlZIU01FR0RBV2dCUU1Vdk9TaWZkY0M3VUo5VXJoYWg4MU5NM24rREJOQmdOVgpIUkVFUmpCRWdoNXJkVzFoTFdOdmJuUnliMnd0Y0d4aGJtVXVhM1Z0WVMxemVYTjBaVzJDSW10MWJXRXRZMjl1CmRISnZiQzF3YkdGdVpTNXJkVzFoTFhONWMzUmxiUzV6ZG1Nd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFMYnQKYXVaaUN1bExvWWpsOUt4NjhoQjc5K0JJS0I4NktjYTVBODJ2NThyTjA4UERvdnRnSmNYSTk4SVV6VzdPNEtCQwppUjNiaEFLaWNqVjVuNnlsaFY4U3pBQTBoZkhkcXNXY3NoaWJNT2dlaUtTMnU1RUZBWDBncjQ0cVpPQ3p4WTlVCnZVRHdZeCtHamNobkhoSzhRUUlhdmFoRVFQYXJ1d2ZTYzJyNlNBTTBJN3VSbTNEWVlWcXpMeTVzcmVHWkZrbGUKRW1qM3IrcGd0eEhCbTVKdCtGb0xCK3QzajZRMmVETkhrWGpKUU1YWnNrZGs5OWxHSzdIS1JaWkoxTFYyRTJKRwo0MHZuRVQyWSszQXdldXhvMGY1WjRnSGVXUm95WFBpUEdrWWNwRTEyaGZZT2dKV3d1bHo1UUR5c2lYd0RQV3lTCll0cEVFSTVqTmR2SUxpQmZkRDg9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
+ tls.key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBNUIzR3M2M1JMQit2czJxSUQzY3Q3S3V0dkliTnBYblM4WEJUaG5vU1ZHaGZaYmNCCjN5eEZvQXZPVWpsdVJWTHJvc2I4aUNjWmZYZDR5cW1GVUw0QWJnWEd6dS9EUzNwd0lmdlhObnRDWmhTVjAwd1kKMm9NZExVcEd0REk5dE9UbVJDeGp2WGdRZEdPSTVYemI2L0lpK1F4M2N3QXFEOE1icFllRTM5VDZ0MGUyYlhUSApRQTdId05CM0FXd28ybVZCd1lqb05jb1g3V2NQV0V4UzlNUzVybEo5SjR6VDA1REpWVkd2TkJwaW9WaDBMclh1CmdqdmdCM1k0MHFVQndoempLVW9UaHN4SUxhUzZsWHlDenRMQmVkTHl0MmJTTmQyc0ROTTZFYWdSeFZBT0gxbkcKblluNFJlWm4zR292YXJGVVpKNWtJUUFvYld5SWpKbkpzUXZvOVFJREFRQUJBb0lCQVFETytsVjRZcFlRT3cvbwo4eGhSTUFuelhESmZoTkRDL0M1eDgwRldHeHpXaVgxRmhTK2xsejMxWWNEcXlrRkxsVmxJY05SaGxWaURod3VLCmx4WG5sUDQrMWU3MWhJYm16VWxCRElqUlhqVjQrZVNYdTh3eE9CWVpLZlBOUEdqUTRZQXRDem5VaUVRbDFzbzMKcjNxOE13K1llYjlJRVRZWTV5Y0dvbGZsNEJFOGlaWmlTZGVMOHQ1NUEvVEszNTBwMWJoQzk4SzgyNTdqdkpFYgprK2ZYRFhWME9UdFRNdGVacU8yUjhmem1mQTdwWHJzSzhVc3JBR2VXVEVlbU5BOExTQ0pQU0RNR0hLU2FPUDFDCkp6SkMyL0QxeXBFbVdZQ3hPMitYTlh3Y1o5eUhpOVBCR2dRbUh0R3M1U280ZHBUWHltREM1N2dBRk9FSVQ4ZGoKd1NCTDBpRUJBb0dCQVBUdUVFS3ZCYkdHZXRQKzhZK2hGMm0rOEJUSUZuMkRqWSt0Z1k2dUlpQkZNejlXVHBLWApEK0YvNW9vQU9wNloyR1ZBOW1ENkdiRlVoR1VRUkQzMVJ4RkEzU3hZa2luR3BEWDFOUWNQMmhUbCtnbTM4ZmxQCnFpQzh2L3pBT2ZXblpseThUcWhXZ0k4ZWxqbk81WElIOWVFZUplN2Z2elN6ek4rblpvMHJQcnA1QW9HQkFPNXQKTENGSVdzVTlodTVuOVNPMGMrUmZHdjBEYkhkanhlcFVrSXZ6djAyOGl6ZEo5NEErZHVMM0ViM1BCdFZDeUltaQpncXRXMVVPMnJwdHdBM25icnM4RWN4ZXVSN1lWM28rOHJJT29sNnY4RFBSL1NqOXo2SWN6OHc2dFJHWFN1Z01wCnZrSCtBbEVaQm5JTXNFQVlweW1EcTQ1VUxONCsrY3NMcXlSKytNTmRBb0dBR0ErQzNXb2dIdzVjNXBKMjNHc3cKeDV5UUxScHl5eVd2TkZ3UkRCa2pGUlIzTWxPaUtGaGFvUVpWZVYwSVpTZ3J6OWFQM1hyMEp5MXNUQmxLK3VNcgpkaEJ2S2JvUnNiVG4wTDBqMW12Q09xZFU1cnVCTThLVnJkMmM1cEZqb0RRdnBCQ0RrWm5keXpGd0JJSEVuRzBYCnhHT1h5bDJFaFFMY3IyUGNlU1cwWmRFQ2dZQkQwQ2xORGhkRElrek9ZaU1IRkx3aHFDczA2MVJlWUxKYUE5TlkKK3VyZVlWSDNWOEpkWjJiSkJ4eTByNzF4eXB6ZkNLbkJzZURXY1k4WUJyUDJaTlZEYkRDUCs3SEp5RTZVODBUZAo3WVcyRk9wYVlCbnVFam1BdXZYV3B0RmRaS0lqWkN3SStRWVBxdDU2Y2NGdmVaT1I2ekZRT2dESTlZQjJqOHNOCmhrK2F3UUtCZ0JvRzE1d2JUcFE1SDI3aTVIb2xNcVRXRmVOcmJDVWVRaHFrUnZvR1M2cFBrZTgwNUpYZ3lKU3cKNDFic2ZsV3JaYk5Bd0FPMFd1ZlhUc1RnVDBZRDgzRHA5SEp0WmRIZWEyS0FoMFVxTXlUeEF4T3BrMU1CbHhSaQpSbnlKbC9kZGU2c2RBU1R4cFcrK3lpbEpTWEtHS1hHMUVDRWxLc3BvVnY3Q2hBaGRzU3lXCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==
+ ca.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURFRENDQWZpZ0F3SUJBZ0lSQUtFUngwdFRpUTlkK1Z1SXZDQkZJc1V3RFFZSktvWklodmNOQVFFTEJRQXcKRWpFUU1BNEdBMVVFQXhNSGEzVnRZUzFqWVRBZUZ3MHlOREF6TWpRd056STVNVEphRncwek5EQXpNakl3TnpJNQpNVEphTUJJeEVEQU9CZ05WQkFNVEIydDFiV0V0WTJFd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3CmdnRUtBb0lCQVFDMy96cnFjdUdMbmQ3c3EwcThNNEVSS2N6Nm1PWWpZZ3hLYUpNWXNGZ2dPS2tMLytGSXMydG0KVVcxa2tad3hkN1JRbWp6TFBqN0lGbDJVR3d6alBXM3M4L29mUE1CdUFabWVmZSttSkpYYTJvTGJ5MHhoVmRiQQpWM2JMczBiUEhWMlJXSk9aTmlxUk5LSXZQVDh6NWc3UGttOEJGanM4eVhlZ0pPT1hUUUtyeHZoWjFjVWxXTlBQCkFZbnhZbkozVjNOakdCbjlaUjhuZGZ0SnRjNkR4MU5aNlA2Sk01bEl1WlJGazM2WU1Eb0FOV3RPb1gzWXVERSsKMUpsaUFVTDRxWUZnQjYyMFBsNlNudmlOYnNPekVsTHhyOW5tbENhTjRkVS9IMkt4d2NXVjRXbUtqeDNMQUpXSgpJNExRL1RJUi8rVm8zMVk2TWZaT3lMR2VpNHdtOVpxVkFnTUJBQUdqWVRCZk1BNEdBMVVkRHdFQi93UUVBd0lDCnBEQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RHdZRFZSMFRBUUgvQkFVd0F3RUIKL3pBZEJnTlZIUTRFRmdRVURGTHprb24zWEF1MUNmVks0V29mTlRUTjUvZ3dEUVlKS29aSWh2Y05BUUVMQlFBRApnZ0VCQUJITVZvUFpQcVNJMkZzY01BUDh6MmkzVEg2MTE4bjVaMlc2b0pzUEVPR2tTQlRZc0lTcXVpNHp4NUxyCkFFK1R2TkM4YzdYQVI0Zk4wUmpEdmhDU1hudXlUVmZETHQ2UGEybkEzdE94aWtlbDJHNDYyMlkzaldoMCt5d1UKcit3UkwveXFxWnRjUUFCYnp5eTF2bXFpQWRvOTByVDVkYTRwVmJkSW9CNlp2VnlHRjFCcTRPc1poWllobkhUTQpuUG9RZW9aY0xYdlM5Z0lFb0lGaENkZzNhaDhNc2MwUEw5bDlzMHY5a293T1dYT2xrUno1SkJ5SG1VeXdRaEtrCkdlMVFJR1NIcFZ3OHV1UVZUMXJFbU9HRnVFVU1HeDZNRFJHSkwwUkxTMytMYTk2Y0w2WjQrejFkcVNCSlJVdUQKM0k4S29yTklkUTg1OHVGNHJjTndaOXllaUM4PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
+
+---
+---
+apiVersion: admissionregistration.k8s.io/v1
+kind: MutatingWebhookConfiguration
+metadata:
+ name: dubbo-admission-mutating-webhook-configuration
+ namespace: dubbo-system
+ labels:
+ app: dubbo-control-plane
+ app.kubernetes.io/name: dubbo
+ app.kubernetes.io/instance: dubbo
+webhooks:
+ - name: mesh.defaulter.dubbo-admission.dubbo.io
+ admissionReviewVersions: ["v1"]
+ failurePolicy: Fail
+ namespaceSelector:
+ matchExpressions:
+ - key: kubernetes.io/metadata.name
+ operator: NotIn
+ values: ["kube-system"]
+ clientConfig:
+ caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURFRENDQWZpZ0F3SUJBZ0lSQUtFUngwdFRpUTlkK1Z1SXZDQkZJc1V3RFFZSktvWklodmNOQVFFTEJRQXcKRWpFUU1BNEdBMVVFQXhNSGEzVnRZUzFqWVRBZUZ3MHlOREF6TWpRd056STVNVEphRncwek5EQXpNakl3TnpJNQpNVEphTUJJeEVEQU9CZ05WQkFNVEIydDFiV0V0WTJFd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3CmdnRUtBb0lCQVFDMy96cnFjdUdMbmQ3c3EwcThNNEVSS2N6Nm1PWWpZZ3hLYUpNWXNGZ2dPS2tMLytGSXMydG0KVVcxa2tad3hkN1JRbWp6TFBqN0lGbDJVR3d6alBXM3M4L29mUE1CdUFabWVmZSttSkpYYTJvTGJ5MHhoVmRiQQpWM2JMczBiUEhWMlJXSk9aTmlxUk5LSXZQVDh6NWc3UGttOEJGanM4eVhlZ0pPT1hUUUtyeHZoWjFjVWxXTlBQCkFZbnhZbkozVjNOakdCbjlaUjhuZGZ0SnRjNkR4MU5aNlA2Sk01bEl1WlJGazM2WU1Eb0FOV3RPb1gzWXVERSsKMUpsaUFVTDRxWUZnQjYyMFBsNlNudmlOYnNPekVsTHhyOW5tbENhTjRkVS9IMkt4d2NXVjRXbUtqeDNMQUpXSgpJNExRL1RJUi8rVm8zMVk2TWZaT3lMR2VpNHdtOVpxVkFnTUJBQUdqWVRCZk1BNEdBMVVkRHdFQi93UUVBd0lDCnBEQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RHdZRFZSMFRBUUgvQkFVd0F3RUIKL3pBZEJnTlZIUTRFRmdRVURGTHprb24zWEF1MUNmVks0V29mTlRUTjUvZ3dEUVlKS29aSWh2Y05BUUVMQlFBRApnZ0VCQUJITVZvUFpQcVNJMkZzY01BUDh6MmkzVEg2MTE4bjVaMlc2b0pzUEVPR2tTQlRZc0lTcXVpNHp4NUxyCkFFK1R2TkM4YzdYQVI0Zk4wUmpEdmhDU1hudXlUVmZETHQ2UGEybkEzdE94aWtlbDJHNDYyMlkzaldoMCt5d1UKcit3UkwveXFxWnRjUUFCYnp5eTF2bXFpQWRvOTByVDVkYTRwVmJkSW9CNlp2VnlHRjFCcTRPc1poWllobkhUTQpuUG9RZW9aY0xYdlM5Z0lFb0lGaENkZzNhaDhNc2MwUEw5bDlzMHY5a293T1dYT2xrUno1SkJ5SG1VeXdRaEtrCkdlMVFJR1NIcFZ3OHV1UVZUMXJFbU9HRnVFVU1HeDZNRFJHSkwwUkxTMytMYTk2Y0w2WjQrejFkcVNCSlJVdUQKM0k4S29yTklkUTg1OHVGNHJjTndaOXllaUM4PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
+ service:
+ namespace: dubbo-system
+ name: dubbo-control-plane
+ path: /default-dubbo-io-v1alpha1-mesh
+ rules:
+ - apiGroups:
+ - dubbo.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - meshes
+ sideEffects: None
+ - name: owner-reference.dubbo-admission.dubbo.io
+ admissionReviewVersions: ["v1"]
+ failurePolicy: Fail
+ namespaceSelector:
+ matchExpressions:
+ - key: kubernetes.io/metadata.name
+ operator: NotIn
+ values: ["dubbo-system"]
+ clientConfig:
+ caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURFRENDQWZpZ0F3SUJBZ0lSQUtFUngwdFRpUTlkK1Z1SXZDQkZJc1V3RFFZSktvWklodmNOQVFFTEJRQXcKRWpFUU1BNEdBMVVFQXhNSGEzVnRZUzFqWVRBZUZ3MHlOREF6TWpRd056STVNVEphRncwek5EQXpNakl3TnpJNQpNVEphTUJJeEVEQU9CZ05WQkFNVEIydDFiV0V0WTJFd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3CmdnRUtBb0lCQVFDMy96cnFjdUdMbmQ3c3EwcThNNEVSS2N6Nm1PWWpZZ3hLYUpNWXNGZ2dPS2tMLytGSXMydG0KVVcxa2tad3hkN1JRbWp6TFBqN0lGbDJVR3d6alBXM3M4L29mUE1CdUFabWVmZSttSkpYYTJvTGJ5MHhoVmRiQQpWM2JMczBiUEhWMlJXSk9aTmlxUk5LSXZQVDh6NWc3UGttOEJGanM4eVhlZ0pPT1hUUUtyeHZoWjFjVWxXTlBQCkFZbnhZbkozVjNOakdCbjlaUjhuZGZ0SnRjNkR4MU5aNlA2Sk01bEl1WlJGazM2WU1Eb0FOV3RPb1gzWXVERSsKMUpsaUFVTDRxWUZnQjYyMFBsNlNudmlOYnNPekVsTHhyOW5tbENhTjRkVS9IMkt4d2NXVjRXbUtqeDNMQUpXSgpJNExRL1RJUi8rVm8zMVk2TWZaT3lMR2VpNHdtOVpxVkFnTUJBQUdqWVRCZk1BNEdBMVVkRHdFQi93UUVBd0lDCnBEQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RHdZRFZSMFRBUUgvQkFVd0F3RUIKL3pBZEJnTlZIUTRFRmdRVURGTHprb24zWEF1MUNmVks0V29mTlRUTjUvZ3dEUVlKS29aSWh2Y05BUUVMQlFBRApnZ0VCQUJITVZvUFpQcVNJMkZzY01BUDh6MmkzVEg2MTE4bjVaMlc2b0pzUEVPR2tTQlRZc0lTcXVpNHp4NUxyCkFFK1R2TkM4YzdYQVI0Zk4wUmpEdmhDU1hudXlUVmZETHQ2UGEybkEzdE94aWtlbDJHNDYyMlkzaldoMCt5d1UKcit3UkwveXFxWnRjUUFCYnp5eTF2bXFpQWRvOTByVDVkYTRwVmJkSW9CNlp2VnlHRjFCcTRPc1poWllobkhUTQpuUG9RZW9aY0xYdlM5Z0lFb0lGaENkZzNhaDhNc2MwUEw5bDlzMHY5a293T1dYT2xrUno1SkJ5SG1VeXdRaEtrCkdlMVFJR1NIcFZ3OHV1UVZUMXJFbU9HRnVFVU1HeDZNRFJHSkwwUkxTMytMYTk2Y0w2WjQrejFkcVNCSlJVdUQKM0k4S29yTklkUTg1OHVGNHJjTndaOXllaUM4PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
+ service:
+ namespace: dubbo-system
+ name: dubbo-control-plane
+ path: /owner-reference-dubbo-io-v1alpha1
+ rules:
+ - apiGroups:
+ - dubbo.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ resources:
+ - conditionroutes
+ - dynamicconfigs
+ - tagroutes
+ sideEffects: None
+
+---
+apiVersion: admissionregistration.k8s.io/v1
+kind: ValidatingWebhookConfiguration
+metadata:
+ name: dubbo-validating-webhook-configuration
+ namespace: dubbo-system
+ labels:
+ app: dubbo-control-plane
+ app.kubernetes.io/name: dubbo
+ app.kubernetes.io/instance: dubbo
+webhooks:
+ - name: validator.dubbo-admission.dubbo.io
+ admissionReviewVersions: ["v1"]
+ failurePolicy: Fail
+ namespaceSelector:
+ matchExpressions:
+ - key: kubernetes.io/metadata.name
+ operator: NotIn
+ values: ["kube-system"]
+ clientConfig:
+ caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURFRENDQWZpZ0F3SUJBZ0lSQUtFUngwdFRpUTlkK1Z1SXZDQkZJc1V3RFFZSktvWklodmNOQVFFTEJRQXcKRWpFUU1BNEdBMVVFQXhNSGEzVnRZUzFqWVRBZUZ3MHlOREF6TWpRd056STVNVEphRncwek5EQXpNakl3TnpJNQpNVEphTUJJeEVEQU9CZ05WQkFNVEIydDFiV0V0WTJFd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3CmdnRUtBb0lCQVFDMy96cnFjdUdMbmQ3c3EwcThNNEVSS2N6Nm1PWWpZZ3hLYUpNWXNGZ2dPS2tMLytGSXMydG0KVVcxa2tad3hkN1JRbWp6TFBqN0lGbDJVR3d6alBXM3M4L29mUE1CdUFabWVmZSttSkpYYTJvTGJ5MHhoVmRiQQpWM2JMczBiUEhWMlJXSk9aTmlxUk5LSXZQVDh6NWc3UGttOEJGanM4eVhlZ0pPT1hUUUtyeHZoWjFjVWxXTlBQCkFZbnhZbkozVjNOakdCbjlaUjhuZGZ0SnRjNkR4MU5aNlA2Sk01bEl1WlJGazM2WU1Eb0FOV3RPb1gzWXVERSsKMUpsaUFVTDRxWUZnQjYyMFBsNlNudmlOYnNPekVsTHhyOW5tbENhTjRkVS9IMkt4d2NXVjRXbUtqeDNMQUpXSgpJNExRL1RJUi8rVm8zMVk2TWZaT3lMR2VpNHdtOVpxVkFnTUJBQUdqWVRCZk1BNEdBMVVkRHdFQi93UUVBd0lDCnBEQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RHdZRFZSMFRBUUgvQkFVd0F3RUIKL3pBZEJnTlZIUTRFRmdRVURGTHprb24zWEF1MUNmVks0V29mTlRUTjUvZ3dEUVlKS29aSWh2Y05BUUVMQlFBRApnZ0VCQUJITVZvUFpQcVNJMkZzY01BUDh6MmkzVEg2MTE4bjVaMlc2b0pzUEVPR2tTQlRZc0lTcXVpNHp4NUxyCkFFK1R2TkM4YzdYQVI0Zk4wUmpEdmhDU1hudXlUVmZETHQ2UGEybkEzdE94aWtlbDJHNDYyMlkzaldoMCt5d1UKcit3UkwveXFxWnRjUUFCYnp5eTF2bXFpQWRvOTByVDVkYTRwVmJkSW9CNlp2VnlHRjFCcTRPc1poWllobkhUTQpuUG9RZW9aY0xYdlM5Z0lFb0lGaENkZzNhaDhNc2MwUEw5bDlzMHY5a293T1dYT2xrUno1SkJ5SG1VeXdRaEtrCkdlMVFJR1NIcFZ3OHV1UVZUMXJFbU9HRnVFVU1HeDZNRFJHSkwwUkxTMytMYTk2Y0w2WjQrejFkcVNCSlJVdUQKM0k4S29yTklkUTg1OHVGNHJjTndaOXllaUM4PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
+ service:
+ namespace: dubbo-system
+ name: dubbo-control-plane
+ path: /validate-dubbo-io-v1alpha1
+ rules:
+ - apiGroups:
+ - dubbo.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ - DELETE
+ resources:
+ - conditionroutes
+ - dataplanes
+ - dataplaneinsights
+ - datasources
+ - dynamicconfigs
+ - mappings
+ - meshes
+ - meshinsights
+ - metadata
+ - secrets
+ - servicenamemappings
+ - tagroutes
+ - zoneegresses
+ - zoneingresses
+ - zoneingressinsights
+ - zoneinsights
+ - zones
+
+ sideEffects: None
+ - name: service.validator.dubbo-admission.dubbo.io
+ admissionReviewVersions: ["v1"]
+ failurePolicy: Ignore
+ namespaceSelector:
+ matchExpressions:
+ - key: kubernetes.io/metadata.name
+ operator: NotIn
+ values: ["kube-system"]
+ clientConfig:
+ caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURFRENDQWZpZ0F3SUJBZ0lSQUtFUngwdFRpUTlkK1Z1SXZDQkZJc1V3RFFZSktvWklodmNOQVFFTEJRQXcKRWpFUU1BNEdBMVVFQXhNSGEzVnRZUzFqWVRBZUZ3MHlOREF6TWpRd056STVNVEphRncwek5EQXpNakl3TnpJNQpNVEphTUJJeEVEQU9CZ05WQkFNVEIydDFiV0V0WTJFd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3CmdnRUtBb0lCQVFDMy96cnFjdUdMbmQ3c3EwcThNNEVSS2N6Nm1PWWpZZ3hLYUpNWXNGZ2dPS2tMLytGSXMydG0KVVcxa2tad3hkN1JRbWp6TFBqN0lGbDJVR3d6alBXM3M4L29mUE1CdUFabWVmZSttSkpYYTJvTGJ5MHhoVmRiQQpWM2JMczBiUEhWMlJXSk9aTmlxUk5LSXZQVDh6NWc3UGttOEJGanM4eVhlZ0pPT1hUUUtyeHZoWjFjVWxXTlBQCkFZbnhZbkozVjNOakdCbjlaUjhuZGZ0SnRjNkR4MU5aNlA2Sk01bEl1WlJGazM2WU1Eb0FOV3RPb1gzWXVERSsKMUpsaUFVTDRxWUZnQjYyMFBsNlNudmlOYnNPekVsTHhyOW5tbENhTjRkVS9IMkt4d2NXVjRXbUtqeDNMQUpXSgpJNExRL1RJUi8rVm8zMVk2TWZaT3lMR2VpNHdtOVpxVkFnTUJBQUdqWVRCZk1BNEdBMVVkRHdFQi93UUVBd0lDCnBEQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RHdZRFZSMFRBUUgvQkFVd0F3RUIKL3pBZEJnTlZIUTRFRmdRVURGTHprb24zWEF1MUNmVks0V29mTlRUTjUvZ3dEUVlKS29aSWh2Y05BUUVMQlFBRApnZ0VCQUJITVZvUFpQcVNJMkZzY01BUDh6MmkzVEg2MTE4bjVaMlc2b0pzUEVPR2tTQlRZc0lTcXVpNHp4NUxyCkFFK1R2TkM4YzdYQVI0Zk4wUmpEdmhDU1hudXlUVmZETHQ2UGEybkEzdE94aWtlbDJHNDYyMlkzaldoMCt5d1UKcit3UkwveXFxWnRjUUFCYnp5eTF2bXFpQWRvOTByVDVkYTRwVmJkSW9CNlp2VnlHRjFCcTRPc1poWllobkhUTQpuUG9RZW9aY0xYdlM5Z0lFb0lGaENkZzNhaDhNc2MwUEw5bDlzMHY5a293T1dYT2xrUno1SkJ5SG1VeXdRaEtrCkdlMVFJR1NIcFZ3OHV1UVZUMXJFbU9HRnVFVU1HeDZNRFJHSkwwUkxTMytMYTk2Y0w2WjQrejFkcVNCSlJVdUQKM0k4S29yTklkUTg1OHVGNHJjTndaOXllaUM4PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
+ service:
+ namespace: dubbo-system
+ name: dubbo-control-plane
+ path: /validate-v1-service
+ rules:
+ - apiGroups:
+ - ""
+ apiVersions:
+ - v1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - services
+ sideEffects: None
diff --git a/test/control-plane/dubbo.io_conditionroutes.yaml b/test/control-plane/dubbo.io_conditionroutes.yaml
new file mode 100644
index 0000000..053bce0
--- /dev/null
+++ b/test/control-plane/dubbo.io_conditionroutes.yaml
@@ -0,0 +1,50 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.14.0
+ name: conditionroutes.dubbo.io
+spec:
+ group: dubbo.io
+ names:
+ categories:
+ - dubbo
+ kind: ConditionRoute
+ listKind: ConditionRouteList
+ plural: conditionroutes
+ singular: conditionroute
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ mesh:
+ description: |-
+ Mesh is the name of the dubbo mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Dubbo ConditionRoute resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/test/control-plane/dubbo.io_dataplaneinsights.yaml b/test/control-plane/dubbo.io_dataplaneinsights.yaml
new file mode 100644
index 0000000..9bca9f4
--- /dev/null
+++ b/test/control-plane/dubbo.io_dataplaneinsights.yaml
@@ -0,0 +1,50 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.14.0
+ name: dataplaneinsights.dubbo.io
+spec:
+ group: dubbo.io
+ names:
+ categories:
+ - dubbo
+ kind: DataplaneInsight
+ listKind: DataplaneInsightList
+ plural: dataplaneinsights
+ singular: dataplaneinsight
+ scope: Namespaced
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ mesh:
+ description: |-
+ Mesh is the name of the dubbo mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ status:
+ description: Status is the status the dubbo resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/test/control-plane/dubbo.io_dataplanes.yaml b/test/control-plane/dubbo.io_dataplanes.yaml
new file mode 100644
index 0000000..17c4922
--- /dev/null
+++ b/test/control-plane/dubbo.io_dataplanes.yaml
@@ -0,0 +1,50 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.14.0
+ name: dataplanes.dubbo.io
+spec:
+ group: dubbo.io
+ names:
+ categories:
+ - dubbo
+ kind: Dataplane
+ listKind: DataplaneList
+ plural: dataplanes
+ singular: dataplane
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ mesh:
+ description: |-
+ Mesh is the name of the dubbo mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Dubbo Dataplane resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/test/control-plane/dubbo.io_datasources.yaml b/test/control-plane/dubbo.io_datasources.yaml
new file mode 100644
index 0000000..8d71a7d
--- /dev/null
+++ b/test/control-plane/dubbo.io_datasources.yaml
@@ -0,0 +1,50 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.14.0
+ name: datasources.dubbo.io
+spec:
+ group: dubbo.io
+ names:
+ categories:
+ - dubbo
+ kind: DataSource
+ listKind: DataSourceList
+ plural: datasources
+ singular: datasource
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ mesh:
+ description: |-
+ Mesh is the name of the dubbo mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Dubbo DataSource resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/test/control-plane/dubbo.io_dynamicconfigs.yaml b/test/control-plane/dubbo.io_dynamicconfigs.yaml
new file mode 100644
index 0000000..1b0847b
--- /dev/null
+++ b/test/control-plane/dubbo.io_dynamicconfigs.yaml
@@ -0,0 +1,50 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.14.0
+ name: dynamicconfigs.dubbo.io
+spec:
+ group: dubbo.io
+ names:
+ categories:
+ - dubbo
+ kind: DynamicConfig
+ listKind: DynamicConfigList
+ plural: dynamicconfigs
+ singular: dynamicconfig
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ mesh:
+ description: |-
+ Mesh is the name of the dubbo mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Dubbo DynamicConfig resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/test/control-plane/dubbo.io_mappings.yaml b/test/control-plane/dubbo.io_mappings.yaml
new file mode 100644
index 0000000..b2dcd43
--- /dev/null
+++ b/test/control-plane/dubbo.io_mappings.yaml
@@ -0,0 +1,50 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.14.0
+ name: mappings.dubbo.io
+spec:
+ group: dubbo.io
+ names:
+ categories:
+ - dubbo
+ kind: Mapping
+ listKind: MappingList
+ plural: mappings
+ singular: mapping
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ mesh:
+ description: |-
+ Mesh is the name of the dubbo mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Dubbo Mapping resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/test/control-plane/dubbo.io_meshes.yaml b/test/control-plane/dubbo.io_meshes.yaml
new file mode 100644
index 0000000..58f1aed
--- /dev/null
+++ b/test/control-plane/dubbo.io_meshes.yaml
@@ -0,0 +1,50 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.14.0
+ name: meshes.dubbo.io
+spec:
+ group: dubbo.io
+ names:
+ categories:
+ - dubbo
+ kind: Mesh
+ listKind: MeshList
+ plural: meshes
+ singular: mesh
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ mesh:
+ description: |-
+ Mesh is the name of the dubbo mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Dubbo Mesh resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/test/control-plane/dubbo.io_meshinsights.yaml b/test/control-plane/dubbo.io_meshinsights.yaml
new file mode 100644
index 0000000..6f7d40a
--- /dev/null
+++ b/test/control-plane/dubbo.io_meshinsights.yaml
@@ -0,0 +1,50 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.14.0
+ name: meshinsights.dubbo.io
+spec:
+ group: dubbo.io
+ names:
+ categories:
+ - dubbo
+ kind: MeshInsight
+ listKind: MeshInsightList
+ plural: meshinsights
+ singular: meshinsight
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ mesh:
+ description: |-
+ Mesh is the name of the dubbo mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Dubbo MeshInsight resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/test/control-plane/dubbo.io_metadata.yaml b/test/control-plane/dubbo.io_metadata.yaml
new file mode 100644
index 0000000..8ed6f08
--- /dev/null
+++ b/test/control-plane/dubbo.io_metadata.yaml
@@ -0,0 +1,50 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.14.0
+ name: metadata.dubbo.io
+spec:
+ group: dubbo.io
+ names:
+ categories:
+ - dubbo
+ kind: MetaData
+ listKind: MetaDataList
+ plural: metadata
+ singular: metadata
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ mesh:
+ description: |-
+ Mesh is the name of the dubbo mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Dubbo MetaData resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/test/control-plane/dubbo.io_secrets.yaml b/test/control-plane/dubbo.io_secrets.yaml
new file mode 100644
index 0000000..18e47cd
--- /dev/null
+++ b/test/control-plane/dubbo.io_secrets.yaml
@@ -0,0 +1,50 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.14.0
+ name: secrets.dubbo.io
+spec:
+ group: dubbo.io
+ names:
+ categories:
+ - dubbo
+ kind: Secret
+ listKind: SecretList
+ plural: secrets
+ singular: secret
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ mesh:
+ description: |-
+ Mesh is the name of the dubbo mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Dubbo Secret resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/test/control-plane/dubbo.io_servicenamemappings.yaml b/test/control-plane/dubbo.io_servicenamemappings.yaml
new file mode 100644
index 0000000..bac2250
--- /dev/null
+++ b/test/control-plane/dubbo.io_servicenamemappings.yaml
@@ -0,0 +1,59 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.14.0
+ name: servicenamemappings.dubbo.io
+spec:
+ group: dubbo.io
+ names:
+ categories:
+ - dubbo
+ kind: ServiceNameMapping
+ listKind: ServiceNameMappingList
+ plural: servicenamemappings
+ singular: servicenamemapping
+ scope: Namespaced
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Dubbo ServiceNameMapping
+ resource.
+ properties:
+ applicationNames:
+ items:
+ type: string
+ type: array
+ interfaceName:
+ type: string
+ namespace:
+ type: string
+ required:
+ - applicationNames
+ - interfaceName
+ - namespace
+ type: object
+ type: object
+ served: true
+ storage: true
diff --git a/test/control-plane/dubbo.io_tagroutes.yaml b/test/control-plane/dubbo.io_tagroutes.yaml
new file mode 100644
index 0000000..20d0984
--- /dev/null
+++ b/test/control-plane/dubbo.io_tagroutes.yaml
@@ -0,0 +1,50 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.14.0
+ name: tagroutes.dubbo.io
+spec:
+ group: dubbo.io
+ names:
+ categories:
+ - dubbo
+ kind: TagRoute
+ listKind: TagRouteList
+ plural: tagroutes
+ singular: tagroute
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ mesh:
+ description: |-
+ Mesh is the name of the dubbo mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Dubbo TagRoute resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/test/control-plane/dubbo.io_zoneegresses.yaml b/test/control-plane/dubbo.io_zoneegresses.yaml
new file mode 100644
index 0000000..a8a62d9
--- /dev/null
+++ b/test/control-plane/dubbo.io_zoneegresses.yaml
@@ -0,0 +1,50 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.14.0
+ name: zoneegresses.dubbo.io
+spec:
+ group: dubbo.io
+ names:
+ categories:
+ - dubbo
+ kind: ZoneEgress
+ listKind: ZoneEgressList
+ plural: zoneegresses
+ singular: zoneegress
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ mesh:
+ description: |-
+ Mesh is the name of the dubbo mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Dubbo ZoneEgress resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/test/control-plane/dubbo.io_zoneingresses.yaml b/test/control-plane/dubbo.io_zoneingresses.yaml
new file mode 100644
index 0000000..ddadb94
--- /dev/null
+++ b/test/control-plane/dubbo.io_zoneingresses.yaml
@@ -0,0 +1,50 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.14.0
+ name: zoneingresses.dubbo.io
+spec:
+ group: dubbo.io
+ names:
+ categories:
+ - dubbo
+ kind: ZoneIngress
+ listKind: ZoneIngressList
+ plural: zoneingresses
+ singular: zoneingress
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ mesh:
+ description: |-
+ Mesh is the name of the dubbo mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Dubbo ZoneIngress resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/test/control-plane/dubbo.io_zoneingressinsights.yaml b/test/control-plane/dubbo.io_zoneingressinsights.yaml
new file mode 100644
index 0000000..40a1d86
--- /dev/null
+++ b/test/control-plane/dubbo.io_zoneingressinsights.yaml
@@ -0,0 +1,51 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.14.0
+ name: zoneingressinsights.dubbo.io
+spec:
+ group: dubbo.io
+ names:
+ categories:
+ - dubbo
+ kind: ZoneIngressInsight
+ listKind: ZoneIngressInsightList
+ plural: zoneingressinsights
+ singular: zoneingressinsight
+ scope: Namespaced
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ mesh:
+ description: |-
+ Mesh is the name of the dubbo mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Dubbo ZoneIngressInsight
+ resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/test/control-plane/dubbo.io_zoneinsights.yaml b/test/control-plane/dubbo.io_zoneinsights.yaml
new file mode 100644
index 0000000..cbfb604
--- /dev/null
+++ b/test/control-plane/dubbo.io_zoneinsights.yaml
@@ -0,0 +1,50 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.14.0
+ name: zoneinsights.dubbo.io
+spec:
+ group: dubbo.io
+ names:
+ categories:
+ - dubbo
+ kind: ZoneInsight
+ listKind: ZoneInsightList
+ plural: zoneinsights
+ singular: zoneinsight
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ mesh:
+ description: |-
+ Mesh is the name of the dubbo mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Dubbo ZoneInsight resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/test/control-plane/dubbo.io_zones.yaml b/test/control-plane/dubbo.io_zones.yaml
new file mode 100644
index 0000000..23d55bb
--- /dev/null
+++ b/test/control-plane/dubbo.io_zones.yaml
@@ -0,0 +1,50 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.14.0
+ name: zones.dubbo.io
+spec:
+ group: dubbo.io
+ names:
+ categories:
+ - dubbo
+ kind: Zone
+ listKind: ZoneList
+ plural: zones
+ singular: zone
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ mesh:
+ description: |-
+ Mesh is the name of the dubbo mesh this resource belongs to.
+ It may be omitted for cluster-scoped resources.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec is the specification of the Dubbo Zone resource.
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/test/manager/condition_route.go b/test/manager/condition_route.go
deleted file mode 100644
index fda8cbb..0000000
--- a/test/manager/condition_route.go
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package manager
diff --git a/test/manager/dataplane.go b/test/manager/dataplane.go
deleted file mode 100644
index fda8cbb..0000000
--- a/test/manager/dataplane.go
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package manager
diff --git a/test/manager/dynamic_config.go b/test/manager/dynamic_config.go
deleted file mode 100644
index fda8cbb..0000000
--- a/test/manager/dynamic_config.go
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package manager
diff --git a/test/manager/mapping.go b/test/manager/mapping.go
deleted file mode 100644
index fda8cbb..0000000
--- a/test/manager/mapping.go
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package manager
diff --git a/test/manager/metadata.go b/test/manager/metadata.go
deleted file mode 100644
index fda8cbb..0000000
--- a/test/manager/metadata.go
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package manager
diff --git a/test/manager/tag_route.go b/test/manager/tag_route.go
deleted file mode 100644
index fda8cbb..0000000
--- a/test/manager/tag_route.go
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package manager