
Security News
Open Source CAI Framework Handles Pen Testing Tasks up to 3,600× Faster Than Humans
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
.. image:: https://travis-ci.org/micahhausler/container-transform.png :target: https://travis-ci.org/micahhausler/container-transform
.. image:: https://coveralls.io/repos/micahhausler/container-transform/badge.png?branch=master :target: https://coveralls.io/r/micahhausler/container-transform?branch=master
.. image:: https://readthedocs.org/projects/container-transform/badge/?version=latest :target: http://container-transform.readthedocs.org/en/latest/?badge=latest :alt: Documentation Status
container-transform is a small utility to transform various docker container formats to one another.
Currently, container-transform can parse and convert:
and it can output to:
Compose to Kubernetes
::
$ cat docker-compose.yaml
version: '2'
services:
etcd:
cpu_shares: 102.4
entrypoint: /usr/local/bin/etcd -data-dir /var/etcd/data -listen-client-urls http://127.0.0.1:2379,http://127.0.0.1:4001
-advertise-client-urls http://127.0.0.1:2379,http://127.0.0.1:4001 -initial-cluster-token
skydns-etcd
image: gcr.io/google_containers/etcd-amd64:2.2.1
mem_limit: 524288000b
healthz:
command: -cmd=nslookup kubernetes.default.svc.cluster.local 127.0.0.1 >/dev/null
-port=8080
cpu_shares: 10.24
image: gcr.io/google_containers/exechealthz:1.0
mem_limit: 20971520b
ports:
- '8080'
kube2sky:
command: --kubecfg-file=/etc/kubernetes/worker-kubeconfig.yaml --domain=cluster.local
cpu_shares: 102.4
image: gcr.io/google_containers/kube2sky:1.14
mem_limit: 209715200b
volumes:
- /usr/share/ca-certificates:/etc/ssl/certs
- /etc/kubernetes/worker-kubeconfig.yaml:/etc/kubernetes/worker-kubeconfig.yaml:ro
- /etc/kubernetes/ssl:/etc/kubernetes/ssl:ro
skydns:
command: -machines=http://127.0.0.1:4001 -addr=0.0.0.0:53 -ns-rotate=false -domain=cluster.local.
cpu_shares: 102.4
image: gcr.io/google_containers/skydns:2015-10-13-8c72f8c
mem_limit: 209715200b
ports:
- 53/udp
- '53'
$ container-transform -i compose -o kubernetes docker-compose.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: null
version: latest
name: null
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: null
version: latest
template:
metadata:
labels:
app: null
version: latest
spec:
containers:
- command:
- /usr/local/bin/etcd
- -data-dir
- /var/etcd/data
- -listen-client-urls
- http://127.0.0.1:2379,http://127.0.0.1:4001
- -advertise-client-urls
- http://127.0.0.1:2379,http://127.0.0.1:4001
- -initial-cluster-token
- skydns-etcd
image: gcr.io/google_containers/etcd-amd64:2.2.1
name: etcd
resources:
limits:
cpu: 100.0m
memory: 500Mi
- args:
- -cmd=nslookup
- kubernetes.default.svc.cluster.local
- 127.0.0.1
- '>/dev/null'
- -port=8080
image: gcr.io/google_containers/exechealthz:1.0
name: healthz
ports:
- containerPort: 8080
protocol: TCP
resources:
limits:
cpu: 10.0m
memory: 20Mi
- args:
- --kubecfg-file=/etc/kubernetes/worker-kubeconfig.yaml
- --domain=cluster.local
image: gcr.io/google_containers/kube2sky:1.14
name: kube2sky
resources:
limits:
cpu: 100.0m
memory: 200Mi
volumeMounts:
- mountPath: /etc/ssl/certs
name: usr-share-ca-certificates
- mountPath: /etc/kubernetes/worker-kubeconfig.yaml
name: etc-kubernetes-worker-kubeconfig.yaml
readOnly: true
- mountPath: /etc/kubernetes/ssl
name: etc-kubernetes-ssl
readOnly: true
- args:
- -machines=http://127.0.0.1:4001
- -addr=0.0.0.0:53
- -ns-rotate=false
- -domain=cluster.local.
image: gcr.io/google_containers/skydns:2015-10-13-8c72f8c
name: skydns
ports:
- containerPort: 53
protocol: UDP
- containerPort: 53
protocol: TCP
resources:
limits:
cpu: 100.0m
memory: 200Mi
volumes:
- hostPath:
path: /etc/kubernetes/ssl
name: etc-kubernetes-ssl
- hostPath:
path: /etc/kubernetes/worker-kubeconfig.yaml
name: etc-kubernetes-worker-kubeconfig.yaml
- hostPath:
path: /usr/share/ca-certificates
name: usr-share-ca-certificates
Compose to ECS
~~~~~~~~~~~~~~
::
$ cat docker-compose.yml | container-transform -v
{
"family": "python-app",
"volumes": [
{
"name": "host_logs",
"host": {
"sourcePath": "/var/log/myapp"
}
}
],
"containerDefinitions": [
{
"memory": 1024,
"image": "postgres:9.3",
"name": "db",
"essential": true
},
{
"memory": 128,
"image": "redis:latest",
"name": "redis",
"essential": true
},
{
"name": "web",
"memory": 64,
"command": [
"uwsgi",
"--json",
"uwsgi.json"
],
"mountPoints": [
{
"sourceVolume": "host_logs",
"containerPath": "/var/log/uwsgi/"
}
],
"environment": [
{
"name": "AWS_ACCESS_KEY_ID",
"value": "AAAAAAAAAAAAAAAAAAAA"
},
{
"name": "AWS_SECRET_ACCESS_KEY",
"value": "1111111111111111111111111111111111111111"
}
],
"essential": true
}
]
}
Container web is missing required parameter "image".
Container web is missing required parameter "cpu".
Quick Help
----------
::
Usage: container-transform [OPTIONS] [INPUT_FILE]
container-transform is a small utility to transform various docker
container formats to one another.
Default input type is compose, default output type is ECS
Default is to read from STDIN if no INPUT_FILE is provided
All options may be set by environment variables with the prefix "CT_"
followed by the full argument name.
Options:
-i, --input-type [ecs|compose|marathon|chronos|kubernetes]
-o, --output-type [ecs|compose|systemd|marathon|chronos|kubernetes]
-v, --verbose / --no-verbose Expand/minify json output
-q, --quiet Silence error messages
--version Show the version and exit.
-h, --help Show this message and exit.
Docker Image
------------
To get the docker image, run::
docker pull micahhausler/container-transform:latest
To run the docker image::
docker run --rm -v $(pwd):/data/ micahhausler/container-transform docker-compose.yml
# or
cat docker-compose.yml | docker run --rm -i micahhausler/container-transform
Installation
------------
To install the latest release (Python 3 only), type::
pip install container-transform
To install the latest code directly from source, type::
pip install git+git://github.com/micahhausler/container-transform.git
Documentation
-------------
Full documentation is available at http://container-transform.readthedocs.org
License
-------
MIT License (see LICENSE)
FAQs
A converter for various docker cluster formats
We found that container-transform demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Security News
Deno 2.4 brings back bundling, improves dependency updates and telemetry, and makes the runtime more practical for real-world JavaScript projects.
Security News
CVEForecast.org uses machine learning to project a record-breaking surge in vulnerability disclosures in 2025.