lp:~troyanov/maas

Owned by Anton Troyanov
Get this repository:
git clone https://git.not.enabled/~troyanov/maas
Only Anton Troyanov can upload to this repository. If you are Anton Troyanov please log in for upload directions.

Branches

Name Last Modified Last Commit
microcluster 2025-02-25 16:40:25 UTC
feat(agent): introduce clustering

Author: Anton Troyanov
Author Date: 2025-02-25 16:40:25 UTC

feat(agent): introduce clustering

go-any 2025-02-11 20:55:09 UTC
chore: replace interface{} with any

Author: Anton Troyanov
Author Date: 2025-02-11 20:55:09 UTC

chore: replace interface{} with any

Go 1.18 introduced the `any` type as an alias to `interface{}` which is
now considered to be a more commonly used across other projects. Lets
try to stay with current best practices.

lp-2097505 2025-02-08 13:16:00 UTC
refactor

Author: Anton Troyanov
Author Date: 2025-02-08 13:16:00 UTC

refactor

golang-1.23 2025-01-29 08:26:39 UTC
wip

Author: Anton Troyanov
Author Date: 2025-01-29 08:26:39 UTC

wip

backport-5c655a4-3.6 2025-01-18 17:08:59 UTC
chore(agent): use Go 1.22 (supported)

Author: Anton Troyanov
Author Date: 2025-01-18 13:51:33 UTC

chore(agent): use Go 1.22 (supported)

MAAS 3.6 requires Ubuntu 24.04 LTS (Noble Numbat) which has Go 1.22

https://packages.ubuntu.com/noble/devel/golang-go
(cherry picked from commit 5c655a42afb6febf29d7b54da764743d47775f6b)

bump-min-go 2025-01-17 09:42:40 UTC
chore(agent): use Go 1.22 (supported)

Author: Anton Troyanov
Author Date: 2025-01-17 09:38:39 UTC

chore(agent): use Go 1.22 (supported)

MAAS 3.6 requires Ubuntu 24.04 LTS (Noble Numbat) which has Go 1.22

https://packages.ubuntu.com/noble/devel/golang-go

fix-2095085 2025-01-17 09:05:37 UTC
fix: Workflow execution already started

Author: Anton Troyanov
Author Date: 2025-01-17 09:05:37 UTC

fix: Workflow execution already started

When MAAS Agent starts it triggers configure-agent workflow, which
then triggers some child-workflows. Desired behaviour is to have only a
single instance of such a workflow running (and all the child ones), hence we
set ID Reuse Policy to WorkflowIDReusePolicy.TERMINATE_IF_RUNNING

However there is another invocation at metadataserver/builtin_scripts/hooks.py
which doesn't enforce ID Reuse Policy and doesn't set custom workflow
ID. That allows two configure-agent workflow to be executed at the same time,
and that leads to an error with a child workflow:
START_CHILD_WORKFLOW_EXECUTION_FAILED_CAUSE_WORKFLOW_ALREADY_EXISTS

Resolves LP:2095085

fix-2085160 2025-01-16 12:59:46 UTC
fix: Workflow panic. Potential deadlock detected

Author: Anton Troyanov
Author Date: 2025-01-15 14:27:46 UTC

fix: Workflow panic. Potential deadlock detected

> Potential deadlock detected

This error happens because workflow thread did not yield control via a Temporal
API call for over a second.

This change moves all the logic (that we thought is safe to execute in the
workflow directly) to be executed as a Local Activity.

Resolves LP:2085160

fix-3.5-deps 2024-10-08 14:03:53 UTC
fix(snap): use ppa:maas/3.5-next

Author: Anton Troyanov
Author Date: 2024-10-08 14:03:53 UTC

fix(snap): use ppa:maas/3.5-next

host-type 2024-10-07 15:53:40 UTC
fix(agent): custom un/marshal for the Host type

Author: Anton Troyanov
Author Date: 2024-10-07 14:21:31 UTC

fix(agent): custom un/marshal for the Host type

Instead of omapi.Host use dhcp.Host for un/marshal

host-unmarshal 2024-10-04 08:27:33 UTC
fix(agent): custom un/marshal for the Host type

Author: Anton Troyanov
Author Date: 2024-10-04 08:27:33 UTC

fix(agent): custom un/marshal for the Host type

Host is being used on both Python and Go side.
In Python it is defined as:

@dataclass
class Host:
    ip: Optional[str]
    mac: Optional[str]
    hostname: Optional[str]

Which leads to certain issues with MAC address as there is no custom
UnmarshalText (like for net.IP). And since net.HardwareAddr is actually a
[]byte it will fail to Unmarshal from "ca:fe:ba:be:00:00" as it is expecting
base64-encoded string.

From https://pkg.go.dev/encoding/json:
> Array and slice values encode as JSON arrays, except that []byte encodes
> as a base64-encoded string, and a nil slice encodes as the null JSON value.

dhcp-validate 2024-10-03 20:09:07 UTC
refactor: remove ValidateDHCP RPC call

Author: Anton Troyanov
Author Date: 2024-10-03 14:26:29 UTC

refactor: remove ValidateDHCP RPC call

agent-tracing 2024-09-27 18:33:45 UTC
feat(agent): tracing using opentelemetry

Author: Anton Troyanov
Author Date: 2024-09-01 20:13:07 UTC

feat(agent): tracing using opentelemetry

agent-pprof 2024-09-27 16:22:00 UTC
feat(agent): add configurable pprof endpoint

Author: Anton Troyanov
Author Date: 2024-09-01 18:50:57 UTC

feat(agent): add configurable pprof endpoint

Add new pprof endpoint to the MAAS Agent that can be configured to be enabled
or disabled based on a setting. This allows better control over performance
profiling in different environments.

dhcp-file-activity 2024-09-18 22:09:14 UTC
fixup! feat: add dhcp-config-via-file activity

Author: Anton Troyanov
Author Date: 2024-09-18 22:09:11 UTC

fixup! feat: add dhcp-config-via-file activity

Add atomicfile.WriteFile

backport-0144c50-3.4 2024-09-16 15:36:35 UTC
Do not add neighbour during deployment if an ip address is in use

Author: Jacopo Rota
Author Date: 2023-06-23 07:41:09 UTC

Do not add neighbour during deployment if an ip address is in use

(cherry picked from commit 0144c504d72cff6e4a02fc89ba26e0774fe0b31c)

agent-config-api 2024-09-12 13:28:55 UTC
fixup! feat: internal API handler to return DHCP configuration

Author: Anton Troyanov
Author Date: 2024-09-12 13:15:41 UTC

fixup! feat: internal API handler to return DHCP configuration

Add missing tests

fix-makefile 2024-09-11 15:30:23 UTC
fix: lint-go-fix Makefile target

Author: Anton Troyanov
Author Date: 2024-09-11 15:30:23 UTC

fix: lint-go-fix Makefile target

extract-agent-control 2024-09-10 21:46:21 UTC
refactor(agent): extract service controller

Author: Anton Troyanov
Author Date: 2024-09-10 21:46:21 UTC

refactor(agent): extract service controller

agent-config-api-2 2024-09-08 11:36:29 UTC
feat(maasapiserver): agents/{system_id/services/{service_name}/config

Author: Anton Troyanov
Author Date: 2024-09-08 11:36:29 UTC

feat(maasapiserver): agents/{system_id/services/{service_name}/config

join-host-port 2024-09-04 21:40:38 UTC
fix(maasagent): use net.JoinHostPort

Author: Anton Troyanov
Author Date: 2024-09-04 21:40:38 UTC

fix(maasagent): use net.JoinHostPort

Concatenate a host and a port into a properly formatted address,
For IPv6 it will return [::1]:8080 instead of ::1:8080

configurations_service_get_many 2024-09-03 07:55:32 UTC
fixup! chore(maasapiserver): add ConfigurationsService.get_many

Author: Anton Troyanov
Author Date: 2024-09-03 07:55:32 UTC

fixup! chore(maasapiserver): add ConfigurationsService.get_many

tables-alphabetical-order 2024-09-02 18:23:00 UTC
chore: keep tables definitions ordered

Author: Anton Troyanov
Author Date: 2024-09-02 18:23:00 UTC

chore: keep tables definitions ordered

fix-configurations-svc-test 2024-08-30 15:38:04 UTC
test(maasapiserver): fix TestConfigurationsService

Author: Anton Troyanov
Author Date: 2024-08-30 15:12:56 UTC

test(maasapiserver): fix TestConfigurationsService

The idea of the *TestSuite is to have abstract tests that would run on the
classes that extend it.

ConfigurationsService is a test on its own, not an abstract test.

run-pytest-testsuite 2024-08-30 15:06:07 UTC
test: pytest should run *TestSuite classes

Author: Anton Troyanov
Author Date: 2024-08-30 15:06:07 UTC

test: pytest should run *TestSuite classes

omapi-refactor 2024-08-28 15:00:08 UTC
fixup: specify IP for dummy0 with TEST_OMAPI_CLIENT_DUMMY_IP

Author: Anton Troyanov
Author Date: 2024-08-28 15:00:08 UTC

fixup: specify IP for dummy0 with TEST_OMAPI_CLIENT_DUMMY_IP

doc-string-fix 2024-08-27 22:25:01 UTC
chore: remove redundant double quote

Author: Anton Troyanov
Author Date: 2024-08-27 22:25:01 UTC

chore: remove redundant double quote

lxdtesting 2024-08-27 17:19:14 UTC
test(agent): add testing/lxd package

Author: Anton Troyanov
Author Date: 2024-08-27 17:06:54 UTC

test(agent): add testing/lxd package

testing/lxd is a Go package that provides test helper that allows
creation of LXD containers, which can be used for integration testing.

revert-fix-338 2024-08-12 17:43:19 UTC
Revert "Prepare for 3.3.8 release"

Author: Anton Troyanov
Author Date: 2024-08-12 14:40:58 UTC

Revert "Prepare for 3.3.8 release"

This reverts commit fdca268699a66cdc1a51fb4b93a20d0dba68027c.

get-another-3.3.8-with-empty-commit 2024-08-12 12:53:03 UTC
Prepare for 3.3.8 release

Author: Anton Troyanov
Author Date: 2024-08-12 12:53:03 UTC

Prepare for 3.3.8 release

agent_omapi_client 2024-08-11 19:23:39 UTC
refactor: unused context.Context

Author: Anton Troyanov
Author Date: 2024-08-11 19:23:39 UTC

refactor: unused context.Context

maasagent_dhcpd_restart 2024-08-11 09:58:32 UTC
refactor: use context.TODO() in tests

Author: Anton Troyanov
Author Date: 2024-08-11 09:58:32 UTC

refactor: use context.TODO() in tests

TODO returns a non-nil, empty Context.
Code should use context.TODO when it's unclear which Context to use or it is not
yet available (because the surrounding function has not yet been extended to
accept a Context parameter).

refactor-dhcpd 2024-08-10 10:04:56 UTC
refactor(agent): changes to dhcpd lease handler/storage

Author: Anton Troyanov
Author Date: 2024-08-09 14:29:54 UTC

refactor(agent): changes to dhcpd lease handler/storage

Add intermediate buffered channel, so reader and writer do not block
each other while there buffer is not full.

Rename table tests look consistent across MAAS Go codebase.

dhcp-service-refactor 2024-08-07 09:51:24 UTC
feat(agent): DHCP service skeleton

Author: Anton Troyanov
Author Date: 2024-08-07 09:44:17 UTC

feat(agent): DHCP service skeleton

This commit adds MAAS Agent DHCP service skeleton. Follow-up commits
will add glue to integrate it with ISC DHCP in the same way as it
currently works with the Rack Controller (listen over UNIX socket for
events and dispatch information to the Region Controller).

configure-agent-reuse-wfid 2024-08-01 17:47:16 UTC
fix(agent): use workflowID reuse policy for configure-agent

Author: Anton Troyanov
Author Date: 2024-08-01 17:38:49 UTC

fix(agent): use workflowID reuse policy for configure-agent

Provide custom workflow ID and use WORKFLOW_ID_REUSE_POLICY_TERMINATE_IF_RUNNING

Sometimes `configure-agent` workflow after series of quick restart of
maas-agent might throw an error "Workflow execution already started".

That happens because child workflow like `configure-httpproxy-service` or
`configure-power-service` have custom IDs and no workflow reuse policy,
making it impossible to start a new one, before the existing one times
out.

configurator-wf-act 2024-08-01 17:26:55 UTC
refactor(agent): allow workflows and activities on main worker

Author: Anton Troyanov
Author Date: 2024-08-01 17:26:55 UTC

refactor(agent): allow workflows and activities on main worker

Change Configurator interface, so it is possible to pass multiple
workflows and activities that can be registered on the main worker of
the worker pool.

instrument-agent-cache 2024-07-31 21:56:59 UTC
feat(agent): add file cache metrics

Author: Anton Troyanov
Author Date: 2024-07-27 12:55:40 UTC

feat(agent): add file cache metrics

HTTP proxy is using file cache for boot resources.
Expose cache hits/misses/errors for better o11y.

refactor-cache-locks 2024-07-31 15:06:35 UTC
refactor(agent): improve errors for http proxy

Author: Anton Troyanov
Author Date: 2024-07-31 15:06:35 UTC

refactor(agent): improve errors for http proxy

agent-temporal-enable-metrics 2024-07-30 21:13:48 UTC
feat(agent): enable otel temporal client metrics

Author: Anton Troyanov
Author Date: 2024-07-28 11:10:52 UTC

feat(agent): enable otel temporal client metrics

agent-temporal-metrics 2024-07-30 15:07:00 UTC
chore(deps): bump go.temporal.io/sdk

Author: Anton Troyanov
Author Date: 2024-07-28 11:08:51 UTC

chore(deps): bump go.temporal.io/sdk

agent-go-metrics 2024-07-30 13:08:30 UTC
feat(agent): otel metrics with prometheus exporter

Author: Anton Troyanov
Author Date: 2024-07-27 20:59:21 UTC

feat(agent): otel metrics with prometheus exporter

Expose MAAS Agent Go Runtime metrics using OpenTelemetry and Prometheus exporter.

bump-protobuf 2024-07-30 11:27:18 UTC
chore(deps): bump github.com/golang/protobuf

Author: Anton Troyanov
Author Date: 2024-07-27 21:02:30 UTC

chore(deps): bump github.com/golang/protobuf

https://github.com/protocolbuffers/protobuf/issues/16163

bump-golangci 2024-07-30 11:04:56 UTC
chore(ci): bump golangci-lint version v1.59.1

Author: Anton Troyanov
Author Date: 2024-07-27 12:41:29 UTC

chore(ci): bump golangci-lint version v1.59.1

bump-testify 2024-07-30 07:18:49 UTC
chore(deps): bump github.com/stretchr/testify v1.9.0

Author: Anton Troyanov
Author Date: 2024-07-27 12:03:57 UTC

chore(deps): bump github.com/stretchr/testify v1.9.0

bump-min-go-1.21 2024-07-29 22:07:23 UTC
refactor: rand.Seed is deprecated since Go 1.20

Author: Anton Troyanov
Author Date: 2024-07-27 12:16:54 UTC

refactor: rand.Seed is deprecated since Go 1.20

SA1019:
  rand.Seed has been deprecated since Go 1.20 and an alternative has been
  available since Go 1.0: As of Go 1.20 there is no reason to call Seed with a
  random value. Programs that call Seed with a known value to get a specific
  sequence of results should use New(NewSource(seed)) to obtain a local random
  generator. (staticcheck)

agent-metrics 2024-07-29 22:01:15 UTC
feat(agent): temporal otel metrics

Author: Anton Troyanov
Author Date: 2024-07-28 11:10:52 UTC

feat(agent): temporal otel metrics

metrics 2024-07-25 21:51:15 UTC
WIP

Author: Anton Troyanov
Author Date: 2024-07-25 21:51:15 UTC

WIP

hmcz 2024-07-24 09:25:59 UTC
feat(power): HMC Z option to set TLS verification

Author: Anton Troyanov
Author Date: 2024-07-17 10:08:57 UTC

feat(power): HMC Z option to set TLS verification

Resolves LP:2056208

backport-aba348e-3.5 2024-07-19 11:04:37 UTC
fix: maas-regiond should require maas-apiserver

Author: Anton Troyanov
Author Date: 2024-07-19 08:41:41 UTC

fix: maas-regiond should require maas-apiserver

Resolves LP:2073540

(cherry picked from commit aba348e01655f1eef3fe59613d90f6709009d109)

require-maas-apiserver 2024-07-18 20:29:36 UTC
fix: maas-regiond should require maas-apiserver

Author: Anton Troyanov
Author Date: 2024-07-18 20:29:36 UTC

fix: maas-regiond should require maas-apiserver

Resolves LP:2073540

fix-rundir 2024-06-13 06:47:46 UTC
fixup! refactor: agent main, make it easier to follow

Author: Anton Troyanov
Author Date: 2024-06-13 06:46:23 UTC

fixup! refactor: agent main, make it easier to follow

backport-04e4b65-3.5 2024-06-07 07:17:54 UTC
fix(api): allow_dns/allow_proxy accept int and bool

Author: Anton Troyanov
Author Date: 2024-06-07 07:12:26 UTC

fix(api): allow_dns/allow_proxy accept int and bool

Documentation mentions that allow_dns/allow_proxy parameters can be configured
using boolean or integer.

Resolves LP:2068666

(cherry picked from commit 04e4b65caa2906fb0b029e7510203d28a9d280d7)

fix-2068666 2024-06-06 22:53:48 UTC
fix(api): allow_dns/allow_proxy accept int and bool

Author: Anton Troyanov
Author Date: 2024-06-06 21:17:38 UTC

fix(api): allow_dns/allow_proxy accept int and bool

Documentation mentions that allow_dns/allow_proxy parameters can be configured
using boolean or integer.

Resolves LP:2068666

cleanup-main 2024-06-05 08:15:17 UTC
fixup! refactor: refactor agent main

Author: Anton Troyanov
Author Date: 2024-06-05 08:15:17 UTC

fixup! refactor: refactor agent main

backport-54f3e5e-3.5 2024-06-03 14:25:47 UTC
fix: return 0 bytes for non-existing .lst

Author: Anton Troyanov
Author Date: 2024-06-03 06:54:34 UTC

fix: return 0 bytes for non-existing .lst

Resolves LP:2067793

(cherry picked from commit 54f3e5e544d998465ca7fd94b5c3e74b58ccc097)

configure-tweak 2024-06-02 12:46:39 UTC
WIP

Author: Anton Troyanov
Author Date: 2024-06-02 12:46:39 UTC

WIP

fix-2067793 2024-06-01 11:56:53 UTC
fix: return 0 bytes for non-existing .lst

Author: Anton Troyanov
Author Date: 2024-06-01 10:57:03 UTC

fix: return 0 bytes for non-existing .lst

Resolves LP:2067793

backport-2c935cc-3.5 2024-05-31 06:40:58 UTC
fix(cli): maas login can't handle non-ascii cacert

Author: Anton Troyanov
Author Date: 2024-05-30 19:06:08 UTC

fix(cli): maas login can't handle non-ascii cacert

Resolves LP:2067503

(cherry picked from commit 2c935cce3833e308bfbeb15c5e00869ca1f4b8e2)

fix-2067503 2024-05-30 14:17:17 UTC
fix(cli): maas login can't handle non-ascii cacert

Author: Anton Troyanov
Author Date: 2024-05-29 20:35:47 UTC

fix(cli): maas login can't handle non-ascii cacert

Resolves LP:2067503

backport-f500d6c-3.5 2024-05-30 00:08:56 UTC
fix(agent): create runDir if it doesn't exist

Author: Anton Troyanov
Author Date: 2024-05-29 22:28:09 UTC

fix(agent): create runDir if it doesn't exist

(cherry picked from commit f500d6ccfbbdcbdc09674cf97114991a9bcf01be)

configure-interface 2024-05-30 00:08:16 UTC
refactor: change Configure() to return interface{}

Author: Anton Troyanov
Author Date: 2024-05-27 20:05:41 UTC

refactor: change Configure() to return interface{}

This allows to use Configurator interface when registering services,
however each service can define it's own configure method, so we can
pass required parameters when calling the workflow from the Region,
instead of having each service to make a callback via activities.

agent-create-rundir 2024-05-29 20:16:19 UTC
fix(agent): create runDir if it doesn't exist

Author: Anton Troyanov
Author Date: 2024-05-29 19:55:37 UTC

fix(agent): create runDir if it doesn't exist

revert-2923235dfc975a11977460d023b32d2b49a14ff4 2024-05-29 19:21:56 UTC
Revert "fix(snap): create /run/snap.maas with install hook"

Author: Anton Troyanov
Author Date: 2024-05-29 19:21:56 UTC

Revert "fix(snap): create /run/snap.maas with install hook"

This reverts commit 2923235dfc975a11977460d023b32d2b49a14ff4.

revert-d4c47cccef119d0a640be6e0134fc16feec5a282 2024-05-29 19:18:42 UTC
Revert "fix(snap): create /run/snap.maas with install hook"

Author: Anton Troyanov
Author Date: 2024-05-29 19:18:42 UTC

Revert "fix(snap): create /run/snap.maas with install hook"

This reverts commit d4c47cccef119d0a640be6e0134fc16feec5a282.

backport-d4c47cc-3.5 2024-05-29 18:02:41 UTC
fix(snap): create /run/snap.maas with install hook

Author: Anton Troyanov
Author Date: 2024-05-29 17:51:32 UTC

fix(snap): create /run/snap.maas with install hook

Currently this folder is created by `chrony`, because `chrony` will create a
full path as defined for the PID file in the config [0]

We should not rely on `chrony` but rather create if after snap install,
because other services are using it (e.g. maas-agent)

```
if "SNAP" in os.environ:
    run_dir = get_maas_run_path()
    lines.append(f"dumpdir {run_dir / _NTP_DIR_NAME}")
    lines.append(f"pidfile {run_dir / _NTP_PID_NAME}")
    lines.append(f"bindcmdaddress {run_dir / _NTP_SOCK_NAME}")
```

[0]: src/provisioningserver/ntp/config.py

(cherry picked from commit d4c47cccef119d0a640be6e0134fc16feec5a282)

snap-hook-cleanup 2024-05-29 15:45:26 UTC
fix(snap): create /run/snap.maas with install hook

Author: Anton Troyanov
Author Date: 2024-05-29 15:12:23 UTC

fix(snap): create /run/snap.maas with install hook

Currently this folder is created by `chrony`, because `chrony` will create a
full path as defined for the PID file in the config [0]

We should not rely on `chrony` but rather create if after snap install,
because other services are using it (e.g. maas-agent)

```
if "SNAP" in os.environ:
    run_dir = get_maas_run_path()
    lines.append(f"dumpdir {run_dir / _NTP_DIR_NAME}")
    lines.append(f"pidfile {run_dir / _NTP_PID_NAME}")
    lines.append(f"bindcmdaddress {run_dir / _NTP_SOCK_NAME}")
```

[0]: src/provisioningserver/ntp/config.py

backport-91490a9-3.5 2024-05-29 09:10:49 UTC
fix: re-add missing foreign key constraints

Author: Anton Troyanov
Author Date: 2024-05-29 09:01:47 UTC

fix: re-add missing foreign key constraints

f7230326051628a654afe8e2383be6faec05f35e had side-effect that removed
most of the foreign key relations

Resolves LP:2066936

Original fix was provided in 91490a921014dda26edec94689910148de8fc523,
but this commit excludes merge migration.

missing-migrations 2024-05-28 21:12:11 UTC
fixup! Fix test_Commission_starts_commissioning intermittent failure.

Author: Anton Troyanov
Author Date: 2024-05-28 21:12:11 UTC

fixup! Fix test_Commission_starts_commissioning intermittent failure.

backport-012430e-3.5 2024-05-04 09:02:59 UTC
chore(deps): bump pebble to 1.10.2

Author: Anton Troyanov
Author Date: 2024-05-04 08:55:05 UTC

chore(deps): bump pebble to 1.10.2

Resolves LP:2064726

(cherry picked from commit 012430e452b8bd4e1714de51c7d11bb5c5b70e7e)

bump-pebble-1.10.2 2024-05-04 06:54:44 UTC
chore(deps): bump pebble to 1.10.2

Author: Anton Troyanov
Author Date: 2024-05-04 06:54:44 UTC

 chore(deps): bump pebble to 1.10.2

configure-agent-retry 2024-04-30 08:58:11 UTC
refactor: use configure-agent global timeout

Author: Anton Troyanov
Author Date: 2024-04-30 08:58:11 UTC

refactor: use configure-agent global timeout

Use WorkflowExecutionTimeout of configure-agent and let Temporal retry
all the child workflows and activities within this timeout.

backport-915882c-3.5 2024-04-26 21:18:11 UTC
fix(tftp): legacy BIOS mode fails with 0-size cfg

Author: Anton Troyanov
Author Date: 2024-04-26 18:51:09 UTC

fix(tftp): legacy BIOS mode fails with 0-size cfg

The fix for GRUB introduced in a0b47aba48b2ad324c34b42aed9f47a7dfc85b28
lead to an issue with legacy BIOS mode, which is expecting to receive
`Error code 1: File not found` for non existing pxelinux.cfg config
files instead for a 0-size result.

Resolves LP:2063844

(cherry picked from commit 915882cfd7786a68d10a5cf461a29d7690912b80)

fix-2063844 2024-04-26 15:49:16 UTC
fix(tftp): legacy BIOS mode fails with 0-size cfg

Author: Anton Troyanov
Author Date: 2024-04-26 15:42:25 UTC

fix(tftp): legacy BIOS mode fails with 0-size cfg

The fix for GRUB introduced in a0b47aba48b2ad324c34b42aed9f47a7dfc85b28
lead to an issue with legacy BIOS mode, which is expecting to receive
`Error code 1: File not found` for non existing pxelinux.cfg config
files instead for a 0-size result.

Resolves LP:2063844

backport-1759624-3.5 2024-04-24 16:45:53 UTC
fix(agent): check if region endpoints are reachable

Author: Anton Troyanov
Author Date: 2024-04-24 16:37:40 UTC

fix(agent): check if region endpoints are reachable

Region Controller might return IP:PORT that is not reachable by the
Agent (due to firewall configuration or network setup). Hence we should
add check if endpoints are reachable before applying them as targets
when configuring Agent HTTP reverse proxy service.

Resolves LP:2063220

Workflow logic is constrained by deterministic execution requirements.
In Go, Workflow Definition code cannot directly do the following:
- Call an external API, conduct a file I/O operation, talk to another service, etc

Normally we should use Activity for this scenario, however we are
confident and consider that we want to do this I/O inside the workflow.

But by having a blocking I/O you might get the following panic:
```
panic: Potential deadlock detected: workflow goroutine "root" didn't yield for over a second
```

It happens simply because the "root" goroutine was not scheduled for
execution. By using `workflow.Go` we don't mess with the scheduler and
we should worry about logic inside `workflow.Go` not take more than 1
second.

(cherry picked from commit 17596243156a800d060b8c5138798da8eae0950b)

proxy-check-targets 2024-04-24 15:03:07 UTC
test(agent): region endpoints are unreachable

Author: Anton Troyanov
Author Date: 2024-04-24 12:12:32 UTC

test(agent): region endpoints are unreachable

backport-2c575e5-3.5 2024-04-06 07:11:25 UTC
fix: nginx rackd.conf httpproxy socket location

Author: Anton Troyanov
Author Date: 2024-04-05 22:12:14 UTC

fix: nginx rackd.conf httpproxy socket location

Resolves LP:2060288

(cherry picked from commit 2c575e55a3f007c37c38f0d2933921783804f642)

backport-668b2cd-3.5 2024-04-05 19:26:10 UTC
fix: lp-2060278. Rename image sync lock file to match other maas lock files

Author: Jacopo Rota
Author Date: 2024-04-05 13:09:11 UTC

fix: lp-2060278. Rename image sync lock file to match other maas lock files

(cherry picked from commit 668b2cd9f24661520c022bc11f74286cd1d1bc01)

backport-147ce84-3.5 2024-04-05 16:21:37 UTC
Fix lp bug 2033632

Author: Alessandro Marcolini
Author Date: 2024-04-05 14:16:27 UTC

Fix lp bug 2033632
https://bugs.launchpad.net/maas/+bug/2033632

(cherry picked from commit 147ce845b0575adf944eccafff804caf0bdd876e)

backport-6b04c2a-3.5 2024-04-05 16:02:29 UTC
fix: lp-2060297. Do not start apiserver until the unix socket has been created.

Author: Jacopo Rota
Author Date: 2024-04-05 15:57:35 UTC

fix: lp-2060297. Do not start apiserver until the unix socket has been created.

(cherry picked from commit 6b04c2ab4deab3c0d799215a226b4217e9139399)

fix-2060288 2024-04-05 14:12:11 UTC
fix: nginx rackd.conf fix httpproxy sock location

Author: Anton Troyanov
Author Date: 2024-04-05 14:12:11 UTC

fix: nginx rackd.conf fix httpproxy sock location

go-copyright-lint 2024-04-04 20:05:01 UTC
fixup! chore: lint copyright header in Go files

Author: Anton Troyanov
Author Date: 2024-04-04 20:05:01 UTC

fixup! chore: lint copyright header in Go files

cleanup 2024-04-04 16:11:14 UTC
chore: remove unused tests

Author: Anton Troyanov
Author Date: 2024-04-04 16:11:14 UTC

chore: remove unused tests

backport-d792780-3.4 2024-04-04 16:00:26 UTC
Fixing memory leak when we use apt_pkg in deb.py

Author: Seyeong Kim
Author Date: 2024-04-04 13:44:47 UTC

Fixing memory leak when we use apt_pkg in deb.py

(cherry picked from commit d792780dbd0571fcd94e22cb7ce559d5f69aa1a0)

backport-d792780-3.5 2024-04-04 15:18:39 UTC
Fixing memory leak when we use apt_pkg in deb.py

Author: Seyeong Kim
Author Date: 2024-04-04 13:44:47 UTC

Fixing memory leak when we use apt_pkg in deb.py

(cherry picked from commit d792780dbd0571fcd94e22cb7ce559d5f69aa1a0)

backport-76e0fb0-3.5 2024-04-04 10:08:19 UTC
feat(temporal): enable mTLS

Author: Anton Troyanov
Author Date: 2024-04-04 10:05:42 UTC

feat(temporal): enable mTLS

Use MAAS cluster key/cert and CA to configure Temporal mTLS [0]

[0]: https://docs.temporal.io/self-hosted-guide/security#encryption-in-transit-with-mtls

Resolves LP:2058332

(cherry picked from commit 76e0fb0351f31aa9e4f3c87a78792c8cec20ef0d)

backport-bd7ac34-3.5 2024-04-04 08:27:28 UTC
fix(deb): remove Temporal config files

Author: Anton Troyanov
Author Date: 2024-04-03 22:52:14 UTC

fix(deb): remove Temporal config files

Resolves LP:2057917

(cherry picked from commit bd7ac349483f2fee99baa7d89226c01d6e3e60b6)

temporal-mtls 2024-04-04 08:25:57 UTC
feat(temporal): enable mTLS

Author: Anton Troyanov
Author Date: 2024-04-03 14:52:20 UTC

feat(temporal): enable mTLS

Use MAAS cluster key/cert and CA to configure Temporal mTLS [0]

[0]: https://docs.temporal.io/self-hosted-guide/security#encryption-in-transit-with-mtls

Resolves LP:2058332

fix-2058625 2024-04-02 17:45:26 UTC
fixup! feat: autodetect broadcast address

Author: Anton Troyanov
Author Date: 2024-04-02 17:45:26 UTC

fixup! feat: autodetect broadcast address

fix-2057917 2024-04-01 13:40:40 UTC
fix(deb): remove Temporal config files

Author: Anton Troyanov
Author Date: 2024-04-01 13:40:40 UTC

fix(deb): remove Temporal config files

Resolves LP:2057917

backport-bdb5694-3.5 2024-03-26 16:57:15 UTC
fix: tag evaluation over RPC on rack fails when TLS is enabled

Author: Anton Troyanov
Author Date: 2024-03-26 16:04:41 UTC

fix: tag evaluation over RPC on rack fails when TLS is enabled

Rack Controller is making multiple API calls when EvaluateTag RPC is
called:
- GET /MAAS/api/2.0/nodes/dqk73h/?op=details
- GET ... (other nodes)
- POST /MAAS/api/2.0/tags/Test/?op=update_nodes

Since MAAS already allows certain locations to be served via HTTP
(see src/maasserver/templates/http/regiond.nginx.conf.template)
We decided to skip certificate validation check for this particular RPC
call.

PostHTTPRedirectHandler class is required to solve the following issue [0]
which happens because MAAS forces HTTPS via 301 redirect [1]

[0]: https://bugs.python.org/issue14338
[1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-301-moved-permanently

Resolves LP:2054808

(cherry picked from commit bdb5694d6d0cfd1060366385e67e6c9d9d0790b4)

fix-runtime-dir 2024-03-26 14:21:33 UTC
fixup! fix: /run/maas should be owned by maas

Author: Anton Troyanov
Author Date: 2024-03-26 14:21:33 UTC

fixup! fix: /run/maas should be owned by maas

backport-4aa9e1e-3.5 2024-03-26 13:36:42 UTC
fix: cleanup /run/maas when upgrading

Author: Anton Troyanov
Author Date: 2024-03-26 13:34:31 UTC

fix: cleanup /run/maas when upgrading

MAAS versions before 3.5 have /run/maas owned by root:root
During upgrade to 3.5 we should recreate /run/maas with maas:maas
(creation is done by debian/maas-rack-controller.maas-rackd.service)

(cherry picked from commit 4aa9e1e99dd51533468ee35e907e7efaca2d2992)

fix-deb-run-maas-dir 2024-03-26 12:35:58 UTC
fix: cleanup /run/maas when upgrading

Author: Anton Troyanov
Author Date: 2024-03-26 12:34:37 UTC

fix: cleanup /run/maas when upgrading

MAAS versions before 3.5 has /run/maas owned by root:root
During upgrade to 3.5 we should recreate /run/maas with maas:maas
(creation is done by debian/maas-rack-controller.maas-rackd.service)

fix-2054808 2024-03-26 07:33:21 UTC
fixup! fix: tag evaluation over RPC on rack fails when TLS is enabled

Author: Anton Troyanov
Author Date: 2024-03-26 07:31:21 UTC

fixup! fix: tag evaluation over RPC on rack fails when TLS is enabled

golangci-lint-1.57 2024-03-25 09:48:28 UTC
chore(ci): bump golangci-lint to 1.57.1

Author: Anton Troyanov
Author Date: 2024-03-25 09:48:28 UTC

chore(ci): bump golangci-lint to 1.57.1

backport-a467133-3.5 2024-03-20 14:00:55 UTC
fix: node & current_script_set database integrity

Author: Anton Troyanov
Author Date: 2024-03-20 14:00:29 UTC

fix: node & current_script_set database integrity

Due to a bug in Django [0] there was no foreign key constraint in the database.
So MAAS had nodes pointing to the current commissioning, installation, testing
and release script set that might have been removed already.

[0] https://code.djangoproject.com/ticket/4930

Resolves LP:2056330

(cherry picked from commit a4671339a2fb5a1124fc2382e208d2518267f645)

backport-21cf88e-3.5 2024-03-20 10:54:47 UTC
fix: get Ubuntu kernel for ephemeral deployments

Author: Alexsander de Souza
Author Date: 2024-03-19 08:51:28 UTC

fix: get Ubuntu kernel for ephemeral deployments

fixes LP#2057939

(cherry picked from commit 21cf88e8a2f7855881728f965b7ca85ab59f4268)

fix-2056330 2024-03-20 10:18:41 UTC
fixup! fix: node & current_script_set database integrity

Author: Anton Troyanov
Author Date: 2024-03-20 10:18:41 UTC

fixup! fix: node & current_script_set database integrity

backport-95705c9-3.5 2024-03-20 07:35:09 UTC
fix: MAAS Redfish doesn't reboot Cisco UCS C-series appliance

Author: Anton Troyanov
Author Date: 2024-03-20 07:33:21 UTC

fix: MAAS Redfish doesn't reboot Cisco UCS C-series appliance

Resolves LP:2028000

(cherry picked from commit 95705c9a4d264efe85e472629065b59b714ee0c6)

fix-2028000 2024-03-18 18:49:21 UTC
fix: MAAS Redfish doesn't reboot Cisco UCS C-series appliance

Author: Anton Troyanov
Author Date: 2024-03-18 18:49:21 UTC

fix: MAAS Redfish doesn't reboot Cisco UCS C-series appliance

Resolves LP:2028000

1100 of 317 results
This repository contains Public information 
Everyone can see this information.

Subscribers