Security News
38% of CISOs Fear They’re Not Moving Fast Enough on AI
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
.. 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
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.
Security News
Company News
Socket is joining TC54 to help develop standards for software supply chain security, contributing to the evolution of SBOMs, CycloneDX, and Package URL specifications.