Skip to content

Commit

Permalink
Merge branch 'master' into 945-cancel-list-on-mount-seconds
Browse files Browse the repository at this point in the history
  • Loading branch information
anneliawa authored Nov 9, 2023
2 parents ecb9ec7 + f4d0062 commit 87b4b9f
Show file tree
Hide file tree
Showing 54 changed files with 2,515 additions and 1,385 deletions.
38 changes: 31 additions & 7 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,24 @@
"env": {},
"args": [
"--RADIX_APP=radix-job-demo",
"--JOB_NAME=radix-pipeline-20230321154251-nntcf",
"--JOB_NAME=radix-pipeline-20231030143058-mtwyg",
"--PIPELINE_TYPE=build-deploy",
"--RADIX_TEKTON_IMAGE=radix-tekton:main-latest",
"--RADIX_IMAGE_BUILDER=radix-image-builder:master-latest",
"--RADIX_BUILDAH_IMAGE_BUILDER=quay.io/buildah/stable:v1.31",
"--SECCOMP_PROFILE_FILENAME=allow-buildah.json",
"--RADIX_CLUSTER_TYPE=development",
"--RADIX_ZONE=dev",
"--RADIX_CLUSTERNAME=weekly-12",
"--RADIX_CLUSTERNAME=weekly-44",
"--RADIX_CONTAINER_REGISTRY=radixdev.azurecr.io",
"--AZURE_SUBSCRIPTION_ID=16ede44b-1f74-40a5-b428-46cca9a5741b",
"--IMAGE_TAG=nntcf",
"--IMAGE_TAG=abcde",
"--BRANCH=main",
"--COMMIT_ID=2bd977cd31687ae97f00b5b7bf0fe44a7608611a",
"--COMMIT_ID=890e19c7bea84678d684daa2a9363cd8be4940bb",
"--PUSH_IMAGE=true",
"--USE_CACHE=true",
"--RADIX_FILE_NAME=/workspace/radixconfig.yaml",
"--TO_ENVIRONMENT=dev",
"--TO_ENVIRONMENT=qa",
"--IMAGE_TAG_NAME=server=1.23-alpine-slim",
"--IMAGE_TAG_NAME=server2=1.22.1-alpine-perl"
]
Expand All @@ -38,17 +40,39 @@
"program": "${workspaceFolder}/pipeline-runner/main.go",
"env": {},
"args": [
"--RADIX_APP=radix-github-webhook",
"--RADIX_APP=radix-job-demo",
"--IMAGE_TAG=abcdef",
"--JOB_NAME=radix-pipeline-promotion-1",
"--PIPELINE_TYPE=promote",
"--RADIX_TEKTON_IMAGE=radix-tekton:main-latest",
"--FROM_ENVIRONMENT=qa",
"--TO_ENVIRONMENT=prod",
"--DEPLOYMENT_NAME=qa-etxkt-ac6rxchq",
"--DEBUG=true",
"--RADIX_CONTAINER_REGISTRY=radixdev.azurecr.io"
]
},
{
"name": "Launch-deploy-pipeline",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}/pipeline-runner/main.go",
"env": {},
"args": [
"--RADIX_APP=radix-job-demo",
"--JOB_NAME=radix-pipeline-20231030091802-mfzoz",
"--PIPELINE_TYPE=deploy",
"--RADIX_TEKTON_IMAGE=radix-tekton:main-latest",
"--TO_ENVIRONMENT=prod",
"--DEBUG=true",
"--RADIX_FILE_NAME=/workspace/radixconfig.yaml",
"--RADIX_CLUSTER_TYPE=development",
"--RADIX_ZONE=dev",
"--RADIX_CLUSTERNAME=weekly-44",
"--RADIX_CONTAINER_REGISTRY=radixdev.azurecr.io"
]
},
{
"name": "Launch-operator",
"type": "go",
Expand All @@ -73,7 +97,7 @@
"RADIXOPERATOR_APP_ROLLING_UPDATE_MAX_SURGE": "25%",
"RADIXOPERATOR_APP_READINESS_PROBE_INITIAL_DELAY_SECONDS": "5",
"RADIXOPERATOR_APP_READINESS_PROBE_PERIOD_SECONDS": "10",
"RADIX_ACTIVE_CLUSTERNAME": "weekly-xx",
"RADIX_ACTIVE_CLUSTERNAME": "weekly-45",
"RADIX_IMAGE_BUILDER": "radix-image-builder:master-latest",
"RADIX_TEKTON_IMAGE": "radix-tekton:main-latest",
"RADIXOPERATOR_JOB_SCHEDULER": "radix-job-scheduler:main-latest",
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ mocks:
mockgen -source ./pkg/apis/batch/syncer.go -destination ./pkg/apis/batch/syncer_mock.go -package batch
mockgen -source ./pkg/apis/batch/syncerfactory.go -destination ./pkg/apis/batch/syncerfactory_mock.go -package batch
mockgen -source ./radix-operator/common/handler.go -destination ./radix-operator/common/handler_mock.go -package common
mockgen -source ./pipeline-runner/wait/job.go -destination ./pipeline-runner/wait/job_mock.go -package wait
mockgen -source ./pipeline-runner/internal/wait/job.go -destination ./pipeline-runner/internal/wait/job_mock.go -package wait

.PHONY: build-pipeline
build-pipeline:
Expand Down
4 changes: 2 additions & 2 deletions charts/radix-operator/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
apiVersion: v2
name: radix-operator
version: 1.24.1
appVersion: 1.44.1
version: 1.25.1
appVersion: 1.45.1
kubeVersion: ">=1.24.0"
description: Radix Operator
keywords:
Expand Down
12 changes: 6 additions & 6 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,15 @@ require (
github.com/equinor/radix-common v1.5.0
github.com/golang/mock v1.6.0
github.com/google/uuid v1.3.0
github.com/pkg/errors v0.9.1
github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.64.1
github.com/prometheus-operator/prometheus-operator/pkg/client v0.64.1
github.com/prometheus/client_golang v1.16.0
github.com/sirupsen/logrus v1.9.3
github.com/spf13/cobra v1.7.0
github.com/spf13/viper v1.16.0
github.com/stretchr/testify v1.8.4
golang.org/x/crypto v0.11.0
golang.org/x/crypto v0.14.0
golang.org/x/sync v0.2.0
gopkg.in/yaml.v3 v3.0.1
k8s.io/api v0.27.6
Expand Down Expand Up @@ -55,7 +56,6 @@ require (
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/pelletier/go-toml/v2 v2.0.8 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/prometheus/client_model v0.4.0 // indirect
github.com/prometheus/common v0.42.0 // indirect
Expand All @@ -66,11 +66,11 @@ require (
github.com/spf13/pflag v1.0.5 // indirect
github.com/stretchr/objx v0.5.0 // indirect
github.com/subosito/gotenv v1.4.2 // indirect
golang.org/x/net v0.10.0 // indirect
golang.org/x/net v0.17.0 // indirect
golang.org/x/oauth2 v0.8.0 // indirect
golang.org/x/sys v0.10.0 // indirect
golang.org/x/term v0.10.0 // indirect
golang.org/x/text v0.11.0 // indirect
golang.org/x/sys v0.13.0 // indirect
golang.org/x/term v0.13.0 // indirect
golang.org/x/text v0.13.0 // indirect
golang.org/x/time v0.3.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/protobuf v1.30.0 // indirect
Expand Down
20 changes: 10 additions & 10 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -302,8 +302,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA=
golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio=
golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc=
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
Expand Down Expand Up @@ -372,8 +372,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
Expand Down Expand Up @@ -437,11 +437,11 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220908164124-27713097b956/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/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
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/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek=
golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
Expand All @@ -451,8 +451,8 @@ 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.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4=
golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import (
"strings"
"testing"

"github.com/equinor/radix-operator/pipeline-runner/utils/commandbuilder"
"github.com/equinor/radix-operator/pipeline-runner/internal/commandbuilder"
"github.com/stretchr/testify/assert"
)

Expand Down
64 changes: 64 additions & 0 deletions pipeline-runner/internal/hash/encoding.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
package hash

import (
"encoding/binary"
"fmt"
"math"
"reflect"

yamlk8s "sigs.k8s.io/yaml"
)

type encoder func(v any) ([]byte, error)

func boolEncoder(v any) ([]byte, error) {
if reflect.ValueOf(v).Bool() {
return []byte{1}, nil
}
return []byte{0}, nil
}

func intEncoder(v any) ([]byte, error) {
vt := reflect.ValueOf(v)
return binary.AppendVarint([]byte{}, vt.Int()), nil
}

func uintEncoder(v any) ([]byte, error) {
vt := reflect.ValueOf(v)
return binary.AppendUvarint([]byte{}, vt.Uint()), nil
}

func floatEncoder(v any) ([]byte, error) {
vt := reflect.ValueOf(v)
return uintEncoder(math.Float64bits(vt.Float()))
}

func stringEncoder(v any) ([]byte, error) {
vt := reflect.ValueOf(v)
return []byte(vt.String()), nil
}

func structEncoder(v any) ([]byte, error) {
b, err := yamlk8s.Marshal(v)
return b, err
}

func getEncoder(v any) (encoder, error) {
t := reflect.Indirect(reflect.ValueOf(v))

switch t.Kind() {
case reflect.Bool:
return boolEncoder, nil
case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
return intEncoder, nil
case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
return uintEncoder, nil
case reflect.Float32, reflect.Float64:
return floatEncoder, nil
case reflect.String:
return stringEncoder, nil
case reflect.Struct, reflect.Map, reflect.Slice, reflect.Array:
return structEncoder, nil
}
return nil, fmt.Errorf("encoder for type %s not supported", t.Kind().String())
}
62 changes: 62 additions & 0 deletions pipeline-runner/internal/hash/hash.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package hash

import (
"encoding/hex"
"fmt"
"strings"
)

type Algorithm string

const (
hashStringSeparator string = "="
)

type sumFunc func(in []byte) []byte

var sumProviders map[Algorithm]sumFunc = map[Algorithm]sumFunc{}

func registerProvider(alg Algorithm, provider sumFunc) {
sumProviders[alg] = provider
}

func ToHashString(alg Algorithm, source any) (string, error) {
sum, found := sumProviders[alg]
if !found {
return "", fmt.Errorf("hash algorithm %s not found", alg)
}

encode, err := getEncoder(source)
if err != nil {
return "", err
}

b, err := encode(source)
if err != nil {
return "", err
}

hashBytes := sum(b)
return joinToHashString(alg, hex.EncodeToString(hashBytes)), nil
}

func CompareWithHashString(source any, targetHashString string) (bool, error) {
alg := extractAlgorithmFromHashString(targetHashString)
sourceHashString, err := ToHashString(alg, source)
if err != nil {
return false, err
}
return targetHashString == sourceHashString, nil
}

func joinToHashString(alg Algorithm, hash string) string {
return fmt.Sprintf("%s%s%s", alg, hashStringSeparator, hash)
}

func extractAlgorithmFromHashString(hashString string) Algorithm {
parts := strings.Split(hashString, hashStringSeparator)
if len(parts) != 2 {
return ""
}
return Algorithm(parts[0])
}
Loading

0 comments on commit 87b4b9f

Please sign in to comment.