From ec8ec0066ad38e95528ee132d6f2385b4eab4a7a Mon Sep 17 00:00:00 2001 From: shreddedbacon Date: Mon, 14 Oct 2024 08:46:40 +1100 Subject: [PATCH] test: add a complex persistent test --- cmd/template_lagoonservices_test.go | 29 ++ .../docker-compose.persistent-name.yml | 265 ++++++++++++++++++ .../complex/docker/generic.dockerfile | 1 + .../complex/lagoon.persistent-name.yml | 7 + .../deployment-cli.yaml | 97 +++++++ .../deployment-gotenberg.yaml | 83 ++++++ .../deployment-nginx.yaml | 134 +++++++++ .../deployment-opensearch.yaml | 114 ++++++++ .../deployment-queue-worker-entity-index.yaml | 93 ++++++ ...deployment-queue-worker-priority-high.yaml | 93 ++++++ ...loyment-queue-worker-priority-instant.yaml | 93 ++++++ .../deployment-queue-worker-priority-low.yaml | 93 ++++++ ...ployment-queue-worker-priority-medium.yaml | 93 ++++++ .../deployment-rabbitmq.yaml | 93 ++++++ .../deployment-redis-persist.yaml | 94 +++++++ .../deployment-redis-session.yaml | 94 +++++++ .../deployment-redis.yaml | 83 ++++++ .../pvc-nginx.yaml | 30 ++ .../pvc-opensearch.yaml | 29 ++ .../pvc-rabbitmq-data.yaml | 30 ++ .../pvc-redis-persist.yaml | 29 ++ .../pvc-redis-session.yaml | 29 ++ .../service-gotenberg.yaml | 31 ++ .../service-nginx.yaml | 31 ++ .../service-opensearch.yaml | 31 ++ .../service-rabbitmq.yaml | 35 +++ .../service-redis-persist.yaml | 31 ++ .../service-redis-session.yaml | 31 ++ .../service-redis.yaml | 31 ++ 29 files changed, 1927 insertions(+) create mode 100644 internal/testdata/complex/docker-compose.persistent-name.yml create mode 100644 internal/testdata/complex/docker/generic.dockerfile create mode 100644 internal/testdata/complex/lagoon.persistent-name.yml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-cli.yaml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-gotenberg.yaml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-nginx.yaml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-opensearch.yaml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-queue-worker-entity-index.yaml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-queue-worker-priority-high.yaml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-queue-worker-priority-instant.yaml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-queue-worker-priority-low.yaml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-queue-worker-priority-medium.yaml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-rabbitmq.yaml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-redis-persist.yaml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-redis-session.yaml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-redis.yaml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/pvc-nginx.yaml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/pvc-opensearch.yaml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/pvc-rabbitmq-data.yaml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/pvc-redis-persist.yaml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/pvc-redis-session.yaml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/service-gotenberg.yaml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/service-nginx.yaml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/service-opensearch.yaml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/service-rabbitmq.yaml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/service-redis-persist.yaml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/service-redis-session.yaml create mode 100644 internal/testdata/complex/service-templates/test-complex-persistent-names/service-redis.yaml diff --git a/cmd/template_lagoonservices_test.go b/cmd/template_lagoonservices_test.go index d1ce645a..b0d8d2dd 100644 --- a/cmd/template_lagoonservices_test.go +++ b/cmd/template_lagoonservices_test.go @@ -513,6 +513,35 @@ func TestTemplateLagoonServices(t *testing.T) { templatePath: "testoutput", want: "internal/testdata/basic/service-templates/test-basic-persistent-names", }, + { + name: "test-complex-persistent-names", + description: "tests a complex deployment with two services with persistent name", + args: testdata.GetSeedData( + testdata.TestData{ + ProjectName: "example-project", + EnvironmentName: "main", + Branch: "main", + LagoonYAML: "internal/testdata/complex/lagoon.persistent-name.yml", + ImageReferences: map[string]string{ + "cli": "harbor.example/example-project/main/cli@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8", + "gotenberg": "harbor.example/example-project/main/gotenberg@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8", + "nginx": "harbor.example/example-project/main/nginx@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8", + "opensearch": "harbor.example/example-project/main/opensearch@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8", + "php": "harbor.example/example-project/main/php@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8", + "rabbitmq": "harbor.example/example-project/main/rabbitmq@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8", + "redis": "harbor.example/example-project/main/redis@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8", + "redis-persist": "harbor.example/example-project/main/redis-persist@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8", + "redis-session": "harbor.example/example-project/main/redis-session@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8", + "queue-worker-entity-index": "harbor.example/example-project/main/queue-worker-entity-index@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8", + "queue-worker-priority-high": "harbor.example/example-project/main/queue-worker-priority-high@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8", + "queue-worker-priority-instant": "harbor.example/example-project/main/queue-worker-priority-instant@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8", + "queue-worker-priority-low": "harbor.example/example-project/main/queue-worker-priority-low@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8", + "queue-worker-priority-medium": "harbor.example/example-project/main/queue-worker-priority-medium@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8", + }, + }, true), + templatePath: "testoutput", + want: "internal/testdata/complex/service-templates/test-complex-persistent-names", + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { diff --git a/internal/testdata/complex/docker-compose.persistent-name.yml b/internal/testdata/complex/docker-compose.persistent-name.yml new file mode 100644 index 00000000..142ebbc8 --- /dev/null +++ b/internal/testdata/complex/docker-compose.persistent-name.yml @@ -0,0 +1,265 @@ +x-lagoon-project: + # Lagoon project name (leave `&lagoon-project` when you edit this) + &lagoon-project default + +x-volumes: + &default-volumes + # Define all volumes you would like to have real-time mounted into the docker containers + volumes: + - .:/app:delegated + +x-environment: + &default-environment + LAGOON_PROJECT: *lagoon-project + # Route that should be used locally + # Uncomment if you like to have the system behave like in production + #LAGOON_ENVIRONMENT_TYPE: production + REDIS_PERSIST_URL: 'redis://redis-persist:6379' + REDIS_SESSION_URL: 'redis://redis-session:6379' + REDIS_URL: 'redis://redis:6379' + RABBITMQ_DEFAULT_USER: "default" + RABBITMQ_DEFAULT_PASS: "${RABBITMQ_DEFAULT_PASS:-default}" + MESSENGER_TRANSPORT_DSN: "amqp://${RABBITMQ_DEFAULT_USER}:${RABBITMQ_DEFAULT_PASS}@rabbitmq:5672/" + # Uncomment to enable xdebug and then restart via `docker-compose up -d` + # XDEBUG_ENABLE: "true" + +services: + + cli: # cli container, will be used for executing composer and any local commands (drush, drupal, etc.) + build: + context: . + dockerfile: internal/testdata/complex/docker/cli.dockerfile + args: + - "COMPOSER_AUTH=${COMPOSER_AUTH}" + image: *lagoon-project # this image will be reused as `CLI_IMAGE` in subsequent Docker builds + labels: + # Lagoon Labels + lagoon.type: cli-persistent + lagoon.persistent.name: nginx # mount the persistent storage of nginx into this container + lagoon.persistent: /app/files # location where the persistent storage should be mounted + << : *default-volumes # loads the defined volumes from the top + volumes_from: # mount the ssh-agent from the pygmy or cachalot ssh-agent + - container:amazeeio-ssh-agent + depends_on: + - redis-persist + - mariadb + environment: + << : *default-environment # loads the defined environment variables from the top + + nginx: + build: + context: . + dockerfile: internal/testdata/complex/docker/nginx.dockerfile + args: + CLI_IMAGE: *lagoon-project # Inject the name of the cli image + labels: + lagoon.type: nginx-php-persistent + lagoon.persistent: /app/files # define where the persistent storage should be mounted too + << : *default-volumes # loads the defined volumes from the top + depends_on: + - cli # basically just tells docker-compose to build the cli first + environment: + << : *default-environment # loads the defined environment variables from the top + networks: + - amazeeio-network + - default + + php: + build: + context: . + dockerfile: internal/testdata/complex/docker/php.dockerfile + args: + CLI_IMAGE: *lagoon-project + labels: + lagoon.type: nginx-php-persistent + lagoon.name: nginx # we want this service be part of the nginx pod in Lagoon + lagoon.persistent: /app/files # define where the persistent storage should be mounted too + << : *default-volumes # loads the defined volumes from the top + depends_on: + - cli # basically just tells docker-compose to build the cli first + environment: + << : *default-environment # loads the defined environment variables from the to + + queue-worker-entity-index: + build: + context: . + dockerfile: internal/testdata/complex/docker/generic.dockerfile + args: + CLI_IMAGE: *lagoon-project + labels: + lagoon.type: worker-persistent + lagoon.persistent.name: nginx # mount the persistent storage of nginx into this container + lagoon.persistent: /app/files # location where the persistent storage should be mounted + <<: *default-volumes # loads the defined volumes from the top + depends_on: + - rabbitmq # We kind of do need rabbitmq to run before we start listening + - cli # basically just tells docker-compose to build the cli first + environment: + <<: *default-environment # loads the defined environment variables from the top + + queue-worker-priority-instant: + build: + context: . + dockerfile: internal/testdata/complex/docker/generic.dockerfile + args: + CLI_IMAGE: *lagoon-project + labels: + lagoon.type: worker-persistent + lagoon.persistent.name: nginx # mount the persistent storage of nginx into this container + lagoon.persistent: /app/files # location where the persistent storage should be mounted + <<: *default-volumes # loads the defined volumes from the top + depends_on: + - rabbitmq # We kind of do need rabbitmq to run before we start listening + - cli # basically just tells docker-compose to build the cli first + environment: + <<: *default-environment # loads the defined environment variables from the top + + queue-worker-priority-high: + build: + context: . + dockerfile: internal/testdata/complex/docker/generic.dockerfile + args: + CLI_IMAGE: *lagoon-project + labels: + lagoon.type: worker-persistent + lagoon.persistent.name: nginx # mount the persistent storage of nginx into this container + lagoon.persistent: /app/files # location where the persistent storage should be mounted + <<: *default-volumes # loads the defined volumes from the top + depends_on: + - rabbitmq # We kind of do need rabbitmq to run before we start listening + - cli # basically just tells docker-compose to build the cli first + environment: + <<: *default-environment # loads the defined environment variables from the top + + queue-worker-priority-medium: + build: + context: . + dockerfile: internal/testdata/complex/docker/generic.dockerfile + args: + CLI_IMAGE: *lagoon-project + labels: + lagoon.type: worker-persistent + lagoon.persistent.name: nginx # mount the persistent storage of nginx into this container + lagoon.persistent: /app/files # location where the persistent storage should be mounted + <<: *default-volumes # loads the defined volumes from the top + depends_on: + - rabbitmq # We kind of do need rabbitmq to run before we start listening + - cli # basically just tells docker-compose to build the cli first + environment: + <<: *default-environment # loads the defined environment variables from the top + + queue-worker-priority-low: + build: + context: . + dockerfile: internal/testdata/complex/docker/generic.dockerfile + args: + CLI_IMAGE: *lagoon-project + labels: + lagoon.type: worker-persistent + lagoon.persistent.name: nginx # mount the persistent storage of nginx into this container + lagoon.persistent: /app/files # location where the persistent storage should be mounted + <<: *default-volumes # loads the defined volumes from the top + depends_on: + - rabbitmq # We kind of do need rabbitmq to run before we start listening + - cli # basically just tells docker-compose to build the cli first + environment: + <<: *default-environment # loads the defined environment variables from the top + + mariadb: + image: uselagoon/mariadb-10.5 + labels: + lagoon.type: mariadb + ports: + - "3306" # exposes the port 3306 with a random local port, find it with `docker-compose port mariadb 3306` + environment: + << : *default-environment + + redis: + build: + context: . + dockerfile: internal/testdata/complex/docker/generic.dockerfile + labels: + lagoon.type: redis + environment: + <<: *default-environment + + redis-persist: + build: + context: . + dockerfile: internal/testdata/complex/docker/generic.dockerfile + labels: + lagoon.type: redis-persistent + # Should be at least 3x the size of allocated RAM + # See https://docs.redis.com/latest/rs/installing-upgrading/install/plan-deployment/hardware-requirements/ + lagoon.persistent.size: 15Gi + environment: + <<: *default-environment + + redis-product-info: + build: + context: . + dockerfile: internal/testdata/complex/docker/generic.dockerfile + labels: + lagoon.name: redis-product-info + # This service type is set to redis-persistent for master and production in .lagoon.yml + lagoon.type: none + # Should be at least 3x the size of allocated RAM + # See https://docs.redis.com/latest/rs/installing-upgrading/install/plan-deployment/hardware-requirements/ + lagoon.persistent.size: 4Gi + environment: + <<: *default-environment + + redis-session: + build: + context: . + dockerfile: internal/testdata/complex/docker/generic.dockerfile + labels: + lagoon.name: redis-session + lagoon.type: redis-persistent + # Should be at least 3x the size of allocated RAM + # See https://docs.redis.com/latest/rs/installing-upgrading/install/plan-deployment/hardware-requirements/ + lagoon.persistent.size: 4Gi + environment: + <<: *default-environment + + rabbitmq: + image: uselagoon/rabbitmq + labels: + lagoon.service.port: 5672 + lagoon.service.usecomposeports: true + lagoon.autogeneratedroute: false + lagoon.type: basic-persistent + lagoon.persistent: /var/lib/rabbitmq + lagoon.persistent.name: rabbitmq-data + # Note: 5Gi is the default size for persistent storage + lagoon.persistent.size: 1Gi + environment: + <<: *default-environment + ports: + - '5672' + - '15672:15672' + + gotenberg: + build: + context: . + dockerfile: internal/testdata/complex/docker/generic.dockerfile + labels: + lagoon.type: basic + lagoon.autogeneratedroute: false + ports: + - '3000' + environment: + <<: *default-environment + + opensearch: + image: uselagoon/opensearch-2 + labels: + lagoon.type: opensearch + # Note: 5Gi is the default size for persistent storage + lagoon.persistent.size: 4Gi + environment: + <<: *default-environment + +networks: + amazeeio-network: + external: true \ No newline at end of file diff --git a/internal/testdata/complex/docker/generic.dockerfile b/internal/testdata/complex/docker/generic.dockerfile new file mode 100644 index 00000000..15571fab --- /dev/null +++ b/internal/testdata/complex/docker/generic.dockerfile @@ -0,0 +1 @@ +FROM uselagoon/fake-generic:latest diff --git a/internal/testdata/complex/lagoon.persistent-name.yml b/internal/testdata/complex/lagoon.persistent-name.yml new file mode 100644 index 00000000..411f8414 --- /dev/null +++ b/internal/testdata/complex/lagoon.persistent-name.yml @@ -0,0 +1,7 @@ +docker-compose-yaml: internal/testdata/complex/docker-compose.persistent-name.yml + +environments: + main: + routes: + - node: + - example.com diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-cli.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-cli.yaml new file mode 100644 index 00000000..814b9be2 --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-cli.yaml @@ -0,0 +1,97 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: cli + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: cli-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: cli + lagoon.sh/service-type: cli-persistent + lagoon.sh/template: cli-persistent-0.1.0 + name: cli +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/instance: cli + app.kubernetes.io/name: cli-persistent + strategy: {} + template: + metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/configMapSha: abcdefg1234567890 + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: cli + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: cli-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: cli + lagoon.sh/service-type: cli-persistent + lagoon.sh/template: cli-persistent-0.1.0 + spec: + containers: + - env: + - name: LAGOON_GIT_SHA + value: "0000000000000000000000000000000000000000" + - name: CRONJOBS + - name: SERVICE_NAME + value: cli + envFrom: + - configMapRef: + name: lagoon-env + image: harbor.example/example-project/main/cli@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8 + imagePullPolicy: Always + name: cli + readinessProbe: + exec: + command: + - /bin/sh + - -c + - if [ -x /bin/entrypoint-readiness ]; then /bin/entrypoint-readiness; + fi + failureThreshold: 3 + initialDelaySeconds: 5 + periodSeconds: 2 + resources: + requests: + cpu: 10m + memory: 10Mi + securityContext: {} + volumeMounts: + - mountPath: /var/run/secrets/lagoon/sshkey/ + name: lagoon-sshkey + readOnly: true + - mountPath: /app/files/php + name: nginx-twig + - mountPath: /app/files + name: nginx + enableServiceLinks: false + imagePullSecrets: + - name: lagoon-internal-registry-secret + priorityClassName: lagoon-priority-production + volumes: + - name: lagoon-sshkey + secret: + defaultMode: 420 + secretName: lagoon-sshkey + - emptyDir: {} + name: nginx-twig + - name: nginx + persistentVolumeClaim: + claimName: nginx +status: {} diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-gotenberg.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-gotenberg.yaml new file mode 100644 index 00000000..1c5d9448 --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-gotenberg.yaml @@ -0,0 +1,83 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: gotenberg + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: basic + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: gotenberg + lagoon.sh/service-type: basic + lagoon.sh/template: basic-0.1.0 + name: gotenberg +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/instance: gotenberg + app.kubernetes.io/name: basic + strategy: {} + template: + metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/configMapSha: abcdefg1234567890 + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: gotenberg + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: basic + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: gotenberg + lagoon.sh/service-type: basic + lagoon.sh/template: basic-0.1.0 + spec: + containers: + - env: + - name: LAGOON_GIT_SHA + value: "0000000000000000000000000000000000000000" + - name: CRONJOBS + - name: SERVICE_NAME + value: gotenberg + envFrom: + - configMapRef: + name: lagoon-env + image: harbor.example/example-project/main/gotenberg@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8 + imagePullPolicy: Always + livenessProbe: + initialDelaySeconds: 60 + tcpSocket: + port: 3000 + timeoutSeconds: 10 + name: basic + ports: + - containerPort: 3000 + name: http + protocol: TCP + readinessProbe: + initialDelaySeconds: 1 + tcpSocket: + port: 3000 + timeoutSeconds: 1 + resources: + requests: + cpu: 10m + memory: 10Mi + securityContext: {} + enableServiceLinks: false + imagePullSecrets: + - name: lagoon-internal-registry-secret + priorityClassName: lagoon-priority-production +status: {} diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-nginx.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-nginx.yaml new file mode 100644 index 00000000..b3bebcce --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-nginx.yaml @@ -0,0 +1,134 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: nginx + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: nginx-php-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: nginx + lagoon.sh/service-type: nginx-php-persistent + lagoon.sh/template: nginx-php-persistent-0.1.0 + name: nginx +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/instance: nginx + app.kubernetes.io/name: nginx-php-persistent + strategy: {} + template: + metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/configMapSha: abcdefg1234567890 + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: nginx + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: nginx-php-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: nginx + lagoon.sh/service-type: nginx-php-persistent + lagoon.sh/template: nginx-php-persistent-0.1.0 + spec: + containers: + - env: + - name: NGINX_FASTCGI_PASS + value: 127.0.0.1 + - name: LAGOON_GIT_SHA + value: "0000000000000000000000000000000000000000" + - name: CRONJOBS + - name: SERVICE_NAME + value: nginx + envFrom: + - configMapRef: + name: lagoon-env + image: harbor.example/example-project/main/nginx@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8 + imagePullPolicy: Always + livenessProbe: + failureThreshold: 5 + httpGet: + path: /nginx_status + port: 50000 + initialDelaySeconds: 900 + timeoutSeconds: 3 + name: nginx + ports: + - containerPort: 8080 + name: http + protocol: TCP + readinessProbe: + httpGet: + path: /nginx_status + port: 50000 + initialDelaySeconds: 1 + timeoutSeconds: 3 + resources: + requests: + cpu: 10m + memory: 10Mi + securityContext: {} + volumeMounts: + - mountPath: /app/files + name: nginx + - env: + - name: NGINX_FASTCGI_PASS + value: 127.0.0.1 + - name: LAGOON_GIT_SHA + value: "0000000000000000000000000000000000000000" + - name: SERVICE_NAME + value: nginx + envFrom: + - configMapRef: + name: lagoon-env + image: harbor.example/example-project/main/php@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8 + imagePullPolicy: Always + livenessProbe: + initialDelaySeconds: 60 + periodSeconds: 10 + tcpSocket: + port: 9000 + name: php + ports: + - containerPort: 9000 + name: php + protocol: TCP + readinessProbe: + initialDelaySeconds: 2 + periodSeconds: 10 + tcpSocket: + port: 9000 + resources: + requests: + cpu: 10m + memory: 100Mi + securityContext: {} + volumeMounts: + - mountPath: /app/files + name: nginx + - mountPath: /app/files/php + name: nginx-twig + enableServiceLinks: false + imagePullSecrets: + - name: lagoon-internal-registry-secret + priorityClassName: lagoon-priority-production + volumes: + - name: nginx + persistentVolumeClaim: + claimName: nginx + - emptyDir: {} + name: nginx-twig +status: {} diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-opensearch.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-opensearch.yaml new file mode 100644 index 00000000..a5c9e32e --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-opensearch.yaml @@ -0,0 +1,114 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: opensearch + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: opensearch-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: opensearch + lagoon.sh/service-type: opensearch-persistent + lagoon.sh/template: opensearch-persistent-0.1.0 + name: opensearch +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/instance: opensearch + app.kubernetes.io/name: opensearch-persistent + strategy: + type: Recreate + template: + metadata: + annotations: + k8up.syn.tools/backupcommand: /bin/sh -c "tar -cf - -C /usr/share/opensearch/data + ." + k8up.syn.tools/file-extension: .opensearch.tar + lagoon.sh/branch: main + lagoon.sh/configMapSha: abcdefg1234567890 + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: opensearch + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: opensearch-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: opensearch + lagoon.sh/service-type: opensearch-persistent + lagoon.sh/template: opensearch-persistent-0.1.0 + spec: + containers: + - env: + - name: LAGOON_GIT_SHA + value: "0000000000000000000000000000000000000000" + - name: CRONJOBS + - name: SERVICE_NAME + value: opensearch + envFrom: + - configMapRef: + name: lagoon-env + image: harbor.example/example-project/main/opensearch@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8 + imagePullPolicy: Always + livenessProbe: + httpGet: + path: /_cluster/health?local=true + port: 9200 + initialDelaySeconds: 120 + name: opensearch + ports: + - containerPort: 9200 + name: 9200-tcp + protocol: TCP + readinessProbe: + httpGet: + path: /_cluster/health?local=true + port: 9200 + initialDelaySeconds: 20 + resources: + requests: + cpu: 10m + memory: 10Mi + securityContext: {} + volumeMounts: + - mountPath: /usr/share/opensearch/data + name: opensearch + enableServiceLinks: false + imagePullSecrets: + - name: lagoon-internal-registry-secret + initContainers: + - command: + - sh + - -c + - |- + set -xe + DESIRED="262144" + CURRENT=$(sysctl -n vm.max_map_count) + if [ "$DESIRED" -gt "$CURRENT" ]; then + sysctl -w vm.max_map_count=$DESIRED + fi + image: library/busybox:latest + imagePullPolicy: IfNotPresent + name: set-max-map-count + resources: {} + securityContext: + privileged: true + runAsUser: 0 + priorityClassName: lagoon-priority-production + securityContext: + fsGroup: 0 + volumes: + - name: opensearch + persistentVolumeClaim: + claimName: opensearch +status: {} diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-queue-worker-entity-index.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-queue-worker-entity-index.yaml new file mode 100644 index 00000000..6390a099 --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-queue-worker-entity-index.yaml @@ -0,0 +1,93 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: queue-worker-entity-index + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: worker-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: queue-worker-entity-index + lagoon.sh/service-type: worker-persistent + lagoon.sh/template: worker-persistent-0.1.0 + name: queue-worker-entity-index +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/instance: queue-worker-entity-index + app.kubernetes.io/name: worker-persistent + strategy: {} + template: + metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/configMapSha: abcdefg1234567890 + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: queue-worker-entity-index + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: worker-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: queue-worker-entity-index + lagoon.sh/service-type: worker-persistent + lagoon.sh/template: worker-persistent-0.1.0 + spec: + containers: + - env: + - name: LAGOON_GIT_SHA + value: "0000000000000000000000000000000000000000" + - name: CRONJOBS + - name: SERVICE_NAME + value: queue-worker-entity-index + envFrom: + - configMapRef: + name: lagoon-env + image: harbor.example/example-project/main/queue-worker-entity-index@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8 + imagePullPolicy: Always + name: worker + readinessProbe: + exec: + command: + - /bin/sh + - -c + - if [ -x /bin/entrypoint-readiness ]; then /bin/entrypoint-readiness; + fi + failureThreshold: 3 + initialDelaySeconds: 5 + periodSeconds: 2 + resources: + requests: + cpu: 10m + memory: 10Mi + securityContext: {} + volumeMounts: + - mountPath: /var/run/secrets/lagoon/sshkey/ + name: lagoon-sshkey + readOnly: true + - mountPath: /app/files + name: nginx + enableServiceLinks: false + imagePullSecrets: + - name: lagoon-internal-registry-secret + priorityClassName: lagoon-priority-production + volumes: + - name: lagoon-sshkey + secret: + defaultMode: 420 + secretName: lagoon-sshkey + - name: nginx + persistentVolumeClaim: + claimName: nginx +status: {} diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-queue-worker-priority-high.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-queue-worker-priority-high.yaml new file mode 100644 index 00000000..5d9f03f0 --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-queue-worker-priority-high.yaml @@ -0,0 +1,93 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: queue-worker-priority-high + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: worker-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: queue-worker-priority-high + lagoon.sh/service-type: worker-persistent + lagoon.sh/template: worker-persistent-0.1.0 + name: queue-worker-priority-high +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/instance: queue-worker-priority-high + app.kubernetes.io/name: worker-persistent + strategy: {} + template: + metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/configMapSha: abcdefg1234567890 + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: queue-worker-priority-high + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: worker-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: queue-worker-priority-high + lagoon.sh/service-type: worker-persistent + lagoon.sh/template: worker-persistent-0.1.0 + spec: + containers: + - env: + - name: LAGOON_GIT_SHA + value: "0000000000000000000000000000000000000000" + - name: CRONJOBS + - name: SERVICE_NAME + value: queue-worker-priority-high + envFrom: + - configMapRef: + name: lagoon-env + image: harbor.example/example-project/main/queue-worker-priority-high@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8 + imagePullPolicy: Always + name: worker + readinessProbe: + exec: + command: + - /bin/sh + - -c + - if [ -x /bin/entrypoint-readiness ]; then /bin/entrypoint-readiness; + fi + failureThreshold: 3 + initialDelaySeconds: 5 + periodSeconds: 2 + resources: + requests: + cpu: 10m + memory: 10Mi + securityContext: {} + volumeMounts: + - mountPath: /var/run/secrets/lagoon/sshkey/ + name: lagoon-sshkey + readOnly: true + - mountPath: /app/files + name: nginx + enableServiceLinks: false + imagePullSecrets: + - name: lagoon-internal-registry-secret + priorityClassName: lagoon-priority-production + volumes: + - name: lagoon-sshkey + secret: + defaultMode: 420 + secretName: lagoon-sshkey + - name: nginx + persistentVolumeClaim: + claimName: nginx +status: {} diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-queue-worker-priority-instant.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-queue-worker-priority-instant.yaml new file mode 100644 index 00000000..9a0b6db2 --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-queue-worker-priority-instant.yaml @@ -0,0 +1,93 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: queue-worker-priority-instant + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: worker-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: queue-worker-priority-instant + lagoon.sh/service-type: worker-persistent + lagoon.sh/template: worker-persistent-0.1.0 + name: queue-worker-priority-instant +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/instance: queue-worker-priority-instant + app.kubernetes.io/name: worker-persistent + strategy: {} + template: + metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/configMapSha: abcdefg1234567890 + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: queue-worker-priority-instant + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: worker-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: queue-worker-priority-instant + lagoon.sh/service-type: worker-persistent + lagoon.sh/template: worker-persistent-0.1.0 + spec: + containers: + - env: + - name: LAGOON_GIT_SHA + value: "0000000000000000000000000000000000000000" + - name: CRONJOBS + - name: SERVICE_NAME + value: queue-worker-priority-instant + envFrom: + - configMapRef: + name: lagoon-env + image: harbor.example/example-project/main/queue-worker-priority-instant@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8 + imagePullPolicy: Always + name: worker + readinessProbe: + exec: + command: + - /bin/sh + - -c + - if [ -x /bin/entrypoint-readiness ]; then /bin/entrypoint-readiness; + fi + failureThreshold: 3 + initialDelaySeconds: 5 + periodSeconds: 2 + resources: + requests: + cpu: 10m + memory: 10Mi + securityContext: {} + volumeMounts: + - mountPath: /var/run/secrets/lagoon/sshkey/ + name: lagoon-sshkey + readOnly: true + - mountPath: /app/files + name: nginx + enableServiceLinks: false + imagePullSecrets: + - name: lagoon-internal-registry-secret + priorityClassName: lagoon-priority-production + volumes: + - name: lagoon-sshkey + secret: + defaultMode: 420 + secretName: lagoon-sshkey + - name: nginx + persistentVolumeClaim: + claimName: nginx +status: {} diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-queue-worker-priority-low.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-queue-worker-priority-low.yaml new file mode 100644 index 00000000..10feb306 --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-queue-worker-priority-low.yaml @@ -0,0 +1,93 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: queue-worker-priority-low + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: worker-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: queue-worker-priority-low + lagoon.sh/service-type: worker-persistent + lagoon.sh/template: worker-persistent-0.1.0 + name: queue-worker-priority-low +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/instance: queue-worker-priority-low + app.kubernetes.io/name: worker-persistent + strategy: {} + template: + metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/configMapSha: abcdefg1234567890 + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: queue-worker-priority-low + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: worker-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: queue-worker-priority-low + lagoon.sh/service-type: worker-persistent + lagoon.sh/template: worker-persistent-0.1.0 + spec: + containers: + - env: + - name: LAGOON_GIT_SHA + value: "0000000000000000000000000000000000000000" + - name: CRONJOBS + - name: SERVICE_NAME + value: queue-worker-priority-low + envFrom: + - configMapRef: + name: lagoon-env + image: harbor.example/example-project/main/queue-worker-priority-low@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8 + imagePullPolicy: Always + name: worker + readinessProbe: + exec: + command: + - /bin/sh + - -c + - if [ -x /bin/entrypoint-readiness ]; then /bin/entrypoint-readiness; + fi + failureThreshold: 3 + initialDelaySeconds: 5 + periodSeconds: 2 + resources: + requests: + cpu: 10m + memory: 10Mi + securityContext: {} + volumeMounts: + - mountPath: /var/run/secrets/lagoon/sshkey/ + name: lagoon-sshkey + readOnly: true + - mountPath: /app/files + name: nginx + enableServiceLinks: false + imagePullSecrets: + - name: lagoon-internal-registry-secret + priorityClassName: lagoon-priority-production + volumes: + - name: lagoon-sshkey + secret: + defaultMode: 420 + secretName: lagoon-sshkey + - name: nginx + persistentVolumeClaim: + claimName: nginx +status: {} diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-queue-worker-priority-medium.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-queue-worker-priority-medium.yaml new file mode 100644 index 00000000..f070cd75 --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-queue-worker-priority-medium.yaml @@ -0,0 +1,93 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: queue-worker-priority-medium + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: worker-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: queue-worker-priority-medium + lagoon.sh/service-type: worker-persistent + lagoon.sh/template: worker-persistent-0.1.0 + name: queue-worker-priority-medium +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/instance: queue-worker-priority-medium + app.kubernetes.io/name: worker-persistent + strategy: {} + template: + metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/configMapSha: abcdefg1234567890 + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: queue-worker-priority-medium + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: worker-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: queue-worker-priority-medium + lagoon.sh/service-type: worker-persistent + lagoon.sh/template: worker-persistent-0.1.0 + spec: + containers: + - env: + - name: LAGOON_GIT_SHA + value: "0000000000000000000000000000000000000000" + - name: CRONJOBS + - name: SERVICE_NAME + value: queue-worker-priority-medium + envFrom: + - configMapRef: + name: lagoon-env + image: harbor.example/example-project/main/queue-worker-priority-medium@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8 + imagePullPolicy: Always + name: worker + readinessProbe: + exec: + command: + - /bin/sh + - -c + - if [ -x /bin/entrypoint-readiness ]; then /bin/entrypoint-readiness; + fi + failureThreshold: 3 + initialDelaySeconds: 5 + periodSeconds: 2 + resources: + requests: + cpu: 10m + memory: 10Mi + securityContext: {} + volumeMounts: + - mountPath: /var/run/secrets/lagoon/sshkey/ + name: lagoon-sshkey + readOnly: true + - mountPath: /app/files + name: nginx + enableServiceLinks: false + imagePullSecrets: + - name: lagoon-internal-registry-secret + priorityClassName: lagoon-priority-production + volumes: + - name: lagoon-sshkey + secret: + defaultMode: 420 + secretName: lagoon-sshkey + - name: nginx + persistentVolumeClaim: + claimName: nginx +status: {} diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-rabbitmq.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-rabbitmq.yaml new file mode 100644 index 00000000..8975f817 --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-rabbitmq.yaml @@ -0,0 +1,93 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: rabbitmq + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: basic-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: rabbitmq + lagoon.sh/service-type: basic-persistent + lagoon.sh/template: basic-persistent-0.1.0 + name: rabbitmq +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/instance: rabbitmq + app.kubernetes.io/name: basic-persistent + strategy: {} + template: + metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/configMapSha: abcdefg1234567890 + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: rabbitmq + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: basic-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: rabbitmq + lagoon.sh/service-type: basic-persistent + lagoon.sh/template: basic-persistent-0.1.0 + spec: + containers: + - env: + - name: LAGOON_GIT_SHA + value: "0000000000000000000000000000000000000000" + - name: CRONJOBS + - name: SERVICE_NAME + value: rabbitmq + envFrom: + - configMapRef: + name: lagoon-env + image: harbor.example/example-project/main/rabbitmq@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8 + imagePullPolicy: Always + livenessProbe: + initialDelaySeconds: 60 + tcpSocket: + port: 5672 + timeoutSeconds: 10 + name: basic + ports: + - containerPort: 5672 + name: tcp-5672 + protocol: TCP + - containerPort: 15672 + name: tcp-15672 + protocol: TCP + readinessProbe: + initialDelaySeconds: 1 + tcpSocket: + port: 5672 + timeoutSeconds: 1 + resources: + requests: + cpu: 10m + memory: 10Mi + securityContext: {} + volumeMounts: + - mountPath: /var/lib/rabbitmq + name: rabbitmq-data + enableServiceLinks: false + imagePullSecrets: + - name: lagoon-internal-registry-secret + priorityClassName: lagoon-priority-production + volumes: + - name: rabbitmq-data + persistentVolumeClaim: + claimName: rabbitmq-data +status: {} diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-redis-persist.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-redis-persist.yaml new file mode 100644 index 00000000..3cadb864 --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-redis-persist.yaml @@ -0,0 +1,94 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: redis-persist + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: redis-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: redis-persist + lagoon.sh/service-type: redis-persistent + lagoon.sh/template: redis-persistent-0.1.0 + name: redis-persist +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/instance: redis-persist + app.kubernetes.io/name: redis-persistent + strategy: + type: Recreate + template: + metadata: + annotations: + k8up.syn.tools/backupcommand: /bin/sh -c "timeout 5400 tar -cf - -C /data + ." + k8up.syn.tools/file-extension: .redis-persist.tar + lagoon.sh/branch: main + lagoon.sh/configMapSha: abcdefg1234567890 + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: redis-persist + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: redis-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: redis-persist + lagoon.sh/service-type: redis-persistent + lagoon.sh/template: redis-persistent-0.1.0 + spec: + containers: + - env: + - name: LAGOON_GIT_SHA + value: "0000000000000000000000000000000000000000" + - name: CRONJOBS + - name: SERVICE_NAME + value: redis-persist + envFrom: + - configMapRef: + name: lagoon-env + image: harbor.example/example-project/main/redis-persist@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8 + imagePullPolicy: Always + livenessProbe: + initialDelaySeconds: 120 + tcpSocket: + port: 6379 + timeoutSeconds: 1 + name: redis + ports: + - containerPort: 6379 + name: 6379-tcp + protocol: TCP + readinessProbe: + initialDelaySeconds: 1 + tcpSocket: + port: 6379 + timeoutSeconds: 1 + resources: + requests: + cpu: 10m + memory: 10Mi + securityContext: {} + volumeMounts: + - mountPath: /data + name: redis-persist + enableServiceLinks: false + imagePullSecrets: + - name: lagoon-internal-registry-secret + priorityClassName: lagoon-priority-production + volumes: + - name: redis-persist + persistentVolumeClaim: + claimName: redis-persist +status: {} diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-redis-session.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-redis-session.yaml new file mode 100644 index 00000000..4801af1f --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-redis-session.yaml @@ -0,0 +1,94 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: redis-session + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: redis-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: redis-session + lagoon.sh/service-type: redis-persistent + lagoon.sh/template: redis-persistent-0.1.0 + name: redis-session +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/instance: redis-session + app.kubernetes.io/name: redis-persistent + strategy: + type: Recreate + template: + metadata: + annotations: + k8up.syn.tools/backupcommand: /bin/sh -c "timeout 5400 tar -cf - -C /data + ." + k8up.syn.tools/file-extension: .redis-session.tar + lagoon.sh/branch: main + lagoon.sh/configMapSha: abcdefg1234567890 + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: redis-session + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: redis-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: redis-session + lagoon.sh/service-type: redis-persistent + lagoon.sh/template: redis-persistent-0.1.0 + spec: + containers: + - env: + - name: LAGOON_GIT_SHA + value: "0000000000000000000000000000000000000000" + - name: CRONJOBS + - name: SERVICE_NAME + value: redis-session + envFrom: + - configMapRef: + name: lagoon-env + image: harbor.example/example-project/main/redis-session@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8 + imagePullPolicy: Always + livenessProbe: + initialDelaySeconds: 120 + tcpSocket: + port: 6379 + timeoutSeconds: 1 + name: redis + ports: + - containerPort: 6379 + name: 6379-tcp + protocol: TCP + readinessProbe: + initialDelaySeconds: 1 + tcpSocket: + port: 6379 + timeoutSeconds: 1 + resources: + requests: + cpu: 10m + memory: 10Mi + securityContext: {} + volumeMounts: + - mountPath: /data + name: redis-session + enableServiceLinks: false + imagePullSecrets: + - name: lagoon-internal-registry-secret + priorityClassName: lagoon-priority-production + volumes: + - name: redis-session + persistentVolumeClaim: + claimName: redis-session +status: {} diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-redis.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-redis.yaml new file mode 100644 index 00000000..667e1a96 --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/deployment-redis.yaml @@ -0,0 +1,83 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: redis + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: redis + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: redis + lagoon.sh/service-type: redis + lagoon.sh/template: redis-0.1.0 + name: redis +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/instance: redis + app.kubernetes.io/name: redis + strategy: {} + template: + metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/configMapSha: abcdefg1234567890 + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: redis + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: redis + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: redis + lagoon.sh/service-type: redis + lagoon.sh/template: redis-0.1.0 + spec: + containers: + - env: + - name: LAGOON_GIT_SHA + value: "0000000000000000000000000000000000000000" + - name: CRONJOBS + - name: SERVICE_NAME + value: redis + envFrom: + - configMapRef: + name: lagoon-env + image: harbor.example/example-project/main/redis@sha256:b2001babafaa8128fe89aa8fd11832cade59931d14c3de5b3ca32e2a010fbaa8 + imagePullPolicy: Always + livenessProbe: + initialDelaySeconds: 120 + tcpSocket: + port: 6379 + timeoutSeconds: 1 + name: redis + ports: + - containerPort: 6379 + name: 6379-tcp + protocol: TCP + readinessProbe: + initialDelaySeconds: 1 + tcpSocket: + port: 6379 + timeoutSeconds: 1 + resources: + requests: + cpu: 10m + memory: 10Mi + securityContext: {} + enableServiceLinks: false + imagePullSecrets: + - name: lagoon-internal-registry-secret + priorityClassName: lagoon-priority-production +status: {} diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/pvc-nginx.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/pvc-nginx.yaml new file mode 100644 index 00000000..c9f25a61 --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/pvc-nginx.yaml @@ -0,0 +1,30 @@ +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + annotations: + k8up.io/backup: "true" + k8up.syn.tools/backup: "true" + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: nginx + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: nginx-php-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: nginx + lagoon.sh/service-type: nginx-php-persistent + lagoon.sh/template: nginx-php-persistent-0.1.0 + name: nginx +spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 5Gi + storageClassName: bulk +status: {} diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/pvc-opensearch.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/pvc-opensearch.yaml new file mode 100644 index 00000000..cd0921f5 --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/pvc-opensearch.yaml @@ -0,0 +1,29 @@ +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + annotations: + k8up.io/backup: "false" + k8up.syn.tools/backup: "false" + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: opensearch + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: opensearch-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: opensearch + lagoon.sh/service-type: opensearch-persistent + lagoon.sh/template: opensearch-persistent-0.1.0 + name: opensearch +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 4Gi +status: {} diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/pvc-rabbitmq-data.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/pvc-rabbitmq-data.yaml new file mode 100644 index 00000000..4e9a5299 --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/pvc-rabbitmq-data.yaml @@ -0,0 +1,30 @@ +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + annotations: + k8up.io/backup: "true" + k8up.syn.tools/backup: "true" + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: rabbitmq + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: basic-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: rabbitmq + lagoon.sh/service-type: basic-persistent + lagoon.sh/template: basic-persistent-0.1.0 + name: rabbitmq-data +spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 1Gi + storageClassName: bulk +status: {} diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/pvc-redis-persist.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/pvc-redis-persist.yaml new file mode 100644 index 00000000..cdbe5c1a --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/pvc-redis-persist.yaml @@ -0,0 +1,29 @@ +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + annotations: + k8up.io/backup: "false" + k8up.syn.tools/backup: "false" + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: redis-persist + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: redis-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: redis-persist + lagoon.sh/service-type: redis-persistent + lagoon.sh/template: redis-persistent-0.1.0 + name: redis-persist +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 15Gi +status: {} diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/pvc-redis-session.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/pvc-redis-session.yaml new file mode 100644 index 00000000..4a997e36 --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/pvc-redis-session.yaml @@ -0,0 +1,29 @@ +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + annotations: + k8up.io/backup: "false" + k8up.syn.tools/backup: "false" + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: redis-session + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: redis-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: redis-session + lagoon.sh/service-type: redis-persistent + lagoon.sh/template: redis-persistent-0.1.0 + name: redis-session +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 4Gi +status: {} diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/service-gotenberg.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/service-gotenberg.yaml new file mode 100644 index 00000000..2e6fa1a5 --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/service-gotenberg.yaml @@ -0,0 +1,31 @@ +--- +apiVersion: v1 +kind: Service +metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: gotenberg + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: basic + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: gotenberg + lagoon.sh/service-type: basic + lagoon.sh/template: basic-0.1.0 + name: gotenberg +spec: + ports: + - name: http + port: 3000 + protocol: TCP + targetPort: http + selector: + app.kubernetes.io/instance: gotenberg + app.kubernetes.io/name: basic +status: + loadBalancer: {} diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/service-nginx.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/service-nginx.yaml new file mode 100644 index 00000000..57cb9386 --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/service-nginx.yaml @@ -0,0 +1,31 @@ +--- +apiVersion: v1 +kind: Service +metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: nginx + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: nginx-php-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: nginx + lagoon.sh/service-type: nginx-php-persistent + lagoon.sh/template: nginx-php-persistent-0.1.0 + name: nginx +spec: + ports: + - name: http + port: 8080 + protocol: TCP + targetPort: http + selector: + app.kubernetes.io/instance: nginx + app.kubernetes.io/name: nginx-php-persistent +status: + loadBalancer: {} diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/service-opensearch.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/service-opensearch.yaml new file mode 100644 index 00000000..de247c4b --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/service-opensearch.yaml @@ -0,0 +1,31 @@ +--- +apiVersion: v1 +kind: Service +metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: opensearch + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: opensearch-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: opensearch + lagoon.sh/service-type: opensearch-persistent + lagoon.sh/template: opensearch-persistent-0.1.0 + name: opensearch +spec: + ports: + - name: 9200-tcp + port: 9200 + protocol: TCP + targetPort: 9200 + selector: + app.kubernetes.io/instance: opensearch + app.kubernetes.io/name: opensearch-persistent +status: + loadBalancer: {} diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/service-rabbitmq.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/service-rabbitmq.yaml new file mode 100644 index 00000000..414efee9 --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/service-rabbitmq.yaml @@ -0,0 +1,35 @@ +--- +apiVersion: v1 +kind: Service +metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: rabbitmq + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: basic-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: rabbitmq + lagoon.sh/service-type: basic-persistent + lagoon.sh/template: basic-persistent-0.1.0 + name: rabbitmq +spec: + ports: + - name: tcp-5672 + port: 5672 + protocol: TCP + targetPort: tcp-5672 + - name: tcp-15672 + port: 15672 + protocol: TCP + targetPort: tcp-15672 + selector: + app.kubernetes.io/instance: rabbitmq + app.kubernetes.io/name: basic-persistent +status: + loadBalancer: {} diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/service-redis-persist.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/service-redis-persist.yaml new file mode 100644 index 00000000..ed6123d4 --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/service-redis-persist.yaml @@ -0,0 +1,31 @@ +--- +apiVersion: v1 +kind: Service +metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: redis-persist + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: redis-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: redis-persist + lagoon.sh/service-type: redis-persistent + lagoon.sh/template: redis-persistent-0.1.0 + name: redis-persist +spec: + ports: + - name: 6379-tcp + port: 6379 + protocol: TCP + targetPort: 6379 + selector: + app.kubernetes.io/instance: redis-persist + app.kubernetes.io/name: redis-persistent +status: + loadBalancer: {} diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/service-redis-session.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/service-redis-session.yaml new file mode 100644 index 00000000..24ca931e --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/service-redis-session.yaml @@ -0,0 +1,31 @@ +--- +apiVersion: v1 +kind: Service +metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: redis-session + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: redis-persistent + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: redis-session + lagoon.sh/service-type: redis-persistent + lagoon.sh/template: redis-persistent-0.1.0 + name: redis-session +spec: + ports: + - name: 6379-tcp + port: 6379 + protocol: TCP + targetPort: 6379 + selector: + app.kubernetes.io/instance: redis-session + app.kubernetes.io/name: redis-persistent +status: + loadBalancer: {} diff --git a/internal/testdata/complex/service-templates/test-complex-persistent-names/service-redis.yaml b/internal/testdata/complex/service-templates/test-complex-persistent-names/service-redis.yaml new file mode 100644 index 00000000..e0c26762 --- /dev/null +++ b/internal/testdata/complex/service-templates/test-complex-persistent-names/service-redis.yaml @@ -0,0 +1,31 @@ +--- +apiVersion: v1 +kind: Service +metadata: + annotations: + lagoon.sh/branch: main + lagoon.sh/version: v2.7.x + creationTimestamp: null + labels: + app.kubernetes.io/instance: redis + app.kubernetes.io/managed-by: build-deploy-tool + app.kubernetes.io/name: redis + lagoon.sh/buildType: branch + lagoon.sh/environment: main + lagoon.sh/environmentType: production + lagoon.sh/project: example-project + lagoon.sh/service: redis + lagoon.sh/service-type: redis + lagoon.sh/template: redis-0.1.0 + name: redis +spec: + ports: + - name: 6379-tcp + port: 6379 + protocol: TCP + targetPort: 6379 + selector: + app.kubernetes.io/instance: redis + app.kubernetes.io/name: redis +status: + loadBalancer: {}