Giter Site home page Giter Site logo

sophiaxu0424 / ham-application-assembler Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hybridapp-io/ham-application-assembler

0.0 0.0 0.0 54.7 MB

Generate Hybrid Application model for resources and assemble Application

License: Apache License 2.0

Makefile 4.08% Dockerfile 0.32% Shell 6.42% Go 89.05% Ruby 0.13%

ham-application-assembler's Introduction

Application Assembler

Build GoDoc Go Report Card Code Coverage License Docker Repository on Quay

Table of Contents generated with DocToc

What is the Application Assembler

Application Assembler generates Application, Deployables and PlacementRule

Community, discussion, contribution, and support

Check the CONTRIBUTING Doc for how to contribute to the repo.

Getting Started

Prerequisites

  • git v2.18+
  • Go v1.13.4+
  • operator-sdk v0.18.0+
  • Kubernetes v1.14+
  • kubectl v1.14+

Check the Development Doc for how to contribute to the repo.

Quick Start


  • Clone Repository
mkdir -p "$GOPATH"/src/github.com/hybridapp-io
cd "$GOPATH"/srcgithub.com/hybridapp-io
git clone https://github.com/hybridapp-io/ham-application-assembler.git
cd "$GOPATH"/src/github.com/hybridapp-io/ham-application-assembler
  • Install CRDs, Dependencies, Create Clusters and Cluster Namespaces (toronto, raleigh)
% kubectl apply -f ./deploy/crds
% kubectl apply -f ./hack/test
% kubectl apply -f ./hack/test/crs

This creates a db2 deployable CR with deployer-type annotation in raleigh namespace

  • Start Application Assembler (in another terminal)
    • opertor-sdk must be installed

    • kubeconfig points to a kubernetes cluster with admin privliege

cd "$GOPATH"/src/github.com/hybridapp-io/ham-application-assembler
operator-sdk run --local --namespace=""
  • Create ApplicationAssembler example and found Application and Deployable resources are created.
% kubectl apply -f ./examples/simple.yaml
applicationassembler.tools.hybridapp.io "simple" deleted
deployable.core.hybridapp.io "nginx" deleted
% kubectl get hdpl nginx -o yaml
apiVersion: core.hybridapp.io/v1alpha1
kind: Deployable
metadata:
  creationTimestamp: "2020-02-05T22:07:42Z"
  generation: 1
  labels:
    tools.hybridapp.io/application-868c6b0b-7e9a-4a96-8558-ca08bcb623c3: 868c6b0b-7e9a-4a96-8558-ca08bcb623c3
  name: nginx
  namespace: default
  resourceVersion: "13422517"
  selfLink: /apis/core.hybridapp.io/v1alpha1/namespaces/default/deployables/db2
  uid: ee4efc8c-4863-11ea-9dba-00000a101bb8
spec:
  hybridtemplates:
  - deployerType: kubernetes
    template:
      apiVersion: apps/v1
      kind: Deployment
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: nginx
        template:
          metadata:
            labels:
              app: nginx
          spec:
            containers:
            - image: nginx:1.7.9
              name: nginx
              ports:
              - containerPort: 80
% kubectl get applications -o yaml
apiVersion: app.k8s.io/v1beta1
kind: Application
metadata:
  creationTimestamp: "2020-02-05T22:07:42Z"
  generation: 1
  labels:
    app.cp4mcm.ibm.com/application-assembler-id: ee408e63-4863-11ea-9dba-00000a101bb8
  name: simple
  namespace: default
  ownerReferences:
  - apiVersion: app.cp4mcm.ibm.com/v1alpha1
    blockOwnerDeletion: true
    controller: true
    kind: ApplicationAssembler
    name: simple
    uid: ee408e63-4863-11ea-9dba-00000a101bb8
  resourceVersion: "13422519"
  selfLink: /apis/app.k8s.io/v1beta1/namespaces/default/applications/simple
  uid: ee5fb0fe-4863-11ea-9dba-00000a101bb8
spec:
spec:
  componentKinds:
  - group: core.hybridapp.io
    kind: Deployable
  descriptor: {}
  selector:
    matchLabels:
      tools.hybridapp.io/application-868c6b0b-7e9a-4a96-8558-ca08bcb623c3: 868c6b0b-7e9a-4a96-8558-ca08bcb623c3
status: {}

ham-application-assembler's People

Contributors

dlong-1 avatar kuanf avatar rbmateescu avatar shadman2606 avatar sophiaxu0424 avatar tperamun avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.