ScalewayEcosystem 0.0.2
See the version list below for details.
dotnet add package ScalewayEcosystem --version 0.0.2
NuGet\Install-Package ScalewayEcosystem -Version 0.0.2
<PackageReference Include="ScalewayEcosystem" Version="0.0.2" />
paket add ScalewayEcosystem --version 0.0.2
#r "nuget: ScalewayEcosystem, 0.0.2"
// Install ScalewayEcosystem as a Cake Addin
#addin nuget:?package=ScalewayEcosystem&version=0.0.2
// Install ScalewayEcosystem as a Cake Tool
#tool nuget:?package=ScalewayEcosystem&version=0.0.2
Scaleway Packaging
This repo hosts the files required to build the scaleway-ecosystem
package.
scaleway-ecosystem
This package is installed by default on all images built by the instances team. Its role is to ensure that the instance correctly works with other Scaleway services.
The package contains a number of scripts and configuration files to ensure that the instance can correctly communicate with Scaleway's ecosystem. This includes scripts for interacting with the metadata API, scripts to configure network interfaces correctly and to handle VPC specificities, along with various configuration files to ensure that those scripts are run automatically when needed.
The package is built by this repository's CI, and hosted on various platforms depending on the OS flavor we built it on. The package can be found here:
- For Ubuntu and Debian: https://launchpad.net/~scaleway/+archive/ubuntu/stable
- For Red Hat derivatives: https://copr.fedorainfracloud.org/coprs/g/scaleway/instances/package/scaleway-ecosystem/
Mapping between package release and distribution
.deb world
For Debian derivatives, the package is hosted on launchpad.net, Ubuntu's software platform. For Ubuntu distributions, the installation is pretty straightforward:
- Ubuntu 18.04 Bionic Beaver will install the
bionic
release - Ubuntu 20.04 Focal Fossa will install the
focal
release - Ubuntu 22.04 Jammy Jellyfish will install the
jammy
release
For Debian, we add a sources.list.d
file to tell the OS which launchpad release to download.
As of July 2022, all Debian versions install the focal
launchpad.net release.
.rpm world
For Red Hat based distributions, the package is hosted on COPR, Fedora's platform.
COPR builds packages on various "chroots", and each distribution will use its dedicated build:
- Fedora versions will download from the
fedora-$VERSION
build (e.g. Fedora 36 will download fromfedora-36-x86_64
build) ** We also build for Fedora Rawhide, to help testing the package with development Fedora versions - CentOS Stream will download from the
centos-stream-$VERSION
build - CentOS (non stream) will download from the
epel-$VERSION
build - AlmaLinux will download from the
epel-$VERSION
build - Rockylinux will download from the
epel-$VERSION
build
Note about the VPC scripts
When using the Private Networks feature, we sometimes want to apply non-default
configuration to our network interfaces.
For example, an instance in a Private Network with a Public Gateway should have
its network routed through the public gateway by default.
Since different OSes have different network stacks, we must have a few different
scripts to apply this configuration.
To do this, we have in the package a few versions of the scw-vpc-ifup
and
scw-vpc-ifdown
scripts. At installation time, the post-install scriptlets will
determine the best version to use, and delete the others.
As of July 2022, here are the mappings between script version and OS:
*.nmcli
: Fedora 36+, CentOS Stream 9+, AlmaLinux, Rocky Linux*.sysconfig
: Fedora 35, CentOS 7 and CentOS Stream 8*.ifupdown
: Debian, Ubuntu Bionic*.netplan
: Ubuntu 20.04 Focal Fossa and later
Building scaleway ecosystem
Launchpad.net
Our .deb packages are built using launchpad.net.
TODO: explain how it works
COPR
Our .rpm packages are build using COPR, the build and hosting service from the Fedora project.
The scaleway-ecosystem package is built in two different COPR projects, both under the @scaleway organization:
- @scaleway/instances is used for production-ready builds
- @scaleway/instances-staging is used for testing and staging builds.
Since the source code for scaleway-ecosystem is not yet public, we cannot ask COPR to build from a git repository, so we send a prebuilt .src.rpm package, then let COPR rebuild it.
Chroots
See above for an explanation of which OSes download from which chroots.
Chroots can be enabled from the Settings menu of a project by a project adminstrator. We currently have the following enabled:
- centos-stream-8-x86_64
- centos-stream-9-x86_64
- epel-7-x86_64
- epel-8-x86_64
- epel-9-x86_64
- fedora-35-x86_64
- fedora-36-x86_64
- fedora-rawhide-x86_64
We might want to enable chroots for OpenSUSE or Oracle Linux at some point if we decide to support those OSes. We might also want to enable aarch64 versions when we come back to ARM instances.
Publishing the package
The package is published by the scw-instances-ci
Fedora account. This account has write permissions
on the @scaleway/instances
and @scaleway/instances-staging
COPR projects.
The token used in the CI to authenticate to COPR is stored in the SCW_COPR_TOKEN
CI variable.
This token has a relatively short (6 months) lifetime, so we will need to refresh it every so often.
To do this, connect with the scw-instance-ci to COPR (the password for this account is stored in vault in
compute_kv/gitlab-ci/scw-instances-ci_copr_password
), and go to https://copr.fedorainfracloud.org/api/.
There, click on Generate a new token
, copy it, and replace the token in both Vault (compute_kv/gitlab-ci/scw-instance-ci_copr_token
)
and Gitlab (in the SCW_COPR_TOKEN
variable in scaleway-packaging
).
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
GitHub repositories
This package is not used by any popular GitHub repositories.