ScalewayEcosystem 0.0.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package ScalewayEcosystem --version 0.0.2
NuGet\Install-Package ScalewayEcosystem -Version 0.0.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ScalewayEcosystem" Version="0.0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ScalewayEcosystem --version 0.0.2
#r "nuget: ScalewayEcosystem, 0.0.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// 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:

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 from fedora-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).

There are no supported framework assets in this package.

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.

Version Downloads Last updated
0.0.6.15 4 4/19/2024
0.0.6.14 0 3/18/2024
0.0.6.13 0 2/29/2024
0.0.6.12 0 2/28/2024
0.0.6.11 0 2/9/2024
0.0.6.10 0 1/30/2024
0.0.5 1 1/25/2024
0.0.4 0 1/25/2024
0.0.2 0 1/25/2024