Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Kubernetes Operator to manage NodeJS, Java and Web applications

License

NotificationsYou must be signed in to change notification settings

neo9/pilot-operator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

Kubernetes operator to manage and deploy Java, NodeJS and web applications.

API documentation

Docker image on Docker Hub

Requirements

  • Kubernetes 1.14.x / 1.13.x (other versions are not tested yet)
  • Go 1.12.x
  • Operator SDK v0.10.0

Local

Build

go mod vendor -voperator-sdk build image_name

Tests

operator-sdktestlocal ./test/e2e --up-local --namespace default

This will use the default ~/.kube/config configuration or you canmodify the env variableKUBECONFIG.

Motivations

Ansible has a push only strategy and does not sync well resources. If youdelete a deployment from the Ansible vars, you should also remember to deleteit manually from the cluster. Therefore, the architecture is not immutable.

We also found limitations with Kustomize which does not handle loops andcomplex logic because it was not designed for it. We used Helm instead butwe've had issues syncing the versions from our CI/CD pipelines which onlyupdates the tag and our source value file was not being synced. We did not wantto manage the charts directly in each repository to avoid misconfiguration andsyncing work accross our dozen microservices. We also had to duplicate themain charts to have default values between NodeJS, Java and Web applications.With Helm 2, Tiller also had lots of security issues and deploying multipleTiller instances made the workflow more complex.

Pilot operator is designed to fix the limitations we've had and to managedeployments, hpa and services with simpler pipelines, logic and more flexibleconfiguration files. Getting back to the core of what makes Kubernetes greatand avoiding pushing the limits of Helm and Kustomize too far just because itdid not meet our needs.

Pilot operator deployment

With kubectl:

git clone https://github.com/neo9/pilot-operatorcd pilot-operator/deploykubectl -n [namespace] apply -f ./crdskubectl -n [namespace] apply -f ./

With Helm:

helm repo add n9 https://n9-charts.storage.googleapis.comhelm upgrade -i \  --namespace integration \  pilot n9/pilot-operator# If you are deploying a second instance, crd are already created# You can use --no-crd-hook insteadhelm install --no-crd-hook \  --namespace another-namespace \  --name pilot n9/pilot-operator

Examples

Application

API documentation

apiVersion:pilot.neo9.fr/v1alpha1kind:Applicationmetadata:name:my-apinamespace:integrationspec:type:javarepository:eu.gcr.io/example/my-apiinitTag:v0.0.1service:targetPort:8080pod:secrets:      -name:my-apikey:MONGO_URI

[8]ページ先頭

©2009-2025 Movatter.jp