Kommander Platform Services

BETA

What are Kommander Platform Services

Kubernetes Platform Services

Kubernetes Platform Services provide preconfigured day two functionality and services, on top of Kubernetes, like monitoring, logging, and external DNS. The versions are tested against a pure upstream Kubernetes build having no specific D2iQ requirements.

New Minor or Major versions of Platform Services releases are based on user requirements. These can occur in any release but are less frequent. Platform Services have their own release numbers that follow a semantic version numbering scheme and includes the version of Kubernetes the were tested on. For example, release-<kubernetes version>-<major>.<minor>.

The version is defined in Konvoy’s cluster.yaml definition when creating or upgrading a Konvoy cluster. Platform Services are tested against more than one Kubernetes version.

NOTE: When adding the Kubernetes Platform Services to your cluster.yaml file, to install or upgrade your Platform Services, ensure you use the argument that corresponds to your Kubernetes version, For example, testing-1.19-3.2.0 would be Kubernetes 1.17.x.

kind: ClusterConfiguration
apiVersion: konvoy.mesosphere.io/v1beta2
spec:
  addons:
  - configRepository: https://github.com/mesosphere/kubernetes-base-addons
    configVersion: testing-1.19-3.2.0
    addonsList:
    ...

Configuring Konvoy Platform Services

Platform Servicess are configured via the addons section under ClusterConfiguration within Konvoy’s cluster.yaml

Platform Servicess are configured by referencing various Platform Servicess repositories. Konvoy comes pre-configured with Base Platform Services repository. This repository provides all the Platform Servicess that make Konvoy an enterprise grade distribution, ready for day two operations.

In general, a Platform Services can come in two categories:

  • ClusterAddon - A Platform Services that is cluster-scoped.
  • Addon - A Platform Services that is namespace-scoped is commonly refered to as Workload Platform Services.

Konvoy partners and users can create their own Platform Services repositories. For example, a storage partner can create a Platform Services repository to provide their CSI storage provisioner. A user can create a Platform Services repository to meet the requirements that all clusters created, in their organization, run specific services. The Creating Platform Services section covers these details.

Configuring Platform Services in cluster.yaml

The following example shows how to configure an additional Platform Services repository in the Konvoy cluster.yaml file.

In the configuration example below, we’ll disable the bundled awsebscsiprovisioner in order to use an partner provided awsebscsiprovisioner2. Both these Platform Servicess are of the cluster-scoped ClusterAddon kind. Additionally the cockroachdb namespace-scoped Platform Services is enabled.

The example partner repository referenced via configRepository is https://github.com/mesosphere/docs-addon-repo and configVersion points to a tagged release within the repository.

...
kind: ClusterConfiguration
apiVersion: konvoy.mesosphere.io/v1beta2
metadata:
  name: y-west
  ...
spec:
  ...
  addons:
  - configRepository: https://github.com/mesosphere/kubernetes-base-addons
    configVersion: testing-1.19-3.2.0
    addonsList:
    - name: awsebscsiprovisioner
      enabled: false
    ...
  - configRepository: https://github.com/mesosphere/docs-addon-repo
    configVersion: stable-0.1
    addonsList:
    - name: awsebscsiprovisioner2
      enabled: true
    - name: cockroachdb
      enabled: true
...

The second repository configured, in the example above, is our [sample docs-Platform Services ][sample_repo]. It contains the awsebscsiprovisioner2 and cockroachdb Platform Services. Since awsebscsiprovisioner2 is a copy of the awsebscsiprovisioner from the kubernetes-base-addons repository. This example shows you can turn the storage provisioner in the kubernetes-base-addons repository off and provide a storage provisioner with another Platform Services repository.

When you run konvoy up with the above cluster.yaml configuration you see the following output. All Platform Services requiring persistent storage get installed after awsebscsiprovisioner2 providing a default StorageClass. For example, `cockroachdb, elasticsearch, and velero.

STAGE [Deploying Enabled Addons]
konvoyconfig                                                           [OK]
dashboard                                                              [OK]
reloader                                                               [OK]
fluentbit                                                              [OK]
external-dns                                                           [OK]
opsportal                                                              [OK]
cert-manager                                                           [OK]
defaultstorageclass-protection                                         [OK]
gatekeeper                                                             [OK]
awsebscsiprovisioner2                  <<<                             [OK]
traefik                                                                [OK]
prometheus                                                             [OK]
cockroachdb                                                            [OK]
dex                                                                    [OK]
velero                                                                 [OK]
prometheusadapter                                                      [OK]
kube-oidc-proxy                                                        [OK]
dex-k8s-authenticator                                                  [OK]
traefik-forward-auth                                                   [OK]
kommander                                                              [OK]
elasticsearch-curator                                                  [OK]
elasticsearch                                                          [OK]
elasticsearchexporter                                                  [OK]
kibana                                                                 [OK]

Kubernetes cluster and addons deployed successfully!

For information on related topics or procedures, refer to the following: