deployment_test.yaml 4.42 KB
Newer Older
raojy's avatar
raojy committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
suite: test deployment
templates:
  - deployment.yaml
tests:
  - it: should create wait-download-model init container when modelDownload is enabled
    set:
      extraInit:
        modelDownload:
          enabled: true
          image:
            repository: "amazon/aws-cli"
            tag: "2.6.4"
            pullPolicy: "IfNotPresent"
          waitContainer:
            command: [ "/bin/bash" ]
            args:
              - "-eucx"
              - "while aws --endpoint-url $S3_ENDPOINT_URL s3 sync --dryrun s3://$S3_BUCKET_NAME/$S3_PATH /data | grep -q download; do sleep 10; done"
          downloadJob:
            command: [ "/bin/bash" ]
            args:
              - "-eucx"
              - "aws --endpoint-url $S3_ENDPOINT_URL s3 sync s3://$S3_BUCKET_NAME/$S3_PATH /data"
        initContainers: [ ]
        pvcStorage: "1Gi"
        s3modelpath: "relative_s3_model_path/opt-125m"
        awsEc2MetadataDisabled: true
    asserts:
      - hasDocuments:
          count: 1
      - isKind:
          of: Deployment
      - isNotEmpty:
          path: spec.template.spec.initContainers
      - equal:
          path: spec.template.spec.initContainers[0].name
          value: wait-download-model
      - equal:
          path: spec.template.spec.initContainers[0].image
          value: amazon/aws-cli:2.6.4
      - equal:
          path: spec.template.spec.initContainers[0].imagePullPolicy
          value: IfNotPresent

  - it: should only create custom init containers when modelDownload is disabled
    set:
      extraInit:
        modelDownload:
          enabled: false
          image:
            repository: "amazon/aws-cli"
            tag: "2.6.4"
            pullPolicy: "IfNotPresent"
          waitContainer:
            command: [ "/bin/bash" ]
            args: [ "-c", "echo test" ]
          downloadJob:
            command: [ "/bin/bash" ]
            args: [ "-c", "echo test" ]
        initContainers:
          - name: llm-d-routing-proxy
            image: ghcr.io/llm-d/llm-d-routing-sidecar:v0.2.0
            imagePullPolicy: IfNotPresent
            ports:
              - containerPort: 8080
                name: proxy
        pvcStorage: "10Gi"
    asserts:
      - hasDocuments:
          count: 1
      - isKind:
          of: Deployment
      - lengthEqual:
          path: spec.template.spec.initContainers
          count: 1
      - equal:
          path: spec.template.spec.initContainers[0].name
          value: llm-d-routing-proxy
      - equal:
          path: spec.template.spec.initContainers[0].image
          value: ghcr.io/llm-d/llm-d-routing-sidecar:v0.2.0
      - equal:
          path: spec.template.spec.initContainers[0].ports[0].containerPort
          value: 8080

  - it: should create both wait-download-model and custom init containers when both are enabled
    set:
      extraInit:
        modelDownload:
          enabled: true
          image:
            repository: "amazon/aws-cli"
            tag: "2.6.4"
            pullPolicy: "IfNotPresent"
          waitContainer:
            command: [ "/bin/bash" ]
            args:
              - "-eucx"
              - "while aws --endpoint-url $S3_ENDPOINT_URL s3 sync --dryrun s3://$S3_BUCKET_NAME/$S3_PATH /data | grep -q download; do sleep 10; done"
          downloadJob:
            command: [ "/bin/bash" ]
            args:
              - "-eucx"
              - "aws --endpoint-url $S3_ENDPOINT_URL s3 sync s3://$S3_BUCKET_NAME/$S3_PATH /data"
        initContainers:
          - name: llm-d-routing-proxy
            image: ghcr.io/llm-d/llm-d-routing-sidecar:v0.2.0
            imagePullPolicy: IfNotPresent
            ports:
              - containerPort: 8080
                name: proxy
        pvcStorage: "10Gi"
    asserts:
      - hasDocuments:
          count: 1
      - isKind:
          of: Deployment
      - lengthEqual:
          path: spec.template.spec.initContainers
          count: 2
      - equal:
          path: spec.template.spec.initContainers[0].name
          value: wait-download-model
      - equal:
          path: spec.template.spec.initContainers[0].image
          value: amazon/aws-cli:2.6.4
      - equal:
          path: spec.template.spec.initContainers[1].name
          value: llm-d-routing-proxy
      - equal:
          path: spec.template.spec.initContainers[1].image
          value: ghcr.io/llm-d/llm-d-routing-sidecar:v0.2.0
      - equal:
          path: spec.template.spec.initContainers[1].ports[0].containerPort
          value: 8080