Skip to content

Commit

Permalink
Merge pull request #110 from UffizziCloud/feature/107_add_sleep_mode
Browse files Browse the repository at this point in the history
[107] added sleepAfter annotation and sleep spec for clusters
  • Loading branch information
moklidia authored Oct 19, 2023
2 parents c9214d5 + 8df2199 commit 7684c10
Show file tree
Hide file tree
Showing 8 changed files with 175 additions and 35 deletions.
3 changes: 2 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ go 1.20

require (
github.com/GehirnInc/crypt v0.0.0-20200316065508-bb7000b8a962
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.6
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.7
github.com/a8m/envsubst v1.3.0
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751
github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de
Expand Down Expand Up @@ -51,6 +51,7 @@ require (
github.com/imdario/mergo v0.3.13 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/kr/pretty v0.3.1 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
Expand Down
59 changes: 34 additions & 25 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -58,16 +58,36 @@ github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAE
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0=
github.com/UffizziCloud/uffizzi-cluster-operator v0.0.14 h1:Of3aMbd+WvAeyOII3jQ3lrHpGit4d2593Ibdk9DOe1o=
github.com/UffizziCloud/uffizzi-cluster-operator v0.0.14/go.mod h1:jSyAkV5svJYybuvNpfxfZxsgNzeU8mR/iEBEm1TBoMk=
github.com/UffizziCloud/uffizzi-cluster-operator v0.0.22 h1:VVdruAW/bgfx5Q/FYg+mKq5+sMrXIOzoU85CsD/Cvc0=
github.com/UffizziCloud/uffizzi-cluster-operator v0.0.22/go.mod h1:jSyAkV5svJYybuvNpfxfZxsgNzeU8mR/iEBEm1TBoMk=
github.com/UffizziCloud/uffizzi-cluster-operator v0.1.1 h1:clc9OS18kiICmHoqoQ/Sw9nRvW5Jq1UL6ZZMGADvMp8=
github.com/UffizziCloud/uffizzi-cluster-operator v0.1.1/go.mod h1:jSyAkV5svJYybuvNpfxfZxsgNzeU8mR/iEBEm1TBoMk=
github.com/UffizziCloud/uffizzi-cluster-operator v1.2.0 h1:HtjcIwo5Pa8Yu5jZob1yMhIRB5zAXsPRipt90O06qhE=
github.com/UffizziCloud/uffizzi-cluster-operator v1.2.0/go.mod h1:jSyAkV5svJYybuvNpfxfZxsgNzeU8mR/iEBEm1TBoMk=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.6 h1:O+0YkhxZ+RkGfIqjNDPFR6AoevezfpxOQ2/l8RoIGVM=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.6/go.mod h1:jSyAkV5svJYybuvNpfxfZxsgNzeU8mR/iEBEm1TBoMk=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20230928114948-586105468212 h1:FD7uJc28MIbwneTpdN3btGt20+wo+iELSOfEgBK4OtQ=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20230928114948-586105468212/go.mod h1:jSyAkV5svJYybuvNpfxfZxsgNzeU8mR/iEBEm1TBoMk=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20230928123635-b13b65bb0a30 h1:J60RTX0b13hJcl5oTZPgYnSiT+8wrsiGHqfyAr9nrQc=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20230928123635-b13b65bb0a30/go.mod h1:jSyAkV5svJYybuvNpfxfZxsgNzeU8mR/iEBEm1TBoMk=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20231002162628-89f4fb7d6bde h1:hDNo/zQl+dtazAYbFz0OLIZ/kksXfSjcA9JPeFK3Dj0=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20231002162628-89f4fb7d6bde/go.mod h1:jSyAkV5svJYybuvNpfxfZxsgNzeU8mR/iEBEm1TBoMk=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20231002163316-399c6463a97a h1:2b+LgXG83Y34/v2fLcfqi+wp96AmqP58lgitMkluuFA=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20231002163316-399c6463a97a/go.mod h1:jSyAkV5svJYybuvNpfxfZxsgNzeU8mR/iEBEm1TBoMk=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20231002163613-203cb90583c9 h1:YzqUuS6a/vE9oQMHG6xgA/QR4LmoEPDwaXIzMO6KCNw=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20231002163613-203cb90583c9/go.mod h1:jSyAkV5svJYybuvNpfxfZxsgNzeU8mR/iEBEm1TBoMk=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20231002163917-49b36f64dd5f h1:FAJW2nWY/ukY58Tn/gaclOHRU4YxCtgCRsRtmUa+tc0=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20231002163917-49b36f64dd5f/go.mod h1:jSyAkV5svJYybuvNpfxfZxsgNzeU8mR/iEBEm1TBoMk=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20231002164131-99cfcd8f3499 h1:cmZ31mw6iMNHibRfxrN0z1xLF9RbJNCdAvEutVgQT/Y=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20231002164131-99cfcd8f3499/go.mod h1:jSyAkV5svJYybuvNpfxfZxsgNzeU8mR/iEBEm1TBoMk=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20231002164556-9ef1785174fc h1:2T+Us7FdB95SlVXfTL7ixf1UlsWDVCe65ifMixG0l5E=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20231002164556-9ef1785174fc/go.mod h1:jSyAkV5svJYybuvNpfxfZxsgNzeU8mR/iEBEm1TBoMk=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20231004095707-dce1307e95e3 h1:pwkgrj4Wn3l3c62BF/WjAlJPsJTzawFnXOZUcX1WlU8=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20231004095707-dce1307e95e3/go.mod h1:jSyAkV5svJYybuvNpfxfZxsgNzeU8mR/iEBEm1TBoMk=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20231004103042-a25872c445f1 h1:w1k8hwlMvZVxEhLU6h0ANe+uOFam1z9pUdjHOlJGFUE=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20231004103042-a25872c445f1/go.mod h1:jSyAkV5svJYybuvNpfxfZxsgNzeU8mR/iEBEm1TBoMk=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20231004103609-f3e9ae0069ad h1:0MnKRxLSyFyFiQcZ6Hu0TPdQiOgLXemNDNIQaGgEFog=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20231004103609-f3e9ae0069ad/go.mod h1:jSyAkV5svJYybuvNpfxfZxsgNzeU8mR/iEBEm1TBoMk=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20231004104447-e2deda46f44b h1:Iukt3xEJ098V4PKAKLZd5nKKaK9668jIQz4V6lCh7GQ=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20231004104447-e2deda46f44b/go.mod h1:jSyAkV5svJYybuvNpfxfZxsgNzeU8mR/iEBEm1TBoMk=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20231004105442-e95df579aad0 h1:v9BiCzZhTt/DepI8BrdtGr8oC4O6uVuDttFP2/g9VnY=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20231004105442-e95df579aad0/go.mod h1:jSyAkV5svJYybuvNpfxfZxsgNzeU8mR/iEBEm1TBoMk=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20231004151549-6c665d9db0e6 h1:+l2lripSMjRbpPQyUjaSKdILfC+k/59iO3ZS0I5XN0M=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.4-0.20231004151549-6c665d9db0e6/go.mod h1:jSyAkV5svJYybuvNpfxfZxsgNzeU8mR/iEBEm1TBoMk=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.7 h1:DxJ2MhGfc8D3t9mV9HydkSWXrc6tRV/ZuDhIHQqRUyE=
github.com/UffizziCloud/uffizzi-cluster-operator v1.3.7/go.mod h1:jSyAkV5svJYybuvNpfxfZxsgNzeU8mR/iEBEm1TBoMk=
github.com/a8m/envsubst v1.3.0 h1:GmXKmVssap0YtlU3E230W98RWtWCyIZzjtf1apWWyAg=
github.com/a8m/envsubst v1.3.0/go.mod h1:MVUTQNGQ3tsjOOtKCNd+fl8RzhsXcDvvAEzkhGtlsbY=
github.com/agiledragon/gomonkey/v2 v2.3.1 h1:k+UnUY0EMNYUFUAQVETGY9uUTxjMdnUkP0ARyJS1zzs=
Expand Down Expand Up @@ -326,7 +346,8 @@ github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgo
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
Expand Down Expand Up @@ -396,6 +417,7 @@ github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/9
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4=
github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
Expand All @@ -413,6 +435,7 @@ github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
Expand Down Expand Up @@ -585,8 +608,6 @@ golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1
golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.11.0 h1:Gi2tvZIJyBtO9SDr1q9h5hEQCp/4L2RQ+ar0qjx2oNU=
golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ=
golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50=
golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
Expand Down Expand Up @@ -671,14 +692,10 @@ golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s=
golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA=
golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.9.0 h1:GRRCnKYhdQrD8kfRAdQ6Zcw1P0OcELxGLKJvtjVMZ28=
golang.org/x/term v0.9.0/go.mod h1:M6DEAAIenWoTxdKrOltXcmDY3rSplQUkrvaDU5FcQyo=
golang.org/x/term v0.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c=
golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
Expand All @@ -690,8 +707,6 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.10.0 h1:UpjohKhiEgNc0CSauXmwYftY1+LlaC75SJwh0SgCX58=
golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4=
golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
Expand Down Expand Up @@ -913,8 +928,6 @@ k8s.io/api v0.27.2/go.mod h1:ENmbocXfBT2ADujUXcBhHV55RIT31IIEvkntP6vZKS4=
k8s.io/apiextensions-apiserver v0.27.2 h1:iwhyoeS4xj9Y7v8YExhUwbVuBhMr3Q4bd/laClBV6Bo=
k8s.io/apiextensions-apiserver v0.27.2/go.mod h1:Oz9UdvGguL3ULgRdY9QMUzL2RZImotgxvGjdWRq6ZXQ=
k8s.io/apimachinery v0.23.3/go.mod h1:BEuFMMBaIbcOqVIJqNZJXGFTP4W6AycEpb5+m/97hrM=
k8s.io/apimachinery v0.27.3 h1:Ubye8oBufD04l9QnNtW05idcOe9Z3GQN8+7PqmuVcUM=
k8s.io/apimachinery v0.27.3/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E=
k8s.io/apimachinery v0.27.4 h1:CdxflD4AF61yewuid0fLl6bM4a3q04jWel0IlP+aYjs=
k8s.io/apimachinery v0.27.4/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E=
k8s.io/client-go v0.23.3/go.mod h1:47oMd+YvAOqZM7pcQ6neJtBiFH7alOyfunYN48VsmwE=
Expand All @@ -936,8 +949,6 @@ k8s.io/metrics v0.23.3 h1:rX/RBOwqi0atFlTSlpbQ7CX5s/kfqGR9zEefCx9Rv1s=
k8s.io/metrics v0.23.3/go.mod h1:Ut8TvkbsO4oMVeUzaTArvPrcw9QRFLs2XNzUlORjdYE=
k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
k8s.io/utils v0.0.0-20211116205334-6203023598ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
k8s.io/utils v0.0.0-20230505201702-9f6742963106 h1:EObNQ3TW2D+WptiYXlApGNLVy0zm/JIBVY9i+M4wpAU=
k8s.io/utils v0.0.0-20230505201702-9f6742963106/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI=
k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
Expand All @@ -950,8 +961,6 @@ sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMm
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
sigs.k8s.io/structured-merge-diff/v4 v4.2.1/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4=
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
sigs.k8s.io/structured-merge-diff/v4 v4.3.0 h1:UZbZAZfX0wV2zr7YZorDz6GXROfDFj6LvqCRm4VUVKk=
sigs.k8s.io/structured-merge-diff/v4 v4.3.0/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08=
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
Expand Down
1 change: 1 addition & 0 deletions infrastructure/toolbox/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ RUN apk add --no-cache \
RUN pip3 install --upgrade pip
RUN pip3 install "urllib3<1.25"
RUN pip3 install pyrsistent==0.16.1
RUN pip3 install "cython<3.0.0" wheel && pip install pyyaml==5.4.1 --no-build-isolation
RUN pip3 install docker-compose
RUN echo "cryptography==3.3.2" > /tmp/requirements.txt \
&& pip3 install -U docker-compose -r /tmp/requirements.txt \
Expand Down
21 changes: 21 additions & 0 deletions internal/clients/kuber/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ func (client *Client) CreateCluster(
clusterSpec := clientsetUffizziClusterV1.UffizziClusterProps{
Name: clusterParams.Name,
Spec: v1alpha1.UffizziClusterSpec{
Sleep: false,
Manifests: &clusterParams.Manifest,
Ingress: v1alpha1.UffizziClusterIngress{
Host: clusterParams.BaseIngressHost,
Expand All @@ -31,6 +32,26 @@ func (client *Client) CreateCluster(
return client.uffizziClusterClient.UffizziClusterV1(namespace).Create(clusterSpec)
}

func (client *Client) PatchCluster(
clusterName string,
namespaceName string,
patchClusterParams domainTypes.PatchClusterParams,
) error {
clusterSpec := clientsetUffizziClusterV1.PatchUffizziClusterProps{
Spec: v1alpha1.UffizziClusterSpec{
Manifests: &patchClusterParams.Manifest,
Ingress: v1alpha1.UffizziClusterIngress{
Host: patchClusterParams.BaseIngressHost,
},
ResourceQuota: &patchClusterParams.ResourceSettings.ResourceQuota,
LimitRange: &patchClusterParams.ResourceSettings.LimitRange,
Sleep: patchClusterParams.Sleep,
},
}

return client.uffizziClusterClient.UffizziClusterV1(namespaceName).Patch(clusterName, clusterSpec)
}

func (client *Client) GetCluster(
name string,
namespace string,
Expand Down
76 changes: 68 additions & 8 deletions internal/domain_logic/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@ package domain

import (
"encoding/base64"

"fmt"
"log"

"github.com/UffizziCloud/uffizzi-cluster-operator/api/v1alpha1"
types "gitlab.com/dualbootpartners/idyl/uffizzi_controller/internal/types/domain"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

func (l *Logic) mapUffizziClusterToCluster(
Expand All @@ -18,10 +19,13 @@ func (l *Logic) mapUffizziClusterToCluster(
UID: string(ufizziCluster.ObjectMeta.UID),
}

status := clusterStatus(ufizziCluster)
cluster.Status.Ready = status
readyStatus := isClusterReady(ufizziCluster)
cluster.Status.Ready = readyStatus

sleepStatus := isClusterAsleep(ufizziCluster)
cluster.Status.Sleep = sleepStatus

if !status {
if !readyStatus {
return cluster
}

Expand Down Expand Up @@ -83,6 +87,7 @@ func (l *Logic) GetCluster(
clusterName,
namespace.Name,
)

if err != nil {
log.Printf("ClusterError: %s", err)
return nil, err
Expand All @@ -93,14 +98,69 @@ func (l *Logic) GetCluster(
return cluster, err
}

func clusterStatus(ufizziCluster *v1alpha1.UffizziCluster) bool {
func (l *Logic) PatchCluster(
clusterName string,
namespaceName string,
patchClusterParams types.PatchClusterParams,
) error {
namespace, err := l.KuberClient.FindNamespace(namespaceName)

if err != nil {
return err
}

log.Printf("namespace/%s found", namespace.Name)

err = l.KuberClient.PatchCluster(
clusterName,
namespaceName,
patchClusterParams,
)

if err != nil {
log.Printf("ClusterError: %s", err)
return err
}

return nil
}

func isClusterReady(ufizziCluster *v1alpha1.UffizziCluster) bool {
if len(ufizziCluster.Status.Conditions) == 0 {
return false
}

if ufizziCluster.Status.Conditions[0].Status == "False" {
readyCondition, err := getConditionByName(ufizziCluster.Status.Conditions, "APIReady")

if err != nil {
log.Printf("ClusterError: %s", err)
return false
}

return readyCondition.Status == "True"
}

func isClusterAsleep(ufizziCluster *v1alpha1.UffizziCluster) bool {
if len(ufizziCluster.Status.Conditions) == 0 {
return false
}

sleepCondition, err := getConditionByName(ufizziCluster.Status.Conditions, "Sleep")

if err != nil {
log.Printf("ClusterError: %s", err)
return false
} else {
return true
}

return sleepCondition.Status == "True"
}

func getConditionByName(conditions []metav1.Condition, conditionType string) (metav1.Condition, error) {
for _, condition := range conditions {
if condition.Type == conditionType {
return condition, nil
}
}

return conditions[0], fmt.Errorf("Status with type %v not found", conditionType)
}
Loading

0 comments on commit 7684c10

Please sign in to comment.