cloud-native-toolkit / automation-solutions

A collection of Bills of Materials that address solution/use-case scenarios.
https://cloud-native-toolkit.github.io/automation-solutions/
Apache License 2.0
3 stars 9 forks source link
aws azure billofmaterials ibm infrastructure terraform

TechZone Automation Solutions

A collection of Bills of Materials (BOMs) that address solution/use-case scenarios.

A Solution is a descriptor that contains metadata and the list of BOMs that will be used to generate terraform for a specific Solution or Use Case.

Repo contents:

Bill of Materials YAML reference

Here's the schema of how a bill of materals bom.yaml should be constructed:

Examples

Infrastructure

Example of a valid Infrastructure BOM:

apiVersion: cloud.ibm.com/v1alpha1
kind: BillOfMaterial
metadata:
  name: 110-vpc-openshift
  labels:
    type: infrastructure
    platform: aws
    code: 110
  annotations:
    displayName: AWS VPC OpenShift
    description: AWS VPC and Red Hat OpenShift servers
spec:
  modules:
    - name: aws-vpc
    - name: aws-vpc-subnets
    - name: aws-rosa

Software

Example of a valid Sofware BOM:

apiVersion: cloud.ibm.com/v1alpha1
kind: BillOfMaterial
metadata:
  name: 406-gitops-ocp-turbonomic-ibmcloud
  labels:
    type: software
    platform: ibm
    code: '406'
  annotations:
    displayName: Turbonomic on OpenShift - IBM Cloud
    description: GitOps deployment of Turbonomic on IBM Cloud
spec:
  modules:
    # Login to existing OpenShift cluster
    - name: ocp-login

    # Create the GitOps Repo
    - name: gitops-repo

    # Install OpenShift GitOps and Bootstrap GitOps (aka. ArgoCD)
    - name: argocd-bootstrap
      variables:
        - name: create_webhook
          value: true

    # Create Name Space for Turbonomic
    - name: gitops-namespace
      variables:
        - name: name
          value: turbonomic

    # Define storage class for Turbonomic on IBM Cloud
    - name: gitops-storageclass
      alias: storage
      variables:
        - name: name
          value: ibmc-vpc-block-mzr
        - name: provisioner_name
          value: vpc.block.csi.ibm.io
        - name: parameter_list
          value: [{key : "classVersion",value : "1"},{key : "csi.storage.k8s.io/fstype", value : "ext4"}, {key : "encrypted",value : "false"},{key : "profile",value : "10iops-tier"},{key : "sizeRange",value : "[10-2000]GiB]"}]

    - name: gitops-ocp-turbonomic
      dependencies:
        - name: storage_class_name
          ref: storage