Skip to content

Commit e952e28

Browse files
committed
feat: add install oidc-login scripts
1 parent 3378614 commit e952e28

File tree

5 files changed

+38
-2
lines changed

5 files changed

+38
-2
lines changed

Dockerfile.deps

+9
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
FROM alpine:3.17 AS builder
22

33
ARG AWS_IAM_AUTH_VERSION=0.5.9
4+
ARG ODIC_LOGIN_VERSION=1.28.0
45
ARG KUBELOGIN_VERSION=0.0.14
56
ARG KUBECTL_VERSION=1.22.11
67
ARG HELM_VERSION=3.9.0
@@ -19,6 +20,13 @@ RUN curl -L \
1920
https://github.com/kubernetes-sigs/aws-iam-authenticator/releases/download/v${AWS_IAM_AUTH_VERSION}/aws-iam-authenticator_${AWS_IAM_AUTH_VERSION}_${TARGETOS}_${TARGETARCH} -o aws-iam-authenticator && \
2021
chmod +x ./aws-iam-authenticator
2122

23+
# oidclogin
24+
RUN curl -L \
25+
https://github.com/int128/kubelogin/releases/download/v${ODIC_LOGIN_VERSION}/kubelogin_${TARGETOS}_${TARGETARCH}.zip -o oidclogin.zip && \
26+
unzip oidclogin.zip && \
27+
mv kubelogin kubectl-oidc_login && \
28+
chmod +x ./kubectl-oidc_login
29+
2230
# kubelogin
2331
RUN curl -L \
2432
https://github.com/Azure/kubelogin/releases/download/v${KUBELOGIN_VERSION}/kubelogin-${TARGETOS}-${TARGETARCH}.zip -o kubelogin.zip && \
@@ -39,6 +47,7 @@ ARG TARGETVARIANT
3947

4048
COPY --from=builder kubectl .
4149
COPY --from=builder aws-iam-authenticator .
50+
COPY --from=builder kubectl-oidc_login .
4251
COPY --from=builder bin/${TARGETOS}_${TARGETARCH}/kubelogin .
4352
COPY --from=builder ${TARGETOS}-${TARGETARCH}/helm .
4453
COPY kconnect .

docs/book/src/commands/use.md

+3
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ specified cluster provider.
3333
[kubelogin](https://github.com/Azure/kubelogin)
3434
[azure-cli](https://github.com/Azure/azure-cli)
3535

36+
* Note: kconnect use oidc requires kube-oidc-login and rename to kubectl-oidc_login.
37+
[kube-oidc-login](https://github.com/int128/kubelogin)
38+
3639

3740
```bash
3841
kconnect use [flags]

docs/book/src/commands/use_oidc.md

+3
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ entry ID or alias. When the user reconnects using a connection history entry,
1919
kconnect regenerates the kubectl configuration context and refreshes their access
2020
token.
2121

22+
* Note: kconnect use oidc requires kube-oidc-login and rename to kubectl-oidc_login.
23+
[kube-oidc-login](https://github.com/int128/kubelogin)
24+
2225

2326
```bash
2427
kconnect use oidc [flags]

internal/commands/use/use.go

+7-1
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,10 @@ specified cluster provider.
8282
* Note: kconnect use aks requires kubelogin and azure cli.
8383
[kubelogin](https://github.com/Azure/kubelogin)
8484
[azure-cli](https://github.com/Azure/azure-cli)
85+
`
86+
oidcDescNote = `
87+
* Note: kconnect use oidc requires kube-oidc-login and rename to kubectl-oidc_login.
88+
[kube-oidc-login](https://github.com/int128/kubelogin)
8589
`
8690
usageExample = `
8791
# Connect to EKS and choose an available EKS cluster.
@@ -101,7 +105,7 @@ specified cluster provider.
101105

102106
// Command creates the use command
103107
func Command() (*cobra.Command, error) {
104-
longDesc := longDescHead + longDescBody + longDescFoot + eksDescNote + aksDescNote
108+
longDesc := longDescHead + longDescBody + longDescFoot + eksDescNote + aksDescNote + oidcDescNote
105109
useCmd := &cobra.Command{
106110
Use: "use",
107111
Short: shortDesc,
@@ -140,6 +144,8 @@ func createProviderCmd(registration *registry.DiscoveryPluginRegistration) (*cob
140144
providerLongDesc += eksDescNote
141145
} else if registration.Name == "aks" {
142146
providerLongDesc += aksDescNote
147+
} else if registration.Name == "oidc" {
148+
providerLongDesc += oidcDescNote
143149
}
144150
providerUsageExample := registration.UsageExample + usageExampleFoot
145151

scripts/install-kconnect.sh

+16-1
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,15 @@ latest_helm_release_tag=$(curl -fsSLI -o /dev/null -w %{url_effective} https://g
1212
latest_kubelogin_release_tag=$(curl -fsSLI -o /dev/null -w %{url_effective} https://github.com/Azure/kubelogin/releases/latest | sed 's#.*/##')
1313
latest_aws_iam_authenticator_release_tag=$(curl -fsSLI -o /dev/null -w %{url_effective} https://github.com/kubernetes-sigs/aws-iam-authenticator/releases/latest | sed 's#.*/##' | cut -c2-)
1414
latest_azure_cli_release_tag=$(curl -fsSLI -o /dev/null -w %{url_effective} https://github.com/Azure/azure-cli/releases/latest | sed 's#.*/##')
15+
latest_oidc_login_release_tag=$(curl -fsSLI -o /dev/null -w %{url_effective} https://github.com/int128/kubelogin/releases/latest | sed 's#.*/##')
1516

1617
echo "kconnect version: $latest_kconnect_release_tag"
1718
echo "kubectl version: $latest_kubectl_release_tag"
1819
echo "helm version: $latest_helm_release_tag"
1920
echo "kubelogin version: $latest_kubelogin_release_tag"
2021
echo "aws-iam-authenticator version: $latest_aws_iam_authenticator_release_tag"
2122
echo "azure-cli version: $latest_azure_cli_release_tag"
23+
echo "oidc-login version: $latest_oidc_login_release_tag"
2224

2325
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
2426
# linux
@@ -49,13 +51,14 @@ if [[ "$OSTYPE" == "linux-gnu"* ]]; then
4951
aws_iam_authenticator_url=$(echo "https://github.com/kubernetes-sigs/aws-iam-authenticator/releases/download/vTAG/aws-iam-authenticator_TAG_linux_ARCH" | sed "s/TAG/$latest_aws_iam_authenticator_release_tag/g" | sed "s/ARCH/$arch/" )
5052
kubelogin_url=$(echo "https://github.com/Azure/kubelogin/releases/download/TAG/kubelogin-linux-amd64.zip" | sed "s/TAG/$latest_kubelogin_release_tag/")
5153
azure_url="https://aka.ms/InstallAzureCli"
52-
54+
oidc_login_url=$(echo "https://github.com/int128/kubelogin/releases/download/TAG/kubelogin_linux_ARCH.zip" | sed "s/TAG/$latest_oidc_login_release_tag/" | sed "s/ARCH/$arch/" )
5355
echo "kconnect url: $kconnect_url"
5456
echo "kubectl url: $kubectl_url"
5557
echo "helm url: $helm_url"
5658
echo "aws_iam_authenticator url: $aws_iam_authenticator_url"
5759
echo "kubelogin url: $kubelogin_url"
5860
echo "azure url: $azure_url"
61+
echo "oidc-login url: $oidc_login_url"
5962

6063
# download
6164
curl -s -L $kconnect_url -o kconnect.tar.gz
@@ -64,11 +67,14 @@ if [[ "$OSTYPE" == "linux-gnu"* ]]; then
6467
curl -s -L $aws_iam_authenticator_url -o aws-iam-authenticator
6568
curl -s -L $kubelogin_url -o kubelogin.zip
6669
curl -s -L $azure_url -o azure-cli-install.sh
70+
curl -s -L $oidc_login_url -o oidclogin.zip
6771

6872
# unzip
6973
tar -xf kconnect.tar.gz
7074
tar -xf helm.tar.gz
7175
mv linux-*/helm .
76+
unzip -qq oidclogin.zip
77+
mv kubelogin kubectl-oidc_login
7278
unzip -qq kubelogin.zip
7379
mv bin/linux_amd64/kubelogin .
7480

@@ -78,12 +84,14 @@ if [[ "$OSTYPE" == "linux-gnu"* ]]; then
7884
rm -rf linux-*
7985
rm -f kubelogin.zip
8086
rm -rf bin
87+
rm -f oidclogin.zip
8188

8289
# permissions
8390
chmod +x kubectl
8491
chmod +x aws-iam-authenticator
8592
chmod +x kubelogin
8693
chmod +x azure-cli-install.sh
94+
chmod +x kubectl-oidc_login
8795

8896
elif [[ "$OSTYPE" == "darwin"* ]]; then
8997

@@ -94,25 +102,30 @@ elif [[ "$OSTYPE" == "darwin"* ]]; then
94102
aws_iam_authenticator_url=$(echo "https://github.com/kubernetes-sigs/aws-iam-authenticator/releases/download/vTAG/aws-iam-authenticator_TAG_darwin_amd64" | sed "s/TAG/$latest_aws_iam_authenticator_release_tag/g" )
95103
kubelogin_url=$(echo "https://github.com/Azure/kubelogin/releases/download/TAG/kubelogin-darwin-amd64.zip" | sed "s/TAG/$latest_kubelogin_release_tag/")
96104
azure_url="https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-macos"
105+
oidc_login_url=$(echo "https://github.com/int128/kubelogin/releases/download/TAG/kubelogin_darwin_amd64.zip" | sed "s/TAG/$latest_oidc_login_release_tag/" )
97106

98107
echo "kconnect url: $kconnect_url"
99108
echo "kubectl url: $kubectl_url"
100109
echo "helm url: $helm_url"
101110
echo "aws_iam_authenticator url: $aws_iam_authenticator_url"
102111
echo "kubelogin url: $kubelogin_url"
103112
echo "azure url: $azure_url"
113+
echo "oidc-login url: $oidc_login_url"
104114

105115
# download
106116
curl -s -L $kconnect_url -o kconnect.tar.gz
107117
curl -s -LO $kubectl_url
108118
curl -s -L $helm_url -o helm.tar.gz
109119
curl -s -L $aws_iam_authenticator_url -o aws-iam-authenticator
110120
curl -s -L $kubelogin_url -o kubelogin.zip
121+
curl -s -L $oidc_login_url -o oidclogin.zip
111122

112123
# unzip
113124
tar -xf kconnect.tar.gz
114125
tar -xf helm.tar.gz
115126
mv darwin-*/helm .
127+
unzip -qq oidclogin.zip
128+
mv kubelogin kubectl-oidc_login
116129
unzip -qq kubelogin.zip
117130
mv bin/darwin_amd64/kubelogin .
118131

@@ -122,11 +135,13 @@ elif [[ "$OSTYPE" == "darwin"* ]]; then
122135
rm -rf darwin-*
123136
rm -f kubelogin.zip
124137
rm -rf bin
138+
rm -f oidclogin.zip
125139

126140
# permissions
127141
chmod +x kubectl
128142
chmod +x aws-iam-authenticator
129143
chmod +x kubelogin
144+
chmod +x kubectl-oidc_login
130145

131146
elif [[ "$OSTYPE" == "msys" ]]; then
132147
# Win git bash

0 commit comments

Comments
 (0)