Authentication of connaisseur to private ECR

I am trying to validate signatures of images deployed to kubernetes cluster with connaisseur.

Here is the configuration of validators:

application:
  validators:
    - name: allow
      type: static
      approve: true
    - name: deny
      type: static
      approve: false
    - name: ecr
      type: cosign
      trustRoots:
      - name: signpath
        key: |
          -----BEGIN PUBLIC KEY-----
          *********************************
          -----END PUBLIC KEY-----
      auth:
        secret_name: my-secret

  policy:
    - pattern: "*:*"
      validator: deny
    - pattern: "*ecr*"
      validator: ecr
      with:
        trustRoot: "signpath"
    - pattern: "registry.k8s.io/*:*"
      validator: allow

The crucial part here is

auth:
  secret_name: my-secret

Without those lines, the connaisseur deploys properly, however, it does not verify the images, it is complaining that there are no signature digests. That led me to conclude ECR connection is not properly configured.

I configured my-secret with as specified here (https://sse-secure-systems.github.io/connaisseur/v2.6.0/validators/sigstore_cosign/#dockerconfigjson:~:text=to%20do%20this.-,dockerconfigjson,-%E2%9A%93%EF%B8%8E):

kubectl create secret generic my-secret 
  --from-file=.dockerconfigjson=.docker/config.json 
  --type=kubernetes.io/dockerconfigjson 
  -n connaisseur

The docker is properly configured and I am able to pull images from private ECR.

I deploy with this:

helm upgrade --install connaisseur --atomic --namespace connaisseur -f connaisseur/helm/values.yaml ./connaisseur/helm --debug

Here is the error output:

history.go:56: [debug] getting history for release connaisseur
Release "connaisseur" does not exist. Installing it now.
install.go:222: [debug] Original chart version: ""
install.go:239: [debug] CHART PATH: /home/xdavid/connaisseur/helm

client.go:142: [debug] creating 15 resource(s)
wait.go:50: [debug] beginning wait for 15 resources with timeout of 5m0s
ready.go:297: [debug] Deployment is not ready: connaisseur/connaisseur. observedGeneration (0) does not match spec generation (1).
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
ready.go:303: [debug] Deployment is not ready: connaisseur/connaisseur. 0 out of 3 expected pods are ready
wait.go:87: [debug] Error received when checking status of resource connaisseur-redis-service. Error: 'client rate limiter Wait returned an error: context deadline exceeded', Resource details: 'Resource: "/v1, Resource=services", GroupVersionKind: "/v1, Kind=Service"
Name: "connaisseur-redis-service", Namespace: "connaisseur"'
wait.go:94: [debug] Retryable error? true
wait.go:71: [debug] Retrying as current number of retries 0 less than max number of retries 30
install.go:496: [debug] Install failed and atomic is set, uninstalling release
uninstall.go:102: [debug] uninstall: Deleting connaisseur
uninstall.go:248: [debug] uninstall: given cascade value: , defaulting to delete propagation background
client.go:486: [debug] Starting delete for "connaisseur-svc" Service
client.go:486: [debug] Starting delete for "connaisseur-redis-service" Service
client.go:486: [debug] Starting delete for "connaisseur-redis" Deployment
client.go:486: [debug] Starting delete for "connaisseur" Deployment
client.go:486: [debug] Starting delete for "connaisseur-role-binding" RoleBinding
client.go:486: [debug] Starting delete for "connaisseur-role" Role
client.go:486: [debug] Starting delete for "connaisseur-cluster-role-binding" ClusterRoleBinding
client.go:486: [debug] Starting delete for "connaisseur-cluster-role" ClusterRole
client.go:486: [debug] Starting delete for "connaisseur-env" ConfigMap
client.go:486: [debug] Starting delete for "connaisseur-alert-config" ConfigMap
client.go:486: [debug] Starting delete for "connaisseur-app-config" ConfigMap
client.go:486: [debug] Starting delete for "connaisseur-tls" Secret
client.go:486: [debug] Starting delete for "connaisseur-redis-secret" Secret
client.go:486: [debug] Starting delete for "connaisseur-redis-tls" Secret
client.go:486: [debug] Starting delete for "connaisseur-serviceaccount" ServiceAccount
client.go:486: [debug] Starting delete for "connaisseur-webhook" MutatingWebhookConfiguration
client.go:490: [debug] Ignoring delete failure for "connaisseur-webhook" admissionregistration.k8s.io/v1, Kind=MutatingWebhookConfiguration: mutatingwebhookconfigurations.admissionregistration.k8s.io "connaisseur-webhook" not found
wait.go:104: [debug] beginning wait for 1 resources to be deleted with timeout of 5m0s
client.go:142: [debug] creating 1 resource(s)
client.go:486: [debug] Starting delete for "connaisseur-webhook" MutatingWebhookConfiguration
wait.go:104: [debug] beginning wait for 1 resources to be deleted with timeout of 5m0s
uninstall.go:155: [debug] purge requested for connaisseur
Error: release connaisseur failed, and has been uninstalled due to atomic being set: context deadline exceeded
helm.go:84: [debug] context deadline exceeded
release connaisseur failed, and has been uninstalled due to atomic being set
helm.sh/helm/v3/pkg/action.(*Install).failRelease
        helm.sh/helm/v3/pkg/action/install.go:504
helm.sh/helm/v3/pkg/action.(*Install).RunWithContext
        helm.sh/helm/v3/pkg/action/install.go:402
main.runInstall
        helm.sh/helm/v3/cmd/helm/install.go:314
main.newUpgradeCmd.func2
        helm.sh/helm/v3/cmd/helm/upgrade.go:157
github.com/spf13/cobra.(*Command).execute
        github.com/spf13/[email protected]/command.go:983
github.com/spf13/cobra.(*Command).ExecuteC
        github.com/spf13/[email protected]/command.go:1115
github.com/spf13/cobra.(*Command).Execute
        github.com/spf13/[email protected]/command.go:1039
main.main
        helm.sh/helm/v3/cmd/helm/helm.go:83
runtime.main
        runtime/proc.go:271
runtime.goexit
        runtime/asm_amd64.s:1695

I also tried this but it did not help:

kubectl create secret docker-registry my-secret 
  --docker-server=<id>.dkr.ecr.us-east-1.amazonaws.com 
  --docker-username=AWS 
  --docker-password=$(aws ecr get-login-password) 
  --namespace=connaisseur

New contributor

Dávid Maslo is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật