!! DISCONTINUED !!
This project has been discontinued
Most of the work from this has been tranformed into new project called Kedge
OpenCompose is a declarative higher level abstraction for specific Kubernetes resources.
A developer shouldn't have to learn various Kubernetes concepts just to test and deploy their applications. Focus on the application that is being developed.
The goal of OpenCompose is to make it easier for developers to on-board to Kubernetes.
We are at a very evolving stage of this project and we have listed some of our ideas as issues and examples. We are open to suggestions and contributions from the Kubernetes community as our project grows. Please send any PRs, issues or RFCs to improve this project.
Go from a simple hello-nginx.yaml example to a full Kubernetes environment:
Create (or download)
version: 0.1-dev services: - name: helloworld containers: - image: nginx ports: - port: 80:8080 type: external
Convert the file using
opencompose convert -f hello-nginx.yaml # Alternatively, you can pass the URL of the remote file opencompose convert -f https://raw.githubusercontent.com/redhat-developer/opencompose/master/examples/hello-nginx.yaml
Deploy your generate artifacts to Kubernetes with
kubectl create -f helloworld-service.yaml -f helloworld-deployment.yaml
The easiest way to install OpenCompose is through our binary on our GitHub release page.
# Linux curl -L https://github.com/redhat-developer/opencompose/releases/download/v0.2.0/opencompose-linux-amd64 -o opencompose # macOS curl -L https://github.com/redhat-developer/opencompose/releases/download/v0.2.0/opencompose-darwin-amd64 -o opencompose # Windows curl -L https://github.com/redhat-developer/opencompose/releases/download/v0.2.0/opencompose-windows-amd64.exe -o opencompose.exe chmod +x ./opencompose sudo mv ./opencompose /usr/local/bin/opencompose
Go (from source)
To test the latest changes (as our project is still in it's infancy), a simple
go get is all you need to get the latest source.
go get -u github.com/redhat-developer/opencompose
Although the binary is installed via
go get. In order to create a properly signed build (ex.
opencompose version), you will have to build it with
go get -u github.com/redhat-developer/opencompose make bin
We support both Bash and Zsh autocompletion.
# Bash (add to .bashrc for persistence) source <(opencompose completion bash) # Zsh (add to .zshrc for persistence) source <(opencompose completion zsh)