на внешний хост
                  
                  
                  создал сервис вот такой
                  
                  
                  apiVersion: v1
                  
                  
                  kind: Service
                  
                  
                  metadata:
                  
                  
                    name: minio-gateway
                  
                  
                    namespace: $HARBOR_PROJECT-$CI_COMMIT_REF_NAME
                  
                  
                  spec:
                  
                  
                    type: ExternalName
                  
                  
                    externalName: minio.secret.com
                  
                  
                    ports:
                  
                  
                    - name: minio-port
                  
                  
                      port: 443
                  
                  
                      targetPort: 443
                  
                  
                      protocol: TCP
                  
                  
                  есть вот такой ингресс основного приложения
                  
                  
                  apiVersion: networking.k8s.io/v1
                  
                  
                  kind: Ingress
                  
                  
                  metadata:
                  
                  
                    name: $HARBOR_PROJECT-$CI_COMMIT_REF_NAME
                  
                  
                    namespace: $HARBOR_PROJECT-$CI_COMMIT_REF_NAME
                  
                  
                  spec:
                  
                  
                    rules:
                  
                  
                    - host: "$domain"
                  
                  
                      http:
                  
                  
                        paths:
                  
                  
                        - path: /
                  
                  
                          pathType: Prefix
                  
                  
                          backend:
                  
                  
                            service:
                  
                  
                              name: frontend-new
                  
                  
                              port:
                  
                  
                                number: 80
                  
                  
                  и вот такой ингресс для редиректа
                  
                  
                  apiVersion: networking.k8s.io/v1
                  
                  
                  kind: Ingress
                  
                  
                  metadata:
                  
                  
                    annotations:
                  
                  
                      nginx.ingress.kubernetes.io/rewrite-target: /$HARBOR_PROJECT-$CI_COMMIT_REF_NAME/$2
                  
                  
                      nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
                  
                  
                    name: minio
                  
                  
                    namespace: $HARBOR_PROJECT-$CI_COMMIT_REF_NAME
                  
                  
                  spec:
                  
                  
                    rules:
                  
                  
                    - host: "$domain"
                  
                  
                      http:
                  
                  
                        paths:
                  
                  
                        - path: /s3(/|$)(.*)
                  
                  
                          pathType: Prefix
                  
                  
                          backend:
                  
                  
                            service:
                  
                  
                              name: minio-gateway
                  
                  
                              port:
                  
                  
                                number: 443
                  
                  
                  если запросить $domain/s3/test.txt, у меня реврайт в нижнем ингресе отрабатывает, но запрос улетает не по правилу нижнего ингреса, а в ингресс основного приложения, в путь /$HARBOR_PROJECT-$CI_COMMIT_REF_NAME/test.txt
                  
                  
                  что я делаю не так?
                  
                  
                
А для чего у тебя аннотация rewrite-target ?
Я откусываю s3 и вместо него ставлю имя бакета $HARBOR_PROJECT-$CI_COMMIT_REF_NAME
можешь через снипет реврайт сделать
Да что-то не получилось, пробовал. В нем дело, да? Такое ощущение, что он игнорит сниппет
просто порядок ингрес рулов строится по их специализации
$3 может?
Так ты если хочешь отрезать s3 то в rewrite-target надо ставить значения $1$2. ты же сам "s3" в группу-то не взял. А снипеты кубер не рекомендует использовать
Да он отрезает правильно, если access лог смотреть, просто не в тот сервис запрос кидает
может кому интересно, я разобрался. все тут молодцы. кубер молодец, все делала правильно. я молодец, конфиг написал правильно. а минио не молодец, он видит заголовок host, в ктором не его адрес, и делает 302 редирект обратно, на домен приложения. пока не редиректнул локейшен на чистый apache, и не сделал логирование заголовков, я этого не понял
Обсуждают сегодня