fbpx
Unlock the power of choice with CloudPlex and DigitalOcean Get CloudPlex free for 3 months, and Digital Ocean for 1 month

Manifest Management

Pain Point

Kubernetes requires the manual creation of a large number of YAML manifest and config files.

YAML is complex. Kubernetes uses YAML’s more advanced features, like how to work with blobs of text or with a more complex “array in a hash in an array” type of structure.

As developers, you will manually create Config files, and YAML or JSON manifests for each Docker container keeping into account syntax and all attributes. With time, developers end up with a huge wall of small YAML files that define all of the resources in their environment. Often times, developers artifacts grow exponentially and become extremely difficult to manage.

Manifest files for a typical application with 11 Docker containers:

https://github.com/haseebH/microservices-demo/tree/master/kubernetes-manifests

Complete Manifest for a single Docker container:

https://raw.githubusercontent.com/GoogleCloudPlatform/microservices-demo/master/kubernetes-manifests/frontend.yaml

Below is a snippet showing the complexity of a Manifest file. This example shows the sections of readiness probe parameters and environment variables:

readinessProbe

           initialDelaySeconds: 10
            httpGet:
              path: "/_healthz"
              port: 8080
              httpHeaders:
              - name: "Cookie"
                value: "shop_session-id=x-readiness-probe"

livenessProbe

            initialDelaySeconds: 10
            httpGet:
              path: "/_healthz"
              port: 8080
              httpHeaders:
              - name: "Cookie"
                value: "shop_session-id=x-liveness-probe"

env

          - name: PORT
            value: "8080"
          - name: PRODUCT_CATALOG_SERVICE_ADDR
            value: "productcatalogservice:3550"
          - name: CURRENCY_SERVICE_ADDR
            value: "currencyservice:7000"
          - name: CART_SERVICE_ADDR
            value: "cartservice:7070"
          - name: RECOMMENDATION_SERVICE_ADDR
            value: "recommendationservice:8080"
          - name: SHIPPING_SERVICE_ADDR
            value: "shippingservice:50051"
          - name: CHECKOUT_SERVICE_ADDR
            value: "checkoutservice:5050"
          - name: AD_SERVICE_ADDR
            value: "adservice:9555"

How CloudPlex addresses your pain

With CloudPlex, developers no longer need to write the manifest files, nor search for valid parameters and supported values. Developers just configure services using a visual interface, in a single view. The platform performs validation and generates all related manifest and config files, which can also be downloaded and used on any K8s cluster.

The screenshot is a visual interface used by the developer to create the same application as above. As you can see, the developer can create the application simply by dragging and dropping containers from a palette to the canvass and configuring the containers visually in the Config Panel:

manifest