Skip to content

Commit 3a51e82

Browse files
authored
CPD-Quality 57014, add default labels to cluster scoped resources (#2623)
* add cnpg operator to default operandconfig Signed-off-by: Ben Luzarraga <luzarragaben@gmail.com> * update operandregistry with placeholder value Signed-off-by: Ben Luzarraga <luzarragaben@gmail.com> * add cpd default labels for cpfs cluster resources Signed-off-by: Ben Luzarraga <luzarragaben@gmail.com> --------- Signed-off-by: Ben Luzarraga <luzarragaben@gmail.com>
1 parent db6f40b commit 3a51e82

File tree

5 files changed

+335
-0
lines changed

5 files changed

+335
-0
lines changed

helm-cluster-scoped/templates/cluster-rbac.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ metadata:
44
name: ibm-common-service-operator-{{ .Values.global.operatorNamespace }}
55
labels:
66
component-id: {{ .Chart.Name }}
7+
{{- with .Values.cpfs.labels }}
8+
{{- toYaml . | nindent 4 }}
9+
{{- end }}
10+
{{- with .Values.cpfs.clusterLabels }}
11+
{{- toYaml . | nindent 4 }}
12+
{{- end }}
713
rules:
814
- apiGroups:
915
- ""

helm-cluster-scoped/templates/crd.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ metadata:
99
app.kubernetes.io/name: ibm-common-service-operator
1010
foundationservices.cloudpak.ibm.com: crd
1111
component-id: {{ .Chart.Name }}
12+
{{- with .Values.cpfs.labels }}
13+
{{- toYaml . | nindent 4 }}
14+
{{- end }}
15+
{{- with .Values.cpfs.clusterLabels }}
16+
{{- toYaml . | nindent 4 }}
17+
{{- end }}
1218
name: commonservices.operator.ibm.com
1319
spec:
1420
group: operator.ibm.com

helm-cluster-scoped/values.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
cpfs:
33
imageRegistryNamespaceOperator: cpopen
44
imageRegistryNamespaceOperand: cpopen/cpfs
5+
labels:
6+
clusterLabels:
57

68
global:
79
operatorNamespace: operator-ns

internal/controller/bootstrap/init.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -901,6 +901,7 @@ func (b *Bootstrap) InstallOrUpdateOpreg(installPlanApproval olmv1alpha1.Approva
901901
constant.PlatformUIOpReg,
902902
constant.KeyCloakOpReg,
903903
constant.CommonServicePGOpReg,
904+
constant.CommonServiceCNPGOpReg,
904905
}
905906
if b.SaasEnable {
906907
baseReg = constant.CSV3SaasOpReg
@@ -933,6 +934,7 @@ func (b *Bootstrap) InstallOrUpdateOpcon(forceUpdateODLMCRs bool) error {
933934
constant.EDBOpCon,
934935
constant.KeyCloakOpCon,
935936
constant.CommonServicePGOpCon,
937+
constant.CommonServiceCNPGOpCon,
936938
}
937939

938940
baseCon = constant.CSV4OpCon

internal/controller/constant/odlm.go

Lines changed: 319 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -495,6 +495,37 @@ spec:
495495
`
496496
)
497497

498+
// TODO update below with approapriate values once known
499+
const (
500+
CommonServiceCNPGOpReg = `
501+
apiVersion: operator.ibm.com/v1alpha1
502+
kind: OperandRegistry
503+
metadata:
504+
name: common-service
505+
namespace: "{{ .ServicesNs }}"
506+
labels:
507+
operator.ibm.com/managedByCsOperator: "true"
508+
annotations:
509+
version: {{ .Version }}
510+
excluded-catalogsource: {{ .ExcludedCatalog }}
511+
status-monitored-services: {{ .StatusMonitoredServices }}
512+
spec:
513+
operators:
514+
- channel: stable-v1.25
515+
fallbackChannels:
516+
- stable-v1.22
517+
- stable
518+
installPlanApproval: {{ .ApprovalMode }}
519+
name: ibm-cnpg-postgres-operator
520+
namespace: "{{ .CPFSNs }}"
521+
packageName: ibm-cnpg-postgres-operator
522+
scope: public
523+
operatorConfig: cloud-native-postgresql-operator-config
524+
sourceName: {{ .CatalogSourceName }}
525+
sourceNamespace: "{{ .CatalogSourceNs }}"
526+
`
527+
)
528+
498529
const (
499530
MongoDBOpCon = `
500531
apiVersion: operator.ibm.com/v1alpha1
@@ -2278,6 +2309,294 @@ spec:
22782309
`
22792310
)
22802311

2312+
const (
2313+
CommonServiceCNPGOpCon = `
2314+
apiVersion: operator.ibm.com/v1alpha1
2315+
kind: OperandConfig
2316+
metadata:
2317+
name: common-service
2318+
namespace: "{{ .ServicesNs }}"
2319+
labels:
2320+
operator.ibm.com/managedByCsOperator: "true"
2321+
annotations:
2322+
version: {{ .Version }}
2323+
spec:
2324+
services:
2325+
- name: ibm-cnpg-postgres-operator
2326+
resources:
2327+
- apiVersion: cert-manager.io/v1
2328+
kind: Certificate
2329+
name: common-service-db-replica-tls-cert
2330+
labels:
2331+
app.kubernetes.io/component: common-service-db-replica-tls-cert
2332+
component: common-service-db-replica-tls-cert
2333+
data:
2334+
spec:
2335+
commonName: streaming_replica
2336+
duration: 2160h0m0s
2337+
issuerRef:
2338+
kind: Issuer
2339+
name: cs-ca-issuer
2340+
renewBefore: 720h0m0s
2341+
secretName: common-service-db-replica-tls-secret
2342+
secretTemplate:
2343+
labels:
2344+
k8s.enterprisedb.io/reload: ''
2345+
usages:
2346+
- client auth
2347+
- apiVersion: cert-manager.io/v1
2348+
kind: Certificate
2349+
labels:
2350+
app.kubernetes.io/component: common-service-db-tls-cert
2351+
component: common-service-db-tls-cert
2352+
name: common-service-db-tls-cert
2353+
data:
2354+
spec:
2355+
dnsNames:
2356+
- common-service-db
2357+
- common-service-db.{{ .ServicesNs }}
2358+
- common-service-db.{{ .ServicesNs }}.svc
2359+
- common-service-db-r
2360+
- common-service-db-r.{{ .ServicesNs }}
2361+
- common-service-db-r.{{ .ServicesNs }}.svc
2362+
- common-service-db-ro
2363+
- common-service-db-ro.{{ .ServicesNs }}
2364+
- common-service-db-ro.{{ .ServicesNs }}.svc
2365+
- common-service-db-rw
2366+
- common-service-db-rw.{{ .ServicesNs }}
2367+
- common-service-db-rw.{{ .ServicesNs }}.svc
2368+
duration: 8760h0m0s
2369+
issuerRef:
2370+
kind: Issuer
2371+
name: cs-ca-issuer
2372+
renewBefore: 720h0m0s
2373+
secretName: common-service-db-tls-secret
2374+
secretTemplate:
2375+
labels:
2376+
k8s.enterprisedb.io/reload: ''
2377+
usages:
2378+
- server auth
2379+
- apiVersion: cert-manager.io/v1
2380+
kind: Certificate
2381+
name: common-service-db-im-tls-cert
2382+
data:
2383+
spec:
2384+
commonName: im_user
2385+
duration: 2160h0m0s
2386+
issuerRef:
2387+
kind: Issuer
2388+
name: cs-ca-issuer
2389+
renewBefore: 720h0m0s
2390+
secretName: common-service-db-im-tls-secret
2391+
secretTemplate:
2392+
labels:
2393+
app.kubernetes.io/instance: common-service-db-im-tls-secret
2394+
app.kubernetes.io/name: common-service-db-im-tls-secret
2395+
usages:
2396+
- client auth
2397+
- apiVersion: cert-manager.io/v1
2398+
kind: Certificate
2399+
name: common-service-db-zen-tls-cert
2400+
data:
2401+
spec:
2402+
commonName: zen_user
2403+
duration: 2160h0m0s
2404+
issuerRef:
2405+
kind: Issuer
2406+
name: cs-ca-issuer
2407+
renewBefore: 720h0m0s
2408+
secretName: common-service-db-zen-tls-secret
2409+
secretTemplate:
2410+
labels:
2411+
app.kubernetes.io/instance: common-service-db-zen-tls-secret
2412+
app.kubernetes.io/name: common-service-db-zen-tls-secret
2413+
usages:
2414+
- client auth
2415+
- apiVersion: operator.ibm.com/v1alpha1
2416+
data:
2417+
spec:
2418+
bindings:
2419+
protected-zen-db:
2420+
configmap: common-service-db-zen
2421+
secret: common-service-db-zen-tls-secret
2422+
protected-im-db:
2423+
configmap: common-service-db-im
2424+
secret: common-service-db-im-tls-secret
2425+
private-superuser-db:
2426+
secret: common-service-db-superuser
2427+
description: Binding information that should be accessible to Common Service Postgresql Adopters
2428+
operand: common-service-postgresql
2429+
registry: common-service
2430+
registryNamespace: {{ .ServicesNs }}
2431+
force: true
2432+
kind: OperandBindInfo
2433+
name: common-service-postgresql-bindinfo
2434+
- apiVersion: postgresql.cnpg.ibm.com/v1
2435+
kind: Cluster
2436+
name: common-service-db
2437+
force: true
2438+
annotations:
2439+
productID: 068a62892a1e4db39641342e592daa25
2440+
productMetric: FREE
2441+
productName: IBM Cloud Platform Common Services
2442+
labels:
2443+
foundationservices.cloudpak.ibm.com: cs-db
2444+
data:
2445+
spec:
2446+
inheritedMetadata:
2447+
labels:
2448+
foundationservices.cloudpak.ibm.com: cs-db
2449+
bootstrap:
2450+
initdb:
2451+
database: im
2452+
owner: im_user
2453+
dataChecksums: true
2454+
postInitApplicationSQL:
2455+
- CREATE USER zen_user
2456+
- CREATE DATABASE zen OWNER zen_user
2457+
- GRANT ALL PRIVILEGES ON DATABASE zen TO zen_user
2458+
affinity:
2459+
nodeAffinity:
2460+
requiredDuringSchedulingIgnoredDuringExecution:
2461+
nodeSelectorTerms:
2462+
- matchExpressions:
2463+
- key: kubernetes.io/arch
2464+
operator: In
2465+
values:
2466+
- amd64
2467+
- ppc64le
2468+
- s390x
2469+
podAntiAffinityType: preferred
2470+
topologyKey: topology.kubernetes.io/zone
2471+
topologySpreadConstraints:
2472+
- maxSkew: 1
2473+
topologyKey: topology.kubernetes.io/zone
2474+
whenUnsatisfiable: ScheduleAnyway
2475+
labelSelector:
2476+
matchExpressions:
2477+
- key: k8s.enterprisedb.io/cluster
2478+
operator: In
2479+
values:
2480+
- common-service-db
2481+
- maxSkew: 1
2482+
topologyKey: topology.kubernetes.io/region
2483+
whenUnsatisfiable: ScheduleAnyway
2484+
imageName:
2485+
templatingValueFrom:
2486+
configMapKeyRef:
2487+
name: cnpg-ibm-operand-images-config
2488+
key: ibm-postgresql-16-operand-image
2489+
namespace: {{ .OperatorNs }}
2490+
imagePullSecrets:
2491+
- name: ibm-entitlement-key
2492+
logLevel: info
2493+
primaryUpdateStrategy: unsupervised
2494+
primaryUpdateMethod: switchover
2495+
enableSuperuserAccess: true
2496+
replicationSlots:
2497+
highAvailability:
2498+
enabled: true
2499+
certificates:
2500+
clientCASecret: cs-ca-certificate-secret
2501+
replicationTLSSecret: common-service-db-replica-tls-secret
2502+
serverCASecret: cs-ca-certificate-secret
2503+
serverTLSSecret: common-service-db-tls-secret
2504+
startDelay: 120
2505+
stopDelay: 90
2506+
storage:
2507+
resizeInUseVolumes: true
2508+
size: 10Gi
2509+
walStorage:
2510+
resizeInUseVolumes: true
2511+
size: 10Gi
2512+
postgresql:
2513+
parameters:
2514+
track_activities: "on"
2515+
track_counts: "on"
2516+
track_io_timing: "on"
2517+
pg_stat_statements.track: all
2518+
pg_stat_statements.max: "10000"
2519+
max_slot_wal_keep_size: "8GB"
2520+
pg_hba:
2521+
- hostssl im im_user all cert
2522+
- hostssl zen zen_user all cert
2523+
- host zen instana_user all scram-sha-256
2524+
- host im instana_user all scram-sha-256
2525+
- apiVersion: v1
2526+
kind: ConfigMap
2527+
force: true
2528+
name: common-service-db-zen
2529+
data:
2530+
data:
2531+
IS_EMBEDDED: 'true'
2532+
DATABASE_PORT:
2533+
templatingValueFrom:
2534+
objectRef:
2535+
apiVersion: v1
2536+
kind: Service
2537+
name: common-service-db-rw
2538+
path: .spec.ports[0].port
2539+
required: true
2540+
DATABASE_R_ENDPOINT:
2541+
templatingValueFrom:
2542+
objectRef:
2543+
apiVersion: v1
2544+
kind: Service
2545+
name: common-service-db-r
2546+
path: .metadata.name+.+.metadata.namespace+.+svc
2547+
required: true
2548+
DATABASE_RW_ENDPOINT:
2549+
templatingValueFrom:
2550+
objectRef:
2551+
apiVersion: v1
2552+
kind: Service
2553+
name: common-service-db-rw
2554+
path: .metadata.name+.+.metadata.namespace+.+svc
2555+
required: true
2556+
DATABASE_NAME: zen
2557+
DATABASE_USER: zen_user
2558+
DATABASE_CA_CERT: ca.crt
2559+
DATABASE_CLIENT_KEY: tls.key
2560+
DATABASE_CLIENT_CERT: tls.crt
2561+
- apiVersion: v1
2562+
kind: ConfigMap
2563+
force: true
2564+
name: common-service-db-im
2565+
data:
2566+
data:
2567+
IS_EMBEDDED: 'true'
2568+
DATABASE_PORT:
2569+
templatingValueFrom:
2570+
objectRef:
2571+
apiVersion: v1
2572+
kind: Service
2573+
name: common-service-db-rw
2574+
path: .spec.ports[0].port
2575+
required: true
2576+
DATABASE_R_ENDPOINT:
2577+
templatingValueFrom:
2578+
objectRef:
2579+
apiVersion: v1
2580+
kind: Service
2581+
name: common-service-db-r
2582+
path: .metadata.name+.+.metadata.namespace+.+svc
2583+
required: true
2584+
DATABASE_RW_ENDPOINT:
2585+
templatingValueFrom:
2586+
objectRef:
2587+
apiVersion: v1
2588+
kind: Service
2589+
name: common-service-db-rw
2590+
path: .metadata.name+.+.metadata.namespace+.+svc
2591+
required: true
2592+
DATABASE_NAME: im
2593+
DATABASE_USER: im_user
2594+
DATABASE_CA_CERT: ca.crt
2595+
DATABASE_CLIENT_KEY: tls.key
2596+
DATABASE_CLIENT_CERT: tls.crt
2597+
`
2598+
)
2599+
22812600
const (
22822601
CSV3OpReg = `
22832602
apiVersion: operator.ibm.com/v1alpha1

0 commit comments

Comments
 (0)