crossplane-provider-ionoscloud

module
v1.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 31, 2023 License: Apache-2.0

README

CI CI Daily Gitter Quality Gate Status Bugs Maintainability Rating Reliability Rating Security Rating Vulnerabilities Release Release Date Go

Alt text

Crossplane Provider IONOS Cloud

Overview

This crossplane-provider-ionoscloud repository is the Crossplane infrastructure provider for IONOS Cloud. The provider that is built from the source code from this repository can be installed into a Crossplane control plane and adds the following new functionality:

  • Custom Resource Definitions (CRDs) that model IONOS Cloud infrastructure and services (e.g. Database As a Service Postgres, Compute Engine, Kubernetes, etc.)
  • Controllers to provision these resources in IONOS Cloud based on the users desired state captured in CRDs they create
  • Implementations of Crossplane's portable resource abstractions, enabling IONOS Cloud resources to fulfill a user's general need for cloud services

Getting Started and Documentation

For getting started with Crossplane Provider IONOS Cloud, check out this step-by-step example.

Setup Crossplane Provider IONOS Cloud

In order to setup Crossplane Provider IONOS Cloud, see details in here.

Authentication on IONOS Cloud

Crossplane Provider IONOS Cloud uses ProviderConfig in order to setup credentials via secrets. You can use environments variables when creating the ProviderConfig resource.

Environment Variable Description
IONOS_USERNAME Specify the username used to login, to authenticate against the IONOS Cloud API
IONOS_PASSWORD Specify the password used to login, to authenticate against the IONOS Cloud API
IONOS_TOKEN Specify the token used to login, if a token is being used instead of username and password
IONOS_API_URL Specify the API URL. It will overwrite the API endpoint default value api.ionos.com

More details about ProviderConfig and authentication here.

Provision Resources on IONOS Cloud

Crossplane Provider IONOS Cloud Managed Resoures list is available here.

Build images

For building Docker images, use:

make build

A version can be set via $VERSION variable. By running make build VERSION=v0.x.x, the specified version will be added into the package/crossplane.yaml.

For tagging Docker images, use:

make docker.tag VERSION=v0.x.x

Usage

To run a K8s Cluster and install Crossplane:

make dev

To run e2e tests:

make e2e

To run linters on the code before opening a PR:

make reviewable

To clean up the K8s Cluster:

make dev-clean

To list all available options:

make help

Testing

Crossplane Provider IONOS Cloud has end-to-end integration tests for the resources supported.

For running end-to-end integration tests locally, use:

make e2e

If the images have a specific version, other than latest, this can be set via make e2e VERSION=v0.x.x.

Daily workflows with all end-to-end integration tests are running using Github Actions. You can check their status here.

Releases

Releases can be made on Crossplane Provider IONOS Cloud via tags or manual action of the CD workflow. The CD workflow will test and release the images. It will release images for controller and provider, with 2 tags each: latest and the corresponding release tag.

Contributing

crossplane-provider-ionoscloud is a community driven project and we welcome contributions. See the Crossplane Contributing guidelines to get started.

Adding New Resource

New resources can be added by defining the required types in apis and the controllers internal/controller/.

To generate the CRDs YAML files run

make generate

Report a Bug

For filing bugs, suggesting improvements, or requesting new features, please open an issue.

Code of Conduct

crossplane-provider-ionoscloud adheres to the same Code of Conduct as the core Crossplane project.

License

crossplane-provider-ionoscloud is under the Apache 2.0 License.

Directories

Path Synopsis
Package apis contains Kubernetes API for the Template provider.
Package apis contains Kubernetes API for the Template provider.
alb
Package alb contains group Sample API versions
Package alb contains group Sample API versions
alb/v1alpha1
Package v1alpha1 contains the v1alpha1 group ApplicationLoadBalancer resources of the IONOS Cloud provider.
Package v1alpha1 contains the v1alpha1 group ApplicationLoadBalancer resources of the IONOS Cloud provider.
backup
Package backup contains group Sample API versions
Package backup contains group Sample API versions
backup/v1alpha1
Package v1alpha1 contains the v1alpha1 group Backup resources of the IONOS Cloud provider.
Package v1alpha1 contains the v1alpha1 group Backup resources of the IONOS Cloud provider.
compute/v1alpha1
Package v1alpha1 contains the v1alpha1 group Compute Engine resources of the IONOS Cloud provider.
Package v1alpha1 contains the v1alpha1 group Compute Engine resources of the IONOS Cloud provider.
dbaas
Package dbaas contains group Sample API versions
Package dbaas contains group Sample API versions
dbaas/postgres/v1alpha1
Package v1alpha1 contains the v1alpha1 group DBaaS Postgres resources of the IONOS Cloud provider.
Package v1alpha1 contains the v1alpha1 group DBaaS Postgres resources of the IONOS Cloud provider.
k8s
Package k8s contains group Sample API versions
Package k8s contains group Sample API versions
k8s/v1alpha1
Package v1alpha1 contains the v1alpha1 group K8s resources of the IONOS Cloud provider.
Package v1alpha1 contains the v1alpha1 group K8s resources of the IONOS Cloud provider.
v1alpha1
Package v1alpha1 contains the core resources of the Template provider.
Package v1alpha1 contains the core resources of the Template provider.
cmd
internal
mock/clients/compute/datacenter
Package datacenter is a generated GoMock package.
Package datacenter is a generated GoMock package.
mock/clients/compute/ipblock
Package ipblock is a generated GoMock package.
Package ipblock is a generated GoMock package.
mock/clients/k8s/k8scluster
Package k8scluster is a generated GoMock package.
Package k8scluster is a generated GoMock package.
mock/clients/k8s/k8snodepool
Package k8snodepool is a generated GoMock package.
Package k8snodepool is a generated GoMock package.
version
Package version contains the version of crossplane-provider-ionoscloud
Package version contains the version of crossplane-provider-ionoscloud
package
tools
doc
nolint: gosec
nolint: gosec

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL