Read about building kompose here.
- Go to https://github.com/kubernetes/kompose
- Click the "Fork" button (at the top right)
The commands below require that you have $GOPATH. We highly recommended you put Kompose' code into your $GOPATH.
git clone https://github.com/$YOUR_GITHUB_USERNAME/kompose.git $GOPATH/src/github.com/kubernetes/kompose
cd $GOPATH/src/github.com/kubernetes/kompose
git remote add upstream 'https://github.com/kubernetes/kompose'
git checkout -b myfeature
# Make your code changes
git fetch upstream
git rebase upstream/master
Note: If you have write access to the main repository at github.com/kubernetes/kompose, you should modify your git configuration so that you can't accidentally push to upstream:
git remote set-url --push upstream no_push
git commit
git push -f origin myfeature
- Visit https://github.com/$YOUR_GITHUB_USERNAME/kompose.git
- Click the "Compare and pull request" button next to your "myfeature" branch.
- Check out the pull request process for more details
Kompose uses glide
to manage dependencies and glide-vc
to clean vendor directory.
They are not strictly required for building Kompose but they are required when managing dependencies under the vendor/
directory.
If you want to make changes to dependencies please make sure that glide
and glide-vc
are installed and are in your $PATH
.
There are many ways to build and host golang binaries. Here is an easy way to get utilities like glide
and glide-vc
installed:
Ensure that Mercurial and Git are installed on your system. (some of the dependencies use the mercurial source control system).
Use apt-get install mercurial git
or yum install mercurial git
on Linux, or brew.sh
on OS X, or download them directly.
go get -u github.com/Masterminds/glide
go get github.com/sgotti/glide-vc
Check that glide
and glide-vc
commands are working.
glide --version
glide-vc -h
- Update
glide.yml
file.
Add new packages or subpackages to glide.yml
depending if you added whole new package as dependency or
just new subpackage.
-
Run
glide update --strip-vendor
to get new dependencies. Then runglide-vc --only-code --no-tests
to delete all unnecessary files from vendor. -
Commit updated
glide.yml
,glide.lock
andvendor
to git.
-
Set new package version in
glide.yml
file. -
Run
glide update --strip-vendor
to update dependencies. Then runglide-vc --only-code --no-tests
to delete all unnecessary files from vendor.
Kubernetes version depends on what version is OpenShift using.
OpenShift is using forked Kubernetes to carry some patches.
Currently it is not possible to use different Kubernetes version from version that OpenShift uses.
(for more see comments in glide.yml
)
Kompose CLI tests run kompose convert
with docker-compose files, and cross-check the k8s and OpenShift artifacts generated with the template files.
To generate CLI tests, please run make gen-cmd
.
For Kompose, we use numerous CI's:
- TravisCI: Unit and CLI tests
- SemaphoreCI: Integration / cluster tests
- Fabric8CI: Secondary integration tests / future cluster tests