Skip to content

Commit

Permalink
feat: add service deployment definition draft (#5)
Browse files Browse the repository at this point in the history
* feat: add service deployment definition draft

Signed-off-by: Alejandro Jose Leiva Palomo <alejandro.leiva.palomo@ibm.com>

* fix: adding the service deployment nutshell. More changes to be added

Signed-off-by: Alejandro Jose Leiva Palomo <alejandro.leiva.palomo@ibm.com>

* fix: change schema directory and correct shared schemas

Signed-off-by: Alejandro Jose Leiva Palomo <alejandro.leiva.palomo@ibm.com>

* fix: correct refs

Signed-off-by: Alejandro Jose Leiva Palomo <alejandro.leiva.palomo@ibm.com>

* fix: correct typo

Signed-off-by: Alejandro Jose Leiva Palomo <alejandro.leiva.palomo@ibm.com>

* fix: correct refs and convert to items lists

Signed-off-by: Alejandro Jose Leiva Palomo <alejandro.leiva.palomo@ibm.com>

* fix: correct typos

Signed-off-by: Alejandro Jose Leiva Palomo <alejandro.leiva.palomo@ibm.com>

* fix: correct interconnection object

Signed-off-by: Alejandro Jose Leiva Palomo <alejandro.leiva.palomo@ibm.com>

* fix: correct anyOf items in schema

Signed-off-by: Alejandro Jose Leiva Palomo <alejandro.leiva.palomo@ibm.com>

* fix: correct service definition schema

Signed-off-by: Alejandro Jose Leiva Palomo <alejandro.leiva.palomo@ibm.com>

* fix: correct component schema

Signed-off-by: Alejandro Jose Leiva Palomo <alejandro.leiva.palomo@ibm.com>

* fix: updated service deployment definition

Signed-off-by: Alejandro Jose Leiva Palomo <alejandro.leiva.palomo@ibm.com>

* fix: correct endpoint schema

Signed-off-by: Alejandro Jose Leiva Palomo <alejandro.leiva.palomo@ibm.com>

* fix: correct interconnections schema

Signed-off-by: Alejandro Jose Leiva Palomo <alejandro.leiva.palomo@ibm.com>

* fix: update trustZones

Signed-off-by: Alejandro Jose Leiva Palomo <alejandro.leiva.palomo@ibm.com>

* fix: correct typos

Signed-off-by: Alejandro Jose Leiva Palomo <alejandro.leiva.palomo@ibm.com>

* fix: add internal connections schema

Signed-off-by: Alejandro Jose Leiva Palomo <alejandro.leiva.palomo@ibm.com>

* fix: correct features under catalog

Signed-off-by: Alejandro Jose Leiva Palomo <alejandro.leiva.palomo@ibm.com>

---------

Signed-off-by: Alejandro Jose Leiva Palomo <alejandro.leiva.palomo@ibm.com>
  • Loading branch information
AleJo2995 authored and GitHub Enterprise committed Mar 18, 2024
1 parent e8324f8 commit fdf85c9
Show file tree
Hide file tree
Showing 40 changed files with 2,243 additions and 1,229 deletions.
22 changes: 22 additions & 0 deletions repository/kinds/v1alpha1/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
backend:
types:
default:
metadata:
location: metadata
schema:
location: schema
additional:
- metadata:
location: ../shared/metadata
relativePath: true
schema:
location: ../shared/schema
relativePath: true
data:
location: ../shared/data
relativePath: true
readOnly: true
data:
location: data
markdown:
location: markdown
275 changes: 275 additions & 0 deletions repository/kinds/v1alpha1/schema/Component.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,275 @@
{
"$id": "http://ibm.com/schemas/yaml-schema/components",
"description": "Schema for gathering the properties of a component that the service is composed of.",
"title": "Component",
"type":"object",
"properties": {
"apiVersion": {
"title": "Api Version",
"description": "Equal to cloud.ibm.com/v1alpha1",
"type": "string"
},
"metadata": { "$ref": "#/$defs/Metadata" },
"kind": {
"title": "Kind",
"description": "Equal to ServiceDefinition",
"type": "string"
},
"spec": {
"title": "Spec",
"description": "This is the spec for the service component.",
"type": "object",
"properties": {
"serviceDefinition": {
"title": "Service Definition",
"description": "The entity reference to the Service Definition of the services for which this entity described the deployment.",
"type": "string"
},
"types": {
"title": "Types",
"description": "The types of the component.",
"type": "array",
"items":{
"title": "Scope",
"type": "string",
"anyOf": [
{
"const": "support",
"title": "Support"
},
{
"const": "sub-service",
"title": "Sub service"
},
{
"const": "operations",
"title": "Operations"
}
]
},
"uniqueItems": true,
"minItems": 1
},
"sdlcPhase": { "$ref": "#/$defs/SdlcPhase" },
"scope": {
"title": "Scope",
"description": "The list of service data, control, management, devops planes that this component belongs to.",
"type": "string",
"enum": [ "data-plane", "control-plane", "data-control-plane", "management-plane", "devops-plane"]
},
"compliance": {
"title": "Compliance",
"description": "The information necessary to manage the compliance of the component.",
"type": "object",
"properties": {
"label": {
"title": "Label",
"description": "Compliance service label.",
"type": "string"
},
"organization": {
"title": "Organization",
"description": "The organization that owns the service.",
"type": "string"
},
"group": {
"title": "Group",
"description": "The organization group of services that the service belongs to.",
"type": "string"
}
},
"required": ["label", "organization"]
},
"accounts": {
"title": "Accounts",
"description": "The list of IBM Cloud account in which are hosted inventory assets of the component.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"title": "Id",
"description": "The id of the IBM Cloud account.",
"type": "string"
},
"owner": {
"title": "Owner",
"description": "The W3id user id that owns the IBM Cloud account.",
"type": "string"
}
},
"required": ["id", "owner"]
}
},
"inventory": {
"title": "Inventory",
"description": "The information necessary to identify the inventory items owned by the service",
"type": "object",
"properties": {
"accounts": {
"title": "Accounts",
"description": "The list of IBM Cloud account in which are hosted inventory assets of the component.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"title": "Id",
"description": "The id of the IBM Cloud account.",
"type": "string"
},
"owner": {
"title": "Owner",
"description": "The W3id user id that owns the IBM Cloud account.",
"type": "string"
}
},
"required": ["id", "owner"]
}
},
"sos": {
"title": "SOS",
"description": "The list of references to SOS inventory.",
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"title": "Label",
"description": "Compliance service label.",
"type": "string"
},
"cCode": {
"title": "C-Code",
"description": "The SOS inventory C-CODE.",
"type": "string"
},
"includes": {
"title": "Includes",
"description": "The list of filters on SOS inventory attribute values of inventory items to be considered included in the inventory",
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"title": "Field",
"description": "Field",
"type": "string",
"enum": [ "role", "application", "platform"]
},
"value": {
"title": "Value",
"description": "Value",
"type": "string"
}
}
}
},
"excludes": {
"title": "Excludes",
"description": "The list of filters on SOS inventory attribute values of inventory items to be considered excluded in the inventory",
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"title": "Field",
"description": "Field",
"type": "string",
"enum": [ "role", "application", "platform"]
},
"value": {
"title": "Value",
"description": "Value",
"type": "string"
}
}
}
},
"production" : {
"title": "Production",
"description": "Production",
"type": "array",
"items": {
"type": "string"
}
}
},
"required":["label", "cCode"]
}
}
},
"required": ["sos"]
},
"operations": {
"title": "Operations",
"description": "The information necessary to identify the operation processes for the components",
"type": "object",
"properties": {
"operationWorkflow": {
"title": "Operation Workflow",
"description": "Operation Workflow",
"type": "string",
"enum": ["exception", "required"]
},
"operationsManagers": {
"title": "Operations Managers",
"description": "Operations Managers list",
"type": "array",
"items": {
"type": "string"
}
},
"tipStatus": {
"title": "Tip Status",
"description": "Tip Status",
"type": "string",
"enum": ["none", "onboarded"]
},
"avm": {
"title": "AVM",
"description": "AVM",
"type": "string",
"enum": ["not-enabled", "enabled"]
},
"avmRunbook": {
"title": "AVM Runbook",
"description": "AVM Runbook",
"type": "string",
"enum": ["not-enabled", "enabled"]
}
}
},
"support": {
"title": "Support",
"description": "The information necessary to identify the support processes for the components.",
"type": "object",
"properties": {
"supportWorkflow": {
"title": "Support",
"description": "",
"type": "string",
"enum": ["exception", "required"]
},
"supportManagers": {
"title": "Support Managers",
"description": "Support Managers list",
"type": "array",
"items": {
"type": "string"
}
},
"enablement": {
"title": "Enablement",
"description": "Enablement",
"type": "string",
"enum": ["exception", "completed"]
}
}
}
},
"required": ["serviceDefinition", "types", "scope" ]
}
},
"required": ["apiVersion", "kind", "description", "scope"]
}
12 changes: 12 additions & 0 deletions repository/kinds/v1alpha1/schema/ComponentsList.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"$id": "http://ibm.com/schemas/yaml-schema/componentsList",
"title": "Components",
"description": "Schema for Components List. The list of the definition of the the different types of components that the service is composed of.",
"type": "string",
"oneOf": [
{
"const": "NONE",
"title": "** Please define the components to populate list ***"
}
]
}
61 changes: 61 additions & 0 deletions repository/kinds/v1alpha1/schema/Datastore.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
{
"$id": "http://ibm.com/schemas/yaml-schema/datastore",
"title": "Data store",
"description": "Schema for Data Store. This covers also datastore internal to the service, e.g. DB deployed and managed by the service.",
"type":"object",
"properties": {
"name": {
"title": "Name",
"description": "The unique name of the data store.",
"type": "string"
},
"type": {
"title": "Type",
"description": "Data store type.",
"type": "string"
},
"dataType": {
"title": "Data Type",
"description": "Data type for the data store.",
"type": "string"
},
"dataClassification": {
"title": "Data classification",
"description": "Data store data classification",
"type": "string"
},
"encryption": {
"title": "Encryption",
"description": "Data store encryption",
"type": "string"
},
"encryptionKeyStorage": {
"title": "Encryption Key Storage",
"description": "Data store encryption key storage",
"type": "string"
},
"encryptionKeyOwnership": {
"title": "Encryption Key Ownership",
"description": "Data store encryption key ownership",
"type": "string"
},
"encryptionCiphers": {
"title": "Encryption Ciphers",
"description": "Data store encryption ciphers",
"type": "string"
},
"authentication": {
"title": "Authentication",
"description": "Data store authentication",
"type": "string"
},
"authorization": {
"title": "Authorization",
"description": "Data store authorization",
"type": "string"
}
},
"required":["name", "type", "dataType", "dataClassification", "encryption",
"encryptionKeyStorage", "encryptionKeyOwnership", "encryptionCiphers", "authentication", "authorization"
]
}
9 changes: 9 additions & 0 deletions repository/kinds/v1alpha1/schema/DatastoresList.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"$id": "http://ibm.com/schemas/yaml-schema/datastores",
"title": "Data stores List",
"description": "Schema for Data Stores. This covers also datastore internal to the service, e.g. DB deployed and managed by the service.",
"type": "array",
"items": {
"$ref": "#/$defs/Datastore"
}
}
Loading

0 comments on commit fdf85c9

Please sign in to comment.