Skip to content

Commit

Permalink
Update api types (#24)
Browse files Browse the repository at this point in the history
Signed-off-by: Tamal Saha <tamal@appscode.com>
  • Loading branch information
tamalsaha committed May 18, 2020
1 parent d01f7b4 commit 6024a30
Show file tree
Hide file tree
Showing 72 changed files with 2,979 additions and 6,520 deletions.
6 changes: 3 additions & 3 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,17 @@ module kubevault.dev/cli
go 1.12

require (
github.com/appscode/go v0.0.0-20191119085241-0887d8ec2ecc
github.com/appscode/go v0.0.0-20200323182826-54e98e09185a
github.com/pkg/errors v0.8.1
github.com/spf13/cobra v0.0.5
k8s.io/apimachinery v0.0.0-20191028221656-72ed19daf4bb
k8s.io/cli-runtime v0.0.0-20191114110141-0a35778df828
k8s.io/client-go v12.0.0+incompatible
k8s.io/component-base v0.0.0-20191114102325-35a9586014f7
k8s.io/kubectl v0.0.0-20191114113550-6123e1c827f7
kmodules.xyz/client-go v0.0.0-20200108114229-70ba8841e60f
kmodules.xyz/client-go v0.0.0-20200518125232-435dcc370844
kmodules.xyz/custom-resources v0.0.0-20191130062942-f41b54f62419
kubevault.dev/operator v0.3.0
kubevault.dev/operator v0.3.1-0.20200518182915-4e709413c4d1
)

replace (
Expand Down
10 changes: 6 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb
github.com/apple/foundationdb/bindings/go v0.0.0-20190411004307-cd5c9d91fad2/go.mod h1:OMVSB21p9+xQUIqlGizHPZfjK+SHws1ht+ZytVDoz9U=
github.com/appscode/go v0.0.0-20191119085241-0887d8ec2ecc h1:Q5jwbRq/a1Tien+Is8Zn6HMBRgE13+UOQ9mTvrIuvuE=
github.com/appscode/go v0.0.0-20191119085241-0887d8ec2ecc/go.mod h1:OawnOmAL4ZX3YaPdN+8HTNwBveT1jMsqP74moa9XUbE=
github.com/appscode/go v0.0.0-20200323182826-54e98e09185a h1:cZ80NKoLRaW1PVCWXAJE+YFkBAmLZ8BnrJmH0ClY1Gs=
github.com/appscode/go v0.0.0-20200323182826-54e98e09185a/go.mod h1:lIcm8Z6VPuvcw/a3EeOWcG6R3I13iHMLYbtVP7TKufY=
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
Expand Down Expand Up @@ -970,8 +972,8 @@ k8s.io/utils v0.0.0-20190801114015-581e00157fb1 h1:+ySTxfHnfzZb9ys375PXNlLhkJPLK
k8s.io/utils v0.0.0-20190801114015-581e00157fb1/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=
kmodules.xyz/client-go v0.0.0-20191127054604-26981530831d h1:hcgo8g2vWx3jVEcbWyeOBZHpWKjS99WPH3Iboik/OIE=
kmodules.xyz/client-go v0.0.0-20191127054604-26981530831d/go.mod h1:OFxuKCiVR+MYlR2a08FkfaF+IbXkLe0xBetu2LTUuGI=
kmodules.xyz/client-go v0.0.0-20200108114229-70ba8841e60f h1:5ESkNkJbL/oqn82REmxuQUm4WKVFZeuU3P4mEvI24JM=
kmodules.xyz/client-go v0.0.0-20200108114229-70ba8841e60f/go.mod h1:OFxuKCiVR+MYlR2a08FkfaF+IbXkLe0xBetu2LTUuGI=
kmodules.xyz/client-go v0.0.0-20200518125232-435dcc370844 h1:+g4XBo2szMo3/uPlUrEJjOwyEgv4NRAu0YSlDQOLFDw=
kmodules.xyz/client-go v0.0.0-20200518125232-435dcc370844/go.mod h1:z/AkrES60XR+jeKGg5zJyPd13NdG/Di0BptbG1gnS60=
kmodules.xyz/constants v0.0.0-20191024095500-cd4313df4aa6/go.mod h1:DbiFk1bJ1KEO94t1SlAn7tzc+Zz95rSXgyUKa2nzPmY=
kmodules.xyz/crd-schema-fuzz v0.0.0-20191129174258-81f984340891/go.mod h1:9NXNZ4xhqof0WngtIuo4vl+WoCQpLJEJcyuEo3mPpiM=
kmodules.xyz/custom-resources v0.0.0-20191130062942-f41b54f62419 h1:o6KD8XMxdyRR3rqScTsWvcufFDT7vQBnYXpHUp6UtRg=
Expand All @@ -982,8 +984,8 @@ kmodules.xyz/offshoot-api v0.0.0-20200103145223-2c4f520520d2 h1:c/wxNy8KgaS8v/ht
kmodules.xyz/offshoot-api v0.0.0-20200103145223-2c4f520520d2/go.mod h1:k1M+OOFHbMeS6N6OB2j9smKfMCyQOEQjZ3SLZ/KSe+w=
kmodules.xyz/openshift v0.0.0-20191127054841-113eeb13704f/go.mod h1:de9+Zk2+wtGhRmGFBZ9T4+0lJZr4rHXW0dHffCaeO+g=
kmodules.xyz/webhook-runtime v0.0.0-20191127075323-d4bfdee6974d/go.mod h1:aaaxyAmKOpw0ey3LrpBkqWq0LTl35f9PW6mhwVDBMow=
kubevault.dev/operator v0.3.0 h1:oWMuuf7irbs2pZNRTqrro9Y2o5ecDaAVDt52is7G9WQ=
kubevault.dev/operator v0.3.0/go.mod h1:WP/xQt9OKDptISJBiOadbHhURQnezA9vJ5HorScI9jw=
kubevault.dev/operator v0.3.1-0.20200518182915-4e709413c4d1 h1:id58VARu4vf2gBTIkmw0M2fFWZveZ0g5UZSJQPxHijI=
kubevault.dev/operator v0.3.1-0.20200518182915-4e709413c4d1/go.mod h1:l7k2g1uqegvaaVw/5wPRpno72glK8Y+4kMKKCRUTTfg=
layeh.com/radius v0.0.0-20190322222518-890bc1058917/go.mod h1:fywZKyu//X7iRzaxLgPWsvc0L26IUpVvE/aeIL2JtIQ=
modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw=
modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk=
Expand Down
41 changes: 21 additions & 20 deletions pkg/cmds/approve.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import (
"k8s.io/cli-runtime/pkg/resource"
clientsetscheme "k8s.io/client-go/kubernetes/scheme"
cmdutil "k8s.io/kubectl/pkg/cmd/util"
kmapi "kmodules.xyz/client-go/api/v1"
)

var (
Expand All @@ -39,26 +40,26 @@ var (
)

var (
awsApprovedCond = engineapi.AWSAccessKeyRequestCondition{
Type: engineapi.AccessApproved,
awsApprovedCond = kmapi.Condition{
Type: kmapi.ConditionRequestApproved,
Reason: "KubectlApprove",
Message: "This was approved by kubectl vault approve awsaccesskeyrequest",
}

dbApprovedCond = engineapi.DatabaseAccessRequestCondition{
Type: engineapi.AccessApproved,
dbApprovedCond = kmapi.Condition{
Type: kmapi.ConditionRequestApproved,
Reason: "KubectlApprove",
Message: "This was approved by kubectl vault approve databaseaccessrequest",
}

gcpApprovedCond = engineapi.GCPAccessKeyRequestCondition{
Type: engineapi.AccessApproved,
gcpApprovedCond = kmapi.Condition{
Type: kmapi.ConditionRequestApproved,
Reason: "KubectlApprove",
Message: "This was approved by kubectl vault approve gcpaccesskeyrequest",
}

azureApprovedCond = engineapi.AzureAccessKeyRequestCondition{
Type: engineapi.AccessApproved,
azureApprovedCond = kmapi.Condition{
Type: kmapi.ConditionRequestApproved,
Reason: "KubectlApprove",
Message: "This was approved by kubectl vault approve azureaccesskeyrequest",
}
Expand Down Expand Up @@ -146,28 +147,28 @@ func modifyStatusCondition(clientGetter genericclioptions.RESTClientGetter, isAp
if isApproveReq {
cond = awsApprovedCond
}
err2 = UpdateAWSAccessKeyRequestCondition(engineClient, obj, cond)
err2 = UpdateAWSAccessKeyRequestCondition(engineClient, obj.ObjectMeta, cond)
case *engineapi.DatabaseAccessRequest:
obj := info.Object.(*engineapi.DatabaseAccessRequest)
cond := dbDeniedCond
if isApproveReq {
cond = dbApprovedCond
}
err2 = UpdateDBAccessRequestCondition(engineClient, obj, cond)
err2 = UpdateDBAccessRequestCondition(engineClient, obj.ObjectMeta, cond)
case *engineapi.GCPAccessKeyRequest:
obj := info.Object.(*engineapi.GCPAccessKeyRequest)
cond := gcpDeniedCond
if isApproveReq {
cond = gcpApprovedCond
}
err2 = UpdateGCPAccessKeyRequest(engineClient, obj, cond)
err2 = UpdateGCPAccessKeyRequest(engineClient, obj.ObjectMeta, cond)
case *engineapi.AzureAccessKeyRequest:
obj := info.Object.(*engineapi.AzureAccessKeyRequest)
cond := azureDeniedCond
if isApproveReq {
cond = azureApprovedCond
}
err2 = UpdateAzureAccessKeyRequest(engineClient, obj, cond)
err2 = UpdateAzureAccessKeyRequest(engineClient, obj.ObjectMeta, cond)
default:
err2 = errors.New("unknown/unsupported type")
}
Expand All @@ -180,56 +181,56 @@ func modifyStatusCondition(clientGetter genericclioptions.RESTClientGetter, isAp
return err
}

func UpdateAWSAccessKeyRequestCondition(c enginecs.EngineV1alpha1Interface, awsAKR *engineapi.AWSAccessKeyRequest, cond engineapi.AWSAccessKeyRequestCondition) error {
func UpdateAWSAccessKeyRequestCondition(c enginecs.EngineV1alpha1Interface, awsAKR metav1.ObjectMeta, cond kmapi.Condition) error {
_, err := engineutil.UpdateAWSAccessKeyRequestStatus(c, awsAKR, func(in *engineapi.AWSAccessKeyRequestStatus) *engineapi.AWSAccessKeyRequestStatus {
for _, c := range in.Conditions {
if c.Type == cond.Type {
return in
}
}
cond.LastUpdateTime = metav1.Now()
cond.LastTransitionTime = metav1.Now()
in.Conditions = append(in.Conditions, cond)
return in
})
return err
}

func UpdateDBAccessRequestCondition(c enginecs.EngineV1alpha1Interface, dbAR *engineapi.DatabaseAccessRequest, cond engineapi.DatabaseAccessRequestCondition) error {
func UpdateDBAccessRequestCondition(c enginecs.EngineV1alpha1Interface, dbAR metav1.ObjectMeta, cond kmapi.Condition) error {
_, err := engineutil.UpdateDatabaseAccessRequestStatus(c, dbAR, func(in *engineapi.DatabaseAccessRequestStatus) *engineapi.DatabaseAccessRequestStatus {
for _, c := range in.Conditions {
if c.Type == cond.Type {
return in
}
}
cond.LastUpdateTime = metav1.Now()
cond.LastTransitionTime = metav1.Now()
in.Conditions = append(in.Conditions, cond)
return in
})
return err
}

func UpdateGCPAccessKeyRequest(c enginecs.EngineV1alpha1Interface, gcpAKR *engineapi.GCPAccessKeyRequest, cond engineapi.GCPAccessKeyRequestCondition) error {
func UpdateGCPAccessKeyRequest(c enginecs.EngineV1alpha1Interface, gcpAKR metav1.ObjectMeta, cond kmapi.Condition) error {
_, err := engineutil.UpdateGCPAccessKeyRequestStatus(c, gcpAKR, func(in *engineapi.GCPAccessKeyRequestStatus) *engineapi.GCPAccessKeyRequestStatus {
for _, c := range in.Conditions {
if c.Type == cond.Type {
return in
}
}
cond.LastUpdateTime = metav1.Now()
cond.LastTransitionTime = metav1.Now()
in.Conditions = append(in.Conditions, cond)
return in
})
return err
}

func UpdateAzureAccessKeyRequest(c enginecs.EngineV1alpha1Interface, azureAKR *engineapi.AzureAccessKeyRequest, cond engineapi.AzureAccessKeyRequestCondition) error {
func UpdateAzureAccessKeyRequest(c enginecs.EngineV1alpha1Interface, azureAKR metav1.ObjectMeta, cond kmapi.Condition) error {
_, err := engineutil.UpdateAzureAccessKeyRequestStatus(c, azureAKR, func(in *engineapi.AzureAccessKeyRequestStatus) *engineapi.AzureAccessKeyRequestStatus {
for _, c := range in.Conditions {
if c.Type == cond.Type {
return in
}
}
cond.LastUpdateTime = metav1.Now()
cond.LastTransitionTime = metav1.Now()
in.Conditions = append(in.Conditions, cond)
return in
})
Expand Down
25 changes: 12 additions & 13 deletions pkg/cmds/deny.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,39 +19,38 @@ import (
"fmt"
"os"

engineapi "kubevault.dev/operator/apis/engine/v1alpha1"

"github.com/spf13/cobra"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/cli-runtime/pkg/genericclioptions"
_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
cmdutil "k8s.io/kubectl/pkg/cmd/util"
kmapi "kmodules.xyz/client-go/api/v1"
)

var (
awsDeniedCond = engineapi.AWSAccessKeyRequestCondition{
Type: engineapi.AccessDenied,
awsDeniedCond = kmapi.Condition{
Type: kmapi.ConditionRequestDenied,
Reason: "KubectlDeny",
Message: "This was denied by kubectl vault deny awsaccesskeyrequest",
}

dbDeniedCond = engineapi.DatabaseAccessRequestCondition{
Type: engineapi.AccessDenied,
dbDeniedCond = kmapi.Condition{
Type: kmapi.ConditionRequestDenied,
Reason: "KubectlDeny",
Message: "This was denied by kubectl vault deny databaseaccessrequest",
}

gcpDeniedCond = engineapi.GCPAccessKeyRequestCondition{
Type: engineapi.AccessDenied,
gcpDeniedCond = kmapi.Condition{
Type: kmapi.ConditionRequestDenied,
Reason: "KubectlDeny",
Message: "This was denied by kubectl vault deny gcpaccesskeyrequest",
}

azureDeniedCond = engineapi.AzureAccessKeyRequestCondition{
Type: engineapi.AccessDenied,
Reason: "KubectlDeny",
Message: "This was denied by kubectl vault deny azureaccesskeyrequest",
LastUpdateTime: v1.Time{},
azureDeniedCond = kmapi.Condition{
Type: kmapi.ConditionRequestDenied,
Reason: "KubectlDeny",
Message: "This was denied by kubectl vault deny azureaccesskeyrequest",
LastTransitionTime: v1.Time{},
}
)

Expand Down
60 changes: 57 additions & 3 deletions vendor/kmodules.xyz/client-go/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ GO_PKG := kmodules.xyz
REPO := $(notdir $(shell pwd))
BIN := client-go

# https://github.com/appscodelabs/gengo-builder
CODE_GENERATOR_IMAGE ?= appscode/gengo:release-1.16

# This version-strategy uses git tags to set the version string
git_branch := $(shell git rev-parse --abbrev-ref HEAD)
git_tag := $(shell git describe --exact-match --abbrev=0 2>/dev/null || echo "")
Expand All @@ -43,7 +46,7 @@ endif
### These variables should not need tweaking.
###

SRC_DIRS := *.go admissionregistration apiextensions apiregistration apps batch bin certificates core discovery dynamic extensions logs meta openapi policy rbac storage tools
SRC_DIRS := *.go admissionregistration api apiextensions apiregistration apps batch bin certificates core discovery dynamic extensions logs meta openapi policy rbac storage tools

DOCKER_PLATFORMS := linux/amd64 linux/arm linux/arm64
BIN_PLATFORMS := $(DOCKER_PLATFORMS)
Expand Down Expand Up @@ -98,9 +101,60 @@ version:
@echo commit_hash=$(commit_hash)
@echo commit_timestamp=$(commit_timestamp)

# Generate a typed clientset
.PHONY: clientset
clientset:
@docker run --rm \
-u $$(id -u):$$(id -g) \
-v /tmp:/.cache \
-v $$(pwd):$(DOCKER_REPO_ROOT) \
-w $(DOCKER_REPO_ROOT) \
--env HTTP_PROXY=$(HTTP_PROXY) \
--env HTTPS_PROXY=$(HTTPS_PROXY) \
$(CODE_GENERATOR_IMAGE) \
deepcopy-gen \
--go-header-file "./hack/license/go.txt" \
--input-dirs "$(GO_PKG)/$(REPO)/api/v1" \
--output-file-base zz_generated.deepcopy

# Generate openapi schema
.PHONY: openapi
openapi:
@echo "Generating openapi schema"
@docker run --rm \
-u $$(id -u):$$(id -g) \
-v /tmp:/.cache \
-v $$(pwd):$(DOCKER_REPO_ROOT) \
-w $(DOCKER_REPO_ROOT) \
--env HTTP_PROXY=$(HTTP_PROXY) \
--env HTTPS_PROXY=$(HTTPS_PROXY) \
$(CODE_GENERATOR_IMAGE) \
openapi-gen \
--v 1 --logtostderr \
--go-header-file "./hack/license/go.txt" \
--input-dirs "$(GO_PKG)/$(REPO)/api/v1" \
--output-package "$(GO_PKG)/$(REPO)/api/v1" \
--report-filename /tmp/violation_exceptions.list

.PHONY: gen-crd-protos
gen-crd-protos:
@docker run --rm \
-u $$(id -u):$$(id -g) \
-v /tmp:/.cache \
-v $$(pwd):$(DOCKER_REPO_ROOT) \
-w $(DOCKER_REPO_ROOT) \
--env HTTP_PROXY=$(HTTP_PROXY) \
--env HTTPS_PROXY=$(HTTPS_PROXY) \
$(CODE_GENERATOR_IMAGE) \
go-to-protobuf \
--go-header-file "./hack/license/go.txt" \
--proto-import=$(DOCKER_REPO_ROOT)/vendor \
--proto-import=$(DOCKER_REPO_ROOT)/third_party/protobuf \
--apimachinery-packages=-k8s.io/apimachinery/pkg/api/resource,-k8s.io/apimachinery/pkg/apis/meta/v1,-k8s.io/apimachinery/pkg/apis/meta/v1beta1,-k8s.io/apimachinery/pkg/runtime,-k8s.io/apimachinery/pkg/runtime/schema,-k8s.io/apimachinery/pkg/util/intstr \
--packages=-k8s.io/api/core/v1,kmodules.xyz/client-go/api/v1

.PHONY: gen
gen:
@true
gen: clientset openapi gen-crd-protos

fmt: $(BUILD_DIRS)
@docker run \
Expand Down
Loading

0 comments on commit 6024a30

Please sign in to comment.