Skip to content

Bring back the proxy setup to Agama#3069

Merged
teclator merged 24 commits intomasterfrom
proxy_setup
Jan 30, 2026
Merged

Bring back the proxy setup to Agama#3069
teclator merged 24 commits intomasterfrom
proxy_setup

Conversation

@teclator
Copy link
Copy Markdown
Contributor

@teclator teclator commented Jan 23, 2026

Problem

The proxy configuration was removed when the Ruby code was drop in #2871. Unfortunately it was not only the ruby service but there were also some systemd service which where in charge of configuring the proxy before Agama was started parsing the cmdline.

Solution

Implemented the proxy configuration in the backend.

  • There is a new ProxyConfig struct which is able to write and read the configuration from the kernel cmdline and from the sysconfig configuration file.
  • Added a new systemd service for configuring the proxy before agama is run.
  • Added an agama proxy service for allowing to configure the proxy in Agama using the CLI or the UI.

Testing

  • Added a new unit test
  • Tested manually

API Examples

# With no proxy given through the kernel cmdline
suse@vikingo-laptop:~/api_review$ ./server_system.sh | jq ".proxy"
{
  "enabled": false,
  "noProxy": "localhost,127.0.0.1"
}
suse@vikingo-laptop:~/api_review$ ./server_extendend_config.sh | jq ".proxy"
null
suse@vikingo-laptop:~/api_review$ ./server_config.sh 
{}

# With proxy=http://192.168.122.1:3128
suse@vikingo-laptop:~/api_review$ ./server_config.sh 
{}
suse@vikingo-laptop:~/api_review$ ./server_extendend_config.sh | jq ".proxy"
{
  "enabled": true,
  "http": "http://192.168.122.1:3128",
  "https": "http://192.168.122.1:3128",
  "ftp": "http://192.168.122.1:3128",
  "noProxy": "localhost,127.0.0.1"
}
suse@vikingo-laptop:~/api_review$ ./server_system.sh | jq ".proxy"
{
  "enabled": true,
  "http": "http://192.168.122.1:3128",
  "https": "http://192.168.122.1:3128",
  "ftp": "http://192.168.122.1:3128",
  "noProxy": "localhost,127.0.0.1"
}

@teclator teclator changed the title Proxy setup Bring back the proxy setup to Agama Jan 23, 2026
@teclator teclator force-pushed the proxy_setup branch 2 times, most recently from 2f4d9cd to 92dc9be Compare January 23, 2026 14:25
Copy link
Copy Markdown
Contributor

@imobachgs imobachgs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good job 😉 There are many comments, but most of them are minor things.

continue;
}

if let Some((key, value)) = line.split_once('=') {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To make it easier to reuse this logic, I think this could be implemented as a separate struct that takes care of parsing and building a HashMap-like struct.

Not to be done today but, please, add a PBI to work on that once things are settled.

@coveralls
Copy link
Copy Markdown

coveralls commented Jan 26, 2026

Coverage Status

coverage: 73.628%. remained the same
when pulling b2e5949 on proxy_setup
into 515ec1c on master.

@teclator teclator requested a review from imobachgs January 27, 2026 16:42
@teclator teclator marked this pull request as ready for review January 27, 2026 16:43
@teclator teclator force-pushed the proxy_setup branch 3 times, most recently from b2e5949 to 674ee68 Compare January 28, 2026 15:34
@teclator teclator merged commit 57c536d into master Jan 30, 2026
14 of 16 checks passed
@teclator teclator deleted the proxy_setup branch January 30, 2026 11:34
bmwiedemann pushed a commit to bmwiedemann/openSUSE that referenced this pull request Feb 3, 2026
https://build.opensuse.org/request/show/1330409
by user IGonzalezSosa + anag_factory
- Fixed opening the SSH firewall port when the firewall is not
  installed because of the set "onlyRequires" flag in the software
  configuration (bsc#1257212)

- Implement modification of kernel parameters when SELinux pattern
  is selected (gh#agama-project/agama#3103)

- Update schemas for storage model and volume templates (related to
  jsc#PED-14307).

- Added proxy service allowing to configure the proxy through the
  kernel cmdline proxy argument and with HTTP API
  (gh#agama-project/agama#3069).
bmwiedemann pushed a commit to bmwiedemann/openSUSE that referenced this pull request Feb 14, 2026
https://build.opensuse.org/request/show/1332499
by user IGonzalezSosa + dimstar_suse
- Installer: configure libzypp through drop-in config snippet when
  supported (jsc#PED-14658).

- Do display a message if "UEFI Firmware Settings" boot menu entry
  fails  (gh#agama-project/agama#3109)

- Enable agama-proxy-setup service for configuring the proxy if
  given through the kernel cmdline (gh#agama-project/agama#3069).
@imobachgs imobachgs mentioned this pull request Mar 17, 2026
imobachgs added a commit that referenced this pull request Mar 17, 2026
Prepare to release version 19.

* #1829
* #2508
* #2772
* #2818
* #2826
* #2848
* #2860
* #2863
* #2864
* #2866
* #2867
* #2869
* #2870
* #2871
* #2872
* #2873
* #2874
* #2875
* #2876
* #2877
* #2880
* #2881
* #2882
* #2884
* #2885
* #2886
* #2891
* #2892
* #2893
* #2894
* #2895
* #2896
* #2897
* #2898
* #2899
* #2900
* #2901
* #2902
* #2903
* #2904
* #2908
* #2909
* #2910
* #2912
* #2913
* #2914
* #2915
* #2916
* #2917
* #2918
* #2920
* #2921
* #2923
* #2924
* #2926
* #2928
* #2929
* #2930
* #2933
* #2934
* #2935
* #2936
* #2937
* #2938
* #2939
* #2942
* #2943
* #2944
* #2945
* #2946
* #2947
* #2948
* #2949
* #2950
* #2951
* #2952
* #2954
* #2955
* #2956
* #2957
* #2958
* #2959
* #2960
* #2961
* #2963
* #2964
* #2965
* #2967
* #2968
* #2969
* #2970
* #2971
* #2972
* #2974
* #2975
* #2977
* #2978
* #2980
* #2981
* #2982
* #2983
* #2984
* #2988
* #2989
* #2990
* #2991
* #2992
* #2993
* #2994
* #2995
* #2996
* #2997
* #2998
* #2999
* #3000
* #3001
* #3002
* #3004
* #3005
* #3006
* #3007
* #3008
* #3009
* #3011
* #3012
* #3013
* #3014
* #3015
* #3016
* #3018
* #3019
* #3020
* #3021
* #3022
* #3023
* #3024
* #3025
* #3026
* #3027
* #3028
* #3029
* #3030
* #3031
* #3033
* #3034
* #3035
* #3036
* #3037
* #3039
* #3040
* #3041
* #3042
* #3043
* #3044
* #3045
* #3046
* #3047
* #3048
* #3049
* #3050
* #3051
* #3052
* #3053
* #3054
* #3055
* #3056
* #3057
* #3058
* #3060
* #3061
* #3062
* #3063
* #3064
* #3065
* #3066
* #3067
* #3068
* #3069
* #3070
* #3071
* #3072
* #3073
* #3074
* #3075
* #3076
* #3077
* #3078
* #3079
* #3086
* #3087
* #3088
* #3089
* #3090
* #3091
* #3092
* #3093
* #3094
* #3095
* #3096
* #3097
* #3098
* #3099
* #3100
* #3101
* #3102
* #3103
* #3104
* #3105
* #3106
* #3107
* #3108
* #3109
* #3110
* #3112
* #3113
* #3114
* #3115
* #3116
* #3117
* #3118
* #3119
* #3120
* #3122
* #3123
* #3124
* #3127
* #3128
* #3129
* #3130
* #3131
* #3133
* #3134
* #3135
* #3136
* #3137
* #3138
* #3139
* #3140
* #3141
* #3142
* #3143
* #3144
* #3145
* #3146
* #3147
* #3148
* #3149
* #3150
* #3151
* #3152
* #3153
* #3154
* #3155
* #3157
* #3158
* #3159
* #3160
* #3161
* #3162
* #3163
* #3164
* #3165
* #3166
* #3167
* #3168
* #3169
* #3170
* #3174
* #3175
* #3176
* #3177
* #3178
* #3179
* #3181
* #3182
* #3184
* #3185
* #3186
* #3188
* #3189
* #3190
* #3191
* #3192
* #3194
* #3195
* #3196
* #3197
* #3198
* #3199
* #3200
* #3201
* #3202
* #3203
* #3205
* #3206
* #3208
* #3209
* #3210
* #3213
* #3214
* #3215
* #3216
* #3217
* #3218
* #3219
* #3220
* #3222
* #3223
* #3224
* #3225
* #3226
* #3227
* #3228
* #3229
* #3230
* #3231
* #3232
* #3233
* #3234
* #3235
* #3236
* #3237
* #3238
* #3239
* #3240
* #3241
* #3242
* #3243
* #3244
* #3246
* #3247
* #3248
* #3250
* #3251
* #3252
* #3253
* #3254
* #3255
* #3256
* #3257
* #3258
* #3259
* #3260
* #3261
* #3262
* #3263
* #3265
* #3266
* #3267
* #3268
* #3269
* #3270
* #3271
* #3272
* #3273
* #3274
* #3275
* #3276
* #3277
* #3278
* #3279
* #3280
* #3281
* #3282
* #3283
* #3284
* #3285
* #3286
* #3287
* #3288
* #3289
* #3290
* #3291
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants