Cloud Applications need a scalable and resilient infrastructure, not just a Kubernetes cluster that operates containers. Automium is responsible for controlling the IaaS below it as well as exposing its own APIs to manage core and extras components described below.
Automium provides composable and reusable services ready to be deployed in your infrastructure, such as a Kubernetes cluster. Each service is built upon a proven process of Continuous Deployments in order to test and delivery 3 components:
Service is a core component of Automium API. It's the CRD with which the user interacts. An example of CR for creating a Kubernetes cluster could be the following:
apiVersion: core.automium.io/v1beta1
kind: Service
metadata:
labels:
app: kubernetes-cluster
name: mycluster
spec:
flavor: e3standard.x4
replicas: 1
version: v1.16.4-1-7d8af23eLinked services, such as the described cluster for other node pools, must use the specific environment variable "cluster_name", like in the following example of CR:
apiVersion: core.automium.io/v1beta1
kind: Service
metadata:
labels:
app: kubernetes-nodepool
name: mynodepool
spec:
env:
- name: cluster_name
value: mycluster
flavor: e3standard.x5
replicas: 3
version: v1.16.4-1-7d8af23eAn array of Services
[- {
- "apiVersion": "string",
- "kind": "string",
- "metadata": { },
- "spec": {
- "env": [
- { }
], - "extra": [
- {
- "name": "string",
- "parameters": { },
- "version": "string"
}
], - "flavor": "string",
- "replicas": 0,
- "tags": [
- "string"
], - "version": "string"
}, - "status": {
- "moduleRef": "string",
- "phase": "string"
}
}
]WARNING: this a resource generated and managed automatically by the controller; it's not meant to be created, edited or deleted by hand. You could potentially destroy your infrastructure by playing around with this resource.
An array of Modules
[- {
- "apiVersion": "string",
- "kind": "string",
- "metadata": { },
- "spec": {
- "env": [
- { }
], - "flavor": "string",
- "image": "string",
- "replicas": 0,
- "source": "string"
}, - "status": {
- "currentReplicas": 0,
- "phase": "string",
- "replicas": 0,
- "updatedReplicas": 0
}
}
]WARNING: this a resource generated and managed automatically by the controller; it's not meant to be created, edited or deleted by hand. You could potentially destroy your infrastructure by playing around with this resource.
An array of Nodes
[- {
- "apiVersion": "string",
- "kind": "string",
- "metadata": { },
- "spec": {
- "deletionDate": "string",
- "hostname": "string"
}, - "status": {
- "nodeHealthChecks": [
- {
- "checkID": "string",
- "name": "string",
- "output": "string",
- "serviceID": "string",
- "serviceName": "string",
- "status": "string"
}
], - "nodeProperties": {
- "address": "string",
- "flavor": "string",
- "id": "string",
- "image": "string",
- "node": "string",
- "publicAddress": "string"
}
}
}
]WARNING: this a resource generated and managed automatically by the controller; it's not meant to be created, edited or deleted by hand.
An array of Monitoring
{- "apiVersion": "string",
- "kind": "string",
- "metadata": { },
- "spec": {
- "cluster": "string",
- "parameters": { },
- "version": "string"
}, - "status": { }
}WARNING: this a resource generated and managed automatically by the controller; it's not meant to be created, edited or deleted by hand.
An array of Backups
[- {
- "apiVersion": "string",
- "kind": "string",
- "metadata": { },
- "spec": {
- "cluster": "string",
- "parameters": { },
- "version": "string"
}, - "status": { }
}
]{- "apiVersion": "string",
- "kind": "string",
- "metadata": { },
- "spec": {
- "cluster": "string",
- "name": "string",
- "namespace": "string",
- "parameters": { },
- "project": "string",
- "version": "string"
}, - "status": {
- "error": "string",
- "phase": "string"
}
}