Skip to content
Merged
92 changes: 70 additions & 22 deletions ibm_catalog.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"products": [
{
"label": "Cloud automation for Logs agent",
"label": "Cloud automation for Logs Agent",
"name": "deploy-arch-ibm-logs-agent",
"product_kind": "solution",
"tags": [
Expand All @@ -22,43 +22,64 @@
"solution"
],
"provider_name": "IBM",
"short_description": "Deploys IBM Logs Agent to a cluster",
"long_description": "Solution that support deploying IBM Logs Agent for logging.",
"offering_docs_url": "https://github.com/terraform-ibm-modules/terraform-ibm-logs-agent/blob/main/solutions/fully-configurable/README.md",
"short_description": "Automates the installation of the IBM Logs Agent on a Red Hat OpenShift Cluster or Kubernetes Service",
"long_description": "The Cloud Automation for the [Logs Agent](https://cloud.ibm.com/docs/cloud-logs?topic=cloud-logs-agent-about) on a Red Hat OpenShift cluster or Kubernetes Service simplifies the configuration process, enabling the agent to collect and forward infrastructure and application logs directly to an IBM Cloud Logs instance.\n\nℹ️ This Terraform-based automation is part of a broader suite of IBM-maintained Infrastructure as Code (IaC) assets, each following the naming pattern \"Cloud automation for *servicename*\" and focusing on single IBM Cloud service. These single-service deployable architectures can be used on their own to streamline and automate service deployments through an [IaC approach](https://cloud.ibm.com/docs/secure-enterprise?topic=secure-enterprise-understanding-projects), or assembled together into a broader [automated IaC stack](https://cloud.ibm.com/docs/secure-enterprise?topic=secure-enterprise-config-stack) to automate the deployment of an end-to-end solution architecture.",
"offering_docs_url": "https://github.com/terraform-ibm-modules/terraform-ibm-logs-agent/blob/main/README.md",
"offering_icon_url": "https://raw.githubusercontent.com/terraform-ibm-modules/terraform-ibm-logs-agent/refs/heads/main/images/logs-icon.svg",
"features": [
{
"title": "Logs Agent",
"description": "Deploys the IBM Logs Agent on a [Red Hat OpenShift Cluster](https://cloud.ibm.com/docs/openshift) or [Kubernetes Service](https://cloud.ibm.com/docs/containers?topic=containers-getting-started)."
}
],
"flavors": [
{
"label": "Fully configurable",
"name": "fully-configurable",
"index": 1,
"install_type": "fullstack",
"working_directory": "solutions/fully-configurable",
"compliance": {
"authority": "scc-v3",
"profiles": [
{
"profile_name": "IBM Cloud Framework for Financial Services",
"profile_version": "1.7.0"
}
]
},
"iam_permissions": [
{
"service_name": "containers-kubernetes",
"role_crns": [
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
"crn:v1:bluemix:public:iam::::role:Viewer"
]
],
"notes": "Required to create and edit Logs Agent related resources."
},
{
"role_crns": [
"crn:v1:bluemix:public:iam::::role:Viewer"
],
"service_name": "Resource group only",
"notes": "Viewer access is required in the resource group you want to provision in."
}
],
"architecture": {
"features": [
{
"title": "Works with any Openshift or k8s cluster",
"description": "Yes"
},
{
"title": "Deploys the IBM Logs Agent on an existing cluster.",
"description": "Yes"
"title": " ",
"description": "Configured to use IBM secure by default standards, but can be edited to fit your use case."
}
],
"diagrams": [
{
"diagram": {
"url": "https://raw.githubusercontent.com/terraform-ibm-modules/terraform-ibm-logs-agent/refs/heads/main/reference-architecture/deployable-architecture-logs-agent.svg",
"caption": "Logs Agent on a cluster",
"caption": "Logs Agent topology",
"type": "image/svg+xml"
},
"description": "Logs Agent deployed on a cluster."
"description": "<b>Logs Agent</b> can be deployed on a Red Hat OpenShift cluster or a Kubernetes service to collect, process, and forward application and system logs to a [IBM Cloud Logs instance](https://cloud.ibm.com/docs/cloud-logs). This setup is essential for achieving comprehensive observability, supporting both real-time monitoring and historical analysis of workloads running within the cluster."
}
]
},
Expand Down Expand Up @@ -108,6 +129,12 @@
"key": "logs_agent_trusted_profile_id",
"required": true
},
{
"key": "logs_agent_name"
},
{
"key": "logs_agent_namespace"
},
{
"key": "logs_agent_chart"
},
Expand All @@ -134,7 +161,12 @@
}
},
{
"key": "logs_agent_additional_metadata"
"key": "logs_agent_additional_metadata",
"custom_config": {
"type": "textarea",
"grouping": "deployment",
"original_grouping": "deployment"
}
},
{
"key": "logs_agent_exclude_log_source_paths",
Expand Down Expand Up @@ -193,17 +225,16 @@
}
}
},
{
"key": "logs_agent_name"
},
{
"key": "logs_agent_namespace"
},
{
"key": "logs_agent_selected_log_source_paths"
},
{
"key": "logs_agent_tolerations"
"key": "logs_agent_tolerations",
"custom_config": {
"type": "textarea",
"grouping": "deployment",
"original_grouping": "deployment"
}
},
{
"key": "cluster_config_endpoint_type",
Expand Down Expand Up @@ -252,9 +283,26 @@
},
{
"key": "enable_multiline"
},
{
"key": "provider_visibility",
"options": [
{
"displayname": "private",
"value": "private"
},
{
"displayname": "public",
"value": "public"
},
{
"displayname": "public-and-private",
"value": "public-and-private"
}
],
"hidden": true
}
],
"install_type": "fullstack",
"terraform_version": "1.10.5"
}
]
Expand Down
5 changes: 4 additions & 1 deletion images/logs-icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 3 additions & 3 deletions solutions/fully-configurable/DA-types.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ When you deploy the IBM Logs agent using `Cloud automation for Logs agent`, you
To configure tolerations for the logs agent, you can set the `logs_agent_tolerations` variable as follows:

```hcl
logs_agent_tolerations = [
[
{
key = "example-key"
operator = "Equal"
Expand Down Expand Up @@ -50,7 +50,7 @@ When you deploy the IBM logs agent using `Cloud automation for Logs agent`, you
To configure additional metadata for the logs agent, you can set the `logs_agent_additional_metadata` variable as follows:

```hcl
logs_agent_additional_metadata = [
[
{
key = "environment"
value = "production"
Expand Down Expand Up @@ -89,7 +89,7 @@ When you deploy the IBM Logs agent using `Cloud automation for Logs agent`, you
To configure resource requests and limits for the logs agent, you can set the `logs_agent_resources` variable as follows:

```hcl
logs_agent_resources = {
{
requests = {
cpu = "100m"
memory = "128Mi"
Expand Down
16 changes: 2 additions & 14 deletions solutions/fully-configurable/README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,3 @@
# Cloud automation for Logs agent
# Cloud automation for Logs agent (Fully configurable)

This architecture deploys the following monitoring agent on a Red Hat OpenShift cluster:

* Cloud Monitoring agent

## Before you begin

* Make sure that the Cluster is deployed.

* Make sure that the Cloud Monitoring instance is deployed.

![monitoring-agent-deployable-architecture](../../reference-architecture/deployable-architecture-logs-agent.svg)

**NB:** This solution is not intended to be called by one or more other modules since it contains a provider configurations, meaning it is not compatible with the `for_each`, `count`, and `depends_on` arguments. For more information see [Providers Within Modules](https://developer.hashicorp.com/terraform/language/modules/develop/providers)
:exclamation: **Important:** This solution is not intended to be called by other modules because it contains a provider configuration and is not compatible with the `for_each`, `count`, and `depends_on` arguments. For more information, see [Providers Within Modules](https://developer.hashicorp.com/terraform/language/modules/develop/providers).
1 change: 1 addition & 0 deletions solutions/fully-configurable/provider.tf
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
provider "ibm" {
ibmcloud_api_key = var.ibmcloud_api_key
visibility = var.provider_visibility
}

provider "kubernetes" {
Expand Down
11 changes: 11 additions & 0 deletions solutions/fully-configurable/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -230,3 +230,14 @@ variable "enable_multiline" {
type = bool
default = false
}

variable "provider_visibility" {
description = "Set the visibility value for the IBM terraform provider. Supported values are `public`, `private`, `public-and-private`. [Learn more](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/guides/custom-service-endpoints)."
type = string
default = "private"

validation {
condition = contains(["public", "private", "public-and-private"], var.provider_visibility)
error_message = "Invalid visibility option. Allowed values are 'public', 'private', or 'public-and-private'."
}
}