| Tim Windelschmidt | 6d33a43 | 2025-02-04 14:34:25 +0100 | [diff] [blame^] | 1 | // Copyright The Monogon Project Authors. |
| Lorenz Brun | 5e4fc2d | 2020-09-22 18:35:15 +0200 | [diff] [blame] | 2 | // SPDX-License-Identifier: Apache-2.0 |
| Lorenz Brun | 5e4fc2d | 2020-09-22 18:35:15 +0200 | [diff] [blame] | 3 | |
| 4 | package reconciler |
| 5 | |
| 6 | import ( |
| 7 | "context" |
| 8 | |
| Lorenz Brun | 6211e4d | 2023-11-14 19:09:40 +0100 | [diff] [blame] | 9 | node "k8s.io/api/node/v1" |
| Lorenz Brun | 5e4fc2d | 2020-09-22 18:35:15 +0200 | [diff] [blame] | 10 | meta "k8s.io/apimachinery/pkg/apis/meta/v1" |
| 11 | "k8s.io/client-go/kubernetes" |
| 12 | ) |
| 13 | |
| 14 | type resourceRuntimeClasses struct { |
| 15 | kubernetes.Interface |
| 16 | } |
| 17 | |
| Jan Schär | 7f72748 | 2024-03-25 13:03:51 +0100 | [diff] [blame] | 18 | func (r resourceRuntimeClasses) List(ctx context.Context) ([]meta.Object, error) { |
| Lorenz Brun | 6211e4d | 2023-11-14 19:09:40 +0100 | [diff] [blame] | 19 | res, err := r.NodeV1().RuntimeClasses().List(ctx, listBuiltins) |
| Lorenz Brun | 5e4fc2d | 2020-09-22 18:35:15 +0200 | [diff] [blame] | 20 | if err != nil { |
| 21 | return nil, err |
| 22 | } |
| Jan Schär | 7f72748 | 2024-03-25 13:03:51 +0100 | [diff] [blame] | 23 | objs := make([]meta.Object, len(res.Items)) |
| 24 | for i := range res.Items { |
| 25 | objs[i] = &res.Items[i] |
| Lorenz Brun | 5e4fc2d | 2020-09-22 18:35:15 +0200 | [diff] [blame] | 26 | } |
| 27 | return objs, nil |
| 28 | } |
| 29 | |
| Jan Schär | 7f72748 | 2024-03-25 13:03:51 +0100 | [diff] [blame] | 30 | func (r resourceRuntimeClasses) Create(ctx context.Context, el meta.Object) error { |
| Lorenz Brun | 6211e4d | 2023-11-14 19:09:40 +0100 | [diff] [blame] | 31 | _, err := r.NodeV1().RuntimeClasses().Create(ctx, el.(*node.RuntimeClass), meta.CreateOptions{}) |
| Lorenz Brun | 5e4fc2d | 2020-09-22 18:35:15 +0200 | [diff] [blame] | 32 | return err |
| 33 | } |
| 34 | |
| Jan Schär | 69f5f4e | 2024-05-15 10:32:07 +0200 | [diff] [blame] | 35 | func (r resourceRuntimeClasses) Update(ctx context.Context, el meta.Object) error { |
| 36 | _, err := r.NodeV1().RuntimeClasses().Update(ctx, el.(*node.RuntimeClass), meta.UpdateOptions{}) |
| 37 | return err |
| 38 | } |
| 39 | |
| 40 | func (r resourceRuntimeClasses) Delete(ctx context.Context, name string, opts meta.DeleteOptions) error { |
| 41 | return r.NodeV1().RuntimeClasses().Delete(ctx, name, opts) |
| Lorenz Brun | 5e4fc2d | 2020-09-22 18:35:15 +0200 | [diff] [blame] | 42 | } |
| 43 | |
| Jan Schär | 7f72748 | 2024-03-25 13:03:51 +0100 | [diff] [blame] | 44 | func (r resourceRuntimeClasses) Expected() []meta.Object { |
| 45 | return []meta.Object{ |
| 46 | &node.RuntimeClass{ |
| Lorenz Brun | 5e4fc2d | 2020-09-22 18:35:15 +0200 | [diff] [blame] | 47 | ObjectMeta: meta.ObjectMeta{ |
| 48 | Name: "gvisor", |
| 49 | Labels: builtinLabels(nil), |
| 50 | }, |
| 51 | Handler: "runsc", |
| 52 | }, |
| Jan Schär | 7f72748 | 2024-03-25 13:03:51 +0100 | [diff] [blame] | 53 | &node.RuntimeClass{ |
| Lorenz Brun | 5e4fc2d | 2020-09-22 18:35:15 +0200 | [diff] [blame] | 54 | ObjectMeta: meta.ObjectMeta{ |
| 55 | Name: "runc", |
| 56 | Labels: builtinLabels(nil), |
| 57 | }, |
| 58 | Handler: "runc", |
| 59 | }, |
| 60 | } |
| 61 | } |