Skip to content

Bump golang.org/x/net from 0.0.0-20220722155237-a158d28d115b to 0.7.0 in /PetAdoptions/cdk/pet_stack/resources/event-demos/riv-cop301-2022/ecs-api #205

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 56 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
10a8051
Upgrade otel and remove tests
awsimaya Feb 26, 2023
05db7bb
Merge branch 'upgrade-otel' into 'main'
awsimaya Feb 26, 2023
6b6918f
Merge pull request #210 from aws-samples/upgrade-otel
awsimaya Feb 26, 2023
dd19bee
Remove harcoded region
bonclay7 Mar 1, 2023
0523374
Merge branch 'fix/region-hardcode' into 'main'
awsimaya Mar 1, 2023
20914a5
Merge pull request #213 from aws-samples/fix-region
awsimaya Mar 1, 2023
8b3468a
Store the name of the petsearch image in SSM
rapphil Mar 9, 2023
00be7d8
Refactor to use bean instead of Global OpenTelemetry
rapphil Mar 20, 2023
03652ff
Merge branch 'refactor-opentelemetry-bean' into 'main'
awsimaya Mar 28, 2023
2753f52
ee bash change
awsimaya Mar 31, 2023
79e4d76
Merge branch 'bash-change' into 'main'
awsimaya Mar 31, 2023
4dfb0b3
Merge branch 'raphasil-set-image-parameter' into 'main'
awsimaya Mar 31, 2023
017a51c
Add collector configuration for manual instrumentation
rapphil Apr 10, 2023
af8bbc9
add folder creation and clone
awsimaya Apr 10, 2023
7b6c1cc
Removed repository cloning
rapgaws Apr 10, 2023
dba919e
Merge branch 'revert-bashchanges' into 'main'
rapgaws Apr 10, 2023
b02d75b
Removed trailing comma
rapgaws Apr 10, 2023
c3d530e
Added Resource Controller Widget
Apr 11, 2023
5d6960a
Merge branch 'revert-bashchanges' into 'main'
rapgaws Apr 11, 2023
8010e15
Merge pull request #215 from aws-samples/remove-clone
awsimaya Apr 11, 2023
9eba052
made code more robust
Apr 17, 2023
cec4e47
Merge branch 'raphasil-add-collector-configuration-manual-instrumenta…
awsimaya Apr 18, 2023
96ffb70
removed older package
Apr 18, 2023
b2a0911
Merge branch 'main' into 'main'
awsimaya Apr 18, 2023
d0c542f
Add traffic delay
awsimaya Apr 21, 2023
2e98673
Merge branch 'delay-traffic' into 'main'
awsimaya Apr 21, 2023
0f76914
Merge pull request #217 from aws-samples/delay-traffic
awsimaya Apr 21, 2023
17af91e
GitOps with AMG
elamaran11 Apr 27, 2023
8b71cf0
GitOps with AMG
elamaran11 Apr 27, 2023
335153f
GitOps with AMG
elamaran11 Apr 27, 2023
2e7fc03
GitOps with AMG
elamaran11 Apr 27, 2023
1e82aaa
GitOps with AMG
elamaran11 Apr 27, 2023
1eb3945
GitOps with AMG
elamaran11 Apr 27, 2023
2a8706d
GitOps with AMG
elamaran11 Apr 27, 2023
0458415
GitOps with AMG
elamaran11 Apr 27, 2023
6d0f149
GitOps with AMG
elamaran11 Apr 27, 2023
1162e80
GitOps with AMG
elamaran11 Apr 27, 2023
ade5093
GitOps with AMG
elamaran11 Apr 27, 2023
819a9a3
GitOps with AMG
elamaran11 Apr 27, 2023
78ddb20
GitOps with AMG
elamaran11 Apr 27, 2023
4793caa
Merge pull request #218 from elamaran11/feature/gitopsWithGrafana
awsimaya Apr 27, 2023
a238091
Use remote file for cleanup
May 1, 2023
e5768b1
Merge branch 'use-remote-path-for-cleanup' into 'main'
awsimaya May 1, 2023
414d972
Automatically delete all images when ECR repo is removed (new CDK fea…
May 1, 2023
4f75467
Validation
May 1, 2023
6c300f7
First delete Services stack, then Applications stack (as indicated in…
May 1, 2023
cb66700
Merge branch 'main' into fix-cleanup
May 1, 2023
4448f23
First delete Applications, then Services
May 1, 2023
a2089e5
Delete petadoption S3 bucket (pet images)
May 2, 2023
3c3c286
Fix whitespace
May 2, 2023
71b076a
PetAdoption S3 bucket is now deleted in CDK (new feature)
May 2, 2023
73ab1ab
Update go packages
bonclay7 Jun 1, 2023
159e175
Merge branch 'fix-cleanup' into 'main'
awsimaya Jun 1, 2023
4c4b0a5
Merge pull request #225 from aws-samples/clean-destroy
awsimaya Jun 2, 2023
1e263f5
Merge pull request #224 from aws-samples/deps-update
awsimaya Jun 2, 2023
60c876e
Bump golang.org/x/net
dependabot[bot] Jun 5, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ export class ContainerImageBuilder extends Construct {
const repository = new ecr.Repository(this, props.repositoryName + 'Repository', {
repositoryName: props.repositoryName,
imageScanOnPush: true,
removalPolicy: cdk.RemovalPolicy.DESTROY
removalPolicy: cdk.RemovalPolicy.DESTROY,
autoDeleteImages: true,
});
const image = new ecrassets.DockerImageAsset(this, props.repositoryName + 'DockerImageAsset', {
directory: props.dockerImageAssetDirectory
Expand Down
94 changes: 75 additions & 19 deletions PetAdoptions/cdk/pet_stack/lib/services.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ import * as rds from 'aws-cdk-lib/aws-rds';
import * as ssm from 'aws-cdk-lib/aws-ssm';
import * as eks from 'aws-cdk-lib/aws-eks';
import * as yaml from 'js-yaml';
import * as path from 'path';
import * as lambda from 'aws-cdk-lib/aws-lambda';
import * as elbv2 from 'aws-cdk-lib/aws-elasticloadbalancingv2';
import * as cloud9 from 'aws-cdk-lib/aws-cloud9';
import * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';
Expand Down Expand Up @@ -58,7 +60,9 @@ export class Services extends Stack {

// Creates an S3 bucket to store pet images
const s3_observabilitypetadoptions = new s3.Bucket(this, 's3bucket_petadoption', {
publicReadAccess: false
publicReadAccess: false,
autoDeleteObjects: true,
removalPolicy: RemovalPolicy.DESTROY,
});

// Creates the DynamoDB table for Petadoption data
Expand Down Expand Up @@ -172,12 +176,13 @@ export class Services extends Stack {

ecsServicesSecurityGroup.addIngressRule(ec2.Peer.ipv4(theVPC.vpcCidrBlock), ec2.Port.tcp(80));

const ecsPayForAdoptionCluster = new ecs.Cluster(this, "PayForAdoption", {
vpc: theVPC,
containerInsights: true
});
// PayForAdoption service definitions-----------------------------------------------------------------------
const payForAdoptionService = new PayForAdoptionService(this, 'pay-for-adoption-service', {
cluster: new ecs.Cluster(this, "PayForAdoption", {
vpc: theVPC,
containerInsights: true
}),
cluster: ecsPayForAdoptionCluster,
logGroupName: "/ecs/PayForAdoption",
cpu: 1024,
memoryLimitMiB: 2048,
Expand Down Expand Up @@ -214,12 +219,13 @@ export class Services extends Stack {
});
listAdoptionsService.taskDefinition.taskRole?.addToPrincipalPolicy(readSSMParamsPolicy);

const ecsPetSearchCluster = new ecs.Cluster(this, "PetSearch", {
vpc: theVPC,
containerInsights: true
});
// PetSearch service definitions-----------------------------------------------------------------------
const searchService = new SearchService(this, 'search-service', {
cluster: new ecs.Cluster(this, "PetSearch", {
vpc: theVPC,
containerInsights: true
}),
cluster: ecsPetSearchCluster,
logGroupName: "/ecs/PetSearch",
cpu: 1024,
memoryLimitMiB: 2048,
Expand Down Expand Up @@ -467,13 +473,7 @@ export class Services extends Stack {
instanceType: "t2.micro",
name: "observabilityworkshop",
subnetId: theVPC.privateSubnets[0].subnetId,
connectionType: 'CONNECT_SSM',
repositories: [
{
repositoryUrl: "https://github.com/aws-samples/one-observability-demo.git",
pathComponent: "/one-observability-demo"
}
]
connectionType: 'CONNECT_SSM'
});

c9role = new iam.Role(this,'cloud9InstanceRole', {
Expand Down Expand Up @@ -607,9 +607,8 @@ export class Services extends Stack {

prometheusManifest.node.addDependency(fluentbitManifest); // Namespace creation dependency



var dashboardBody = readFileSync("./resources/cw_dashboard_fluent_bit.json","utf-8");

var dashboardBody = readFileSync("./resources/cw_dashboard_fluent_bit.json","utf-8");
dashboardBody = dashboardBody.replaceAll("{{YOUR_CLUSTER_NAME}}","PetSite");
dashboardBody = dashboardBody.replaceAll("{{YOUR_AWS_REGION}}",region);

Expand All @@ -618,6 +617,60 @@ export class Services extends Stack {
dashboardBody: dashboardBody
});

const customWidgetResourceControllerPolicy = new iam.PolicyStatement({
effect: iam.Effect.ALLOW,
actions: [
'ecs:ListServices',
'ecs:UpdateService',
'eks:DescribeNodegroup',
'eks:ListNodegroups',
'eks:DescribeUpdate',
'eks:UpdateNodegroupConfig',
'ecs:DescribeServices',
'eks:DescribeCluster',
'eks:ListClusters',
'ecs:ListClusters'
],
resources: ['*']
});
var customWidgetLambdaRole = new iam.Role(this, 'customWidgetLambdaRole', {
assumedBy: new iam.ServicePrincipal('lambda.amazonaws.com'),
});
customWidgetLambdaRole.addToPrincipalPolicy(customWidgetResourceControllerPolicy);

var petsiteApplicationResourceController = new lambda.Function(this, 'petsite-application-resource-controler', {
code: lambda.Code.fromAsset(path.join(__dirname, '/../resources/resource-controller-widget')),
handler: 'petsite-application-resource-controler.lambda_handler',
memorySize: 128,
runtime: lambda.Runtime.PYTHON_3_9,
role: customWidgetLambdaRole,
timeout: Duration.minutes(10)
});
petsiteApplicationResourceController.addEnvironment("EKS_CLUSTER_NAME", cluster.clusterName);
petsiteApplicationResourceController.addEnvironment("ECS_CLUSTER_ARNS", ecsPayForAdoptionCluster.clusterArn + "," +
ecsPetListAdoptionCluster.clusterArn + "," + ecsPetSearchCluster.clusterArn);

var customWidgetFunction = new lambda.Function(this, 'cloudwatch-custom-widget', {
code: lambda.Code.fromAsset(path.join(__dirname, '/../resources/resource-controller-widget')),
handler: 'cloudwatch-custom-widget.lambda_handler',
memorySize: 128,
runtime: lambda.Runtime.PYTHON_3_9,
role: customWidgetLambdaRole,
timeout: Duration.seconds(60)
});
customWidgetFunction.addEnvironment("CONTROLER_LAMBDA_ARN", petsiteApplicationResourceController.functionArn);
customWidgetFunction.addEnvironment("EKS_CLUSTER_NAME", cluster.clusterName);
customWidgetFunction.addEnvironment("ECS_CLUSTER_ARNS", ecsPayForAdoptionCluster.clusterArn + "," +
ecsPetListAdoptionCluster.clusterArn + "," + ecsPetSearchCluster.clusterArn);

var costControlDashboardBody = readFileSync("./resources/cw_dashboard_cost_control.json","utf-8");
costControlDashboardBody = costControlDashboardBody.replaceAll("{{YOUR_LAMBDA_ARN}}",customWidgetFunction.functionArn);

const petSiteCostControlDashboard = new cloudwatch.CfnDashboard(this, "PetSiteCostControlDashboard", {
dashboardName: "PetSite_Cost_Control_Dashboard",
dashboardBody: costControlDashboardBody
});


this.createOuputs(new Map(Object.entries({
'CWServiceAccountArn': cwserviceaccount.roleArn,
Expand All @@ -631,6 +684,7 @@ export class Services extends Stack {
const petAdoptionsStepFn = new PetAdoptionsStepFn(this,'StepFn');

this.createSsmParameters(new Map(Object.entries({
'/petstore/trafficdelaytime':"1",
'/petstore/rumscript': " ",
'/petstore/petadoptionsstepfnarn': petAdoptionsStepFn.stepFn.stateMachineArn,
'/petstore/updateadoptionstatusurl': statusUpdaterService.api.url,
Expand All @@ -639,11 +693,13 @@ export class Services extends Stack {
'/petstore/dynamodbtablename': dynamodb_petadoption.tableName,
'/petstore/s3bucketname': s3_observabilitypetadoptions.bucketName,
'/petstore/searchapiurl': `http://${searchService.service.loadBalancer.loadBalancerDnsName}/api/search?`,
'/petstore/searchimage': searchService.container.imageName,
'/petstore/petlistadoptionsurl': `http://${listAdoptionsService.service.loadBalancer.loadBalancerDnsName}/api/adoptionlist/`,
'/petstore/petlistadoptionsmetricsurl': `http://${listAdoptionsService.service.loadBalancer.loadBalancerDnsName}/metrics`,
'/petstore/paymentapiurl': `http://${payForAdoptionService.service.loadBalancer.loadBalancerDnsName}/api/home/completeadoption`,
'/petstore/payforadoptionmetricsurl': `http://${payForAdoptionService.service.loadBalancer.loadBalancerDnsName}/metrics`,
'/petstore/cleanupadoptionsurl': `http://${payForAdoptionService.service.loadBalancer.loadBalancerDnsName}/api/home/cleanupadoptions`,
'/petstore/petsearch-collector-manual-config': readFileSync("./resources/collector/ecs-xray-manual.yaml", "utf8"),
'/petstore/rdssecretarn': `${auroraCluster.secret?.secretArn}`,
'/petstore/rdsendpoint': auroraCluster.clusterEndpoint.hostname,
'/petstore/stackname': stackName,
Expand Down
9 changes: 6 additions & 3 deletions PetAdoptions/cdk/pet_stack/lib/services/ecs-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ export abstract class EcsService extends Construct {

public readonly taskDefinition: ecs.TaskDefinition;
public readonly service: ecs_patterns.ApplicationLoadBalancedServiceBase;
public readonly container: ecs.ContainerDefinition;

constructor(scope: Construct, id: string, props: EcsServiceProps) {
super(scope, id);
Expand Down Expand Up @@ -96,15 +97,17 @@ export abstract class EcsService extends Construct {
// Can help speed up builds if we are not rebuilding anything
const image = props.repositoryURI? this.containerImageFromRepository(props.repositoryURI) : this.createContainerImage()

this.taskDefinition.addContainer('container', {
this.container = this.taskDefinition.addContainer('container', {
image: image,
memoryLimitMiB: 512,
cpu: 256,
logging,
environment: { // clear text, not for sensitive data
AWS_REGION: props.region,
}
}).addPortMappings({
});

this.container.addPortMappings({
containerPort: 80,
protocol: ecs.Protocol.TCP
});
Expand Down Expand Up @@ -184,7 +187,7 @@ export abstract class EcsService extends Construct {

private addOtelCollectorContainer(taskDefinition: ecs.FargateTaskDefinition, logging: ecs.AwsLogDriver) {
taskDefinition.addContainer('aws-otel-collector', {
image: ecs.ContainerImage.fromRegistry('public.ecr.aws/aws-observability/aws-otel-collector:v0.21.0'),
image: ecs.ContainerImage.fromRegistry('public.ecr.aws/aws-observability/aws-otel-collector:v0.28.0'),
memoryLimitMiB: 256,
cpu: 256,
command: ["--config", "/etc/ecs/ecs-xray.yaml"],
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
extensions:
health_check:

receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318

processors:
batch/traces:
timeout: 1s
send_batch_size: 50

exporters:
awsxray:

service:
pipelines:
traces:
receivers: [otlp]
processors: [batch/traces]
exporters: [awsxray]

extensions: [health_check]
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"widgets": [
{
"height": 3,
"width": 18,
"y": 0,
"x": 0,
"type": "custom",
"properties": {
"endpoint": "{{YOUR_LAMBDA_ARN}}",
"updateOn": {
"refresh": true,
"resize": true,
"timeRange": true
},
"title": "Petsite Resource Controller"
}
}
]
}
17 changes: 8 additions & 9 deletions PetAdoptions/cdk/pet_stack/resources/destroy_stack.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@ echo ---------------------------------------------------------------------------
echo This script destroys the CDK stack
echo ---------------------------------------------------------------------------------------------

if [ -z "$AWS_REGION" ]; then
echo "Fatal: environment variable AWS_REGION not set. Aborting."
exit 1
fi

# Disable Contributor Insights
DDB_CONTRIB=$(aws ssm get-parameter --name '/petstore/dynamodbtablename' | jq .Parameter.Value -r)
aws dynamodb update-contributor-insights --table-name $DDB_CONTRIB --contributor-insights-action DISABLE
Expand All @@ -21,24 +26,18 @@ if [ -z $STACK_NAME_APP ]; then STACK_NAME_APP="Applications"; fi

# Fix for CDK teardown issues
aws eks update-kubeconfig --name PetSite
kubectl delete -f ./resources/load_balancer/crds.yaml
kubectl delete -f https://raw.githubusercontent.com/aws-samples/one-observability-demo/main/PetAdoptions/cdk/pet_stack/resources/load_balancer/crds.yaml

# Get rid of all resources (Application first, then cluster or it will fail)
cdk destroy $STACK_NAME_APP $STACK_NAME --force
cdk destroy $STACK_NAME_APP --force
cdk destroy $STACK_NAME --force

# Sometimes the SqlSeeder doesn't get deleted cleanly. This helps clean up the environment completely including Sqlseeder
aws cloudformation delete-stack --stack-name $STACK_NAME
aws cloudformation delete-stack --stack-name $STACK_NAME_APP
aws cloudformation delete-stack --stack-name $STACK_NAME

aws cloudwatch delete-dashboards --dashboard-names "EKS_FluentBit_Dashboard"

# delete s3 buckets
for b in $(aws s3 ls | awk '/services-s3bucketpetadoption/ {print $3}'); do
echo "deleting ${b}"
aws s3 rb s3://$b --force
done

echo CDK BOOTSTRAP WAS NOT DELETED

echo ----- ✅ DONE --------
Original file line number Diff line number Diff line change
Expand Up @@ -3,82 +3,44 @@ module api
go 1.18

require (
github.com/aws/aws-sdk-go v1.44.118
github.com/gorilla/mux v1.8.0
github.com/prometheus/client_golang v1.13.1
go.opentelemetry.io/contrib/detectors/aws/eks v1.11.1
github.com/rs/cors v1.8.2
go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux v0.36.4
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.36.4
go.opentelemetry.io/contrib/propagators/aws v1.11.1
go.opentelemetry.io/otel v1.11.1
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.1
go.opentelemetry.io/otel/sdk v1.11.1
go.opentelemetry.io/otel/trace v1.11.1
go.uber.org/zap v1.23.0
)

require (
github.com/PuerkitoBio/purell v1.1.1 // indirect
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
github.com/aws/aws-sdk-go v1.44.118 // indirect
github.com/aws/aws-sdk-go-v2 v1.17.1 // indirect
github.com/aws/smithy-go v1.13.4 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/cenkalti/backoff/v4 v4.1.3 // indirect
github.com/cespare/xxhash/v2 v2.1.2 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/emicklei/go-restful/v3 v3.8.0 // indirect
github.com/felixge/httpsnoop v1.0.3 // indirect
github.com/go-logr/logr v1.2.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-openapi/jsonpointer v0.19.5 // indirect
github.com/go-openapi/jsonreference v0.19.5 // indirect
github.com/go-openapi/swag v0.19.14 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/protobuf v1.5.2 // indirect
github.com/google/gnostic v0.5.7-v3refs // indirect
github.com/google/gofuzz v1.1.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/mailru/easyjson v0.7.6 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/prometheus/client_model v0.2.0 // indirect
github.com/prometheus/common v0.37.0 // indirect
github.com/prometheus/procfs v0.8.0 // indirect
github.com/rs/cors v1.8.2 // indirect
go.opentelemetry.io/contrib/detectors/aws/ec2 v1.11.1 // indirect
go.opentelemetry.io/contrib/detectors/aws/ecs v1.11.1 // indirect
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.11.1 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.11.1 // indirect
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.11.1 // indirect
go.opentelemetry.io/otel/metric v0.33.0 // indirect
go.opentelemetry.io/otel/trace v1.11.1 // indirect
go.opentelemetry.io/proto/otlp v0.19.0 // indirect
go.uber.org/atomic v1.10.0 // indirect
go.uber.org/multierr v1.8.0 // indirect
go.uber.org/zap v1.23.0 // indirect
golang.org/x/net v0.0.0-20220722155237-a158d28d115b // indirect
golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect
golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8 // indirect
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect
golang.org/x/text v0.3.7 // indirect
golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect
google.golang.org/appengine v1.6.7 // indirect
golang.org/x/net v0.7.0 // indirect
golang.org/x/sys v0.5.0 // indirect
golang.org/x/text v0.7.0 // indirect
google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1 // indirect
google.golang.org/grpc v1.50.1 // indirect
google.golang.org/protobuf v1.28.1 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
k8s.io/api v0.25.3 // indirect
k8s.io/apimachinery v0.25.3 // indirect
k8s.io/client-go v0.25.3 // indirect
k8s.io/klog/v2 v2.70.1 // indirect
k8s.io/kube-openapi v0.0.0-20220803162953-67bda5d908f1 // indirect
k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed // indirect
sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
sigs.k8s.io/yaml v1.2.0 // indirect
)
Loading