github.com/IBM-Blockchain/fabric-operator@v1.0.4/pkg/offering/base/console/override/deployercm_test.go (about) 1 /* 2 * Copyright contributors to the Hyperledger Fabric Operator project 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at: 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 19 package override_test 20 21 import ( 22 . "github.com/onsi/ginkgo/v2" 23 . "github.com/onsi/gomega" 24 corev1 "k8s.io/api/core/v1" 25 "sigs.k8s.io/yaml" 26 27 current "github.com/IBM-Blockchain/fabric-operator/api/v1beta1" 28 "github.com/IBM-Blockchain/fabric-operator/pkg/apis/deployer" 29 30 "github.com/IBM-Blockchain/fabric-operator/pkg/manager/resources" 31 "github.com/IBM-Blockchain/fabric-operator/pkg/offering/base/console/override" 32 "github.com/IBM-Blockchain/fabric-operator/pkg/util" 33 ) 34 35 var _ = Describe("Base Console Deployer Config Map Overrides", func() { 36 var ( 37 overrider *override.Override 38 instance *current.IBPConsole 39 cm *corev1.ConfigMap 40 ) 41 42 BeforeEach(func() { 43 var err error 44 overrider = &override.Override{} 45 instance = ¤t.IBPConsole{ 46 Spec: current.IBPConsoleSpec{ 47 ImagePullSecrets: []string{"pullsecret"}, 48 ConnectionString: "connectionString1", 49 Storage: ¤t.ConsoleStorage{ 50 Console: ¤t.StorageSpec{ 51 Class: "sc1", 52 }, 53 }, 54 NetworkInfo: ¤t.NetworkInfo{ 55 Domain: "domain1", 56 }, 57 Versions: ¤t.Versions{ 58 CA: map[string]current.VersionCA{ 59 "v1-0": current.VersionCA{ 60 Default: true, 61 Version: "v1-0", 62 Image: current.CAImages{ 63 CAInitImage: "ca-init-image", 64 CAInitTag: "1.0.0", 65 CAImage: "ca-image", 66 CATag: "1.0.0", 67 }, 68 }, 69 "v2-0": current.VersionCA{ 70 Default: false, 71 Version: "v2-0", 72 Image: current.CAImages{ 73 CAInitImage: "ca-init-image", 74 CAInitTag: "2.0.0", 75 CAImage: "ca-image", 76 CATag: "2.0.0", 77 }, 78 }, 79 }, 80 Peer: map[string]current.VersionPeer{ 81 "v1-0": current.VersionPeer{ 82 Default: true, 83 Version: "v1-0", 84 Image: current.PeerImages{ 85 PeerInitImage: "peer-init-image", 86 PeerInitTag: "1.0.0", 87 PeerImage: "peer-image", 88 PeerTag: "1.0.0", 89 DindImage: "dind-iamge", 90 DindTag: "1.0.0", 91 GRPCWebImage: "grpcweb-image", 92 GRPCWebTag: "1.0.0", 93 FluentdImage: "fluentd-image", 94 FluentdTag: "1.0.0", 95 CouchDBImage: "couchdb-image", 96 CouchDBTag: "1.0.0", 97 }, 98 }, 99 "v2-0": current.VersionPeer{ 100 Default: false, 101 Version: "v2-0", 102 Image: current.PeerImages{ 103 PeerInitImage: "peer-init-image", 104 PeerInitTag: "2.0.0", 105 PeerImage: "peer-image", 106 PeerTag: "2.0.0", 107 DindImage: "dind-iamge", 108 DindTag: "2.0.0", 109 GRPCWebImage: "grpcweb-image", 110 GRPCWebTag: "2.0.0", 111 FluentdImage: "fluentd-image", 112 FluentdTag: "2.0.0", 113 CouchDBImage: "couchdb-image", 114 CouchDBTag: "2.0.0", 115 CCLauncherImage: "cclauncher-image", 116 CCLauncherTag: "2.0.0", 117 }, 118 }, 119 }, 120 Orderer: map[string]current.VersionOrderer{ 121 "v1-0": current.VersionOrderer{ 122 Default: true, 123 Version: "v1-0", 124 Image: current.OrdererImages{ 125 OrdererInitImage: "orderer-init-image", 126 OrdererInitTag: "1.0.0", 127 OrdererImage: "orderer-image", 128 OrdererTag: "1.0.0", 129 GRPCWebImage: "grpcweb-image", 130 GRPCWebTag: "1.0.0", 131 }, 132 }, 133 "v2-0": current.VersionOrderer{ 134 Default: false, 135 Version: "v2-0", 136 Image: current.OrdererImages{ 137 OrdererInitImage: "orderer-init-image", 138 OrdererInitTag: "2.0.0", 139 OrdererImage: "orderer-image", 140 OrdererTag: "2.0.0", 141 GRPCWebImage: "grpcweb-image", 142 GRPCWebTag: "2.0.0", 143 }, 144 }, 145 }, 146 }, 147 CRN: ¤t.CRN{ 148 CName: "cname", 149 CType: "ctype", 150 Location: "location1", 151 Servicename: "Servicename1", 152 Version: "version1", 153 AccountID: "id123", 154 }, 155 Deployer: ¤t.Deployer{ 156 ConnectionString: "connectionstring2", 157 }, 158 Images: ¤t.ConsoleImages{ 159 MustgatherImage: "test-image", 160 MustgatherTag: "test-tag", 161 }, 162 }, 163 } 164 cm, err = util.GetConfigMapFromFile("../../../../../testdata/deployercm/deployer-configmap.yaml") 165 Expect(err).NotTo(HaveOccurred()) 166 }) 167 168 Context("create", func() { 169 It("returns an error if base create function called", func() { 170 err := overrider.DeployerCM(instance, cm, resources.Create, nil) 171 Expect(err).To(HaveOccurred()) 172 Expect(err.Error()).To(Equal("no create deployer cm defined, this needs to implemented")) 173 }) 174 }) 175 176 Context("update", func() { 177 It("return an error if no image pull secret provided", func() { 178 instance.Spec.ImagePullSecrets = []string{} 179 err := overrider.DeployerCM(instance, cm, resources.Update, nil) 180 Expect(err).To(HaveOccurred()) 181 Expect(err.Error()).To(Equal("no image pull secret provided")) 182 }) 183 184 It("return an error if no domain provided", func() { 185 instance.Spec.NetworkInfo.Domain = "" 186 err := overrider.DeployerCM(instance, cm, resources.Update, nil) 187 Expect(err).To(HaveOccurred()) 188 Expect(err.Error()).To(Equal("no domain provided")) 189 }) 190 191 It("overrides values based on spec", func() { 192 err := overrider.DeployerCM(instance, cm, resources.Update, nil) 193 Expect(err).NotTo(HaveOccurred()) 194 195 config := &deployer.Config{} 196 197 err = yaml.Unmarshal([]byte(cm.Data["settings.yaml"]), config) 198 Expect(err).NotTo(HaveOccurred()) 199 200 By("setting image pull secret", func() { 201 Expect(config.ImagePullSecrets).To(Equal(instance.Spec.ImagePullSecrets)) 202 }) 203 204 By("setting connection string", func() { 205 Expect(config.Database.ConnectionURL).To(Equal(instance.Spec.Deployer.ConnectionString)) 206 }) 207 208 By("setting versions", func() { 209 expectedVersions := ¤t.Versions{ 210 CA: map[string]current.VersionCA{ 211 "v1-0": current.VersionCA{ 212 Default: true, 213 Version: "v1-0", 214 Image: current.CAImages{ 215 CAInitImage: "ca-init-image", 216 CAInitTag: "1.0.0", 217 CAImage: "ca-image", 218 CATag: "1.0.0", 219 }, 220 }, 221 "v2-0": current.VersionCA{ 222 Default: false, 223 Version: "v2-0", 224 Image: current.CAImages{ 225 CAInitImage: "ca-init-image", 226 CAInitTag: "2.0.0", 227 CAImage: "ca-image", 228 CATag: "2.0.0", 229 }, 230 }, 231 }, 232 Peer: map[string]current.VersionPeer{ 233 "v1-0": current.VersionPeer{ 234 Default: true, 235 Version: "v1-0", 236 Image: current.PeerImages{ 237 PeerInitImage: "peer-init-image", 238 PeerInitTag: "1.0.0", 239 PeerImage: "peer-image", 240 PeerTag: "1.0.0", 241 DindImage: "dind-iamge", 242 DindTag: "1.0.0", 243 GRPCWebImage: "grpcweb-image", 244 GRPCWebTag: "1.0.0", 245 FluentdImage: "fluentd-image", 246 FluentdTag: "1.0.0", 247 CouchDBImage: "couchdb-image", 248 CouchDBTag: "1.0.0", 249 }, 250 }, 251 "v2-0": current.VersionPeer{ 252 Default: false, 253 Version: "v2-0", 254 Image: current.PeerImages{ 255 PeerInitImage: "peer-init-image", 256 PeerInitTag: "2.0.0", 257 PeerImage: "peer-image", 258 PeerTag: "2.0.0", 259 DindImage: "dind-iamge", 260 DindTag: "2.0.0", 261 GRPCWebImage: "grpcweb-image", 262 GRPCWebTag: "2.0.0", 263 FluentdImage: "fluentd-image", 264 FluentdTag: "2.0.0", 265 CouchDBImage: "couchdb-image", 266 CouchDBTag: "2.0.0", 267 CCLauncherImage: "cclauncher-image", 268 CCLauncherTag: "2.0.0", 269 }, 270 }, 271 }, 272 Orderer: map[string]current.VersionOrderer{ 273 "v1-0": current.VersionOrderer{ 274 Default: true, 275 Version: "v1-0", 276 Image: current.OrdererImages{ 277 OrdererInitImage: "orderer-init-image", 278 OrdererInitTag: "1.0.0", 279 OrdererImage: "orderer-image", 280 OrdererTag: "1.0.0", 281 GRPCWebImage: "grpcweb-image", 282 GRPCWebTag: "1.0.0", 283 }, 284 }, 285 "v2-0": current.VersionOrderer{ 286 Default: false, 287 Version: "v2-0", 288 Image: current.OrdererImages{ 289 OrdererInitImage: "orderer-init-image", 290 OrdererInitTag: "2.0.0", 291 OrdererImage: "orderer-image", 292 OrdererTag: "2.0.0", 293 GRPCWebImage: "grpcweb-image", 294 GRPCWebTag: "2.0.0", 295 }, 296 }, 297 }, 298 } 299 300 typeConvertedVersions := ¤t.Versions{} 301 util.ConvertSpec(config.Versions, typeConvertedVersions) 302 Expect(typeConvertedVersions).To(Equal(expectedVersions)) 303 }) 304 305 By("setting storage class name", func() { 306 Expect(config.Defaults.Storage.CA.CA.Class).To(Equal(instance.Spec.Storage.Console.Class)) 307 Expect(config.Defaults.Storage.Peer.Peer.Class).To(Equal(instance.Spec.Storage.Console.Class)) 308 Expect(config.Defaults.Storage.Peer.StateDB.Class).To(Equal(instance.Spec.Storage.Console.Class)) 309 Expect(config.Defaults.Storage.Orderer.Orderer.Class).To(Equal(instance.Spec.Storage.Console.Class)) 310 }) 311 312 By("setting CRN", func() { 313 crn := ¤t.CRN{ 314 CName: instance.Spec.CRN.CName, 315 CType: instance.Spec.CRN.CType, 316 Location: instance.Spec.CRN.Location, 317 Servicename: instance.Spec.CRN.Servicename, 318 Version: instance.Spec.CRN.Version, 319 AccountID: instance.Spec.CRN.AccountID, 320 } 321 Expect(config.CRN).To(Equal(crn)) 322 }) 323 324 By("setting domain", func() { 325 Expect(config.Domain).To(Equal(instance.Spec.NetworkInfo.Domain)) 326 }) 327 328 By("setting must gather images", func() { 329 Expect(config.OtherImages.MustgatherImage).To(Equal("test-image")) 330 Expect(config.OtherImages.MustgatherTag).To(Equal("test-tag")) 331 }) 332 }) 333 334 It("should get default versions if overrides are not passed", func() { 335 instance.Spec.Versions = nil 336 err := overrider.DeployerCM(instance, cm, resources.Update, nil) 337 Expect(err).NotTo(HaveOccurred()) 338 339 config := &deployer.Config{} 340 341 err = yaml.Unmarshal([]byte(cm.Data["settings.yaml"]), config) 342 Expect(err).NotTo(HaveOccurred()) 343 }) 344 }) 345 346 Context("common overrides", func() { 347 Context("version overrides", func() { 348 When("registry url is not set", func() { 349 BeforeEach(func() { 350 instance = ¤t.IBPConsole{ 351 Spec: current.IBPConsoleSpec{ 352 ImagePullSecrets: []string{"pullsecret"}, 353 NetworkInfo: ¤t.NetworkInfo{ 354 Domain: "domain1", 355 }, 356 Versions: ¤t.Versions{ 357 CA: map[string]current.VersionCA{ 358 "v1-0": current.VersionCA{ 359 Image: current.CAImages{ 360 CAInitImage: "ghcr.io/ibm-blockchain/ca-init-image", 361 CAInitTag: "1.0.0", 362 CAImage: "ghcr.io/ibm-blockchain/ca-image", 363 CATag: "1.0.0", 364 }, 365 }, 366 }, 367 Peer: map[string]current.VersionPeer{ 368 "v1-0": current.VersionPeer{ 369 Image: current.PeerImages{ 370 PeerInitImage: "ghcr.io/ibm-blockchain/peer-init-image", 371 PeerInitTag: "1.0.0", 372 PeerImage: "ghcr.io/ibm-blockchain/peer-image", 373 PeerTag: "1.0.0", 374 DindImage: "ghcr.io/ibm-blockchain/dind-iamge", 375 DindTag: "1.0.0", 376 GRPCWebImage: "ghcr.io/ibm-blockchain/grpcweb-image", 377 GRPCWebTag: "1.0.0", 378 FluentdImage: "ghcr.io/ibm-blockchain/fluentd-image", 379 FluentdTag: "1.0.0", 380 CouchDBImage: "ghcr.io/ibm-blockchain/couchdb-image", 381 CouchDBTag: "1.0.0", 382 }, 383 }, 384 }, 385 Orderer: map[string]current.VersionOrderer{ 386 "v1-0": current.VersionOrderer{ 387 Image: current.OrdererImages{ 388 OrdererInitImage: "ghcr.io/ibm-blockchain/orderer-init-image", 389 OrdererInitTag: "1.0.0", 390 OrdererImage: "ghcr.io/ibm-blockchain/orderer-image", 391 OrdererTag: "1.0.0", 392 GRPCWebImage: "ghcr.io/ibm-blockchain/grpcweb-image", 393 GRPCWebTag: "1.0.0", 394 }, 395 }, 396 }, 397 }, 398 }, 399 } 400 }) 401 402 It("keeps images as passed", func() { 403 expectedVersions := ¤t.Versions{ 404 CA: map[string]current.VersionCA{ 405 "v1-0": current.VersionCA{ 406 Image: current.CAImages{ 407 CAInitImage: "ghcr.io/ibm-blockchain/ca-init-image", 408 CAInitTag: "1.0.0-amd64", 409 CAImage: "ghcr.io/ibm-blockchain/ca-image", 410 CATag: "1.0.0-amd64", 411 }, 412 }, 413 }, 414 Peer: map[string]current.VersionPeer{ 415 "v1-0": current.VersionPeer{ 416 Image: current.PeerImages{ 417 PeerInitImage: "ghcr.io/ibm-blockchain/peer-init-image", 418 PeerInitTag: "1.0.0-amd64", 419 PeerImage: "ghcr.io/ibm-blockchain/peer-image", 420 PeerTag: "1.0.0-amd64", 421 DindImage: "ghcr.io/ibm-blockchain/dind-iamge", 422 DindTag: "1.0.0-amd64", 423 GRPCWebImage: "ghcr.io/ibm-blockchain/grpcweb-image", 424 GRPCWebTag: "1.0.0-amd64", 425 FluentdImage: "ghcr.io/ibm-blockchain/fluentd-image", 426 FluentdTag: "1.0.0-amd64", 427 CouchDBImage: "ghcr.io/ibm-blockchain/couchdb-image", 428 CouchDBTag: "1.0.0-amd64", 429 }, 430 }, 431 }, 432 Orderer: map[string]current.VersionOrderer{ 433 "v1-0": current.VersionOrderer{ 434 Image: current.OrdererImages{ 435 OrdererInitImage: "ghcr.io/ibm-blockchain/orderer-init-image", 436 OrdererInitTag: "1.0.0-amd64", 437 OrdererImage: "ghcr.io/ibm-blockchain/orderer-image", 438 OrdererTag: "1.0.0-amd64", 439 GRPCWebImage: "ghcr.io/ibm-blockchain/grpcweb-image", 440 GRPCWebTag: "1.0.0-amd64", 441 }, 442 }, 443 }, 444 } 445 versions := &deployer.Versions{ 446 CA: map[string]deployer.VersionCA{ 447 "1.4": deployer.VersionCA{ 448 Image: deployer.CAImages{ 449 CAInitImage: "ca-init-image", 450 CAInitTag: "1.0.0", 451 CAInitDigest: "", 452 CAImage: "ca-image", 453 CATag: "1.0.0", 454 CADigest: "", 455 }, 456 }, 457 }, 458 Peer: map[string]deployer.VersionPeer{ 459 "1.4": deployer.VersionPeer{ 460 Image: deployer.PeerImages{ 461 PeerInitImage: "peer-init-image", 462 PeerInitTag: "1.0.0", 463 PeerInitDigest: "", 464 PeerImage: "peer-image", 465 PeerTag: "1.0.0", 466 PeerDigest: "", 467 DindImage: "dind-iamge", 468 DindTag: "1.0.0", 469 DindDigest: "", 470 GRPCWebImage: "grpcweb-image", 471 GRPCWebTag: "1.0.0", 472 GRPCWebDigest: "", 473 FluentdImage: "fluentd-image", 474 FluentdTag: "1.0.0", 475 FluentdDigest: "", 476 CouchDBImage: "couchdb-image", 477 CouchDBTag: "1.0.0", 478 CouchDBDigest: "", 479 }, 480 }, 481 }, 482 Orderer: map[string]deployer.VersionOrderer{ 483 "1.4": deployer.VersionOrderer{ 484 Image: deployer.OrdererImages{ 485 OrdererInitImage: "orderer-init-image", 486 OrdererInitTag: "1.0.0", 487 OrdererInitDigest: "", 488 OrdererImage: "orderer-image", 489 OrdererTag: "1.0.0", 490 OrdererDigest: "", 491 GRPCWebImage: "grpcweb-image", 492 GRPCWebTag: "1.0.0", 493 GRPCWebDigest: "", 494 }, 495 }, 496 }, 497 } 498 config := &deployer.Config{ 499 Versions: versions, 500 Defaults: &deployer.Defaults{ 501 Storage: &deployer.Storage{ 502 Peer: ¤t.PeerStorages{ 503 Peer: ¤t.StorageSpec{}, 504 StateDB: ¤t.StorageSpec{}, 505 }, 506 CA: ¤t.CAStorages{ 507 CA: ¤t.StorageSpec{}, 508 }, 509 Orderer: ¤t.OrdererStorages{ 510 Orderer: ¤t.StorageSpec{}, 511 }, 512 }, 513 Resources: &deployer.Resources{}, 514 }, 515 } 516 err := override.CommonDeployerCM(instance, config, nil) 517 Expect(err).NotTo(HaveOccurred()) 518 // verify CA images and tags 519 Expect(config.Versions.CA["1.4"].Image.CAImage).To(Equal(expectedVersions.CA["1.4"].Image.CAImage)) 520 Expect(config.Versions.CA["1.4"].Image.CATag).To(Equal(expectedVersions.CA["1.4"].Image.CATag)) 521 Expect(config.Versions.CA["1.4"].Image.CAInitImage).To(Equal(expectedVersions.CA["1.4"].Image.CAInitImage)) 522 Expect(config.Versions.CA["1.4"].Image.CAInitTag).To(Equal(expectedVersions.CA["1.4"].Image.CAInitTag)) 523 // verify Peer images and tags 524 Expect(config.Versions.Peer["1.4"].Image.PeerInitImage).To(Equal(expectedVersions.Peer["1.4"].Image.PeerInitImage)) 525 Expect(config.Versions.Peer["1.4"].Image.PeerInitTag).To(Equal(expectedVersions.Peer["1.4"].Image.PeerInitTag)) 526 Expect(config.Versions.Peer["1.4"].Image.PeerImage).To(Equal(expectedVersions.Peer["1.4"].Image.PeerImage)) 527 Expect(config.Versions.Peer["1.4"].Image.PeerTag).To(Equal(expectedVersions.Peer["1.4"].Image.PeerTag)) 528 Expect(config.Versions.Peer["1.4"].Image.DindImage).To(Equal(expectedVersions.Peer["1.4"].Image.DindImage)) 529 Expect(config.Versions.Peer["1.4"].Image.DindTag).To(Equal(expectedVersions.Peer["1.4"].Image.DindTag)) 530 Expect(config.Versions.Peer["1.4"].Image.FluentdImage).To(Equal(expectedVersions.Peer["1.4"].Image.FluentdImage)) 531 Expect(config.Versions.Peer["1.4"].Image.FluentdTag).To(Equal(expectedVersions.Peer["1.4"].Image.FluentdTag)) 532 Expect(config.Versions.Peer["1.4"].Image.CouchDBImage).To(Equal(expectedVersions.Peer["1.4"].Image.CouchDBImage)) 533 Expect(config.Versions.Peer["1.4"].Image.CouchDBTag).To(Equal(expectedVersions.Peer["1.4"].Image.CouchDBTag)) 534 Expect(config.Versions.Peer["1.4"].Image.GRPCWebImage).To(Equal(expectedVersions.Peer["1.4"].Image.GRPCWebImage)) 535 Expect(config.Versions.Peer["1.4"].Image.GRPCWebTag).To(Equal(expectedVersions.Peer["1.4"].Image.GRPCWebTag)) 536 // verify Orderer images and tags 537 Expect(config.Versions.Orderer["1.4"].Image.OrdererImage).To(Equal(expectedVersions.Orderer["1.4"].Image.OrdererImage)) 538 Expect(config.Versions.Orderer["1.4"].Image.OrdererTag).To(Equal(expectedVersions.Orderer["1.4"].Image.OrdererTag)) 539 Expect(config.Versions.Orderer["1.4"].Image.OrdererInitImage).To(Equal(expectedVersions.Orderer["1.4"].Image.OrdererInitImage)) 540 Expect(config.Versions.Orderer["1.4"].Image.OrdererInitTag).To(Equal(expectedVersions.Orderer["1.4"].Image.OrdererInitTag)) 541 Expect(config.Versions.Orderer["1.4"].Image.GRPCWebImage).To(Equal(expectedVersions.Orderer["1.4"].Image.GRPCWebImage)) 542 Expect(config.Versions.Orderer["1.4"].Image.GRPCWebTag).To(Equal(expectedVersions.Orderer["1.4"].Image.GRPCWebTag)) 543 }) 544 }) 545 546 When("registry url is set", func() { 547 BeforeEach(func() { 548 instance = ¤t.IBPConsole{ 549 Spec: current.IBPConsoleSpec{ 550 ImagePullSecrets: []string{"pullsecret"}, 551 NetworkInfo: ¤t.NetworkInfo{ 552 Domain: "domain1", 553 }, 554 RegistryURL: "ghcr.io/ibm-blockchain/", 555 Versions: ¤t.Versions{ 556 CA: map[string]current.VersionCA{ 557 "v1-0": current.VersionCA{ 558 Image: current.CAImages{ 559 CAInitImage: "ca-init-image", 560 CAInitTag: "1.0.0", 561 CAImage: "ca-image", 562 CATag: "1.0.0", 563 }, 564 }, 565 }, 566 Peer: map[string]current.VersionPeer{ 567 "v1-0": current.VersionPeer{ 568 Image: current.PeerImages{ 569 PeerInitImage: "peer-init-image", 570 PeerInitTag: "1.0.0", 571 PeerImage: "peer-image", 572 PeerTag: "1.0.0", 573 DindImage: "dind-iamge", 574 DindTag: "1.0.0", 575 GRPCWebImage: "grpcweb-image", 576 GRPCWebTag: "1.0.0", 577 FluentdImage: "fluentd-image", 578 FluentdTag: "1.0.0", 579 CouchDBImage: "couchdb-image", 580 CouchDBTag: "1.0.0", 581 }, 582 }, 583 }, 584 Orderer: map[string]current.VersionOrderer{ 585 "v1-0": current.VersionOrderer{ 586 Image: current.OrdererImages{ 587 OrdererInitImage: "orderer-init-image", 588 OrdererInitTag: "1.0.0", 589 OrdererImage: "orderer-image", 590 OrdererTag: "1.0.0", 591 GRPCWebImage: "grpcweb-image", 592 GRPCWebTag: "1.0.0", 593 }, 594 }, 595 }, 596 }, 597 }, 598 } 599 }) 600 601 It("prepends registry url to images", func() { 602 expectedVersions := ¤t.Versions{ 603 CA: map[string]current.VersionCA{ 604 "v1-0": current.VersionCA{ 605 Image: current.CAImages{ 606 CAInitImage: "ghcr.io/ibm-blockchain/ca-init-image", 607 CAInitTag: "1.0.0-amd64", 608 CAImage: "ghcr.io/ibm-blockchain/ca-image", 609 CATag: "1.0.0-amd64", 610 }, 611 }, 612 }, 613 Peer: map[string]current.VersionPeer{ 614 "v1-0": current.VersionPeer{ 615 Image: current.PeerImages{ 616 PeerInitImage: "ghcr.io/ibm-blockchain/peer-init-image", 617 PeerInitTag: "1.0.0-amd64", 618 PeerImage: "ghcr.io/ibm-blockchain/peer-image", 619 PeerTag: "1.0.0-amd64", 620 DindImage: "ghcr.io/ibm-blockchain/dind-iamge", 621 DindTag: "1.0.0-amd64", 622 GRPCWebImage: "ghcr.io/ibm-blockchain/grpcweb-image", 623 GRPCWebTag: "1.0.0-amd64", 624 FluentdImage: "ghcr.io/ibm-blockchain/fluentd-image", 625 FluentdTag: "1.0.0-amd64", 626 CouchDBImage: "ghcr.io/ibm-blockchain/couchdb-image", 627 CouchDBTag: "1.0.0-amd64", 628 }, 629 }, 630 }, 631 Orderer: map[string]current.VersionOrderer{ 632 "v1-0": current.VersionOrderer{ 633 Image: current.OrdererImages{ 634 OrdererInitImage: "ghcr.io/ibm-blockchain/orderer-init-image", 635 OrdererInitTag: "1.0.0-amd64", 636 OrdererImage: "ghcr.io/ibm-blockchain/orderer-image", 637 OrdererTag: "1.0.0-amd64", 638 GRPCWebImage: "ghcr.io/ibm-blockchain/grpcweb-image", 639 GRPCWebTag: "1.0.0-amd64", 640 }, 641 }, 642 }, 643 } 644 versions := &deployer.Versions{ 645 CA: map[string]deployer.VersionCA{ 646 "1.4": deployer.VersionCA{ 647 Image: deployer.CAImages{ 648 CAInitImage: "ca-init-image", 649 CAInitTag: "1.0.0", 650 CAInitDigest: "", 651 CAImage: "ca-image", 652 CATag: "1.0.0", 653 CADigest: "", 654 }, 655 }, 656 }, 657 Peer: map[string]deployer.VersionPeer{ 658 "1.4": deployer.VersionPeer{ 659 Image: deployer.PeerImages{ 660 PeerInitImage: "peer-init-image", 661 PeerInitTag: "1.0.0", 662 PeerInitDigest: "", 663 PeerImage: "peer-image", 664 PeerTag: "1.0.0", 665 PeerDigest: "", 666 DindImage: "dind-iamge", 667 DindTag: "1.0.0", 668 DindDigest: "", 669 GRPCWebImage: "grpcweb-image", 670 GRPCWebTag: "1.0.0", 671 GRPCWebDigest: "", 672 FluentdImage: "fluentd-image", 673 FluentdTag: "1.0.0", 674 FluentdDigest: "", 675 CouchDBImage: "couchdb-image", 676 CouchDBTag: "1.0.0", 677 CouchDBDigest: "", 678 }, 679 }, 680 }, 681 Orderer: map[string]deployer.VersionOrderer{ 682 "1.4": deployer.VersionOrderer{ 683 Image: deployer.OrdererImages{ 684 OrdererInitImage: "orderer-init-image", 685 OrdererInitTag: "1.0.0", 686 OrdererInitDigest: "", 687 OrdererImage: "orderer-image", 688 OrdererTag: "1.0.0", 689 OrdererDigest: "", 690 GRPCWebImage: "grpcweb-image", 691 GRPCWebTag: "1.0.0", 692 GRPCWebDigest: "", 693 }, 694 }, 695 }, 696 } 697 config := &deployer.Config{ 698 Versions: versions, 699 Defaults: &deployer.Defaults{ 700 Storage: &deployer.Storage{ 701 Peer: ¤t.PeerStorages{ 702 Peer: ¤t.StorageSpec{}, 703 StateDB: ¤t.StorageSpec{}, 704 }, 705 CA: ¤t.CAStorages{ 706 CA: ¤t.StorageSpec{}, 707 }, 708 Orderer: ¤t.OrdererStorages{ 709 Orderer: ¤t.StorageSpec{}, 710 }, 711 }, 712 Resources: &deployer.Resources{}, 713 }, 714 } 715 err := override.CommonDeployerCM(instance, config, nil) 716 Expect(err).NotTo(HaveOccurred()) 717 // verify CA images and tags 718 Expect(config.Versions.CA["1.4"].Image.CAImage).To(Equal(expectedVersions.CA["1.4"].Image.CAImage)) 719 Expect(config.Versions.CA["1.4"].Image.CATag).To(Equal(expectedVersions.CA["1.4"].Image.CATag)) 720 Expect(config.Versions.CA["1.4"].Image.CAInitImage).To(Equal(expectedVersions.CA["1.4"].Image.CAInitImage)) 721 Expect(config.Versions.CA["1.4"].Image.CAInitTag).To(Equal(expectedVersions.CA["1.4"].Image.CAInitTag)) 722 // verify Peer images and tags 723 Expect(config.Versions.Peer["1.4"].Image.PeerInitImage).To(Equal(expectedVersions.Peer["1.4"].Image.PeerInitImage)) 724 Expect(config.Versions.Peer["1.4"].Image.PeerInitTag).To(Equal(expectedVersions.Peer["1.4"].Image.PeerInitTag)) 725 Expect(config.Versions.Peer["1.4"].Image.PeerImage).To(Equal(expectedVersions.Peer["1.4"].Image.PeerImage)) 726 Expect(config.Versions.Peer["1.4"].Image.PeerTag).To(Equal(expectedVersions.Peer["1.4"].Image.PeerTag)) 727 Expect(config.Versions.Peer["1.4"].Image.DindImage).To(Equal(expectedVersions.Peer["1.4"].Image.DindImage)) 728 Expect(config.Versions.Peer["1.4"].Image.DindTag).To(Equal(expectedVersions.Peer["1.4"].Image.DindTag)) 729 Expect(config.Versions.Peer["1.4"].Image.FluentdImage).To(Equal(expectedVersions.Peer["1.4"].Image.FluentdImage)) 730 Expect(config.Versions.Peer["1.4"].Image.FluentdTag).To(Equal(expectedVersions.Peer["1.4"].Image.FluentdTag)) 731 Expect(config.Versions.Peer["1.4"].Image.CouchDBImage).To(Equal(expectedVersions.Peer["1.4"].Image.CouchDBImage)) 732 Expect(config.Versions.Peer["1.4"].Image.CouchDBTag).To(Equal(expectedVersions.Peer["1.4"].Image.CouchDBTag)) 733 Expect(config.Versions.Peer["1.4"].Image.GRPCWebImage).To(Equal(expectedVersions.Peer["1.4"].Image.GRPCWebImage)) 734 Expect(config.Versions.Peer["1.4"].Image.GRPCWebTag).To(Equal(expectedVersions.Peer["1.4"].Image.GRPCWebTag)) 735 // verify Orderer images and tags 736 Expect(config.Versions.Orderer["1.4"].Image.OrdererImage).To(Equal(expectedVersions.Orderer["1.4"].Image.OrdererImage)) 737 Expect(config.Versions.Orderer["1.4"].Image.OrdererTag).To(Equal(expectedVersions.Orderer["1.4"].Image.OrdererTag)) 738 Expect(config.Versions.Orderer["1.4"].Image.OrdererInitImage).To(Equal(expectedVersions.Orderer["1.4"].Image.OrdererInitImage)) 739 Expect(config.Versions.Orderer["1.4"].Image.OrdererInitTag).To(Equal(expectedVersions.Orderer["1.4"].Image.OrdererInitTag)) 740 Expect(config.Versions.Orderer["1.4"].Image.GRPCWebImage).To(Equal(expectedVersions.Orderer["1.4"].Image.GRPCWebImage)) 741 Expect(config.Versions.Orderer["1.4"].Image.GRPCWebTag).To(Equal(expectedVersions.Orderer["1.4"].Image.GRPCWebTag)) 742 }) 743 }) 744 }) 745 }) 746 })