@@ -15,6 +15,10 @@ import (
15
15
"sigs.k8s.io/kustomize/kyaml/filesys"
16
16
)
17
17
18
+ const (
19
+ repoRootDir = "../../"
20
+ )
21
+
18
22
const generateDeploymentDotSh = `#!/bin/sh
19
23
20
24
cat <<EOF
@@ -513,51 +517,58 @@ func TestFnContainerGenerator(t *testing.T) {
513
517
resources:
514
518
- deployment.yaml
515
519
generators:
516
- - project- service-set.yaml
520
+ - service-set.yaml
517
521
` )
518
522
// Create generator config
519
- th .WriteF (filepath .Join (tmpDir .String (), "project- service-set.yaml" ), `
520
- apiVersion: blueprints.cloud.google.com /v1alpha1
521
- kind: ProjectServiceSet
523
+ th .WriteF (filepath .Join (tmpDir .String (), "service-set.yaml" ), `
524
+ apiVersion: kustomize.sigs.k8s.io /v1alpha1
525
+ kind: ServiceGenerator
522
526
metadata:
523
- name: demo
527
+ name: simplegenerator
524
528
annotations:
525
529
config.kubernetes.io/function: |
526
530
container:
527
- image: gcr.io/kpt-fn/enable-gcp-services:v0.1.0
531
+ image: gcr.io/kustomize-functions/e2econtainersimplegenerator
528
532
spec:
529
- services:
530
- - compute.googleapis.com
531
- projectID: foo
533
+ port: 8081
532
534
` )
533
535
// Create another resource just to make sure everything is added
534
536
th .WriteF (filepath .Join (tmpDir .String (), "deployment.yaml" ), `
535
537
apiVersion: apps/v1
536
538
kind: Deployment
537
539
metadata:
538
- name: foo
540
+ name: simplegenerator
539
541
` )
542
+
543
+ build := exec .Command ("docker" , "build" , "." ,
544
+ "-f" , "./cmd/config/internal/commands/e2e/e2econtainersimplegenerator/Dockerfile" ,
545
+ "-t" , "gcr.io/kustomize-functions/e2econtainersimplegenerator" ,
546
+ )
547
+ build .Dir = repoRootDir
548
+ assert .NoError (t , build .Run ())
549
+
540
550
m := th .Run (tmpDir .String (), o )
541
551
actual , err := m .AsYaml ()
542
552
assert .NoError (t , err )
543
553
assert .Equal (t , `apiVersion: apps/v1
544
554
kind: Deployment
545
555
metadata:
546
- name: foo
556
+ name: simplegenerator
547
557
---
548
- apiVersion: serviceusage.cnrm.cloud.google.com/v1beta1
558
+ apiVersion: v1
549
559
kind: Service
550
560
metadata:
551
- annotations:
552
- blueprints.cloud.google.com/ownerReference: blueprints.cloud.google.com/ProjectServiceSet/demo
553
- config.kubernetes.io/function: |
554
- container:
555
- image: gcr.io/kpt-fn/enable-gcp-services:v0.1.0
556
- name: demo-compute
561
+ labels:
562
+ app: simplegenerator
563
+ name: simplegenerator-svc
557
564
spec:
558
- projectRef:
559
- external: foo
560
- resourceID: compute.googleapis.com
565
+ ports:
566
+ - name: http
567
+ port: 8081
568
+ protocol: TCP
569
+ targetPort: 8081
570
+ selector:
571
+ app: simplegenerator
561
572
` , string (actual ))
562
573
}
563
574
@@ -593,7 +604,7 @@ metadata:
593
604
"-f" , "./cmd/config/internal/commands/e2e/e2econtainerconfig/Dockerfile" ,
594
605
"-t" , "gcr.io/kustomize-functions/e2econtainerconfig" ,
595
606
)
596
- build .Dir = "../../" // Repo root
607
+ build .Dir = repoRootDir
597
608
assert .NoError (t , build .Run ())
598
609
m := th .Run (tmpDir .String (), o )
599
610
actual , err := m .AsYaml ()
@@ -611,6 +622,12 @@ metadata:
611
622
612
623
func TestFnContainerTransformerWithConfig (t * testing.T ) {
613
624
skipIfNoDocker (t )
625
+ //https://docs.docker.com/engine/reference/commandline/build/#git-repositories
626
+ build := exec .Command ("docker" , "build" , "https://github.com/GoogleContainerTools/kpt-functions-sdk.git#go-sdk-v0.0.1:ts/hello-world" ,
627
+ "-f" , "build/label_namespace.Dockerfile" ,
628
+ "-t" , "gcr.io/kpt-functions/label-namespace:go-sdk-v0.0.1" ,
629
+ )
630
+ assert .NoError (t , build .Run ())
614
631
th := kusttest_test .MakeHarness (t )
615
632
o := th .MakeOptionsPluginsEnabled ()
616
633
fSys := filesys .MakeFsOnDisk ()
@@ -644,7 +661,7 @@ metadata:
644
661
annotations:
645
662
config.kubernetes.io/function: |-
646
663
container:
647
- image: gcr.io/kpt-functions/label-namespace@sha256:4f030738d6d25a207641ca517916431517578bd0eb8d98a8bde04e3bb9315dcd
664
+ image: gcr.io/kpt-functions/label-namespace:go-sdk-v0.0.1
648
665
data:
649
666
label_name: my-ns-name
650
667
label_value: function-test
@@ -684,25 +701,31 @@ generators:
684
701
- gener.yaml
685
702
` )))
686
703
assert .NoError (t , fSys .WriteFile (filepath .Join (tmpDir .String (), "gener.yaml" ), []byte (`
687
- apiVersion: v1
688
- kind: ConfigMap
704
+ apiVersion: kustomize.sigs.k8s.io/v1alpha1
705
+ kind: EnvTemplateGenerator
689
706
metadata:
690
- name: demo
707
+ name: e2econtainerenvgenerator
691
708
annotations:
692
709
config.kubernetes.io/function: |
693
710
container:
694
- image: quay .io/aodinokov/kpt-templater:0.0.1
711
+ image: gcr .io/kustomize-functions/e2econtainerenvgenerator
695
712
envs:
696
713
- TESTTEMPLATE=value
697
- data:
698
- template: |
699
- apiVersion: v1
700
- kind: ConfigMap
701
- metadata:
702
- name: env
703
- data:
704
- value: '{{ env "TESTTEMPLATE" }}'
714
+ template: |
715
+ apiVersion: v1
716
+ kind: ConfigMap
717
+ metadata:
718
+ name: env
719
+ data:
720
+ value: %q
705
721
` )))
722
+ build := exec .Command ("docker" , "build" , "." ,
723
+ "-f" , "./cmd/config/internal/commands/e2e/e2econtainerenvgenerator/Dockerfile" ,
724
+ "-t" , "gcr.io/kustomize-functions/e2econtainerenvgenerator" ,
725
+ )
726
+ build .Dir = repoRootDir
727
+ assert .NoError (t , build .Run ())
728
+
706
729
m , err := b .Run (
707
730
fSys ,
708
731
tmpDir .String ())
@@ -731,44 +754,36 @@ generators:
731
754
- gener.yaml
732
755
` )))
733
756
assert .NoError (t , fSys .WriteFile (filepath .Join (tmpDir .String (), "gener.yaml" ), []byte (`
734
- apiVersion: v1alpha1
757
+ apiVersion: kustomize.sigs.k8s.io/ v1alpha1
735
758
kind: RenderHelmChart
736
759
metadata:
737
760
name: demo
738
761
annotations:
739
762
config.kubernetes.io/function: |
740
763
container:
741
- image: gcr.io/kpt-fn/render-helm-chart:v0.1.0
764
+ image: gcr.io/kustomize-functions/e2econtainermountbind
742
765
mounts:
743
766
- type: "bind"
744
- src: "./charts"
745
- dst: "/tmp/charts"
746
- helmCharts:
747
- - name: helloworld-chart
748
- releaseName: test
749
- valuesFile: /tmp/charts/helloworld-values/values.yaml
767
+ src: "./yaml"
768
+ dst: "/tmp/yaml"
769
+ path: /tmp/yaml/resources.yaml
750
770
` )))
751
- assert .NoError (t , fSys .MkdirAll (filepath .Join (tmpDir .String (), "charts" , "helloworld-chart" , "templates" )))
752
- assert .NoError (t , fSys .MkdirAll (filepath .Join (tmpDir .String (), "charts" , "helloworld-values" )))
753
- assert .NoError (t , fSys .WriteFile (filepath .Join (tmpDir .String (), "charts" , "helloworld-chart" , "Chart.yaml" ), []byte (`
754
- apiVersion: v2
755
- name: helloworld-chart
756
- description: A Helm chart for Kubernetes
757
- type: application
758
- version: 0.1.0
759
- appVersion: 1.16.0
760
- ` )))
761
- assert .NoError (t , fSys .WriteFile (filepath .Join (tmpDir .String (), "charts" , "helloworld-chart" , "templates" , "deployment.yaml" ), []byte (`
771
+ assert .NoError (t , fSys .MkdirAll (filepath .Join (tmpDir .String (), "yaml" , "tmp" )))
772
+ assert .NoError (t , fSys .WriteFile (filepath .Join (tmpDir .String (), "yaml" , "resources.yaml" ), []byte (`
762
773
apiVersion: apps/v1
763
774
kind: Deployment
764
775
metadata:
765
776
name: name
766
777
spec:
767
- replicas: {{ .Values.replicaCount }}
768
- ` )))
769
- assert .NoError (t , fSys .WriteFile (filepath .Join (tmpDir .String (), "charts" , "helloworld-values" , "values.yaml" ), []byte (`
770
- replicaCount: 5
778
+ replicas: 3
771
779
` )))
780
+ build := exec .Command ("docker" , "build" , "." ,
781
+ "-f" , "./cmd/config/internal/commands/e2e/e2econtainermountbind/Dockerfile" ,
782
+ "-t" , "gcr.io/kustomize-functions/e2econtainermountbind" ,
783
+ )
784
+ build .Dir = repoRootDir
785
+ assert .NoError (t , build .Run ())
786
+
772
787
m , err := b .Run (
773
788
fSys ,
774
789
tmpDir .String ())
@@ -780,7 +795,7 @@ kind: Deployment
780
795
metadata:
781
796
name: name
782
797
spec:
783
- replicas: 5
798
+ replicas: 3
784
799
` , string (actual ))
785
800
}
786
801
0 commit comments