A Kubernetes Operator, that helps DevOps team accelerate their journey into the cloud and K8s.

Overview

Oam Operator ( The Cloud Journey Accelerator )

A Kubernetes Operator, that would help all the DevOps teams to accelerate their Journey into the cloud and K8s. OAM operator scaffolds all of the code required to create resources across various cloud provides, which includes both K8s and Non-K8s resources. For example an user can create all the required resources for the application ( K8s resources like Deployments, Statefulsets, Ingresses, Non-k8s resources like S3, RDS, EKS clusters ) with 10 lines of YAML. See Example Usage

Overview

OAM Operator Architecture

oam-operator

Supported Versions

  • Kubernetes 1.18-1.22
  • OpenShift 3.11, 4.4-4.8
  • kubebuilder 3.1.0
  • controller-gen 0.4.1
  • kustomize 3.8.7

Deploy the CRDs

Using make

$ make install

Using kubectl

Deploy the CustomResourceDefinitions (CRDs) for the operator.

kubectl apply -k config/crds/

Deploy the Operator

$ make deploy

Example Usage

Create custom resource

$ kubectl create -f config/samples/apps_v1beta1_application.yaml

Describe status

$ kubectl describe Application web-app
Name:         web-app
API Version:  apps.oam.cfcn.io/v1beta1
Kind:         Application
Metadata:
  Finalizers:
    finalizer.app
Spec:
  Application Name:  web-app
  Cloud:
    Aws:
      s3:  true
Events:
  Type    Reason   Age   From         Message
  ----    ------   ----  ----         -------
  Normal  Created  24s   Application  Created S3 Bucket
  Normal  Created  24s   Application  Created HPA
  Normal  Created  24s   Application  Created Service
  Normal  Created  23s   Application  Created Deployment
  Normal  Created  23s   Application  Created Ingress

Cleanup

$ make uninstall 
$ make undeploy

Future Enhancements

  • Add Support to Multiple Cloud Providers
  • Support Consul Injectors
  • Add Support to External Providers
  • Add Support to GitOps Deployments
You might also like...
Enforcing per team quota (sum of used resources across all their namespaces) and delegating the per namespace quota to users.

Quota Operator Enforcing per team quota (sum of used resources across all their namespaces) and delegating the per namespace quota to users. Instructi

Cloud-on-k8s- - Elastic Cloud on Kubernetes (ECK)

Elastic Cloud on Kubernetes (ECK) Elastic Cloud on Kubernetes automates the depl

The OCI Service Operator for Kubernetes (OSOK) makes it easy to connect and manage OCI services from a cloud native application running in a Kubernetes environment.

OCI Service Operator for Kubernetes Introduction The OCI Service Operator for Kubernetes (OSOK) makes it easy to create, manage, and connect to Oracle

A k8s vault webhook is a Kubernetes webhook that can inject secrets into Kubernetes resources by connecting to multiple secret managers
A k8s vault webhook is a Kubernetes webhook that can inject secrets into Kubernetes resources by connecting to multiple secret managers

k8s-vault-webhook is a Kubernetes admission webhook which listen for the events related to Kubernetes resources for injecting secret directly from sec

Kubernetes Operator Samples using Go, the Operator SDK and OLM
Kubernetes Operator Samples using Go, the Operator SDK and OLM

Kubernetes Operator Patterns and Best Practises This project contains Kubernetes operator samples that demonstrate best practices how to develop opera

K8s-ingress-health-bot - A K8s Ingress Health Bot is a lightweight application to check the health of the ingress endpoints for a given kubernetes namespace.

k8s-ingress-health-bot A K8s Ingress Health Bot is a lightweight application to check the health of qualified ingress endpoints for a given kubernetes

The Elastalert Operator is an implementation of a Kubernetes Operator, to easily integrate elastalert with gitops.

Elastalert Operator for Kubernetes The Elastalert Operator is an implementation of a Kubernetes Operator. Getting started Firstly, learn How to use el

Minecraft-operator - A Kubernetes operator for Minecraft Java Edition servers

Minecraft Operator A Kubernetes operator for dedicated servers of the video game

Moby: an open-source project created by Docker to enable and accelerate software containerization
Moby: an open-source project created by Docker to enable and accelerate software containerization

The Moby Project Moby is an open-source project created by Docker to enable and accelerate software containerization. It provides a "Lego set" of tool

Releases(v1.1.0)
Owner
Pavan Kumar
A DevOps expert in deploying and maintaining the cloud infrastructure across multiple cloud providers.
Pavan Kumar
An operator which complements grafana-operator for custom features which are not feasible to be merged into core operator

Grafana Complementary Operator A grafana which complements grafana-operator for custom features which are not feasible to be merged into core operator

Snapp Cab Incubators 6 Aug 16, 2022
Basic Kubernetes operator that have multiple versions in CRD. This operator can be used to experiment and understand Operator/CRD behaviors.

add-operator Basic Kubernetes operator that have multiple versions in CRD. This operator can be used to experiment and understand Operator/CRD behavio

Dinesh Parvathaneni 0 Dec 15, 2021
K8s-network-config-operator - Kubernetes network config operator to push network config to switches

Kubernetes Network operator Will add more to the readme later :D Operations The

Daniel Hertzberg 6 May 16, 2022
Pulumi-k8s-operator-example - OpenGitOps Compliant Pulumi Kubernetes Operator Example

Pulumi GitOps Example OpenGitOps Compliant Pulumi Kubernetes Operator Example Pr

Christian Hernandez 3 May 6, 2022
The GCP Enterprise Cloud Cost Optimiser, or gecco for short, helps teams optimise their cloud project costs.

gecco helps teams optimise their cloud resource costs. Locate abandoned, idle, and inefficiently configured resources quickly. gecco helps teams build

aeihr. 2 Jan 9, 2022
a k8s operator 、operator-sdk

helloworld-operator a k8s operator 、operator-sdk Operator 参考 https://jicki.cn/kubernetes-operator/ https://learnku.com/articles/60683 https://opensour

Mark YiL 0 Jan 27, 2022
Kubernetes operator for the Azure DevOps pipe-line agents

adoagent-operator Kubernetes operator for the Azure DevOps pipe-line agents init.sh #!/bin/bash # docker and github repo username export USERNAME='ba

Bart 1 Nov 11, 2021
Kubernetes operator for the Azure DevOps self-hosted pipe-line agent.

Kubernetes operator for the Azure DevOps self-hosted pipe-line agent. The operator adds an extra layer of configuration on top of the default images like: proxy settings, pool settings and auth keys.

Bart 0 Sep 1, 2022
kube-champ 43 Oct 19, 2022
A Kubebuilder plugin to accelerate the development of Kubernetes operators

Operator Builder Accelerate the development of Kubernetes Operators. Operator Builder extends Kubebuilder to facilitate development and maintenance of

VMware Tanzu Labs 42 Nov 24, 2022