Skip to content
This repository was archived by the owner on Dec 17, 2024. It is now read-only.

Commit 105ee23

Browse files
authored
feat: added new standard (roks) variation for stack (#38)
1 parent e98085c commit 105ee23

File tree

5 files changed

+1203
-6
lines changed

5 files changed

+1203
-6
lines changed

ibm_catalog.json

Lines changed: 341 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -143,13 +143,13 @@
143143
{
144144
"service_name": "databases-for-elasticsearch",
145145
"role_crns": [
146-
"crn:v1:bluemix:public:iam::::role:Editor"
146+
"crn:v1:bluemix:public:iam::::role:Editor"
147147
]
148148
},
149149
{
150150
"service_name": "event-notifications",
151151
"role_crns": [
152-
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
152+
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
153153
"crn:v1:bluemix:public:iam::::role:Editor"
154154
]
155155
}
@@ -248,7 +248,345 @@
248248
"default_value": "rag-services",
249249
"description": "The name of the resource group that is created by this solution. The actual name is prefixed with the value of the input 'prefix'. All resources created by this solution are deployed in this resource group.",
250250
"required": false
251-
}, {
251+
},
252+
{
253+
"key": "existing_resource_group_name",
254+
"type": "string",
255+
"default_value": "__NULL__",
256+
"description": "The name of an existing resource group that is used by this solution, takes precedence over resource_group_name. Prefix is NOT used for existing resource group. All resources created by this solution are deployed in this resource group.",
257+
"required": false
258+
},
259+
{
260+
"key": "watsonx_admin_api_key",
261+
"type": "password",
262+
"description": "The API key used to provision the watson project resources. If not set, the API key used to deploy the solution is used.",
263+
"required": false
264+
},
265+
{
266+
"key": "secret_manager_service_plan",
267+
"type": "string",
268+
"default_value": "trial",
269+
"description": "The service/pricing plan to use when provisioning a new Secrets Manager instance. Only one trial instance is allowed per account.",
270+
"required": false,
271+
"options": [
272+
{
273+
"displayname": "Trial",
274+
"value": "trial"
275+
},
276+
{
277+
"displayname": "Standard",
278+
"value": "standard"
279+
}
280+
]
281+
},
282+
{
283+
"key": "existing_secrets_manager_crn",
284+
"type": "string",
285+
"default_value": "__NULL__",
286+
"description": "The CRN of an existing secret manager instance to use in this solution. If not set, a new secret manager instance is provisioned.",
287+
"required": false
288+
},
289+
{
290+
"key": "enable_platform_logs_metrics",
291+
"type": "boolean",
292+
"default_value": false,
293+
"description": "Whether to provision logging and monitoring instances are configured to receive all platform logs and metrics in the target region. There can only be one instance per region provisioned for platform logs/metrics.",
294+
"required": false
295+
},
296+
{
297+
"key": "sample_app_git_url",
298+
"type": "string",
299+
"default_value": "https://github.com/IBM/gen-ai-rag-watsonx-sample-application",
300+
"description": "The URL to the public git repository containing the sample rag application code.",
301+
"required": false
302+
},
303+
{
304+
"key": "existing_kms_instance_crn",
305+
"type": "string",
306+
"default_value": "__NULL__",
307+
"description": "The CRN of an existing KMS instance to use in this solution. If not set, a new KP instance is provisioned.",
308+
"required": false
309+
},
310+
{
311+
"key": "existing_event_notification_instance_crn",
312+
"type": "string",
313+
"default_value": "__NULL__",
314+
"description": "The CRN of an existing event notification instance to use in this solution. If not set, a new event notification instance is provisioned.",
315+
"required": false
316+
},
317+
{
318+
"key": "existing_discovery_instance",
319+
"type": "string",
320+
"default_value": "__NULL__",
321+
"description": "The CRN of an existing WatsonX SaaS discovery instance to use in this solution. If not set, a new discovery instance is provisioned depending on which plan is selected.",
322+
"required": false
323+
},
324+
{
325+
"key": "existing_assistant_instance_crn",
326+
"type": "string",
327+
"default_value": "__NULL__",
328+
"description": "The CRN of an existing WatsonX SaaS assistant instance to use in this solution. If not set, a new assistant instance is provisioned depending on which plan is selected.",
329+
"required": false
330+
},
331+
{
332+
"key": "existing_governance_instance",
333+
"type": "string",
334+
"default_value": "__NULL__",
335+
"description": "The CRN of an existing WatsonX SaaS governance instance to use in this solution. If not set, a new governance instance is provisioned depending on which plan is selected.",
336+
"required": false
337+
},
338+
{
339+
"key": "existing_studio_instance",
340+
"type": "string",
341+
"default_value": "__NULL__",
342+
"description": "The CRN of an existing WatsonX SaaS studio instance to use in this solution. If not set, a new studio instance is provisioned depending on which plan is selected.",
343+
"required": false
344+
},
345+
{
346+
"key": "existing_machine_learning_instance",
347+
"type": "string",
348+
"default_value": "__NULL__",
349+
"description": "The CRN of an existing WatsonX SaaS machine learning instance to use in this solution. If not set, a new machine learning instance is provisioned depending on which plan is selected.",
350+
"required": false
351+
},
352+
{
353+
"key": "existing_elasticsearch_instance_crn",
354+
"type": "string",
355+
"default_value": "__NULL__",
356+
"description": "The CRN of an existing elasticsearch instance to use in this solution. If not set, a new elasticsearch instance is provisioned.",
357+
"required": false
358+
}
359+
],
360+
"outputs": [
361+
{
362+
"key": "elasticsearch_hostname",
363+
"description": "The hostname of the Elasticsearch instance."
364+
},
365+
{
366+
"key": "elasticsearch_port",
367+
"description": "The port of the Elasticsearch instance."
368+
},
369+
{
370+
"key": "elasticsearch_service_credentials_json",
371+
"description": "The service credentials of the Elasticsearch instance."
372+
},
373+
{
374+
"key": "elasticsearch_crn",
375+
"description": "The CRN of the Elasticsearch instance."
376+
},
377+
{
378+
"key": "watsonx_project_url",
379+
"description": "The URL to the WatsonX project for the sample RAG application."
380+
},
381+
{
382+
"key": "watsonx_project_id",
383+
"description": "The ID for the WatsonX project for the sample RAG application."
384+
},
385+
{
386+
"key": "watson_discovery_api_url",
387+
"description": "The URL to the Watson Discovery API endpoint."
388+
},
389+
{
390+
"key": "watson_discovery_project_id",
391+
"description": "The ID for the Watson Discovery project for the sample RAG application."
392+
}
393+
],
394+
"install_type": "fullstack"
395+
},
396+
{
397+
"label": "Standard (Deploy on Red Hat OpenShift)",
398+
"name": "standard",
399+
"working_directory": "solutions/standard",
400+
"compliance": {
401+
"authority": "scc-v3",
402+
"profiles": [
403+
{
404+
"profile_name": "AI Security Guardrails 2.0",
405+
"profile_version": "1.0.0"
406+
}
407+
]
408+
},
409+
"iam_permissions": [
410+
{
411+
"service_name": "iam-groups",
412+
"role_crns": [
413+
"crn:v1:bluemix:public:iam::::role:Administrator"
414+
]
415+
},
416+
{
417+
"role_crns": [
418+
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
419+
"crn:v1:bluemix:public:iam::::role:Editor"
420+
],
421+
"service_name": "cloud-object-storage"
422+
},
423+
{
424+
"role_crns": [
425+
"crn:v1:bluemix:public:iam::::role:Administrator"
426+
],
427+
"service_name": "iam-identity"
428+
},
429+
{
430+
"role_crns": [
431+
"crn:v1:bluemix:public:iam::::serviceRole:Writer",
432+
"crn:v1:bluemix:public:iam::::role:Administrator"
433+
],
434+
"service_name": "atracker"
435+
},
436+
{
437+
"role_crns": [
438+
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
439+
"crn:v1:bluemix:public:iam::::role:Editor"
440+
],
441+
"service_name": "kms"
442+
},
443+
{
444+
"service_name": "compliance",
445+
"role_crns": [
446+
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
447+
"crn:v1:bluemix:public:iam::::role:Editor"
448+
]
449+
},
450+
{
451+
"role_crns": [
452+
"crn:v1:bluemix:public:iam::::role:Editor"
453+
],
454+
"service_name": "pm-20"
455+
},
456+
{
457+
"role_crns": [
458+
"crn:v1:bluemix:public:iam::::role:Editor"
459+
],
460+
"service_name": "data-science-experience"
461+
},
462+
{
463+
"role_crns": [
464+
"crn:v1:bluemix:public:iam::::role:Editor"
465+
],
466+
"service_name": "aiopenscale"
467+
},
468+
{
469+
"role_crns": [
470+
"crn:v1:bluemix:public:iam::::role:Editor"
471+
],
472+
"service_name": "conversation"
473+
},
474+
{
475+
"role_crns": [
476+
"crn:v1:bluemix:public:iam::::role:Editor"
477+
],
478+
"service_name": "discovery"
479+
},
480+
{
481+
"service_name": "databases-for-elasticsearch",
482+
"role_crns": [
483+
"crn:v1:bluemix:public:iam::::role:Editor"
484+
]
485+
},
486+
{
487+
"service_name": "event-notifications",
488+
"role_crns": [
489+
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
490+
"crn:v1:bluemix:public:iam::::role:Editor"
491+
]
492+
}
493+
],
494+
"architecture": {
495+
"features": [
496+
{
497+
"title": "Retrieval Augmented Generation sample pattern",
498+
"description": "Deploy a banking retrieval augmented generation (RAG) sample application to IBM Cloud Code Engine using Continous Delivery."
499+
},
500+
{
501+
"title": "Ensure Observability",
502+
"description": "The architecture provides observability by deploying services such as IBM Log Analysis, IBM Monitoring, IBM Activity Tracker, and log retention through Cloud Object Storage buckets."
503+
},
504+
{
505+
"title": "Implement Security",
506+
"description": "The architecture ensures security by deploying IBM Key Protect and IBM Secrets Manager."
507+
},
508+
{
509+
"title": "Achieve Regulatory Compliance",
510+
"description": "The architecture ensures regulatory compliance by implementing CI/CD/CC pipelines, along with IBM Security Compliance Center (SCC) for secure application lifecycle management."
511+
},
512+
{
513+
"title": "Establish Trust",
514+
"description": "The architecture ensures trust by configuring the IBM Cloud account to align with compliance settings as defined in the Financial Services framework."
515+
}
516+
],
517+
"diagrams": [
518+
{
519+
"diagram": {
520+
"url": "https://raw.githubusercontent.com/terraform-ibm-modules/dev-rag/main/reference-architecture/rag-pattern.svg",
521+
"caption": "Reference architecture",
522+
"type": "image/svg+xml",
523+
"thumbnail_url": "https://raw.githubusercontent.com/terraform-ibm-modules/dev-rag/main/reference-architecture/rag-pattern.svg"
524+
},
525+
"description": "Reference architecture"
526+
},
527+
{
528+
"diagram": {
529+
"url": "https://raw.githubusercontent.com/terraform-ibm-modules/dev-rag/main/reference-architecture/rag-stack.svg",
530+
"caption": "Solution components",
531+
"type": "image/svg+xml",
532+
"thumbnail_url": "https://raw.githubusercontent.com/terraform-ibm-modules/dev-rag/main/reference-architecture/rag-stack.svg"
533+
},
534+
"description": "Solution components"
535+
}
536+
]
537+
},
538+
"configuration": [
539+
{
540+
"key": "prefix",
541+
"type": "string",
542+
"description": "A prefix added to the name of all resources created by this solution. Must be 13 characters or less. Used to avoid name clashes in the target account when existing this solution multiple times.",
543+
"default_value": "rag",
544+
"required": true
545+
},
546+
{
547+
"key": "ibmcloud_api_key",
548+
"type": "password",
549+
"description": "The API Key used to provision all resources created in this solution.",
550+
"required": true
551+
},
552+
{
553+
"key": "signing_key",
554+
"type": "password",
555+
"description": "The key used to sign the application image built by the CI pipeline deployed in this solution; please refer to the documentation at https://github.com/terraform-ibm-modules/stack-retrieval-augmented-generation/blob/main/README.md for generating the key; if not set, all resources will deploy successfully, but the initial CI pipeline execution will fail at the signing step.",
556+
"display_name": "Multiline secure value",
557+
"default_value": "replace",
558+
"required": false,
559+
"custom_config": {
560+
"type": "multiline_secure_value",
561+
"grouping": "deployment",
562+
"original_grouping": "deployment"
563+
}
564+
},
565+
{
566+
"key": "region",
567+
"type": "string",
568+
"default_value": "us-south",
569+
"description": "The region in which all resources are deployed.",
570+
"required": false,
571+
"options": [
572+
{
573+
"displayname": "us-south",
574+
"value": "us-south"
575+
},
576+
{
577+
"displayname": "eu-de",
578+
"value": "eu-de"
579+
}
580+
]
581+
},
582+
{
583+
"key": "resource_group_name",
584+
"type": "string",
585+
"default_value": "rag-services",
586+
"description": "The name of the resource group that is created by this solution. The actual name is prefixed with the value of the input 'prefix'. All resources created by this solution are deployed in this resource group.",
587+
"required": false
588+
},
589+
{
252590
"key": "existing_resource_group_name",
253591
"type": "string",
254592
"default_value": "__NULL__",

solutions/basic/stack_definition.json

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -402,13 +402,15 @@
402402
},
403403
{
404404
"name": "profile_attachments",
405-
"value": ["AI Security Guardrails 2.0"]
405+
"value": [
406+
"AI Security Guardrails 2.0"
407+
]
406408
}
407409
]
408410
},
409411
{
410412
"name": "Gen AI - Databases for Elasticsearch",
411-
"version_locator": "7a4d68b4-cf8b-40cd-a3d1-f49aff526eb3.1b14c633-2d83-49a9-a9ee-4ce5921e22e1-global",
413+
"version_locator": "7a4d68b4-cf8b-40cd-a3d1-f49aff526eb3.3858adc6-94f5-4f28-97c0-f249cba95e8a-global",
412414
"inputs": [
413415
{
414416
"name": "use_existing_resource_group",
@@ -560,7 +562,10 @@
560562
},
561563
{
562564
"name": "project_names",
563-
"value": ["Generative_AI_Sample_App_CI_Project", "Generative_AI_Sample_App_CD_Project"]
565+
"value": [
566+
"Generative_AI_Sample_App_CI_Project",
567+
"Generative_AI_Sample_App_CD_Project"
568+
]
564569
},
565570
{
566571
"name": "region",
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"ibmcloud_api_key": $VALIDATION_APIKEY,
3+
"prefix": $PREFIX
4+
}

0 commit comments

Comments
 (0)