Skip to content

This repository showcases various experiments with Jobico-Cloud, GitOps and CI/CD using a React TODO application and a Java Spring Boot backend. It includes setups with Tekton, ArgoCD, and POMCI (a custom script) for automation.

Notifications You must be signed in to change notification settings

andrescosta/todo-jobico-ops

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

This repository contains several my experiments with various GitOps and CI/CD tools, using a React TODO application with a Java backend implemented in Spring Boot. Information about its architecture can be found in: ARCH.md.

Stacks

Application

  • Frontend: React
  • Backend: Java 21 and Spring Boot
  • Authentication & Authorization: Zitadel (provided by Jobico)
  • Database: PostgreSQL (provided by Jobico)

CI/CD stacks

Experiments

This section covers various proofs of concept, ranging from local deployments using Helm to scenarios involving ArgoCD or Tekton.

GitOps

POMCI

This solution employs Helm for manifest templating, ArgoCD for deploying to Kubernetes, GitHub for the charts repository, and POMCI (a custom shell script) for monitoring changes, building container images with Buildah, and pushing them to the registry. The POMCI script can be found at this location: _infra/argocd/pomci/build.sh and the charts in this repository: todo-charts.

Workflow

Tekton

This solution is implemented as a Tekton pipeline triggered by a Kubernetes cron job. The pipeline compares the last commit hash of the repository with the one for the current deployment; if they differ, it initiates a build and deployment process using Buildah and Helm.

You can find the pipeline at the following location: _infra/tektoncd/pipeline/pipeline.yaml

Workflow

Local Deployment

This part outlines two alternatives using a local repository and Helm upgrade/install commands.

Charts

This script deploys the charts found in this repository: todo-charts.Each time it is called, the application will be deployed with a version based on the current epoch time.

$ cd _infra/helm/local
$ ./install.sh
$ helm list

OCI

In this use case, the charts are stored in the cluster container registry and referenced during application deployment.

$ cd _infra/helm/oci/
$ ./pkg.sh # It pushes the charts to the container registry.
$ ./install.sh # It deploys the service and web app using the charts in the registry
$ helm list

Once the charts are uploaded to the registry, install.sh can be run at any time to deploy a new version of the application.

About

This repository showcases various experiments with Jobico-Cloud, GitOps and CI/CD using a React TODO application and a Java Spring Boot backend. It includes setups with Tekton, ArgoCD, and POMCI (a custom script) for automation.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published