Crossplane: ошибка: не удалось собрать пакет: не совсем один метатип пакета

Я последовал документации Crossplane о создании пакета конфигурации и создал следующее crossplane.yaml:

apiVersion: meta.pkg.crossplane.io/v1alpha1
kind: Configuration
metadata:
  name: crossplane-eks-cluster
spec:
  dependsOn:
    - provider: xpkg.upbound.io/upbound/provider-aws-ec2
      version: ">=v1.1.1"
    - provider: xpkg.upbound.io/upbound/provider-aws-iam
      version: ">=v1.1.1"
    - provider: xpkg.upbound.io/upbound/provider-aws-eks
      version: ">=v1.1.1"
  crossplane:
    version: ">=v1.15.1-0"

У меня есть композиция и XRD в каталоге apis, но когда я запускаю crossplane xpkg build --package-root=/apis, я получаю следующую ошибку:

$ crossplane xpkg build --package-root=apis/
crossplane: error: failed to build package: not exactly one package meta type

В документах ничего не говорится о том, что я могу сделать, а Google не помог.

Почему этот вопрос закрыт, как и многие другие перекрестные вопросы? Существует ровно 0 вопросов о кроссплане в ServerFault или других сообществах Stackexchange, а также нет тега CI/CD (где для него есть сообщество здесь, среди других облачных сообществ)? Кроме того, этот вопрос, кажется, помогает многим людям - я этого не понимаю. В этом рассуждении должны быть закрыты любые вопросы по Docker, Kubernetes, CI/CD (GitHub, GitLab — тоже Сообщество), Ansible и т.д. и т.п. Действительно раздражает. Извините, что разглагольствую здесь, но не знаю, где это сделать.

jonashackt 26.03.2024 17:49
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
1
1
183
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

К счастью, я протестировал другой вариант, который нашел для создания конфигурации: существуют шаблоны, которые можно использовать для создания файла crossplane.yaml с использованием новой команды инициализации бета-версии интерфейса командной строки Crossplane . Я выполнил следующее:

crossplane beta xpkg init crossplane-eks-cluster configuration-template

В результате crossplane.yaml было несколько metadata.annotations вот так:

apiVersion: meta.pkg.crossplane.io/v1
kind: Configuration
metadata:
  name: your-configuration
  annotations:
    # Set the annotations defining the maintainer, source, license, and description of your Configuration
    meta.crossplane.io/maintainer: You <[email protected]>
    meta.crossplane.io/source: github.com/your-organization/your-repo
    # Set the license of your Configuration
    meta.crossplane.io/license: Apache-2.0
    meta.crossplane.io/description: |
      This is where you can describe your configuration.
    meta.crossplane.io/readme: |
      This is where you can add a readme for your configuration.
spec:
  # (Optional) Set the minimum version of Crossplane that this Configuration is compatible with
  crossplane:
    version: ">=v1.14.1-0"
  # Add your dependencies here
  dependsOn:
    - provider: xpkg.upbound.io/crossplane-contrib/provider-kubernetes
      version: "v0.12.1"
    - function: xpkg.upbound.io/crossplane-contrib/function-patch-and-transform
      version: "v0.3.0"

Поэтому просто добавьте аннотации, и ошибка исчезнет.

Это имеет большой смысл, поскольку пользователь конфигурации должен иметь возможность знать, кто несет ответственность за CRD. Но сообщение об ошибке, возможно, следует улучшить.

Другие вопросы по теме