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