The Core API is the main API for Cluster management. The Core API include resources such as Services, Namespaces, Users, Groups, Policies, Devices, ClusterConfig among other resource types.
The Cluster is designed to be managed in a centralized and declarative way that is very similar to Kubernetes via the octeliumctl apply
where you can apply all changes in your Core resources and (re)produce the state of your Cluster with a single command.
You can define one or more resources in a single yaml
file and then apply all changes as follows:
octeliumctl apply </PATH/TO/RESOURCES.yaml>
However, as your Cluster resources grow, you might need to define your resources in multiple yaml
files and even organize them inside further subdirectories. In a fairly complex system with at least tens or hundreds of resources, it's much better to organize your configuration into a multiple files and sub-directories. Here is an example:
1octelium2├── policies3├── http.yaml4├── devops.yaml5├── services6├── dbs7├── aws.yaml8├── azure.yaml9├── apis.yaml10├── ssh.yaml11├── users12├── contractors.yaml13├── employees14├── dev.yaml15├── ops.yaml
In such case, you similarly use the octeliumctl apply
command as follows:
octeliumctl apply </PATH/TO/RESOURCES_ROOT_DIR>
By default, the octelium apply
command only applies changes to create or update already existent resources but it does not delete resources. If you want to completely synchronize the current described state as defined in your file/directory and prune all additional resources in the Cluster that no longer exist in the current configuration, you can add the --prune
flag as follows:
octeliumctl apply --prune </PATH/TO/RESOURCES_ROOT_DIR>
By default changes in all Resource types except for Secret
resources are applied. You can also choose to apply changes for a certain Resource types instead of applying all types in your path. For example you can apply changes for User and IdentityProvider resources only as follows:
octeliumctl apply --include User --include IdentityProvider </PATH/TO/RESOURCES_ROOT_DIR>
Now only changes in User
and IdentityProvider
resources are applied.
You can also exclude one or more types as follows:
octeliumctl apply --exclude Service </PATH/TO/RESOURCES_ROOT_DIR>
You can also include Secret resources via the --include-secret
flag as follows:
octeliumctl apply --include-secret </PATH/TO/RESOURCES_ROOT_DIR>