@@ -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+
498529const (
499530 MongoDBOpCon = `
500531apiVersion: 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+
22812600const (
22822601 CSV3OpReg = `
22832602apiVersion: operator.ibm.com/v1alpha1
0 commit comments