Cái đặt spin cli trên ubuntu:
bạn có thể tham khảo link này: https://spinnaker.io/docs/setup/other_config/spin/#install-spin
1) Install Spin CLI and config it to integrate with Google OAuth2
curl -LO https://storage.googleapis.com/spinnaker-artifacts/spin/$(curl -s https://storage.googleapis.com/spinnaker-artifacts/spin/latest)/linux/amd64/spin
chmod +x spin
sudo mv spin /usr/local/bin/spin
Cũng giống như bao app cli khác chúng ta cần 1 file config để authen.
Dưới đây là file config example:
https://github.com/spinnaker/spin/blob/master/config/example.yaml
Mình sẽ focus vào oauth2 với google.
xong kết quả bạn có file như sau:
tạo file tên là config
Auth:
Basic: null
Enabled: true
GoogleServiceAccount: null
Iap: null
IgnoreCertErrors: false
Ldap: null
OAuth2:
AuthUrl: https://accounts.google.com/o/oauth2/v2/auth
CachedToken:
ClientId: 506853153623-62q6jmi7daoNimtechnologycal0v436.apps.googleusercontent.com
ClientSecret: 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iJ9
Scopes:
- profile
- email
TokenUrl: https://www.googleapis.com/oauth2/v4/token
X509: null
Gate:
Endpoint: https://spinnaker-v2.Nimtechnology.services/gate
Rồi bạn chạy command:
spin --config config app list
Rồi bạn gõ lại command và lập lại bước trên
Lúc này bạn sẽ đăng nhập được và bạn copy string sau từ code=xxxxx
Dán vaò console và enter.
Important Note
Khi đó bạn sửa dụng code đó để paste vào console thì sẽ gặp lỗi:
OAuth2 Authentication failed: oauth2: cannot fetch token: 400 Bad Request
Response: {
"error": "invalid_grant",
"error_description": "Malformed auth code."
}
oauth2: cannot fetch token: 400 Bad Request
Response: {
"error": "invalid_grant",
"error_description": "Malformed auth code."
}
Đơn giản là bạn chuyển ‘/’ -> ‘%2F’
Bạn có thể tham khảo link này:
https://stackoverflow.com/questions/58209700/how-to-fix-the-malformed-auth-code-when-trying-to-refreshtoken-on-the-second-a
In my case it was pretty stupid: google api changes the auth code coding between requests.
Step 1 – During the first request to obtain tokens google returns quite normal, not encoded string as the code.
Step 2 – During second and N-th request to obtain tokens (if they were not revoked) google returns the auth code as url-encoded. In my case the killing change was ‘/’ -> ‘%2F’.
Solution: Always URL-Decode the auth code before exchanging it for the access tokens!
2) Command
Coming soon….