Skip to content

Commit 496ca87

Browse files
committedMay 27, 2020
opm bundle extract shouldn't validate annotations
Currently, the configmap writer attempts to validate the annotations associated with the bundle. In reality, most of these annotations are currently unused by the time the bundle is being unpacked and applied to the cluster. There was an issue where default channel was no longer required, but it was still validated by extract because it has a separate validation function. These annotations should be validated when building and adding to the registry (as it exists now). This commit removes annotation validation from the configmap writer in opm alpha bundle extract
1 parent 04e4e88 commit 496ca87

File tree

3 files changed

+634
-33
lines changed

3 files changed

+634
-33
lines changed
 

‎pkg/configmap/configmap_test.go

+13
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,19 @@ func TestLoad(t *testing.T) {
7777
assert.Equal(t, 3, len(objects))
7878
},
7979
},
80+
{
81+
name: "BundleWithNoDefaultChannel",
82+
source: "testdata/bundle-with-no-default-channel.yaml",
83+
assertFunc: func(t *testing.T, bundleGot *api.Bundle) {
84+
csvGot := bundleGot.GetCsvJson()
85+
assert.NotNil(t, csvGot)
86+
unst := getUnstructured(t, csvGot)
87+
assert.True(t, unst.GetName() == "kiali-operator.v1.4.2")
88+
89+
objects := bundleGot.GetObject()
90+
assert.Equal(t, 3, len(objects))
91+
},
92+
},
8093
}
8194

8295
for _, tt := range tests {

‎pkg/configmap/configmap_writer.go

+1-33
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,16 @@ package configmap
22

33
import (
44
"context"
5-
"errors"
65
"fmt"
76
"io/ioutil"
87
"os"
98
"regexp"
109

1110
"github.com/ghodss/yaml"
12-
errorwrap "github.com/pkg/errors"
1311
"github.com/sirupsen/logrus"
1412
batchv1 "k8s.io/api/batch/v1"
1513
corev1 "k8s.io/api/core/v1"
1614
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
17-
utilerrors "k8s.io/apimachinery/pkg/util/errors"
1815
"k8s.io/client-go/kubernetes"
1916

2017
"github.com/operator-framework/operator-registry/pkg/client"
@@ -66,32 +63,6 @@ func TranslateInvalidChars(input string) string {
6663
return validConfigMapKey
6764
}
6865

69-
func validateConfigmapAnnotations(annotations map[string]string) error {
70-
errs := []error{}
71-
if annotations[bundle.ManifestsLabel] == "" {
72-
errs = append(errs, errors.New(bundle.ManifestsLabel))
73-
}
74-
if annotations[bundle.MediatypeLabel] == "" {
75-
errs = append(errs, errors.New(bundle.MediatypeLabel))
76-
}
77-
if annotations[bundle.MetadataLabel] == "" {
78-
errs = append(errs, errors.New(bundle.MetadataLabel))
79-
}
80-
if annotations[bundle.PackageLabel] == "" {
81-
errs = append(errs, errors.New(bundle.PackageLabel))
82-
}
83-
if annotations[bundle.ChannelsLabel] == "" {
84-
errs = append(errs, errors.New(bundle.ChannelsLabel))
85-
}
86-
if annotations[bundle.ChannelDefaultLabel] == "" {
87-
errs = append(errs, errors.New(bundle.ChannelDefaultLabel))
88-
}
89-
if len(errs) > 0 {
90-
return utilerrors.NewAggregate(errs)
91-
}
92-
return nil
93-
}
94-
9566
func (c *ConfigMapWriter) Populate(maxDataSizeLimit uint64) error {
9667
subDirs := []string{"manifests/", "metadata/"}
9768

@@ -150,10 +121,7 @@ func (c *ConfigMapWriter) Populate(maxDataSizeLimit uint64) error {
150121
}
151122
}
152123
}
153-
err = validateConfigmapAnnotations(configMapPopulate.GetAnnotations())
154-
if err != nil {
155-
return errorwrap.Wrap(err, "annotation validation failed, missing or empty values")
156-
}
124+
157125
if sourceImage := os.Getenv(EnvContainerImage); sourceImage != "" {
158126
annotations := configMapPopulate.GetAnnotations()
159127
annotations[ConfigMapImageAnnotationKey] = sourceImage
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,620 @@
1+
apiVersion: v1
2+
data:
3+
kiali.crd.yaml: |
4+
apiVersion: apiextensions.k8s.io/v1beta1
5+
kind: CustomResourceDefinition
6+
metadata:
7+
name: kialis.kiali.io
8+
labels:
9+
app: kiali-operator
10+
spec:
11+
group: kiali.io
12+
names:
13+
kind: Kiali
14+
listKind: KialiList
15+
plural: kialis
16+
singular: kiali
17+
scope: Namespaced
18+
subresources:
19+
status: {}
20+
version: v1alpha1
21+
versions:
22+
- name: v1alpha1
23+
served: true
24+
storage: true
25+
kiali.monitoringdashboards.crd.yaml: |
26+
apiVersion: apiextensions.k8s.io/v1beta1
27+
kind: CustomResourceDefinition
28+
metadata:
29+
name: monitoringdashboards.monitoring.kiali.io
30+
labels:
31+
app: kiali
32+
spec:
33+
group: monitoring.kiali.io
34+
names:
35+
kind: MonitoringDashboard
36+
listKind: MonitoringDashboardList
37+
plural: monitoringdashboards
38+
singular: monitoringdashboard
39+
scope: Namespaced
40+
version: v1alpha1
41+
kiali.package.yaml: |
42+
packageName: kiali
43+
channels:
44+
- name: alpha
45+
currentCSV: kiali-operator.v1.4.2
46+
- name: stable
47+
currentCSV: kiali-operator.v1.4.2
48+
defaultChannel: stable
49+
kiali.v1.4.2.clusterserviceversion.yaml: |
50+
apiVersion: operators.coreos.com/v1alpha1
51+
kind: ClusterServiceVersion
52+
metadata:
53+
name: kiali-operator.v1.4.2
54+
namespace: placeholder
55+
annotations:
56+
categories: Monitoring,Logging & Tracing
57+
certified: "false"
58+
containerImage: quay.io/kiali/kiali-operator:v1.4.2
59+
capabilities: Basic Install
60+
support: Kiali
61+
description: "Kiali project provides answers to the questions: What microservices are part of my Istio service mesh and how are they connected?"
62+
repository: https://github.com/kiali/kiali
63+
createdAt: 2019-09-12T00:00:00Z
64+
alm-examples: |-
65+
[
66+
{
67+
"apiVersion": "kiali.io/v1alpha1",
68+
"kind": "Kiali",
69+
"metadata": {
70+
"name": "kiali"
71+
},
72+
"spec": {
73+
"installation_tag": "My Kiali",
74+
"istio_namespace": "istio-system",
75+
"deployment": {
76+
"namespace": "istio-system",
77+
"verbose_mode": "4",
78+
"view_only_mode": false
79+
},
80+
"external_services": {
81+
"grafana": {
82+
"url": ""
83+
},
84+
"prometheus": {
85+
"url": ""
86+
},
87+
"tracing": {
88+
"url": ""
89+
}
90+
},
91+
"server": {
92+
"web_root": "/mykiali"
93+
}
94+
}
95+
},
96+
{
97+
"apiVersion": "monitoring.kiali.io/v1alpha1",
98+
"kind": "MonitoringDashboard",
99+
"metadata": {
100+
"name": "myappdashboard"
101+
},
102+
"spec": {
103+
"title": "My App Dashboard",
104+
"items": [
105+
{
106+
"chart": {
107+
"name": "My App Processing Duration",
108+
"unit": "seconds",
109+
"spans": 6,
110+
"metricName": "my_app_duration_seconds",
111+
"dataType": "histogram",
112+
"aggregations": [
113+
{
114+
"label": "id",
115+
"displayName": "ID"
116+
}
117+
]
118+
}
119+
}
120+
]
121+
}
122+
}
123+
]
124+
spec:
125+
version: 1.4.2
126+
maturity: stable
127+
replaces: kiali-operator.v1.3.1
128+
displayName: Kiali Operator
129+
description: |-
130+
A Microservice Architecture breaks up the monolith into many smaller pieces that are composed together. Patterns to secure the communication between services like fault tolerance (via timeout, retry, circuit breaking, etc.) have come up as well as distributed tracing to be able to see where calls are going.
131+
132+
A service mesh can now provide these services on a platform level and frees the application writers from those tasks. Routing decisions are done at the mesh level.
133+
134+
Kiali works with Istio, in OpenShift or Kubernetes, to visualize the service mesh topology, to provide visibility into features like circuit breakers, request rates and more. It offers insights about the mesh components at different levels, from abstract Applications to Services and Workloads.
135+
136+
See [https://www.kiali.io](https://www.kiali.io) to read more.
137+
138+
### Prerequisites
139+
140+
Today Kiali works with Istio. So before you install Kiali, you must have already installed Istio. Note that Istio can come pre-bundled with Kiali (specifically if you installed the Istio demo helm profile or if you installed Istio with the helm option '--set kiali.enabled=true'). If you already have the pre-bundled Kiali in your Istio environment and you want to install Kiali via the Kiali Operator, uninstall the pre-bundled Kiali first. You can do this via this command:
141+
142+
kubectl delete --ignore-not-found=true all,secrets,sa,templates,configmaps,deployments,clusterroles,clusterrolebindings,ingresses,customresourcedefinitions --selector="app=kiali" -n istio-system
143+
144+
When you install Kiali in a non-OpenShift Kubernetes environment, the authentication strategy will default to `login`. When using the authentication strategy of `login`, you are required to create a Kubernetes Secret with a `username` and `passphrase` that you want users to provide in order to successfully log into Kiali. Here is an example command you can execute to create such a secret (with a username of `admin` and a passphrase of `admin`):
145+
146+
kubectl create secret generic kiali -n istio-system --from-literal "username=admin" --from-literal "passphrase=admin"
147+
148+
### Kiali Custom Resource Configuration Settings
149+
150+
For quick descriptions of all the settings you can configure in the Kiali Custom Resource (CR), see the file [kiali_cr.yaml](https://github.com/kiali/kiali/blob/v1.4.2/operator/deploy/kiali/kiali_cr.yaml)
151+
152+
### Accessing the UI
153+
154+
By default, the Kiali operator exposes the Kiali UI as a Route on OpenShift or Ingress on Kubernetes.
155+
On OpenShift, the default root context path is '/' and on Kubernetes it is '/kiali' though you can change this by configuring the 'web_root' setting in the Kiali CR.
156+
icon:
157+
- base64data: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAxMjgwIDEyODAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDEyODAgMTI4MDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiMwMTMxNDQ7fQoJLnN0MXtmaWxsOiMwMDkzREQ7fQo8L3N0eWxlPgo8Zz4KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik04MTAuOSwxODAuOWMtMjUzLjYsMC00NTkuMSwyMDUuNS00NTkuMSw0NTkuMXMyMDUuNSw0NTkuMSw0NTkuMSw0NTkuMVMxMjcwLDg5My42LDEyNzAsNjQwCgkJUzEwNjQuNSwxODAuOSw4MTAuOSwxODAuOXogTTgxMC45LDEwMjkuMmMtMjE1LDAtMzg5LjItMTc0LjMtMzg5LjItMzg5LjJjMC0yMTUsMTc0LjMtMzg5LjIsMzg5LjItMzg5LjJTMTIwMC4xLDQyNSwxMjAwLjEsNjQwCgkJUzEwMjUuOSwxMDI5LjIsODEwLjksMTAyOS4yeiIvPgoJPHBhdGggY2xhc3M9InN0MSIgZD0iTTY1My4zLDI4NGMtMTM2LjQsNjAuNS0yMzEuNiwxOTcuMS0yMzEuNiwzNTZjMCwxNTguOCw5NS4yLDI5NS41LDIzMS42LDM1NmM5OC40LTg3LjEsMTYwLjQtMjE0LjMsMTYwLjQtMzU2CgkJQzgxMy43LDQ5OC4zLDc1MS42LDM3MS4xLDY1My4zLDI4NHoiLz4KCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0zNTEuOCw2NDBjMC0xMDkuOCwzOC42LTIxMC41LDEwMi44LTI4OS41Yy0zOS42LTE4LjItODMuNi0yOC4zLTEzMC0yOC4zQzE1MC45LDMyMi4yLDEwLDQ2NC41LDEwLDY0MAoJCXMxNDAuOSwzMTcuOCwzMTQuNiwzMTcuOGM0Ni4zLDAsOTAuNC0xMC4xLDEzMC0yOC4zQzM5MC4zLDg1MC41LDM1MS44LDc0OS44LDM1MS44LDY0MHoiLz4KPC9nPgo8L3N2Zz4K
158+
mediatype: image/svg+xml
159+
keywords: ['service-mesh', 'observability', 'monitoring', 'maistra', 'istio']
160+
maintainers:
161+
- name: Kiali Developers Google Group
162+
email: kiali-dev@googlegroups.com
163+
provider:
164+
name: Kiali
165+
labels:
166+
name: kiali-operator
167+
selector:
168+
matchLabels:
169+
name: kiali-operator
170+
links:
171+
- name: Getting Started Guide
172+
url: https://www.kiali.io/documentation/getting-started/
173+
- name: Features
174+
url: https://www.kiali.io/documentation/features
175+
- name: Documentation Home
176+
url: https://www.kiali.io/documentation
177+
- name: Blogs and Articles
178+
url: https://medium.com/kialiproject
179+
- name: Server Source Code
180+
url: https://github.com/kiali/kiali
181+
- name: UI Source Code
182+
url: https://github.com/kiali/kiali-ui
183+
installModes:
184+
- type: OwnNamespace
185+
supported: true
186+
- type: SingleNamespace
187+
supported: true
188+
- type: MultiNamespace
189+
supported: false
190+
- type: AllNamespaces
191+
supported: true
192+
customresourcedefinitions:
193+
owned:
194+
- name: kialis.kiali.io
195+
group: kiali.io
196+
description: A configuration file for a Kiali installation.
197+
displayName: Kiali
198+
kind: Kiali
199+
version: v1alpha1
200+
resources:
201+
- kind: Deployment
202+
version: apps/v1
203+
- kind: Pod
204+
version: v1
205+
- kind: Service
206+
version: v1
207+
- kind: ConfigMap
208+
version: v1
209+
- kind: OAuthClient
210+
version: oauth.openshift.io/v1
211+
- kind: Route
212+
version: route.openshift.io/v1
213+
- kind: Ingress
214+
version: extensions/v1beta1
215+
specDescriptors:
216+
- displayName: Authentication Strategy
217+
description: "Determines how a user is to log into Kiali. Choose 'login' to use a username and passphrase as defined in a Secret. Choose 'anonymous' to allow full access to Kiali without requiring credentials (use this at your own risk). Choose 'openshift' if on OpenShift to use the OpenShift OAuth login which controls access based on the individual's OpenShift RBAC roles. Default: openshift (when deployed in OpenShift); login (when deployed in Kubernetes)"
218+
path: auth.strategy
219+
x-descriptors:
220+
- 'urn:alm:descriptor:com.tectonic.ui:label'
221+
- displayName: Kiali Namespace
222+
description: "The namespace where Kiali and its associated resources will be created. Default: istio-system"
223+
path: deployment.namespace
224+
x-descriptors:
225+
- 'urn:alm:descriptor:com.tectonic.ui:label'
226+
- displayName: Secret Name
227+
description: "If Kiali is configured with auth.strategy 'login', an admin must create a Secret with credentials ('username' and 'passphrase') which will be used to authenticate users logging into Kiali. This setting defines the name of that secret. Default: kiali"
228+
path: deployment.secret_name
229+
x-descriptors:
230+
- 'urn:alm:descriptor:com.tectonic.ui:selector:core:v1:Secret'
231+
- displayName: Verbose Mode
232+
description: "Determines the priority levels of log messages Kiali will output. Typical values are '3' for INFO and higher priority messages, '4' for DEBUG and higher priority messages (this makes the logs more noisy). Default: 3"
233+
path: deployment.verbose_mode
234+
x-descriptors:
235+
- 'urn:alm:descriptor:com.tectonic.ui:label'
236+
- displayName: View Only Mode
237+
description: "When true, Kiali will be in 'view only' mode, allowing the user to view and retrieve management and monitoring data for the service mesh, but not allow the user to modify the service mesh. Default: false"
238+
path: deployment.view_only_mode
239+
x-descriptors:
240+
- 'urn:alm:descriptor:com.tectonic.ui:booleanSwitch'
241+
- displayName: Web Root
242+
description: "Defines the root context path for the Kiali console, API endpoints and readiness/liveness probes. Default: / (when deployed on OpenShift; /kiali (when deployed on Kubernetes)"
243+
path: server.web_root
244+
x-descriptors:
245+
- 'urn:alm:descriptor:com.tectonic.ui:label'
246+
- name: monitoringdashboards.monitoring.kiali.io
247+
group: monitoring.kiali.io
248+
description: A configuration file for defining an individual metric dashboard.
249+
displayName: Monitoring Dashboard
250+
kind: MonitoringDashboard
251+
version: v1alpha1
252+
resources: []
253+
specDescriptors:
254+
- displayName: Title
255+
description: "The title of the dashboard."
256+
path: title
257+
x-descriptors:
258+
- 'urn:alm:descriptor:com.tectonic.ui:label'
259+
apiservicedefinitions: {}
260+
install:
261+
strategy: deployment
262+
spec:
263+
deployments:
264+
- name: kiali-operator
265+
spec:
266+
replicas: 1
267+
selector:
268+
matchLabels:
269+
app: kiali-operator
270+
template:
271+
metadata:
272+
name: kiali-operator
273+
labels:
274+
app: kiali-operator
275+
version: v1.4.2
276+
spec:
277+
serviceAccountName: kiali-operator
278+
containers:
279+
- name: ansible
280+
command:
281+
- /usr/local/bin/ao-logs
282+
- /tmp/ansible-operator/runner
283+
- stdout
284+
image: quay.io/kiali/kiali-operator:v1.4.2
285+
imagePullPolicy: "IfNotPresent"
286+
volumeMounts:
287+
- mountPath: /tmp/ansible-operator/runner
288+
name: runner
289+
readOnly: true
290+
- name: operator
291+
image: quay.io/kiali/kiali-operator:v1.4.2
292+
imagePullPolicy: "IfNotPresent"
293+
volumeMounts:
294+
- mountPath: /tmp/ansible-operator/runner
295+
name: runner
296+
env:
297+
- name: WATCH_NAMESPACE
298+
valueFrom:
299+
fieldRef:
300+
fieldPath: metadata.annotations['olm.targetNamespaces']
301+
- name: POD_NAME
302+
valueFrom:
303+
fieldRef:
304+
fieldPath: metadata.name
305+
- name: OPERATOR_NAME
306+
value: "kiali-operator"
307+
volumes:
308+
- name: runner
309+
emptyDir: {}
310+
clusterPermissions:
311+
- rules:
312+
- apiGroups: [""]
313+
resources:
314+
- configmaps
315+
- endpoints
316+
- events
317+
- persistentvolumeclaims
318+
- pods
319+
- serviceaccounts
320+
- services
321+
verbs:
322+
- create
323+
- delete
324+
- get
325+
- list
326+
- patch
327+
- update
328+
- watch
329+
- apiGroups: [""]
330+
resources:
331+
- namespaces
332+
verbs:
333+
- get
334+
- list
335+
- patch
336+
- apiGroups: ["apps"]
337+
resources:
338+
- deployments
339+
- replicasets
340+
verbs:
341+
- create
342+
- delete
343+
- get
344+
- list
345+
- patch
346+
- update
347+
- watch
348+
- apiGroups: ["monitoring.coreos.com"]
349+
resources:
350+
- servicemonitors
351+
verbs:
352+
- create
353+
- get
354+
- apiGroups: ["apps"]
355+
resourceNames:
356+
- kiali-operator
357+
resources:
358+
- deployments/finalizers
359+
verbs:
360+
- update
361+
- apiGroups: ["kiali.io"]
362+
resources:
363+
- '*'
364+
verbs:
365+
- create
366+
- delete
367+
- get
368+
- list
369+
- patch
370+
- update
371+
- watch
372+
- apiGroups: ["rbac.authorization.k8s.io"]
373+
resources:
374+
- clusterrolebindings
375+
- clusterroles
376+
- rolebindings
377+
- roles
378+
verbs:
379+
- create
380+
- delete
381+
- get
382+
- list
383+
- patch
384+
- update
385+
- watch
386+
- apiGroups: ["apiextensions.k8s.io"]
387+
resources:
388+
- customresourcedefinitions
389+
verbs:
390+
- get
391+
- list
392+
- watch
393+
- apiGroups: ["extensions"]
394+
resources:
395+
- ingresses
396+
verbs:
397+
- create
398+
- delete
399+
- get
400+
- list
401+
- patch
402+
- update
403+
- watch
404+
- apiGroups: ["route.openshift.io"]
405+
resources:
406+
- routes
407+
verbs:
408+
- create
409+
- delete
410+
- get
411+
- list
412+
- patch
413+
- update
414+
- watch
415+
- apiGroups: ["oauth.openshift.io"]
416+
resources:
417+
- oauthclients
418+
verbs:
419+
- create
420+
- delete
421+
- get
422+
- list
423+
- patch
424+
- update
425+
- watch
426+
- apiGroups: ["monitoring.kiali.io"]
427+
resources:
428+
- monitoringdashboards
429+
verbs:
430+
- create
431+
- delete
432+
- get
433+
- list
434+
- patch
435+
- update
436+
- watch
437+
# The permissions below are for Kiali itself; operator needs these so it can escalate when creating Kiali's roles
438+
- apiGroups: [""]
439+
resources:
440+
- configmaps
441+
- endpoints
442+
- namespaces
443+
- nodes
444+
- pods
445+
- pods/log
446+
- replicationcontrollers
447+
- services
448+
verbs:
449+
- get
450+
- list
451+
- watch
452+
- apiGroups: ["extensions", "apps"]
453+
resources:
454+
- deployments
455+
- replicasets
456+
- statefulsets
457+
verbs:
458+
- get
459+
- list
460+
- watch
461+
- apiGroups: ["autoscaling"]
462+
resources:
463+
- horizontalpodautoscalers
464+
verbs:
465+
- get
466+
- list
467+
- watch
468+
- apiGroups: ["batch"]
469+
resources:
470+
- cronjobs
471+
- jobs
472+
verbs:
473+
- get
474+
- list
475+
- watch
476+
- apiGroups: ["config.istio.io"]
477+
resources:
478+
- adapters
479+
- apikeys
480+
- bypasses
481+
- authorizations
482+
- checknothings
483+
- circonuses
484+
- cloudwatches
485+
- deniers
486+
- dogstatsds
487+
- edges
488+
- fluentds
489+
- handlers
490+
- instances
491+
- kubernetesenvs
492+
- kuberneteses
493+
- listcheckers
494+
- listentries
495+
- logentries
496+
- memquotas
497+
- metrics
498+
- noops
499+
- opas
500+
- prometheuses
501+
- quotas
502+
- quotaspecbindings
503+
- quotaspecs
504+
- rbacs
505+
- redisquotas
506+
- reportnothings
507+
- rules
508+
- signalfxs
509+
- solarwindses
510+
- stackdrivers
511+
- statsds
512+
- stdios
513+
- templates
514+
- tracespans
515+
- zipkins
516+
verbs:
517+
- create
518+
- delete
519+
- get
520+
- list
521+
- patch
522+
- watch
523+
- apiGroups: ["networking.istio.io"]
524+
resources:
525+
- destinationrules
526+
- gateways
527+
- serviceentries
528+
- sidecars
529+
- virtualservices
530+
verbs:
531+
- create
532+
- delete
533+
- get
534+
- list
535+
- patch
536+
- watch
537+
- apiGroups: ["authentication.istio.io"]
538+
resources:
539+
- meshpolicies
540+
- policies
541+
verbs:
542+
- create
543+
- delete
544+
- get
545+
- list
546+
- patch
547+
- watch
548+
- apiGroups: ["rbac.istio.io"]
549+
resources:
550+
- clusterrbacconfigs
551+
- rbacconfigs
552+
- servicerolebindings
553+
- serviceroles
554+
verbs:
555+
- create
556+
- delete
557+
- get
558+
- list
559+
- patch
560+
- watch
561+
- apiGroups: ["authentication.maistra.io"]
562+
resources:
563+
- servicemeshpolicies
564+
verbs:
565+
- create
566+
- delete
567+
- get
568+
- list
569+
- patch
570+
- watch
571+
- apiGroups: ["rbac.maistra.io"]
572+
resources:
573+
- servicemeshrbacconfigs
574+
verbs:
575+
- create
576+
- delete
577+
- get
578+
- list
579+
- patch
580+
- watch
581+
- apiGroups: ["apps.openshift.io"]
582+
resources:
583+
- deploymentconfigs
584+
verbs:
585+
- get
586+
- list
587+
- watch
588+
- apiGroups: ["project.openshift.io"]
589+
resources:
590+
- projects
591+
verbs:
592+
- get
593+
- apiGroups: ["route.openshift.io"]
594+
resources:
595+
- routes
596+
verbs:
597+
- get
598+
- apiGroups: ["monitoring.kiali.io"]
599+
resources:
600+
- monitoringdashboards
601+
verbs:
602+
- get
603+
- list
604+
serviceAccountName: kiali-operator
605+
kind: ConfigMap
606+
metadata:
607+
annotations:
608+
olm.sourceImage: bundle-image
609+
operators.operatorframework.io.bundle.channel.default.v1: ""
610+
operators.operatorframework.io.bundle.channels.v1: alpha,stable
611+
operators.operatorframework.io.bundle.manifests.v1: /manifests/
612+
operators.operatorframework.io.bundle.mediatype.v1: registry+v1
613+
operators.operatorframework.io.bundle.metadata.v1: /metadata/
614+
operators.operatorframework.io.bundle.package.v1: kiali-operator.v1.4.2
615+
creationTimestamp: "2019-10-18T18:35:16Z"
616+
name: myconfigmap
617+
namespace: default
618+
resourceVersion: "98847"
619+
selfLink: /api/v1/namespaces/default/configmaps/myconfigmap
620+
uid: 96a7866e-7b9c-4807-882f-18f3ffb11568

0 commit comments

Comments
 (0)
Please sign in to comment.