Skip to content

Commit

Permalink
test: add functional tests
Browse files Browse the repository at this point in the history
Signed-off-by: AhmedGrati <[email protected]>
  • Loading branch information
TessaIO committed Jul 16, 2023
1 parent 565c003 commit bb94d4e
Show file tree
Hide file tree
Showing 5 changed files with 182 additions and 2 deletions.
2 changes: 1 addition & 1 deletion cmd/convert.go
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ func init() {
convertCmd.Flags().IntVar(&ConvertReplicas, "replicas", 1, "Specify the number of replicas in the generated resource spec")
convertCmd.Flags().StringVar(&ConvertVolumes, "volumes", "persistentVolumeClaim", `Volumes to be generated ("persistentVolumeClaim"|"emptyDir"|"hostPath" | "configMap")`)
convertCmd.Flags().StringVar(&ConvertPVCRequestSize, "pvc-request-size", "", `Specify the size of pvc storage requests in the generated resource spec`)
convertCmd.Flags().StringVar(&ConvertNamespace, "namespace", "n", `Specify the namespace of the generated resources`)
convertCmd.Flags().StringVarP(&ConvertNamespace, "namespace", "n", "", `Specify the namespace of the generated resources`)
convertCmd.Flags().BoolVar(&GenerateNetworkPolicies, "generate-network-policies", false, "Specify whether to generate network policies or not.")

convertCmd.Flags().BoolVar(&WithKomposeAnnotation, "with-kompose-annotation", true, "Add kompose annotations to generated resource")
Expand Down
10 changes: 9 additions & 1 deletion script/test/cmd/tests_new.sh
Original file line number Diff line number Diff line change
Expand Up @@ -271,11 +271,19 @@ convert::expect_success "$os_cmd" "$os_output"
# Test support for network policies generation
k8s_cmd="kompose -f $KOMPOSE_ROOT/script/test/fixtures/network-policies/docker-compose.yaml convert --generate-network-policies --stdout --with-kompose-annotation=false"
k8s_output="$KOMPOSE_ROOT/script/test/fixtures/network-policies/output-k8s.yaml"
convert::expect_success "$os_cmd" "$os_output"
convert::expect_success "$k8s_cmd" "$k8s_output"

# Test support for custom build and push images
k8s_cmd="kompose -f $KOMPOSE_ROOT/script/test/fixtures/custom-build-push/docker-compose.yaml convert --build-command 'docker build -t ahmedgrati/kompose-test ./script/test/fixtures/custom-build-push' --push-command 'docker push ahmedgrati/kompose-test' --stdout --with-kompose-annotation=false"
k8s_output="$KOMPOSE_ROOT/script/test/fixtures/custom-build-push/output-k8s.yaml"
convert::expect_success "$k8s_cmd" "$k8s_output"

# Test support for namespace generation
k8s_cmd="kompose -f ./script/test/fixtures/namespace/docker-compose.yaml convert --stdout --with-kompose-annotation=false -n web"
k8s_output="$KOMPOSE_ROOT/script/test/fixtures/namespace/output-k8s.yaml"
os_cmd="kompose -f ./script/test/fixtures/namespace/docker-compose.yaml convert --stdout --with-kompose-annotation=false -n web --provider openshift"
os_output="$KOMPOSE_ROOT/script/test/fixtures/namespace/output-os.yaml"
convert::expect_success "$k8s_cmd" "$k8s_output"
convert::expect_success "$os_cmd" "$os_output"

# Test support for read only root fs
Expand Down
6 changes: 6 additions & 0 deletions script/test/fixtures/namespace/docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: '3'
services:
web:
image: nginx
ports:
- 80:80
62 changes: 62 additions & 0 deletions script/test/fixtures/namespace/output-k8s.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
apiVersion: v1
kind: Service
metadata:
creationTimestamp: null
labels:
io.kompose.service: web
name: web
namespace: web
spec:
ports:
- name: "80"
port: 80
targetPort: 80
selector:
io.kompose.service: web
status:
loadBalancer: {}

---
apiVersion: v1
kind: Namespace
metadata:
creationTimestamp: null
name: web
namespace: web
spec: {}
status: {}

---
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
io.kompose.service: web
name: web
namespace: web
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: web
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
io.kompose.network/namespace-default: "true"
io.kompose.service: web
spec:
containers:
- image: nginx
name: web
ports:
- containerPort: 80
hostPort: 80
protocol: TCP
resources: {}
restartPolicy: Always
status: {}

104 changes: 104 additions & 0 deletions script/test/fixtures/namespace/output-os.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
---
apiVersion: v1
kind: Service
metadata:
creationTimestamp: null
labels:
io.kompose.service: web
name: web
namespace: web
spec:
ports:
- name: "80"
port: 80
targetPort: 80
selector:
io.kompose.service: web
status:
loadBalancer: {}

---
apiVersion: v1
kind: Namespace
metadata:
creationTimestamp: null
name: web
namespace: web
spec: {}
status: {}

---
apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
creationTimestamp: null
labels:
io.kompose.service: web
name: web
namespace: web
spec:
replicas: 1
selector:
io.kompose.service: web
strategy:
resources: {}
template:
metadata:
creationTimestamp: null
labels:
io.kompose.network/namespace-default: "true"
io.kompose.service: web
spec:
containers:
- image: ' '
name: web
ports:
- containerPort: 80
hostPort: 80
protocol: TCP
resources: {}
restartPolicy: Always
test: false
triggers:
- type: ConfigChange
- imageChangeParams:
automatic: true
containerNames:
- web
from:
kind: ImageStreamTag
name: web:latest
type: ImageChange
status:
availableReplicas: 0
latestVersion: 0
observedGeneration: 0
replicas: 0
unavailableReplicas: 0
updatedReplicas: 0

---
apiVersion: image.openshift.io/v1
kind: ImageStream
metadata:
creationTimestamp: null
labels:
io.kompose.service: web
name: web
namespace: web
spec:
lookupPolicy:
local: false
tags:
- annotations: null
from:
kind: DockerImage
name: nginx
generation: null
importPolicy: {}
name: latest
referencePolicy:
type: ""
status:
dockerImageRepository: ""

0 comments on commit bb94d4e

Please sign in to comment.