Skip to content

2. Application Deployment

Gianni C edited this page Oct 20, 2022 · 14 revisions

Buildpack concept

ℹ️ Information
Buildpacks have nothing in common with buildpacks.io. Your Code will not be built into the running image but mounted read-only into the running image.

Buildpacks are defined as a set of three containers:

stateDiagram-v2
direction LR
    [*] --> fetcher
    fetcher --> builder
    builder --> runner
    runner --> [*]        
Loading

Fetch (init container)

Fetches the code from a Git repository. There is a working fetch container from kubero. But if you wish to build your own, you are free to change it in the buildpack configuration.

Build (init container)

Runs the build commands. You can define which image will be used by selecting the buildpack. The buildpack can be configured with any Docker image.

Run (container)

Run the final container In the run stage, there are two options: worker and web. Only the web pod is attached to the ingress and will be accessible from outside the cluster.

Deployment

Deploy your application via UI

  1. Create a pipeline with stages and connect it with your git repository This step will create the Namespaces, and configure the webhooks and deploymentkey in your repository (only if it is owned by you)

createpipeline

  1. Create an app in every stage.

createapp

Deploy your application with kubectl (Infrastructure as Code)

Your application requires 2 custom resource definitions.

  1. Download Pipeline CRD's here: https://github.com/kubero-dev/kubero-operator/blob/main/config/samples/
wget https://raw.githubusercontent.com/kubero-dev/kubero-operator/main/config/samples/application_v1alpha1_kuberopipeline.yaml 
wget https://raw.githubusercontent.com/kubero-dev/kubero-operator/main/config/samples/application_v1alpha1_kuberoapp.yaml
  1. Apply your changes with kubectl to create the pipeline
kubectl apply -f application_v1alpha1_kuberopipeline.yaml -n kubero
  1. Apply your change in the namespace of your stage
kubectl apply -f application_v1alpha1_kuberopipeline.yaml -n example-production
Clone this wiki locally