Skip to content

Service

Service enables you to define services of yours, such as a web application, a database or a cache server, run them in an environment. There are different kind of services in the Yelken:

  • Application: A web application managed by the Yelken. An example app is WordPress.
  • Custom: Enables you to run containerized workloads with images stored in an internet accessible public or private container registries.

INFO

Yelken currently does not have a CI/CD pipeline and no builtin container registry. You need to have your images stored on a container registry to use it.

It is planned to remove this requirement by first introducing a container registry and then a CI/CD pipeline.

An upcoming feature about service resource is that you can sync configuration of a service in one environment to another environment. This allows testing changes in development environment and then pushing them to production without forgetting the applied changes.

To view services that belong to an environment:

  • Open a project by choosing it in Projects page,
  • Use Services link accessible inside the sidebar located at left.
  • Additionally, change selected Environment displayed at the top bar to view services in different environment.

TIP

Services page is opened by default when you open a project and first environment will be selected.

Creating Service

To create a new service, navigate to Services page and use the Create Service button. Then you need to provide a few information:

  1. Name: specify a name for your service. You can change it later under the Service Settings page.

  2. Environment: choose the environment you want to run your service in.

  3. Service Template: decide whether you want to create Web Application or Custom service. You can choose creating a managed web application or a custom service to run your own containerized workload.

  4. Service Plan: choose an appropriate plan according to your needs.

  5. Web Application (for Web Application service): choose a web app from multiple available Applications.

  6. Custom Service (for Custom service):

    5.1 Image: specify your container image you want to run. For images stored on Docker Hub, you can simply specify image name and tag, such as nginx:stable. For images stored on other registries, you need to specify full URL of the image. If your image is stored inside a private container registry, you first need to define credentials for that registry. For more information, please read Private Container Registry's documentation.

    5.2 Variables (optional): you can define variables that will be passed as environment variable at runtime to your container. For more information, please read Variables & Secrets.

    5.3 Secrets (optional): you can define secrets that will be passed as environment variable at runtime to your container. For more information, please read Variables & Secrets.

    5.4 Volumes (optional): you can create new volumes and mount them at runtime into your container.

Cloning Service

It is possible to clone a service from one environment to another environment. This enables you to seamlessly start running your services in another environment.

To clone a service, navigate to Services page, for the service you want to clone, open the context button shown as three vertical dots to open context menu and select Clone button. Then you need to provide a few information:

  1. Environment: choose the target environment you want to clone your service into,
  2. Plan: choose an appropriate plan according to your needs.

After providing required information, use the Clone button to start cloning. Yelken will clone all configurations of your service, including any volume attached to it, and create in the specified environment.

Service States

A service has a state that enables tracking its current status. It can be in one of these states:

  • Creating: A service starts its life in this state and indicates that resources are being allocated and it is being initialized.
  • Running: Indicates that containers of the service is running.
  • Restarting: Service is being restarted.
  • Updating: Service is being updated as a result of an applied change.
  • Terminating: Service's containers are being terminated.
  • Completed: Service's containers are terminated.
  • Deleting: Service is being deleted as a result of user request.
  • Error: A service can result in error due to one of these reasons:
    • Failed Pulling Image: Yelken has failed to pull the image for the container. This could be due to a non existing image or insufficient permission. You may want to check the credentials of container registry if you use one.
    • Crashing: Container is crashing in a loop. You may want to check the service logs to inspect the issue.
    • Error: An unknown error has occured.

Service Details

Inside the Services page, you can use View Service button of a service to view its details. Service details are divided into different subpages in which you can configure different aspect of a service. These subpages are:

Plans

Inside the Settings page, you can change the plan of a service according to your needs. As an example, you can choose a plan with a low cost for development environments and use a plan that gives higher compute power in production for your services.

While custom services allow you to change their plan, application services only allow upgrading the plan and disallow downgrading. This is due to the fact that size of volume provided with application services cannot be shrunk. However, it is planned to alleviate this limitation in the future.

For more information about plans, please check Pricing documentation.

Deleting Service

Inside the Settings page, under the Danger Zone section, you can use Delete Service button to delete your service. It will require a confirmation from you by asking you to enter the name of service and its key.

⚠️ Please be careful

All resources belonging to the service will be deleted immediately once you confirm the deletion. There is no going back after confirming the deletion!